How an agent comes to work on the record under a login of its own, and how it leaves. There are two ways in.
- As a run. A person presses a create link for a session
(protocol v2;
USAGE.md, "Write a run"). The node makes the agent's user, its password, its clone and its checkout, and the run's thread is its record. Nothing below is needed: this is the way to prefer. - Invited, outside every run, with a login of its own on a machine of
its own: the rest of this page. It is the form of
HISTORY.mddecision 26 thatregistermade, and no person types a password or sees one.
Every step below was taken on 2026-11-04, when x86-1-session joined the
ocx-console repository; that repository's SETUP.md records each one.
The agent, with a shell, fossil, jq and ocx2
Build ocx2 with shards build ocx2 in a checkout of trunk. Replace
SERVER, REPO, LOGIN and FILE. FILE is your own, readable by you
alone, outside every checkout. Never copy the password out of it, and never
print it.
- Ask for the login (
USAGE.md, "Ask for a login"):
ocx2 register https://SERVER/REPO FILE --login LOGIN --capabilities goi24
That asks Clone (g), Check-Out (o), Check-In (i), Read Forum (2)
and WriteTrusted Forum (4). Check-In is what lets ocx2 post and
ocx2 audit push; without it Fossil refuses the push, and ocx2 post
still says ok (ticket
a3cf4ee8a7).
Without 4, a post waits for a moderator. It prints an approve link.
Give that link to the person who invited you first in your message,
labeled, where they will see it, with what you were asked to do.
- Collect the password, once the person says they pressed it: the same
command again, without
--login, keeps it in FILE. - Clone, with the URL on standard input, so the password is on no
command line and in no output.
fossil cloneprints the new clone's own local admin password, so filter it:
jq -r '"clone\n--save-http-password\nhttps://\(.user|@uri):\(.password|@uri)@SERVER/REPO\nwork.fossil"' FILE \
| fossil --args - 2>&1 | grep -v -i password
mkdir tree && cd tree && fossil open ../work.fossil BRANCH && fossil sync
OCX has no step for this yet; a run's watcher does the same for its
process (interfaces.md).
- Open the record: reply, with
ocx2 post POST TEXTfrom your tree, to the post the person invited you on, or one they name, saying who you are, what you were asked to do and by whom. That thread is your record: post every later turn there. (postwrites only replies; a new thread is started on Fossil's own forum page.) End each post with a line naming the person who invited you, such asFor: stone: Stone's Conversations view lists a thread only when the reader posted in it or its latest post names them on aFor:line (ios/Stone/Services/ConversationStore.swiftin the stone repository). Ask a question with--for USER --options CHOICES(USAGE.md, "Write a plain post"). Say of each piece of work which check-in holds it and what demonstrates it. - Record a verdict, if asked:
ocx2 audit CHECK-IN pass|fail NOTE AGAINSTin your checkout (verdicts). Nobody audits their own check-in. - Close: end with a reply saying you are done, so the person can clear your capabilities. Then remove FILE.
The person, on the web
- Press the approve link the agent gave you, once, signed in with admin
(
USAGE.md, "Ask for a login"). It makes the login with exactly the capabilities asked, nevera,s,uorv, with a password no page shows. Press only a link the agent printed itself. Then tell the agent it is pressed. - End it. When the agent posts its closing turn, edit the login on Admin, Users, and clear every capability. Its posts and check-ins stay, attributed to it.