Repository navigation
docs: bring docs/ up to date with the code and rewrite the guides to the README's standard - #333
Merged
Merged
Conversation
Five reviewers audited every file under docs/ against the code at 89e6c42. Each finding was confirmed in the code, git log or gh before it was applied. A final review of this diff found 11 more problems, which are fixed. - Native agents (#309, #329, #330): ai-services, architecture and the walkthrough now describe: - the five Makepad apps' agents, through OctosPeer and serve_tools with no workspace, and their system_tools; - the Terminal's own_tools; - native peers living with the open window. They no longer say that Rinx is the only native agent or that nothing uses the peer link. - terminal.run exists only while the Terminal runs as its own sandboxed process. Release packages ship no process-app binary, so there the Terminal runs in-process and Task is absent. Task is named as a process app. - Admitted AGENT.md and skill text go with every turn. Mail has eight tools and an incoming-mail trigger. agents.provision and agents.status accept only os.mail. - Smaller fixes: keys on Windows, the window-manager override path, phone glance cards, unsandboxed catalog apps, octos_peer frame names, TurnFrom (Person), the default build's octos-core, the packaged kernel, the octos child's runtime, and local-ci's merge scope, clone lock and rom.yml paths. - ADRs get dated notes: 0002 is partly implemented; 0004 has three plan items open and notes on Task, the Terminal's agent, host tools and #238; 0005 has notes on app-contract 1.1.0; Home 0001 and 0002 get notes. The ADR index statuses are updated, and the Photos and icons plans are marked done. - Chinese parity: mail-agent-events regains its sequence diagram. ai-services, architecture, the walkthrough and the mail-events report regain their missing rows and details. - <app> written outside code is escaped (GitHub stripped it). ai-services-processes.png and ai-services-cross-app-call.png show the shipped peer link and peer/input as solid, and mark the mail.send hop as planned. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The five guides under docs/ now read like the README: concepts first, plain English, no PR numbers or dated history, and every claim checked against the code at HEAD and at the octos, App Hub, Makepad and Rinx pins. Independent graders scored each against the README rubric, and each was revised to 9.5 or higher: - architecture.md (11,356 -> ~6,200 words): the full reference with code paths. It has: - a native-apps table with hosting and shell defaults; - the system agent's host tools and their conditions; - section 5 as the one canonical approval order; - a source map that includes code outside this repository; - a checked list of where the code and the ADRs disagree. - ai-services.md (4,890 -> ~2,900): the moving parts, the trust model, an honest status table by kind of app, the octos.* calls, answers and errors, the model service, the toolbox, and how to run and test locally. - architecture-walkthrough.md (4,321 -> ~3,200): one Calendar question through the code, naming the file and symbol at each step. - mail-agent-events.md and local-ci.md: tightened, with their limits and a reading list. The rewrites fix stale or wrong claims: - Native agents get their folder and files.* whatever agent_workspace says. - Rinx uses only open_context, so no shipped app opens the person's lane from its own UI. - Only the shell's own surfaces stamp TurnTrigger::Person. - App-peer approvals get a sheet each; only the system chat batches. - App secrets use the keychain only on macOS and iOS, and keys are not 0600 on Windows. The README gets the matching corrections, and its "full order" link now points to architecture.md section 5. In ai-services-processes.png the kernel inbox that does not exist is gone. In ai-services-cross-app-call.png, "(Rinx send)" is gone, the legend says "planned", and the box is labelled "host-tool relay". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
#326 merged while the guides were being rewritten. These changes bring its facts into the README and the guides, each checked in the code. - Mail's agent can draft replies and propose sending them (mail.propose_reply, mail.draft, mail.suggest_reply, mail.propose_send). It has no tool that sends. Only the person sends, by approving the exact message on the host's review with a physical touch. Developer mode and standing rules cannot authorize a send, and desktop approval is not built yet. - An opened card is a workspace: full screen on the phone, centred on the desktop. It has Card / Chat tabs for an app with an agent, or Email / Chat over one saved draft for a Mail reply. A phone notification opens its exact card. - Calendar ships on the phone too. - architecture.md has a Mail-sending paragraph in section 5, a new trust boundary, and the worked example marked as ADR 0004's sketch, which ADR 0007 superseded for sending. Its disagreement list notes that ADR 0004 still lets standing rules approve sends. - The walkthrough adds card workspaces to where the person talks. - ai-services has a card-chat row, and a turn started from a card's chat counts as the app's own run. - mail-agent-events covers event turns that propose a reply draft, and draft-bound cards surviving a restart. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Two passes over
docs/. The first is a fact audit (below). The second rewrites the guides to the README's standard: concepts first, plain English, no changelog noise, and every claim checked against the code. ADRs, plans and test reports are dated records, so they keep their history; they only get dated notes.Rebased on #326 (composable Mail cards). The README and the guides now include #326's changes, each checked in the code:
Rewrite to the README standard
architecture.mdai-services.mdarchitecture-walkthrough.mdmail-agent-events.mdlocal-ci.md(English only, by rule)Four writer agents drafted the rewrites from a shared brief and a sheet of facts already verified. Independent graders then scored each against the README rubric: knowledge transfer, human voice, no needless detail, accuracy. They spot-checked 40 to 110 claims per guide against the code at the pins, and the guides were revised until they reached 9.5. Every finding was checked against the code before it was applied. Two were rejected with evidence: "only
enabledis required" (the tool'sinput_schemarequires more) and deleting the unverified marker (AGENTS.md rule 9 requires it).architecture.md:ai-services.md: the moving parts, the trust model, an honest status table by kind of app, theoctos.*calls, answers and errors, themodelservice, the toolbox, and how to run and test locally.mail-agent-events.mdandlocal-ci.md: tightened, with their limits and a reading list.ai-services-processes.pngloses an "inbox" queue the kernel doesn't have (the broker queues);ai-services-cross-app-call.pngloses "(Rinx send)", since Rinx registers noconfirm: appsheet.open_context, for its mini apps.agent_workspacesays.Code issues found along the way (not fixed here; for maintainers)
Corrected after a re-check on
main(d9d3b8be). The first version of this list was wrong on three counts:incoming::collect), and that includes the Mail window's own sync. The queue is saved in the mailbox file.agent_events.rs:709), and it runs only while processing is on.incoming.rs:152-154). It fails before saving anything, so new Inbox mail stops appearing.sandbox/mod.rs). The process Terminal offers its ownrunon the AI bus.terminal.runrequiressandbox::launch_sandboxed(system_chat/grants.rs:205), but the bus never checks it for the pane.module_host::host_executorswaps in a Terminal executor that would answerrun. Nothing can reach it:module_host.rs:573);agent_workspace: "none".host_tools::agent_workspace_in(host_tools/mod.rs:549-550) still gives each of them a private folder and thefiles.*tools."<App>'s files on this device"), because it never sees the declaration (apps.rs:280).Erratum in this PR's docs. In "Where the code and the ADRs disagree" (
docs/architecture.md, item 8, EN and zh), the line sayingterminal.run"is never offered" on Windows is true of the system agent only. See issue 2.Fact audit (first pass)
This brings everything under
docs/up to date with the code, following the README rewrite in #331. Several recent merges left the docs stale:Five independent reviewers audited every file in
docs/against the code at89e6c42f: the guides, the ADRs, the plans and the test reports. Before applying a finding, I confirmed it in the code,git logorgh. A final independent review of this diff caught 11 more problems, including two over-claims of mine, and all of them are fixed:shells: offonly means no shell links it as a module.Factual fixes
ai-services.md,architecture.mdand the walkthrough no longer say that Rinx is the only native app with an agent, that the Terminal has none, or that nothing uses the peer link.OctosPeer+serve_tools,agent_workspace: "none");system_tools;own_tools;terminal.runis registered only while the Terminal runs as its own sandboxed process (system_chat/grants.rs).ai-services.mdsaid it worked "in both module and process hosting". The README said nothing about the condition.octosenseand the kernel, so a packaged desktop runs the Terminal in-process and read-only. This is now said in the README,architecture.mdand ADR 0004.architecture.md(native-apps table) and the walkthrough.AGENT.mdand skills.agent_events::install_guidance).mail.notify.agents.provisionandagents.statusexist and accept onlyos.mail.~/.octosense/wm/apps.splash.PeerRequestandPeerReplydon't exist; the docs now refer tooctos_peerframes.TurnFrom (Person).octos-core.octos-kernelis part of the kernel-launch order.local-ci.md.ci-local-merge.shdoesn't coverrelease-desktop.yml. A second run in the same clone exits with 75. The Linux-host steps are checked when present but not required.rom.yml's real paths are now listed.calendar-01card actually lives.ai-services-processes.pngthe peer link is no longer drawn dashed and "(planned)". Inai-services-cross-app-call.png,peer/inputis no longer "(in progress)", and the Calendar →mail.sendhop is now dashed and labelled "(planned)", since no app has amail.sendtool yet. The Mermaid and ASCII diagrams inarchitecture.mdandai-services.mdnow show the native apps that use the peer link.Parity and rendering
mail-agent-events.zh-CN.mdgets the sequence diagram it was missing. Its paragraphs now match the English.ai-services,architecture, the walkthrough and the mail-events test report regain rows, details and labels that had been shortened or changed.<app>,<App>and<id>outside code are escaped in 25 lines. GitHub stripped them as HTML tags, so "Ask " displayed as "Ask ".Verification
The rewritten guides were graded by independent agents, which spot-checked 40 to 110 claims each against the code at HEAD and at the octos, App Hub, Makepad and Rinx pins. The first grades were 8.6 to 9.2, and every guide was revised to 9.5 or higher (see the table above).
A link check of every Markdown file in the repository finds the same 301 pre-existing problems on
mainand on this branch, all in files this PR doesn't touch. The branch adds no broken link or anchor. Every anchor other files and repositories link to is kept.The link checker uses GitHub's slug rules. It found no broken relative link or anchor in the README, the desktop README or any file under
docs/.No raw tags remain outside code.
python3 -m unittest discover -s rom/tests -p test_no_local_paths.py: OK.git diff --check: clean.The test reports' links and hashes were rechecked. Every recomputable hash matches, and the evidence contains no secrets or personal paths.
An independent reviewer checked this diff before commit (accuracy, Chinese parity, table, Mermaid and ASCII rendering). It found 11 problems; after the fixes its verdict was "ready to commit".
No code changed. Two commands in the walkthrough changed:
--features octos-corewas dropped from it.Neither command was run.
🤖 Generated with Claude Code