Hand the coder push off with what is landed and what is next

35da41ff8171 · AtlantisPleb · · parent 7b8f93942f8f

Hand the coder push off with what is landed and what is next

Records what shipped today across both repositories, the ordered pickup
list, the owner decisions that block work, and the working rules a new
agent needs: forge pushes, worktrees around a busy checkout, the
artifact-regenerating push gate, and where loose branches were left.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GoYpb8FEmdxVErsv7ABCYi
Co-Authored-By
Claude Fable 5 <noreply@anthropic.com>

Deploy story

What this commit did to the running system — joined from the forge receipt chain, the part a commit page elsewhere cannot show.

pushed
by user · WAL seq 308 · 2026-08-24T20:45:41.681488Z

Changed files

  • added docs/2026-08-24-coder-push-handoff.md

Diff

1 file changed, +126 -0

docs/2026-08-24-coder-push-handoff.md added +126

@@ -0,0 +1,126 @@

1
# Coder push handoff
2
3
Date: 2026-08-24
4
5
Status: handoff. Written when the session that landed the work below paused.
6
The next agent should read this first, then the three planning documents it
7
points at.
8
9
## 1. Read these first
10
11
| Document | What it decides |
12
| --- | --- |
13
| `docs/2026-08-24-registry-network-strategy.md` | Why the plugin registry is the network, why the cloud is centralized, why consent is load-bearing. |
14
| `docs/2026-08-24-coder-first-cloud-complements.md` | The product plan: the coder wedge, the three-lane compute mix, the T3-derived thread-plane protocol, the delivery sequence with issue numbers. |
15
| `docs/2026-08-24-triage-and-plugin-model-assessment.md` | The plugin contract (packet ABI, manifest, capability tiers) and the 2026-08-24 backlog triage. |
16
| `docs/2026-08-24-api-v1-rename-audit.md` | The `/api/v3` → `/api/v1` inventory and sequencing. |
17
| `docs/plugins/...` in the monorepo | `2026-08-24-coder-plugin-demo-shape.md`, the plugin host's own shape notes. |
18
19
Boards: [Coder v1](https://openagents.com/OpenAgentsInc/openagents.com/projects/12)
20
(project 12) and [Plugin registry](https://openagents.com/OpenAgentsInc/openagents.com/projects/13)
21
(project 13). Both carry cross-repository items; `openagents` numbers in this
22
document are the monorepo, unprefixed numbers are `openagents.com`.
23
24
## 2. What landed
25
26
Server (`openagents.com`, through `7b8f939`):
27
28
- Thread plane: web viewer at `/threads` and `/threads/{id}` with the
29
  attach-before-snapshot live protocol (#201); events API returning the
30
  created event with machine codes and atomic batch append (#208); grant
31
  re-mint at `POST /api/v3/threads/{id}/grants`; an optional bounded
32
  `repository` on threads with API filtering (#210); admission and mint
33
  serialized on the owner row (#195).
34
- Providers: reasoning as a first-class `ProviderEvent` member and faithful
35
  tool-call replay through the inference proxy (#164 server half); a typed
36
  model catalog at `GET /api/v3/models` with loud refusal of unserved or
37
  mismatched models and effective-model attribution (#199, closing #160's
38
  defect class) under the new `PROVIDER-002` invariant.
39
- Integrity: thread grant usage on the leaderboard (#204); issuer-key
40
  retirement refused when it would unverify signed history (#191); the
41
  machine pairing vault given its own key under `VAULT-001` (#192); the
42
  runbook `rebuild/1` correction plus a test that fails when any doc names a
43
  function that does not exist (#189).
44
45
CLI (`openagents` monorepo, through `38625181fc` plus later commits from a
46
concurrent session):
47
48
- The coder writes its transcript to `thread_events` as the turn loop runs
49
  (#23) and resumes a thread with `--resume` (#24), replaying both the UI
50
  transcript and the model wire history.
51
- Reasoning is parsed and rendered, and the client tool loop replays faithful
52
  `tool_calls` history (#31, completing #164 in code).
53
- Plugins: a working `/plugin load` path, then the walking skeleton — an
54
  owned Rust PDK, an engine abstraction, enforced read-only mounts, and
55
  `packet-v0` ABI pinning (#26, partially done). ATIF exports carry plugin
56
  lifecycle and per-call provenance (#32).
57
- `openagents trace` discovers, summarizes, and redacts local traces; upload
58
  refuses honestly until the server route exists (#14).
59
60
## 3. Where to pick up
61
62
In order. The first three are the Coder v1 critical path.
63
64
1. **Finish #26** (monorepo): both-sides schema validation, the `tool.ran`
65
   receipt event on plugin runs, `/plugin list` and `/plugin unload`, and
66
   memory-ceiling enforcement (declared-only until a wasmtime engine sits
67
   behind the seam).
68
2. **#206** — the registry on the forge: plugins as repositories with typed
69
   manifests and digest-pinned releases, a typed index, and the capability
70
   gap loop that files issues when a search finds nothing.
71
3. **#217** — `POST /api/v3/traces`, the ingest route `openagents trace
72
   upload` already names in its refusal.
73
4. **#212–#216** — the `/api/v1` rename. #212 (rename plus a transparent
74
   `/api/v3` rewrite plug) wants a solo window: it touches roughly 1,530
75
   lines across the server and should not race other branches. #215 (the gh
76
   posture decision) gates #216.
77
5. **#202, #205, #77** — durable effect outbox, consent tiers, chat-to-issue
78
   capture. Each had an agent in flight at pause; check for an unmerged
79
   branch before restarting one (section 5).
80
6. **#28** (monorepo) — fleet rendering over the task registry. A concurrent
81
   session was actively building `coder-tasks.ts`; coordinate before touching
82
   it.
83
7. **#197** — the load-sensitive flaky tests. Run this alone on a quiet
84
   machine; its whole method is hammering tests that fail under parallel
85
   load, so it poisons other agents' runs.
86
87
Owner decisions blocking work, not agent work: **#209** (thread lifecycle —
88
the CLI revokes on clean exit, so resume serves only crashes and other
89
machines today), **#193** (no encrypted Ecto columns), **#29** (the wallet
90
rail), **#207** (the settlement proof's treasury spend), **#215** (gh
91
posture).
92
93
## 4. How to work here
94
95
- **Push to the forge, never GitHub**: `git push openagents HEAD:main`. Both
96
  repositories.
97
- **Use worktrees.** The monorepo checkout is frequently dirty with another
98
  session's work. Branch from `origin/main` into a worktree, rebase there,
99
  and push from the worktree if the main checkout is busy. Never stash or
100
  reset someone else's work.
101
- **The monorepo's pre-push gate regenerates artifacts.** After adding files,
102
  run `pnpm run generate:assure-repo` and `pnpm run audit:assure-repo` and
103
  commit the results, or the push is refused.
104
- **Server tests**: prefer targeted files. `mix precommit` runs the whole
105
  suite (about 4,170 tests, three minutes) and is worth it before pushing
106
  anything that touches the provider or chat lanes.
107
- **Invariant Discipline**: a change that adds, relaxes, or reinterprets an
108
  invariant updates `INVARIANTS.md` in the same change, with a test.
109
- **Owner actions go in `NEEDS_OWNER.md`** at the workspace root, committed
110
  and pushed — the owner reads it on GitHub, so an uncommitted edit is
111
  invisible.
112
113
## 5. Loose ends at pause
114
115
- Five agents were in flight: #205, #202, #77 (`openagents.com`), #12
116
  (monorepo, operator deployment commands), and the #198 foreign-session
117
  plugin pilot (monorepo). Their branches, if they exist, are
118
  `thread-visibility-tiers`, `effect-outbox`, `capture-issue-from-chat`,
119
  `operator-deploy-commands`, and `foreign-sessions-plugin`, in worktrees
120
  under the session scratchpad. Check `git branch --list` in both
121
  repositories before redoing any of that work.
122
- **#164 and #160 are code-complete on main but stay open** until production
123
  serves the revision; #187 tracks the gap between `main` and the deployed
124
  forge. Verify against the live API before closing either.
125
- The published CLI is 0.3.5 and predates every coder change above. Nothing
126
  in the coder lane reaches a user until it publishes.

This page updates live while a promote is in flight · changelog