You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 87f6797
Browse filesBrowse the repository at this point in the historyBrowse files
docs: README reflects the tree at M3: what works, how to run it, the pages, what is not there yet
Derived on 2026-09-21: 17 approved slices and 17 slice tags; M2 counts 003 and M9 counts 002 as
ROADMAP.md has them; the docs and repository tables name the files the tree holds.
Signed-off-by: Ayla Croft <aylacroft@proton.me>
Copy file name to clipboardExpand all lines: README.md
+44-13Lines changed: 44 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,12 +10,30 @@ desktop application. Apache-2.0, developed in the open from the first commit.
10
10
11
11
## Status
12
12
13
-
Pre-alpha. The repository, quality gate and packaging path are in place and proven (milestone M0).
14
-
There is no chat, no model integration and no tool execution yet; those arrive with milestones
15
-
M1 and M2. `ROADMAP.md` carries the live status of every slice of work, and the
16
-
[Milestones](#milestones) section below explains how to read it.
17
-
18
-
Nothing here is ready to use. If you want to follow along, watch the roadmap and the tags.
13
+
Pre-alpha, and usable from source. Milestones M0 to M3 are approved: 17 slices, each merged with a
14
+
merge commit and tagged `slice/NNN` (`git tag -l 'slice/*' | wc -l` → 17, on 2026-09-21). What
15
+
that means in practice:
16
+
17
+
-**Talks.** Streaming chat with any provider behind one behaviour (`Trinity.LLM`), switched by
18
+
configuration; the assistant's text is persisted as a draft every 500 ms or 2 KB while it
19
+
streams, so a crash mid-turn loses at most that much. Context compaction with lineage when a conversation outgrows the
20
+
model's window.
21
+
-**Acts.** Filesystem, web and shell tools behind a permission gate with fingerprint-bound
22
+
approvals; every effect passes one membrane and leaves a signed, hash-chained receipt you can
23
+
verify offline (`mix trinity.receipts.verify`). A FIPS build leg in CI proves the receipt scheme
24
+
under OpenSSL's FIPS provider.
25
+
-**Remembers.** A persona (its SOUL), a small always-on memory with a byte budget and a
26
+
consolidator instead of truncation, full-text search over every past conversation, a semantic
27
+
tier filled by an observer after each turn and recalled by meaning (local embeddings, never a
28
+
hosted call unless you opt in), project context from `AGENTS.md`, and export and import of the
29
+
whole thing as one archive.
30
+
31
+
Not there yet: skills (M4), scheduled tasks and MCP (M5a), messaging gateways and subagents (M5b),
32
+
the native desktop shell and signed releases (M6). `ROADMAP.md` carries the live status of every
33
+
slice, and the [Milestones](#milestones) section below explains how to read it.
34
+
35
+
The interface is a local web page; the desktop shell exists as a packaging spike, not a product.
36
+
If you want to follow along, watch the roadmap and the tags.
19
37
20
38
## Why the BEAM
21
39
@@ -42,19 +60,30 @@ only needed for the desktop shell.
42
60
43
61
```
44
62
git config core.hooksPath .githooks # once, before your first commit
63
+
cp .env.example .env # then put a provider key in it
45
64
mix setup # dependencies, database, assets
46
65
mix phx.server # or: iex -S mix phx.server
47
66
```
48
67
49
-
Then open [localhost:4000](http://localhost:4000). Today that is a scaffold page, not an agent.
68
+
Then open [localhost:4000](http://localhost:4000): new conversation, pick a model, talk. The
69
+
model registry is `config/llm.exs`; keys come from the environment (`.env` is gitignored). The
70
+
pages: `/` conversations, `/s/:id` a conversation and `/s/:id/receipts` its receipts, `/search`
71
+
full-text search, `/personas` and `/memory` the persona and its memory (with the semantic tab and
72
+
the embedding model's download), `/permissions` the rules and pending approvals, `/settings` the
73
+
export. `mix trinity.export` and `mix trinity.import` do what `/settings` does from a terminal;
74
+
`docs/backup.md` explains the archive.
75
+
76
+
Semantic recall needs the local embedding model (91 MB, downloaded from the memory page on your
77
+
say-so, never on its own). Without it the tier is off and full-text search still works;
78
+
`docs/perf.md` has what it costs.
50
79
51
80
`mix gate` runs the full quality gate and has to pass before every commit: format check, compile
52
81
with warnings as errors, Credo, Sobelow, dependency audits, version verification, the naming and
53
82
secret checks, the tests with coverage, and `scripts/plan_check.sh`, which checks the plan
54
83
documents themselves for consistency.
55
84
56
85
Packaging as a single binary is documented in `docs/packaging.md`, with measured sizes and
57
-
start-up times for each target.
86
+
start-up times for each target; `docs/fips-leg.md` describes the FIPS build leg.
58
87
59
88
## How the work is organised
60
89
@@ -84,16 +113,16 @@ engineering contract that every change is held to.
84
113
|---|---|---|
85
114
| M0 Stands | Repository, quality gate and packaging path proven | 000 and 001 approved |
86
115
| M1 Talks | Streaming chat with any provider, persisted and crash-safe | 010 to 013 approved |
87
-
| M2 Acts | Tools behind a permission gate, one side-effect membrane, local receipts, context compaction| 020 to 024 approved |
116
+
| M2 Acts | Tools behind a permission gate, one side-effect membrane, local receipts, context compaction; the FIPS build leg | 003 and 020 to 024 approved |
88
117
| M3 Remembers | Persona, always-on memory, full-text and semantic recall, project context, export and import | 030 to 034 approved |
89
118
| M4 Learns | A skills system the agent can extend itself, behind approval and a scanner | 040 and 041 approved |
90
119
| M5a Automates | Scheduled tasks and MCP, client and server, with authorization | 050 and 059 to 062 approved |
91
120
| M5b Reaches | Messaging gateways and subagents | 070 to 072 and 080 approved |
92
121
| M6 Ships | Observability and a cost ledger, native desktop shell, signed releases | 090 to 101 approved |
93
122
| M7 Sandboxed | Executable skills in an in-VM sandbox | 110 approved |
0 commit comments