Shipped: Drawing mode survives webview rebuilds
Drawing mode and palette index now persist across VS Code webview reloads via session-state wiring.
Drawing mode and palette index now persist across VS Code webview reloads via session-state wiring.
Four storyboard playback gaps closed together — display-mode capture, real viewport rectangles, active-scene halo, and Storyboard-grouped scenes.
Closing a deliberate half-step from spec 241 — every byte that lands in the STAC catalog now crosses the same writer boundary.
Same Backlog Navigator app, same parser and push pipeline, now usable on a phone — installable as a PWA with an offline app shell.
Promoted spec 241's tactical scene-thumbnail regex to a first-class LinkML shape with documented pairing and ULID rules — and a Python audit for the constraints JSON Schema can't express.
Turned the 230-row pipe-delimited BACKLOG.md into a sortable, filterable, group-by-epic web app with staged edits and a deliberate Push Changes PR.
Lifted the bundled catalog to STAC 1.1.0, swapped bespoke debrief lineage fields for the standard processing and file extensions, and proved it renders in radiantearth/stac-browser.
Web-shell captures, edits, and new tracks now persist across reloads via IndexedDB, behind a shared StacWriter interface used by both hosts.
Save a plot and get a persistent PNG thumbnail; browse your catalog gallery by clicking through the filtered list.
Un-muted the LogPanel E2E suite after the openvscode-server lifecycle bug landed, with one passing scenario, four narrow-muted, and a restored skip-guard.
Five quality items deferred from the wiring patch — interactive stories, code-server E2E, axe audit, perf budget, full scenario set — closed in one PR.
Mermaid fences in Future Debrief blog posts now render as real diagrams on the published site, not as raw text.
Closing the three-PR archive story — 73 site posts retired, 74 archive posts in their place, every screenshot resolves.
Every Debrief panel now reflects the active VS Code theme on load and re-themes within 1s on switch, including high-contrast variants.
Every Debrief panel now reflects the active VS Code theme on load and re-themes within 1s on switch — including high-contrast variants.
Regenerate the `future` blog archive from specs in one shot — 73 posts + a handoff runbook, then delete the script.
We couldn't audit the LogPanel across themes until the themes actually switched. Fixing that came first. The audit comes next.
Natural-language catalog filtering in VS Code — type a sentence, watch chips and plot list narrow.
34 dropped screenshots, recovered. Every path Jekyll-absolute.
Wiring up the last-mile of the Storyboard panel: webview reducer, command actions, web-shell harness for Playwright.
Reactivated 3 dormant Playwright scenarios for the LogPanel webview, added 2 parity scenarios, and wired a lint-level skip-guard so CI can't go quiet again.
Retiring the hand-maintained tool-category map — new tools now declare their Log Panel icon at the registration site.
Three declarations of the same spatial type collapsed into one. The LinkML schema is now the only place `Coordinate` is defined.
One keystroke from live map to schema-validated Scene, with durable round-trip through save-close-reopen.
One canonical bounds utility, no casts at the call site, and the silent-miss zoom bug we found next door is fixed. The review gate earned its keep.
Every parameter visible, UTC timestamps, keyboard-navigable tabs. The audit trail stops hiding things from the analyst.
We shipped both refusals: the orphan is gone, the dependency is pinned, and the scanner is now a CI gate.
The nl-demo can now call a real language model -- credential isolation baked into the architecture, not bolted on.
Editing STAC metadata now happens in-app -- no more closing the editor and hand-patching item.json when a filter surfaces the wrong plots.
A no-build-step React playground that lets stakeholders drive an NL catalog search offline -- no API keys, no CDN dependency, no backend.
Bearing lines from towed-array sensors now originate at the array's real geographic position, with three calculation modes and cross-language parity.
A deterministic 2.7 KB vocabulary bundle gives the NL-to-CQL2 prompt the exact words analysts are allowed to use, without embedding the catalog.
A single JSON registry defines the vessel class hierarchy and all known platforms, with matching Python and TypeScript loaders.
REP files with SENSOR, SENSOR2, SENSOR3, and SENSORARC lines now import as embedded sensor data on tracks.
Sensor bearing lines, ambiguous bearings, and snail mode fading now render on the map via a custom Leaflet canvas layer.
Exercises on the map and timeline can now be colour-coded by Age, Vessel Class, or Tag — with a shared legend that explains the encoding.
The ExerciseListView component is now complete — a scrollable, virtualised exercise list with spatial thumbnails, flexible sorting, and recent-work resumption...
The Discovery UI's map view now doubles as an interactive spatial filter. Pan and zoom the map to narrow exercises by geography — the timeline updates in real...
The STAC Stack Browser now includes an interactive Timeline/Gantt view that lets analysts discover exercises by their temporal characteristics and narrow...
A two-rule CSS fix makes the Layers section expand when sibling sections collapse.
PR preview environments are live -- reviewers can now test the VS Code extension in a browser with one click.
Multi-geometry schemas wired up: 6 new classes, 10 golden fixtures, 146 tests passing
Playwright driving a full VS Code workbench inside Claude Code's sandbox, after four dead ends.
Result files now persist across sessions by reading them from STAC item assets.
Users can now create new plots directly from REP files with a single right-click action.
Double-click a STAC catalog to see every item's spatial bounds and temporal range on one screen.
Typed result system connecting calculation tools to storage, with 88 tests passing across Python and TypeScript.
The time slider in Debrief's VS Code sidebar now controls what you see on the map. Scrub to any moment and every track updates instantly.
AI-assisted breakdown of large features into deliverable backlog items with full traceability.
Drag a REP file onto the map. Watch your tracks appear. That simple.
Single commands for test/build/dev, checksum-based caching, zero overhead dependency checks
REP files now yield their full story — tracks, narratives, search areas, and operator notes all parsed to GeoJSON.
Interactive component demos now flow automatically from Storybook to blog posts — the speckit workflow handles bundling and deployment.
We've completed the foundational component library for Future Debrief, delivering reusable React components for maritime tactical analysis visualization.
Test Debrief from any browser. We've shipped a browser-accessible demo environment with a 7-layer test suite.
Maritime tactical analysis directly in VS Code with interactive maps and track visualization.
Desktop app for loading maritime data into STAC catalogs is complete
The tracer bullet hit its first real milestone: cross-language schema validation.
Building an extensible file parser for legacy Debrief formats, starting with REP.
Local STAC catalog operations are complete. Debrief v4.x can now create catalogs, store plots, and preserve provenance — all offline.
Enhancing our spec workflow to detect UI features and capture interaction design details upfront.
REP file parsing is complete. Legacy Debrief files now transform into validated GeoJSON with line-level error reporting.
The schema foundation is complete. LinkML now generates Pydantic models, JSON Schema, and TypeScript interfaces from a single source of truth.
Building local STAC catalog operations for offline-first analysis storage in Debrief v4.x.
Establishing the schema foundation for Debrief v4.x with LinkML as the single source of truth.