Skip to content

Conversation

@IanMayo
Copy link
Member

@IanMayo IanMayo commented Jan 23, 2026

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:

    • 5 prioritized user stories (P1-P5) with acceptance scenarios and independent test criteria
    • 33 functional requirements organized by domain (state core, temporal, spatial, features, document, persistence, Python integration, time representation)
    • 16 key entities defining the data model
    • 8 assumptions clarifying scope and implementation boundaries
    • 7 measurable success criteria with quantified targets
    • 5 edge cases for robustness validation
  • requirements.md: Quality checklist validating:

    • Content is technology-agnostic and focused on user value
    • All requirements are testable and unambiguous
    • Success criteria are measurable
    • No implementation details leak into the specification
    • Feature is ready for planning phase

Notable Details

  • Specification is intentionally technology-agnostic, excluding implementation details about frameworks, APIs, or languages
  • Distinguishes between persistent state (saved/loaded) and ephemeral state (playback, dirty flag) to clarify undo/redo behavior
  • Addresses open questions from the SRD (time step auto mode, viewport debouncing, selection limits, multi-editor support) in the Assumptions section
  • Includes edge cases for schema compatibility, missing data, and invalid inputs
  • Success criteria include both functional targets (100ms UI responsiveness, 50 undo steps) and quality metrics (selective subscriptions, fidelity)

This specification is ready for the planning phase (/speckit.plan).

claude added 10 commits January 23, 2026 18:28
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 IanMayo merged commit 6a6b134 into main Jan 24, 2026
1 check passed
@IanMayo IanMayo deleted the claude/document-session-state-WXooj branch January 24, 2026 17:04
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants