Add Common Lisp control plane and CLOG WebSocket bridge #1

Merged
lost-rob0t merged 5 commits from agent/common-lisp-control-plane into main 2026-07-30 01:29:43 +00:00
lost-rob0t commented 2026-07-30 01:20:57 +00:00 (Migrated from github.com)

What changed

  • pins the complete existing quasar-ui application as frontend/ at commit 83dc45f
  • adds an idempotent preparation script that injects the bridge into the real src/app/main.tsx bootstrap without deleting components
  • adds a versioned JSON command/result/event protocol
  • adds a single-writer Sento control-plane actor
  • adds canonical in-memory workspace state for documents, graphs, and settings
  • adds a CLOG browser host and WebSocket-backed command bridge
  • adds a cross-origin postMessage frontend client exposed as window.QuasarControlPlaneClient
  • adds optional runtime discovery for the Common Lisp-only StarLang implementation
  • adds architecture and full UI migration/non-regression ledgers
  • adds SBCL and browser-adapter CI checks

Architecture

React, Cytoscape, mobile navigation, routes, themes, agents, documents, datasets, imports, settings, statistics, and PWA behavior stay in the browser UI. High-frequency rendering and interaction remain local. Durable or privileged operations cross the CLOG WebSocket bridge to the Common Lisp control plane.

Current vertical slice

The control plane exposes:

  • system.capabilities
  • workspace.snapshot
  • workspace.apply
  • starlang.status
  • starlang.load

The migration ledger maps the remaining current UI surfaces to their Common Lisp commands without deleting features.

Validation

  • SBCL ASDF load: passed
  • protocol/workspace tests: passed
  • host bridge JavaScript syntax: passed
  • frontend client JavaScript syntax: passed

Follow-on boundary

This PR establishes the runnable control-plane/transport foundation. It does not claim that every existing browser persistence and integration call has already been replaced; that migration is enumerated in docs/UI-MIGRATION.md with non-regression gates.

## What changed - pins the complete existing `quasar-ui` application as `frontend/` at commit `83dc45f` - adds an idempotent preparation script that injects the bridge into the real `src/app/main.tsx` bootstrap without deleting components - adds a versioned JSON command/result/event protocol - adds a single-writer Sento control-plane actor - adds canonical in-memory workspace state for documents, graphs, and settings - adds a CLOG browser host and WebSocket-backed command bridge - adds a cross-origin `postMessage` frontend client exposed as `window.QuasarControlPlaneClient` - adds optional runtime discovery for the Common Lisp-only StarLang implementation - adds architecture and full UI migration/non-regression ledgers - adds SBCL and browser-adapter CI checks ## Architecture React, Cytoscape, mobile navigation, routes, themes, agents, documents, datasets, imports, settings, statistics, and PWA behavior stay in the browser UI. High-frequency rendering and interaction remain local. Durable or privileged operations cross the CLOG WebSocket bridge to the Common Lisp control plane. ## Current vertical slice The control plane exposes: - `system.capabilities` - `workspace.snapshot` - `workspace.apply` - `starlang.status` - `starlang.load` The migration ledger maps the remaining current UI surfaces to their Common Lisp commands without deleting features. ## Validation - SBCL ASDF load: passed - protocol/workspace tests: passed - host bridge JavaScript syntax: passed - frontend client JavaScript syntax: passed ## Follow-on boundary This PR establishes the runnable control-plane/transport foundation. It does not claim that every existing browser persistence and integration call has already been replaced; that migration is enumerated in `docs/UI-MIGRATION.md` with non-regression gates.
Sign in to join this conversation.
No description provided.