- Introduced a new configuration file `config.yaml` for specifying project context and artifact rules. - Added `.openspec.yaml` files for tracking changes related to performance improvements. - Created design documents outlining the context, goals, decisions, and migration plans for optimizing session performance. - Proposed changes include batching database queries, debouncing event refreshes, purging old events, and implementing loading states for better user experience. - Added tasks and specifications to ensure proper implementation and validation of the new features. These enhancements aim to improve the scalability and responsiveness of the application during collaborative sessions.
877 B
877 B
ADDED Requirements
Requirement: Single polling interval per active session
The SSE infrastructure SHALL maintain at most one active DB polling interval per session, regardless of the number of connected clients.
Scenario: First client connects starts polling
- WHEN the first client connects to a session's SSE endpoint
- THEN a single polling interval SHALL be started for that session
Scenario: Additional clients share existing polling
- WHEN a second or subsequent client connects to the same session's SSE endpoint
- THEN no additional polling interval SHALL be created
- THEN the new client SHALL receive events from the shared poll
Scenario: Last client disconnect stops polling
- WHEN all clients disconnect from a session's SSE endpoint
- THEN the polling interval for that session SHALL be stopped and cleaned up