Prototype Quasar with CLOG and Cytoscape #36

Merged
lost-rob0t merged 27 commits from agent/quasar-clog-prototype-design into main 2026-07-24 02:12:06 +00:00
lost-rob0t commented 2026-07-23 23:44:22 +00:00 (Migrated from github.com)

What changed

  • define QUASAR-002 CLOG Hybrid Prototype Architecture
  • reserve the post-prototype QUASAR-003 Graph Document and Command Protocol
  • add a renderer-independent Common Lisp graph core
  • add quasar, quasar/core, quasar/ui-clog, and quasar/tests ASDF systems
  • add typed node, edge, graph-document, validation, revision, and Cytoscape projection code
  • add a CLOG workbench shell with one composite Cytoscape.js renderer
  • add a browser-to-Lisp rendererReady bridge
  • add a two-node, one-edge demonstration graph that can be projected from the REPL
  • add Common Lisp tests, a JavaScript renderer harness, startup documentation, and CI
  • activate QUASAR-002 as the repository's single implementation design

Prototype behavior

Common Lisp graph document
        |
        | one JSON projection
        v
CLOG browser session
        |
        v
Cytoscape.js composite renderer

The Common Lisp graph is canonical. Cytoscape owns browser-local rendering. Graph entities are not represented as individual CLOG objects.

The demonstration graph contains:

example.org --resolves to--> 203.0.113.10

Run from the REPL

(ql:quickload :clog)
(asdf:load-asd (truename "quasar.asd"))
(asdf:load-system "quasar/ui-clog")
(quasar.ui.clog:start-quasar)
(quasar.ui.clog:project-demo-graph)

Scope boundary

This checkpoint does not implement:

  • graph editing gestures
  • Quasar action execution
  • persistence
  • Star-Lang integration
  • remote services or a public protocol
  • React or TypeScript

The branch stops before those features so the CLOG/Cytoscape boundary can be reviewed after the first visible projection.

Validation

Commit cacc25cc9b5856047e843eb05a1ff7edc7770d9e passed all three workflows:

  • Quasar prototype: installed SBCL and upstream CLOG, loaded quasar/tests, passed the Common Lisp tests, loaded quasar/ui-clog, passed JavaScript syntax validation, and passed the renderer bridge harness
  • Org-roam Pages: passed
  • Kindle EPUB: passed

The remaining validation is manual: launch the CLOG application in a real browser, observe the actual WebSocket rendererReady callback, project the demonstration graph, and visually confirm the two nodes and one edge.

Design correction

The immediate path is now CLOG plus a small Cytoscape adapter rather than a mandatory React/TypeScript client and prematurely frozen network protocol. The core remains independent from CLOG so a separate client can still be extracted if measured constraints justify it.

## What changed - define `QUASAR-002 CLOG Hybrid Prototype Architecture` - reserve the post-prototype `QUASAR-003 Graph Document and Command Protocol` - add a renderer-independent Common Lisp graph core - add `quasar`, `quasar/core`, `quasar/ui-clog`, and `quasar/tests` ASDF systems - add typed node, edge, graph-document, validation, revision, and Cytoscape projection code - add a CLOG workbench shell with one composite Cytoscape.js renderer - add a browser-to-Lisp `rendererReady` bridge - add a two-node, one-edge demonstration graph that can be projected from the REPL - add Common Lisp tests, a JavaScript renderer harness, startup documentation, and CI - activate `QUASAR-002` as the repository's single implementation design ## Prototype behavior ```text Common Lisp graph document | | one JSON projection v CLOG browser session | v Cytoscape.js composite renderer ``` The Common Lisp graph is canonical. Cytoscape owns browser-local rendering. Graph entities are not represented as individual CLOG objects. The demonstration graph contains: ```text example.org --resolves to--> 203.0.113.10 ``` ## Run from the REPL ```lisp (ql:quickload :clog) (asdf:load-asd (truename "quasar.asd")) (asdf:load-system "quasar/ui-clog") (quasar.ui.clog:start-quasar) (quasar.ui.clog:project-demo-graph) ``` ## Scope boundary This checkpoint does not implement: - graph editing gestures - Quasar action execution - persistence - Star-Lang integration - remote services or a public protocol - React or TypeScript The branch stops before those features so the CLOG/Cytoscape boundary can be reviewed after the first visible projection. ## Validation Commit `cacc25cc9b5856047e843eb05a1ff7edc7770d9e` passed all three workflows: - **Quasar prototype:** installed SBCL and upstream CLOG, loaded `quasar/tests`, passed the Common Lisp tests, loaded `quasar/ui-clog`, passed JavaScript syntax validation, and passed the renderer bridge harness - **Org-roam Pages:** passed - **Kindle EPUB:** passed The remaining validation is manual: launch the CLOG application in a real browser, observe the actual WebSocket `rendererReady` callback, project the demonstration graph, and visually confirm the two nodes and one edge. ## Design correction The immediate path is now CLOG plus a small Cytoscape adapter rather than a mandatory React/TypeScript client and prematurely frozen network protocol. The core remains independent from CLOG so a separate client can still be extracted if measured constraints justify it.
Sign in to join this conversation.
No description provided.