Architecture overview
What the user gets
raytsystem runs a same-origin web interface on loopback and a deterministic Python CLI over the same workspace contracts. The UI combines verified state from knowledge, tasks, agents, skills, runs, and safety without giving the browser arbitrary filesystem access.
Browser (127.0.0.1) → FastAPI boundary → deterministic kernel
├─ immutable evidence and generations
├─ append-only task history
├─ allowlisted agent/skill/context catalog
└─ rebuildable search, Markdown, and graph projections
Trust and write boundaries
- Imported content is untrusted data, never an instruction source.
_raw/, normalized snapshots, ledger objects/generations, and generated knowledge are not edited directly.- LLM output remains a proposal until deterministic validation and authorized promotion succeed.
- Browser writes require same-origin session, CSRF, and idempotency bindings.
- External side effects and real-corpus promotion require separate scoped approval.
Expected operational result
uv run raytsystem status reads canonical pointers without creating databases or indexes.
uv run raytsystem graph status --json reports whether the derived code graph is current. A stale
graph is reported as stale; read-only architecture work falls back to targeted source search rather
than rebuilding it silently.
Failure and recovery
Rebuildable projections can be recreated from verified canonical state. Pointer, hash, generation,
or policy mismatches fail closed. Use raytsystem doctor, the relevant troubleshooting article, and
a dry-run restore plan before any recovery write.
See Security, editable and immutable areas, code graph, and contributing.