Architecture
Solipsist is built in Swift 6 with SwiftUI for macOS 14+.
Spatial Model
┌──────────────────┬─────────────────────────────┬──────────────────┐
│ SOURCES │ PLAY │ DRAWER │
│ Local / GitHub │ Graph, outputs, activity, │ Profile, page │
│ │ reports │ fields, options │
└──────────────────┴─────────────────────────────┴──────────────────┘
Companion windows: Preview (watch --serve) · Editor (boris-editor)
Engine Integration
BorisEngineactor manages single-process execution and signal handling (SIGTERM).- Contract models decode normative Boris JSON formats.
Coordinatormaps UI verbs to engine invocations, reporting timings and problems in real-time.
Process boundaries
The subprocess boundary is a feature, not an accident:
- The
borisbinary ships inside the app (arm64, zero runtime deps) and runs only as an isolated subprocess — crash isolation and cancellation without ever hosting Zig in-process. - Swift never reimplements compiler semantics. The JSON contracts (
manifest,graph,completion,build-report, analysis reports) are the single source of truth; the app mirrors and renders them. - Diagnostics and exit codes are surfaced, never silently swallowed.
These boundaries are the architectural form of the Mission’s non-negotiables, and they are the reason the graph shown in the play list is the real graph from graph.json — not a Swift reconstruction.