[Roadmap] JS-only Quasar UI deployment plan #2

Closed
opened 2026-07-25 21:51:34 +00:00 by lost-rob0t · 0 comments
lost-rob0t commented 2026-07-25 21:51:34 +00:00 (Migrated from github.com)

Goal

Ship quasar-ui as a browser-first, offline-first JavaScript/TypeScript spin-off of the Quasar design.

Fixed architecture

  • TypeScript, React, and Vite.
  • Cytoscape.js behind a strict graph adapter.
  • IndexedDB is the canonical local workspace store.
  • Web Workers execute local actions and heavy parsing/layout work.
  • XState models interaction, connection, action, and startup lifecycles.
  • TanStack Query manages optional remote adapter state only.
  • Optional StarIntel integration uses typed HTTP/WebSocket adapters.
  • Deployment is a static PWA; no Common Lisp backend, Node business-logic API, Rust/Tauri shell, GraphQL, or Socket.IO.
  • Manual edits, imports, and actions all produce validated graph-operation batches.
  • Dashboard, map, table, and timeline surfaces remain projections over stable identifiers rather than separate databases.

Phase 0 — Foundation

  • #3 Bootstrap the TypeScript/React/Vite workspace
  • #4 Define JS-only package boundaries and architecture rules
  • #5 Establish code quality, test, and CI baseline
  • #6 Create deterministic fixtures and schema conformance tests

Exit gate: clean checkout builds and tests; architecture boundaries are enforceable; deterministic fixtures exist.

Phase 1 — Local-first graph core

  • #7 Implement the canonical graph document and type registry
  • #8 Implement the graph command and atomic batch engine
  • #9 Implement transaction undo/redo and revision tracking
  • #10 Implement the IndexedDB workspace repository and migrations
  • #11 Implement canonical JSON, GraphML, and CSV import/export

Exit gate: graphs can be created, edited through commands, saved offline, reopened, undone/redone, imported, and exported without a server.

Phase 2 — Editable workbench MVP

  • #12 Build the resizable investigation workbench shell
  • #13 Implement the Cytoscape graph adapter and extension loader
  • #14 Implement node and edge editing gestures
  • #15 Build the typed node and edge inspector
  • #16 Persist layouts, viewport, selection, and saved graph views
  • #17 Add command palette, intermediate keymap, and workspace navigation

Exit gate: a user can open a workspace, create and connect typed nodes, edit properties, arrange the graph, save/reopen it, and operate the core editor by pointer or keyboard.

Phase 3 — JavaScript actions and optional integrations

  • #18 Implement the JavaScript action registry and applicability engine
  • #19 Build the sandboxed Web Worker action runner
  • #20 Validate and apply action graph batches as undoable transactions
  • #21 Build action progress, cancellation, logs, and trace UI
  • #22 Add the optional StarIntel HTTP/WebSocket integration adapter

Exit gate: a local worker action can be discovered, invoked, cancelled, validated, applied, and undone; remote integration remains optional.

Phase 4 — Investigation projections and dashboard

  • #23 Add the virtualized table projection
  • #24 Add the MapLibre map adapter and layer registry
  • #25 Add the timeline adapter and temporal filtering
  • #26 Implement shared selection, filters, and time synchronization
  • #27 Implement dashboard manifests, panel registry, and layout persistence
  • #28 Implement the projection coordinator, freshness states, and refresh scheduler
  • #29 Add CodeMirror structured-data and Star-Lang editor integration
  • #30 Add the evidence and document inspection surface

Exit gate: graph, table, map, timeline, dashboard, editor, and document views coordinate through stable IDs without creating duplicate canonical stores.

Phase 5 — Production deployment

  • #31 Package Quasar UI as an installable offline PWA
  • #32 Add secure local file workflows and recovery
  • #33 Harden CSP, imports, rendering, and extension boundaries
  • #34 Complete accessibility, responsive, and touch support
  • #35 Add performance workers, fixtures, and CI budgets
  • #36 Build production GitHub Actions and static deployment
  • #37 Add release versioning, diagnostics, and operational documentation

Exit gate: the static PWA is reproducibly deployed, installable, offline-capable, secure under its CSP, accessible, performance-budgeted, recoverable, versioned, and rollback-ready.

Production readiness

  • All phase exit gates pass.
  • Canonical graph and storage migrations pass against every retained fixture.
  • Offline reload, service-worker update, backup, restore, and rollback are tested.
  • No deployment path requires Common Lisp, Node server business logic, Rust, or Tauri.
  • Optional integrations fail closed without preventing local graph editing.
