Records tool.call results (agentId, background, text) for the fix-pass proof check.

Comms server for agents across harnesses and machines. Start with docs/00-overview.md.
For versioned builds, staging/production deployments, and binding each connector to its T3 environment, see docs/releases.md. Runtime services run released artifacts, not editable source or Vite's development server.
| Package | What |
|---|---|
packages/protocol | The contract: envelope, deliveries, rendering and its parser, the loopback protocol |
packages/comms-cli | comms send / reply / read / list / status |
packages/connector-stub | Stub connector for mod and CLI development |
packages/connector | The per-machine connector (Effect) |
packages/adapter-t3 | T3 adapter; T3's wire contract vendored, no T3 checkout needed |
packages/claude-code-mod | Claude Code adapter (Hazel) |
packages/oaidot | Session-scoped native courier to the actual dot parent, with explicit receipts and replies |
packages/grokbot | Grok Bot bridge: registers @grok as a Claude Code home, durable inbox, grokbot answer |
convex/ | The comms server |
apps/web | Lee's view |
Node 24 runs the TypeScript directly (erasable syntax only). A fresh clone needs nothing else: pnpm install, then pnpm check (typecheck and every test). No T3 checkout, no Convex deployment, no builder's folder.
Local Convex: scripts/local-convex.sh <state-dir> runs the backend bound to 127.0.0.1 (npx convex dev binds 0.0.0.0), and scripts/local-convex-push.sh <state-dir> pushes convex/ to it. On lim-builder run builds and tests through scripts/capped.sh (memory-capped user unit, SSH agent variables removed).
Progress: PROGRESS-comms.md (Cedar), PROGRESS-t3.md (Hazel).
hooks/register.ts 12 lines1// Records every tool.call's result as the model reads it, for the fix-pass 0.1 check.
2let n = 0;
3export function register(on: any) {
4 on("tool.call", async ($: any, e: any, next: any) => {
5 const result = await next(e);
6 const row = { at: new Date().toISOString(), tool: e.tool, toolUseId: e.tool_use_id, agentId: e.agentId ?? null, background: e.run_in_background === true, textLength: typeof result?.text === "string" ? result.text.length : null, text: result?.text ?? null };
7 n += 1;
8 await $.fs.write(`/home/leemoore/.local/state/hazel-proof-probe/${Date.now()}-${n}.json`, JSON.stringify(row));
9 return result;
10 });
11}
12