Enforce JavaScript package boundaries #70

Merged
lost-rob0t merged 18 commits from agent/issue-4-package-boundaries into main 2026-07-26 03:10:16 +00:00
lost-rob0t commented 2026-07-26 03:04:37 +00:00 (Migrated from github.com)

Summary

Implements the Phase 0 architecture boundary from #4.

  • records accepted dependency direction and prohibited architecture in ADR 0001
  • adds a required CI import-boundary scanner with representative regression tests
  • keeps core platform-independent by moving durable operation exports to actions
  • adds the optional integrations package contract
  • routes Cytoscape construction and plugin registration exclusively through GraphAdapter
  • preserves Cytoscape identity semantics for renderer events
  • documents the compatibility boundary for legacy JavaScript modules

Dependency direction

app composes the runtime; UI consumes graph/actions/projections/core; storage, graph, actions, projections, and integrations point toward platform-independent core. Typed package implementations cannot reach into legacy modules except through package entrypoints.

Validation

GitHub Actions CI run #149 passed: formatting, lint, typecheck, package boundaries, static checks, 103 unit/integration tests, production build, artifact validation, and all five Chromium Playwright tests.

Closes #4.

## Summary Implements the Phase 0 architecture boundary from #4. - records accepted dependency direction and prohibited architecture in ADR 0001 - adds a required CI import-boundary scanner with representative regression tests - keeps `core` platform-independent by moving durable operation exports to `actions` - adds the optional `integrations` package contract - routes Cytoscape construction and plugin registration exclusively through `GraphAdapter` - preserves Cytoscape identity semantics for renderer events - documents the compatibility boundary for legacy JavaScript modules ## Dependency direction `app` composes the runtime; UI consumes graph/actions/projections/core; storage, graph, actions, projections, and integrations point toward platform-independent core. Typed package implementations cannot reach into legacy modules except through package entrypoints. ## Validation GitHub Actions CI run #149 passed: formatting, lint, typecheck, package boundaries, static checks, 103 unit/integration tests, production build, artifact validation, and all five Chromium Playwright tests. Closes #4.
Sign in to join this conversation.
No description provided.