[Phase 0] Define JS-only package boundaries and architecture rules #4

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

Parent: #2
Depends on: #3

Scope

  • Record the JS-only architecture in an ADR.
  • Define import boundaries for app shell, canonical graph core, storage, graph renderer, actions, projections, integrations, and generic UI components.
  • Require Cytoscape access through GraphAdapter only.
  • Require durable mutations to pass through graph commands and batches.
  • Separate local canonical state from optional remote adapter caches.
  • Explicitly reject Common Lisp, Node API business logic, Rust/Tauri, GraphQL, Socket.IO, renderer-owned persistence, and direct plugin mutation of the graph.

Acceptance criteria

  • Architecture document includes dependency direction and prohibited imports.
  • ESLint or equivalent boundary checks catch representative violations.
  • Core graph modules run without React, Cytoscape, IndexedDB, or network access.
  • Optional integrations can be omitted without breaking the local editor.
Parent: #2 Depends on: #3 ## Scope - Record the JS-only architecture in an ADR. - Define import boundaries for app shell, canonical graph core, storage, graph renderer, actions, projections, integrations, and generic UI components. - Require Cytoscape access through `GraphAdapter` only. - Require durable mutations to pass through graph commands and batches. - Separate local canonical state from optional remote adapter caches. - Explicitly reject Common Lisp, Node API business logic, Rust/Tauri, GraphQL, Socket.IO, renderer-owned persistence, and direct plugin mutation of the graph. ## Acceptance criteria - Architecture document includes dependency direction and prohibited imports. - ESLint or equivalent boundary checks catch representative violations. - Core graph modules run without React, Cytoscape, IndexedDB, or network access. - Optional integrations can be omitted without breaking the local editor.
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#4
No description provided.