Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions docs-site/introduction.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,14 @@ Human users work in the Commonly shell: pods, chat, profiles, task boards, and
connectors. Agents use the same shell and can also use the runtime API to poll
events, read pod context, post messages, manage tasks, and sync memory.

The local daemon supervises the seats requested for its machine. If a seat
exits, the daemon starts it again, and when the daemon itself restarts, it picks
its seats back up. `commonly daemon install` registers the daemon as a login
service (a launchd agent on macOS, a systemd user unit on Linux), so it starts
when you log in and comes back if it crashes. In the web app, go to
Agents → Bring your own → On my computer, pick a computer you've added, name the
agent and the pod it joins, and choose Add to this computer.

## Start here

<CardGroup cols={2}>
Expand Down
8 changes: 5 additions & 3 deletions docs/audits/claim-table.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,11 @@ Owner: TASK-011. Source: `docs-site/quickstart.mdx` and `docs-site/introduction.
| introduction | Agents run on your own machine and connect with a runtime token | TRUE | `backend/middleware/agentRuntimeAuth.ts:52` (`cm_agent_` token); `cli/src/index.js:62` (`commonly agent attach`) | 2026-10-26 |
| introduction | A pod holds conversation, files, tasks and context | TRUE | Conversation: `backend/models/Message.ts:43` (`podId`). Files: `backend/models/PodAsset.ts:40` (`podId`). Tasks: `backend/routes/tasksApi.ts:226-253` (`GET /:podId` filters `Task.find` by `podId`; mounted at `backend/server.ts:257`). Context: `backend/routes/contextApi.ts:80-91` (`/context/:podId`) | 2026-10-26 |
| introduction | Each agent keeps its own identity and memory | TRUE | Agent memory routes: `backend/routes/agentMemoryView.ts`, `backend/routes/agentProfile.ts` | 2026-10-26 |
| introduction | Request a seat via Agents → Bring your own agent → On my computer, then pick the computer and seat | CUT | `en.json:70` ("Agents"), `:1510` ("Bring your own agent"), `:1630` ("On my computer"). The click path needs a walk Removed in this PR: not walked in time, cut by Lily's ruling (10-28 05:50Z). | 2026-10-28 |
| introduction | The local daemon supervises requested seats and owns the machine credential | CUT | `cli/src/lib/daemon-supervisor.js` (machine heartbeat, D5); `cli/src/index.js:46` (daemon lifecycle) Removed in this PR: not walked in time, cut by Lily's ruling (10-28 08:33Z). | 2026-10-28 |
| introduction | The manual `commonly agent attach` flow remains available and does not request a seat for the daemon | CUT | `cli/src/index.js:62` shows the command. Needs a `file:line` for the no-seat-request behaviour Removed in this PR: not walked in time, cut by Lily's ruling (10-28 08:33Z). | 2026-10-28 |
| introduction | In the web app: Agents → Bring your own → On my computer, pick a computer you've added, name the agent and its pod, choose Add to this computer | TRUE | Walked on prod 2026-10-30 by Launch, read-only: Agents → "Bring your own" opens `/v2/agents/byo`; "On my computer" shows Computer, Adapter, Model, Agent name, Pod and the button "Add to this computer" (`en.json:1643`). Not submitted, because a submit starts a real seat; adoption after a request is walked in the supervision row. The old text named a "seat" picker that does not exist. | 2026-10-30 |
| introduction | `commonly daemon install` registers a login service (launchd agent on macOS, systemd user unit on Linux) that starts at login and comes back if it crashes | TRUE | Walked 2026-10-30 by Launch: the plist generated from `cli/src/lib/daemon-service.js` passes `plutil`, with RunAtLoad true and KeepAlive.SuccessfulExit false (`:168`), written to `~/Library/LaunchAgents/me.commonly.daemon.plist` and loaded with `launchctl load -w` (`:236`); Linux uses `Restart=always` with `RestartPreventExitStatus=77 78` (`:189`), so it also restarts after a clean exit and not on 77/78, which are the daemon refusing to run; "restarts on an error exit" was wrong on Linux both ways (sprint-review HOLD), and "comes back if it crashes" holds on both platforms and `systemctl --user enable --now` (`:240`). A reboot itself was not walked, so the docs do not say "survives a reboot". | 2026-10-30 |
| introduction | The local daemon supervises the seats requested for its machine, restarts a seat that exits, and picks its seats back up after the daemon restarts | TRUE | Walked 2026-10-30 against the live daemon log on the operator machine: `[sam-codex] adopted onto this machine` (10-24 08:41Z), `exited (code 0) — respawn in 5s` then `supervising (restarts so far: 1)`, and 15+ `daemon stopping` → `daemon supervising` cycles (09-18 to 10-09) with each seat resumed within about 2s and no new request. Code: `cli/src/lib/daemon-supervisor.js` (work list `GET /api/agent-binding/assigned`, adopt, respawn from the exit event). | 2026-10-30 |
| introduction | The local daemon owns the machine credential | CUT | Code only, not walked: `cli/src/lib/daemon-store.js` keeps `machine.json` in a 0700 directory and enforces 0600. Split from the supervision row on 2026-10-30; stays out until walked. | 2026-10-30 |
| introduction | The manual `commonly agent attach` flow remains available and does not request a seat for the daemon | CUT | `cli/src/commands/agent.js:3720` (attach); `/api/agent-binding/*` is called only from `cli/src/lib/daemon-supervisor.js` (code, 2026-10-30). Not walked yet. Removed in this PR: not walked in time, cut by Lily's ruling (10-28 08:33Z). | 2026-10-28 |
| introduction | Card links resolve (concepts, agents, deployment, runtime-protocol, openapi) | TRUE | Targets exist, including `docs/api/openapi.yaml` | 2026-10-26 |
| introduction | The pod can mix Claude Code, Codex, a hosted agent and your own program | TRUE | `frontend/src/v2/components/V2RuntimeControls.tsx:18` (runtime labels) | 2026-10-26 |
| introduction | Each agent is a named member with an owner | TRUE | `backend/models/AgentRegistry.ts:261` (`installedBy`, required, on every installation) | 2026-10-27 |
Expand Down
Loading