## Goal Ship `quasar-ui` as a browser-first, offline-first JavaScript/TypeScript spin-off of the Quasar design. ## Fixed architecture - TypeScript, React, and Vite. - Cytoscape.js behind a strict graph adapter. - IndexedDB is the canonical local workspace store. - Web Workers execute local actions and heavy parsing/layout work. - XState models interaction, connection, action, and startup lifecycles. - TanStack Query manages optional remote adapter state only. - Optional StarIntel integration uses typed HTTP/WebSocket adapters. - Deployment is a static PWA; no Common Lisp backend, Node business-logic API, Rust/Tauri shell, GraphQL, or Socket.IO. - Manual edits, imports, and actions all produce validated graph-operation batches. - Dashboard, map, table, and timeline surfaces remain projections over stable identifiers rather than separate databases. ## Phase 0 — Foundation - [ ] #3 Bootstrap the TypeScript/React/Vite workspace - [ ] #4 Define JS-only package boundaries and architecture rules - [ ] #5 Establish code quality, test, and CI baseline - [ ] #6 Create deterministic fixtures and schema conformance tests **Exit gate:** clean checkout builds and tests; architecture boundaries are enforceable; deterministic fixtures exist. ## Phase 1 — Local-first graph core - [ ] #7 Implement the canonical graph document and type registry - [ ] #8 Implement the graph command and atomic batch engine - [ ] #9 Implement transaction undo/redo and revision tracking - [ ] #10 Implement the IndexedDB workspace repository and migrations - [ ] #11 Implement canonical JSON, GraphML, and CSV import/export **Exit gate:** graphs can be created, edited through commands, saved offline, reopened, undone/redone, imported, and exported without a server. ## Phase 2 — Editable workbench MVP - [ ] #12 Build the resizable investigation workbench shell - [ ] #13 Implement the Cytoscape graph adapter and extension loader - [ ] #14 Implement node and edge editing gestures - [ ] #15 Build the typed node and edge inspector - [ ] #16 Persist layouts, viewport, selection, and saved graph views - [ ] #17 Add command palette, intermediate keymap, and workspace navigation **Exit gate:** a user can open a workspace, create and connect typed nodes, edit properties, arrange the graph, save/reopen it, and operate the core editor by pointer or keyboard. ## Phase 3 — JavaScript actions and optional integrations - [ ] #18 Implement the JavaScript action registry and applicability engine - [ ] #19 Build the sandboxed Web Worker action runner - [ ] #20 Validate and apply action graph batches as undoable transactions - [ ] #21 Build action progress, cancellation, logs, and trace UI - [ ] #22 Add the optional StarIntel HTTP/WebSocket integration adapter **Exit gate:** a local worker action can be discovered, invoked, cancelled, validated, applied, and undone; remote integration remains optional. ## Phase 4 — Investigation projections and dashboard - [ ] #23 Add the virtualized table projection - [ ] #24 Add the MapLibre map adapter and layer registry - [ ] #25 Add the timeline adapter and temporal filtering - [ ] #26 Implement shared selection, filters, and time synchronization - [ ] #27 Implement dashboard manifests, panel registry, and layout persistence - [ ] #28 Implement the projection coordinator, freshness states, and refresh scheduler - [ ] #29 Add CodeMirror structured-data and Star-Lang editor integration - [ ] #30 Add the evidence and document inspection surface **Exit gate:** graph, table, map, timeline, dashboard, editor, and document views coordinate through stable IDs without creating duplicate canonical stores. ## Phase 5 — Production deployment - [ ] #31 Package Quasar UI as an installable offline PWA - [ ] #32 Add secure local file workflows and recovery - [ ] #33 Harden CSP, imports, rendering, and extension boundaries - [ ] #34 Complete accessibility, responsive, and touch support - [ ] #35 Add performance workers, fixtures, and CI budgets - [ ] #36 Build production GitHub Actions and static deployment - [ ] #37 Add release versioning, diagnostics, and operational documentation **Exit gate:** the static PWA is reproducibly deployed, installable, offline-capable, secure under its CSP, accessible, performance-budgeted, recoverable, versioned, and rollback-ready. ## Production readiness - [ ] All phase exit gates pass. - [ ] Canonical graph and storage migrations pass against every retained fixture. - [ ] Offline reload, service-worker update, backup, restore, and rollback are tested. - [ ] No deployment path requires Common Lisp, Node server business logic, Rust, or Tauri. - [ ] Optional integrations fail closed without preventing local graph editing.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nsaspy/quasar-ui#2
No description provided.