-
Notifications
You must be signed in to change notification settings - Fork 0
Add session state management specification (024) #84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Create feature specification for VS Code extension session state management covering temporal navigation, spatial viewport, feature data, and document lifecycle (dirty/save/undo). Key elements: - 5 user stories covering reactive UI updates, Python integration, undo/redo, save/load, and dirty tracking - 33 functional requirements across state management, persistence, and Python integration - 11 key entities defining the session state model - 7 measurable success criteria Based on the Software Requirements Document in docs/ideas/session-state-srd.md. https://claude.ai/code/session_01XRRsv5YSt94ahk1k1dKRh9
Clarify that state management core is unit-testable through programmatic tests without requiring UI or Python infrastructure. Integration tests will be added when those systems become available. https://claude.ai/code/session_01XRRsv5YSt94ahk1k1dKRh9
Clarify that opening a GeoJSON FeatureCollection in the map editor automatically creates a session with default state (FR-004a). https://claude.ai/code/session_01XRRsv5YSt94ahk1k1dKRh9
Clarify that loading a session referencing a non-existent feature collection must fail with an error message rather than loading partial state. https://claude.ai/code/session_01XRRsv5YSt94ahk1k1dKRh9
Clarify that concurrent state modifications from UI and Python follow last-write-wins semantics with no priority given to either source. https://claude.ai/code/session_01XRRsv5YSt94ahk1k1dKRh9
Clarify that loading session files with incompatible (future) schema versions must be rejected with a clear error message. Older versions can still be migrated forward per SC-007. https://claude.ai/code/session_01XRRsv5YSt94ahk1k1dKRh9
Define standard behaviors for: - Empty undo history: no-op with indication - Zero-duration time range: valid degenerate case (single point in time) - Invalid viewport coordinates: reject with validation error https://claude.ai/code/session_01XRRsv5YSt94ahk1k1dKRh9
- Add User Story 6: Developer debugs state via web dashboard - Add Server Deployment requirements (FR-034 to FR-037): - Standalone mode outside VS Code - HTTP/MCP transport for testing - Dual access pattern (in-process for TS, HTTP for Python) - Add Developer Tools requirements (FR-038 to FR-043): - Web-based debug dashboard - Real-time state visualization - Collapsible tree for features, editable fields for other slices - Direct state manipulation for testing - Add success criteria SC-008 and SC-009 https://claude.ai/code/session_01XRRsv5YSt94ahk1k1dKRh9
Update architecture so dashboard is a standalone HTML/JS app that connects to the server via HTTP/MCP, rather than being served by the server: - FR-038: Server supports CORS for external HTML apps - FR-039: Dashboard is separate standalone HTML/JS app - FR-040: Dashboard connects via HTTP/MCP interface - Renumber FR-041 to FR-045 Benefits: - Server stays minimal (pure API) - Dashboard can evolve independently - Aligns with "thick services, thin frontends" architecture - Better development velocity (no server restart for UI changes) https://claude.ai/code/session_01XRRsv5YSt94ahk1k1dKRh9
Dashboard configuration: - FR-046: Server URL via URL parameter with localStorage fallback - FR-047: Editable server URL in header - FR-048: Connection status indicator Real-time updates: - FR-037a: Server provides SSE endpoint for state change notifications - FR-041: Dashboard receives updates via SSE Editing and display: - FR-042: Features tree shows IDs with name/type properties - FR-044: Inline editing (click to edit, Enter/blur to submit) - FR-049: Tool action buttons deferred to future phase https://claude.ai/code/session_01XRRsv5YSt94ahk1k1dKRh9
IanMayo
pushed a commit
that referenced
this pull request
Feb 11, 2026
Reactive PROV cascade demo: 5-tool chain where moving a track updates buffer zones, recolors reference points, and refreshes a histogram — all automatically tracked in provenance. Serves all three strategic themes for Spring 2026 stakeholder engagement. https://claude.ai/code/session_015jzC8noATYLoama7VdveuR
IanMayo
pushed a commit
that referenced
this pull request
Feb 11, 2026
Vega-Lite based results viewing infrastructure: renderer component, tabbed bottom panel, logical result ID registry, custom editor for drag-to-float, and auto-refresh. Absorbs E03 #83 into E04 #89. Updates E03 cross-epic dependencies (only #82 and #84 need E04). https://claude.ai/code/session_015jzC8noATYLoama7VdveuR
This was referenced Feb 11, 2026
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR introduces a comprehensive specification for session state management in the VS Code extension. The specification defines how temporal navigation, spatial viewport, feature data, and document lifecycle (dirty/save/undo) are managed as a centralized, reactive state system.
Changes
spec.md: Complete feature specification covering:
requirements.md: Quality checklist validating:
Notable Details
This specification is ready for the planning phase (
/speckit.plan).