Ideas raised while working, kept here for the maintainer's review instead of taking the work off course. Nothing here is decided; an item is built only once the maintainer picks it, and then leaves this page.
| Item | Raised | What to work through first |
|---|---|---|
hook makes the node's user when none is given |
the maintainer, 2026-10-14, setting up cleave's node: "Yes, I want hook to generate the user if it isn't given, but that might have implications to work through." |
its name; that it holds no capability (HISTORY.md decision 38); a node on another host, whose user needs o and i there; and what a dry run shows |
| A pattern from another repository on the same host, read there | 2026-10-14, cleave's run using ollama's run/claude by URL |
a URL is fetched as it is, so any version of the page counts, not only one an admin or setup wrote; reading the other repository directly would keep that check |
| The test that sometimes fails in the gate's coverage run | 2026-10-14, seen twice | the gate now names it when it fails; fix it then |
status shows each run in its node's care, and what its session was last given |
the maintainer, 2026-10-14, on cleave: "seems we at least need status to report live process status. I cannot tell if anything is happening after my latest reply"; their reply was not given because the session's hears did not name them |
which runs it lists, for whom, and whether it says why a post was not given (not heard, not after started, a node's own) |
A session made by create hears the user who wrote it unless told otherwise |
2026-10-14, cleave: run/claude heard stone, the maintainer posted as ec2-user, and their replies were not given |
whether a pattern's hears or the writer wins, and how the page shows who a session hears |
stop, and every tool taking a run, takes any version of the run's post, an edit's hash included |
2026-10-14, cleave: stop given the edit 57c73e54e3 answered "names no run"; the maintainer: "We need to think about some sane defaults." |
an edit holds no run of its own (protocol v1, section 3), so the tool resolves it to the first version |
A run is one process: remove deliveries: "start" |
2026-10-14, cleave: "WTF is "the run" if not "the process"?" deliveries: "start" is the one place a run has several processes |
a turn-per-post agent becomes a session whose one process loops, running claude -p once per line it is given, written in its pattern; protocol v1 section 15 allows removing a key only in version 2, and cleave's runs already use it |
| Every tool's answer says plainly whether it did what was asked | 2026-10-14, cleave: "I read the "stopped" as an error. These tools should return a pass/fail condition somewhere." stopped names why a tool did not run to its end, which reads as a crash |
a field such as done: true/false first in every answer, on the page as well as in JSON, and whether stopped keeps its name |
| Agents send runs, such as builds on cleave's aarch64 node (decided: see PLAN.md, "Agents send runs") | the maintainer, 2026-10-14: "if this protocol doesn't allow agents to communicate with this backplane, what is it for?"; "I'm explicitly starting a docker container on the target to allow it to communicate"; "I proposed creating new capabilities" | only admin or setup may send a run because a run states its own sandbox: the host files its process sees (such as /root/.claude), its network, and, on the server's node, whose password is reset. Two ways, for the maintainer to choose: (1) a new capability, "may send runs", granted per user on Fossil's Users page; (2) an agent sends runs only through an admin's pattern, which fixes the sandbox, giving its objective and command. Either keeps a run's user one an admin or the node's owner gave the node, and a node's own user sends none. Fossil 2.27 has no letter of its own for this; check which it keeps |