@pennixrv/trellis 0.6.18 → 0.6.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -48,6 +48,8 @@ import type { ParseResult } from "./types.js";
48
48
  export interface CodexCtx {
49
49
  /** id → label tracking outgoing requests, so adapter can recognise their responses. */
50
50
  pending: Map<number, "initialize" | "thread/start" | "turn/start" | "other">;
51
+ /** Promise waiters used by the handshake; normal turn requests do not wait here. */
52
+ responseWaiters: Map<number, CodexResponseWaiter>;
51
53
  /** Codex item id → stream metadata used to classify interleaved deltas. */
52
54
  items: Map<string, CodexItemMeta>;
53
55
  /** Whether the current turn has emitted a final user-visible answer. */
@@ -61,6 +63,11 @@ export interface CodexCtx {
61
63
  /** Monotonic outbound id allocator. */
62
64
  nextId: number;
63
65
  }
66
+ export interface CodexResponseWaiter {
67
+ resolve: (result: unknown) => void;
68
+ reject: (error: Error) => void;
69
+ timer: ReturnType<typeof setTimeout>;
70
+ }
64
71
  export declare function createCodexCtx(): CodexCtx;
65
72
  interface CodexItemMeta {
66
73
  type?: string;
@@ -71,6 +78,13 @@ export declare function encodeCodexRequest(ctx: CodexCtx, method: string, params
71
78
  id: number;
72
79
  line: string;
73
80
  };
81
+ export declare function encodeCodexRequestWithResponse(ctx: CodexCtx, method: string, params: unknown, label?: "initialize" | "thread/start" | "turn/start" | "other", timeoutMs?: number): {
82
+ id: number;
83
+ line: string;
84
+ response: Promise<unknown>;
85
+ };
86
+ export declare function waitForCodexResponse(ctx: CodexCtx, id: number, timeoutMs?: number): Promise<unknown>;
87
+ export declare function cancelCodexResponse(ctx: CodexCtx, id: number, error: Error): void;
74
88
  export declare function encodeCodexUserMessage(ctx: CodexCtx, text: string): {
75
89
  id: number;
76
90
  line: string;
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../../src/commands/channel/adapters/codex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,MAAM,WAAW,QAAQ;IACvB,uFAAuF;IACvF,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,GAAG,YAAY,GAAG,OAAO,CAAC,CAAC;IAC7E,2EAA2E;IAC3E,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAClC,wEAAwE;IACxE,gBAAgB,EAAE,OAAO,CAAC;IAC1B,wEAAwE;IACxE,WAAW,EAAE,OAAO,CAAC;IACrB,8EAA8E;IAC9E,iBAAiB,EAAE,OAAO,CAAC;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,cAAc,IAAI,QAAQ,CASzC;AAED,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAqCD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,WAAW,CAqCvE;AAwcD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,EACf,KAAK,GAAE,YAAY,GAAG,cAAc,GAAG,YAAY,GAAG,OAAiB,GACtE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAK9B;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,MAAM,GACX;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAkB9B;AAED,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,MAAM,GACX;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAM9B;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,EAAE,CAIjE;AAED,gFAAgF;AAChF,MAAM,MAAM,gBAAgB,GACxB,WAAW,GACX,iBAAiB,GACjB,oBAAoB,CAAC;AAEzB,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,gBAAgB,CAI5D,CAAC;AAEH;oDACoD;AACpD,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,MAAM,GAAG,SAAS,GACpB,gBAAgB,GAAG,SAAS,CAQ9B;AAED,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,EACX,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,gBAAgB,GACzB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsBzB"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../../src/commands/channel/adapters/codex.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export function createCodexCtx() {
2
2
  return {
3
3
  pending: new Map(),
4
+ responseWaiters: new Map(),
4
5
  items: new Map(),
5
6
  finalMessageSeen: false,
6
7
  pendingDone: false,
@@ -111,6 +112,17 @@ function handleResponse(msg, ctx) {
111
112
  const id = msg.id;
112
113
  const label = ctx.pending.get(id);
113
114
  ctx.pending.delete(id);
115
+ const waiter = ctx.responseWaiters.get(id);
116
+ if (waiter) {
117
+ ctx.responseWaiters.delete(id);
118
+ clearTimeout(waiter.timer);
119
+ if (msg.error) {
120
+ waiter.reject(new Error(`RPC error for ${label ?? "<unknown>"} (id=${id}): ${msg.error.message ?? ""}`));
121
+ }
122
+ else {
123
+ waiter.resolve(msg.result);
124
+ }
125
+ }
114
126
  const events = [];
115
127
  const side = {
116
128
  resolved: [{ id, result: msg.result, error: msg.error }],
@@ -510,6 +522,31 @@ export function encodeCodexRequest(ctx, method, params, label = "other") {
510
522
  const line = JSON.stringify({ jsonrpc: "2.0", id, method, params }) + "\n";
511
523
  return { id, line };
512
524
  }
525
+ export function encodeCodexRequestWithResponse(ctx, method, params, label = "other", timeoutMs = 30_000) {
526
+ const request = encodeCodexRequest(ctx, method, params, label);
527
+ const response = waitForCodexResponse(ctx, request.id, timeoutMs);
528
+ return { ...request, response };
529
+ }
530
+ export function waitForCodexResponse(ctx, id, timeoutMs = 30_000) {
531
+ return new Promise((resolve, reject) => {
532
+ const timer = setTimeout(() => {
533
+ const label = ctx.pending.get(id) ?? "request";
534
+ ctx.responseWaiters.delete(id);
535
+ ctx.pending.delete(id);
536
+ reject(new Error(`Codex ${label} response timed out after ${timeoutMs}ms`));
537
+ }, timeoutMs);
538
+ ctx.responseWaiters.set(id, { resolve, reject, timer });
539
+ });
540
+ }
541
+ export function cancelCodexResponse(ctx, id, error) {
542
+ const waiter = ctx.responseWaiters.get(id);
543
+ if (!waiter)
544
+ return;
545
+ ctx.responseWaiters.delete(id);
546
+ ctx.pending.delete(id);
547
+ clearTimeout(waiter.timer);
548
+ waiter.reject(error);
549
+ }
513
550
  export function encodeCodexUserMessage(ctx, text) {
514
551
  if (!ctx.threadId) {
515
552
  throw new Error("Codex adapter: thread/start has not completed; cannot send user message yet");
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../../src/commands/channel/adapters/codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../../src/commands/channel/adapters/codex.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/channel/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQtD,OAAO,EAQL,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAM9C,MAAM,MAAM,WAAW,GAAG,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAE5E,qEAAqE;AACrE,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC;AAEjC,MAAM,WAAW,cAAc;IAC7B,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,yFAAyF;IACzF,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa,CAAC,GAAG,GAAG,UAAU;IAC7C,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,2DAA2D;IAC3D,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,EAAE,CAAC;IAC1C,4DAA4D;IAC5D,SAAS,IAAI,GAAG,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,CAAC,IAAI,EAAE;QACf,KAAK,EAAE,WAAW,CAAC;QACnB,GAAG,EAAE,GAAG,CAAC;QACT,IAAI,EAAE,cAAc,CAAC;KACtB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC;IAC3B,0EAA0E;IAC1E,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC;IAC/C;;;OAGG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC;IAClD;;;OAGG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC;CACxD;AAqFD;;;;;GAKG;AACH,QAAA,MAAM,QAAQ;;;CAGJ,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,QAAQ,CAAC;AAE7C,qEAAqE;AACrE,wBAAgB,aAAa,IAAI,QAAQ,EAAE,CAE1C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,QAAQ,CAE3D;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,CAQxE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/channel/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQtD,OAAO,EASL,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAM9C,MAAM,MAAM,WAAW,GAAG,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAE5E,qEAAqE;AACrE,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC;AAEjC,MAAM,WAAW,cAAc;IAC7B,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,yFAAyF;IACzF,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa,CAAC,GAAG,GAAG,UAAU;IAC7C,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,2DAA2D;IAC3D,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,EAAE,CAAC;IAC1C,4DAA4D;IAC5D,SAAS,IAAI,GAAG,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,CAAC,IAAI,EAAE;QACf,KAAK,EAAE,WAAW,CAAC;QACnB,GAAG,EAAE,GAAG,CAAC;QACT,IAAI,EAAE,cAAc,CAAC;KACtB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC;IAC3B,0EAA0E;IAC1E,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC;IAC/C;;;OAGG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC;IAClD;;;OAGG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC;CACxD;AAiGD;;;;;GAKG;AACH,QAAA,MAAM,QAAQ;;;CAGJ,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,QAAQ,CAAC;AAE7C,qEAAqE;AACrE,wBAAgB,aAAa,IAAI,QAAQ,EAAE,CAE1C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,QAAQ,CAE3D;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,CAQxE"}
@@ -16,7 +16,7 @@
16
16
  * `<name>.ts` adapter and registering it here.
17
17
  */
18
18
  import { buildClaudeArgs, encodeClaudeInterruptMessage, encodeClaudeUserMessage, parseClaudeLine, } from "./claude.js";
19
- import { buildCodexArgs, buildCodexThreadStartParams, createCodexCtx, encodeCodexInterruptMessage, encodeCodexRequest, encodeCodexUserMessage, parseCodexLine, } from "./codex.js";
19
+ import { buildCodexArgs, buildCodexThreadStartParams, cancelCodexResponse, createCodexCtx, encodeCodexInterruptMessage, encodeCodexRequestWithResponse, encodeCodexUserMessage, parseCodexLine, } from "./codex.js";
20
20
  /** Claude adapter — stream-json over stdio, no handshake. */
21
21
  const claudeAdapter = {
22
22
  provider: "claude",
@@ -55,22 +55,26 @@ const codexAdapter = {
55
55
  },
56
56
  async handshake({ child, ctx, view }) {
57
57
  // 1. initialize
58
- const init = encodeCodexRequest(ctx, "initialize", {
58
+ const init = encodeCodexRequestWithResponse(ctx, "initialize", {
59
59
  clientInfo: { name: "trellis-channel", version: "0.1" },
60
60
  capabilities: {},
61
61
  }, "initialize");
62
62
  child.stdin.write(init.line);
63
- // 2. wait briefly so initialize lands first
64
- await sleep(150);
65
- const ts = encodeCodexRequest(ctx, "thread/start", buildCodexThreadStartParams(view.cwd, view.systemPrompt, view.sandbox), "thread/start");
66
- child.stdin.write(ts.line);
67
- // 3. wait for thread/start response to populate threadId
68
- const deadline = Date.now() + 30_000;
69
- while (!ctx.threadId && Date.now() < deadline) {
70
- await sleep(50);
63
+ const initResult = await awaitCodexResponse(child, ctx, init.id, init.response, "initialize");
64
+ if (!isObject(initResult)) {
65
+ throw new Error("Codex initialize returned an invalid result");
71
66
  }
67
+ // 2. complete the app-server handshake before starting a thread
68
+ child.stdin.write(JSON.stringify({
69
+ jsonrpc: "2.0",
70
+ method: "initialized",
71
+ params: {},
72
+ }) + "\n");
73
+ const ts = encodeCodexRequestWithResponse(ctx, "thread/start", buildCodexThreadStartParams(view.cwd, view.systemPrompt, view.sandbox), "thread/start");
74
+ child.stdin.write(ts.line);
75
+ await awaitCodexResponse(child, ctx, ts.id, ts.response, "thread/start");
72
76
  if (!ctx.threadId) {
73
- throw new Error("Codex thread/start did not produce a threadId within 30s");
77
+ throw new Error("Codex thread/start returned no threadId");
74
78
  }
75
79
  },
76
80
  isReady(ctx) {
@@ -110,7 +114,39 @@ export function getAdapter(provider) {
110
114
  }
111
115
  return a;
112
116
  }
113
- function sleep(ms) {
114
- return new Promise((r) => setTimeout(r, ms));
117
+ function awaitCodexResponse(child, ctx, id, response, label) {
118
+ return new Promise((resolve, reject) => {
119
+ let settled = false;
120
+ const cleanup = () => {
121
+ child.removeListener("exit", onExit);
122
+ child.removeListener("error", onError);
123
+ };
124
+ const finish = (fn) => {
125
+ if (settled)
126
+ return;
127
+ settled = true;
128
+ cleanup();
129
+ fn();
130
+ };
131
+ const onExit = (code, signal) => {
132
+ const detail = signal ?? (code === null ? "unknown" : `code ${code}`);
133
+ cancelCodexResponse(ctx, id, new Error(`Codex ${label} response interrupted by child exit (${detail})`));
134
+ finish(() => reject(new Error(`Codex ${label} response interrupted by child exit (${detail})`)));
135
+ };
136
+ const onError = (error) => {
137
+ cancelCodexResponse(ctx, id, error);
138
+ finish(() => reject(error));
139
+ };
140
+ if (child.exitCode !== null || child.signalCode !== null) {
141
+ onExit(child.exitCode, child.signalCode);
142
+ return;
143
+ }
144
+ child.once("exit", onExit);
145
+ child.once("error", onError);
146
+ response.then((result) => finish(() => resolve(result)), (error) => finish(() => reject(error instanceof Error ? error : new Error(String(error)))));
147
+ });
148
+ }
149
+ function isObject(value) {
150
+ return typeof value === "object" && value !== null && !Array.isArray(value);
115
151
  }
116
152
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/channel/adapters/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/channel/adapters/index.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,7 @@ trellis channel context list <board> --scope global --thread <thread>
34
34
  |---|---|
35
35
  | "和 codex/claude 讨论一下", "brainstorm with another agent" | `references/workflows.md` |
36
36
  | "派一个 implement/check agent", "让 agent review", "spawn a worker" | `references/workflows.md`, then `references/workers.md` |
37
+ | "独立取证", "subnode", "反证/独立审查", "持久化工作节点报告" | `references/subnode-work.md`, then `references/workers.md` |
37
38
  | "开 issue 区 / topic 群 / changelog / board", "make a forum" | `references/forum.md` |
38
39
  | "看看这个 thread / linked context", "inspect a thread" | `references/forum.md` |
39
40
  | "channel 卡住了 / 没输出 / progress 被截断", "worker stalled" | `references/progress-debugging.md` |
@@ -57,6 +58,7 @@ trellis channel context list <board> --scope global --thread <thread>
57
58
  - `references/workflows.md` — canonical collaboration patterns A–F (peer brainstorm, spawned review, dispatch-and-wait, forum issue capture, interrupt-and-redirect, one-shot run).
58
59
  - `references/forum.md` — forum channels, context, title, rename, changelog forums, thread filtering.
59
60
  - `references/workers.md` — spawn, agent cards, context injection (`--file` / `--jsonl`), interrupts, kill semantics.
61
+ - `references/subnode-work.md` — bounded independent-evidence subnodes, their task artifacts, coordinator verification, and counterwork.
60
62
  - `references/progress-debugging.md` — progress/raw inspection, stalled worker diagnosis, OOM guard, exit codes.
61
63
  - `references/command-reference.md` — current CLI command reference (every subcommand, every flag, output conventions, scope/type model).
62
64
 
@@ -0,0 +1,143 @@
1
+ # Bounded Subnode Work
2
+
3
+ Use a `subnode` only when the user explicitly needs independently reviewable
4
+ evidence for a bounded analysis, design, audit, review, counterargument, or
5
+ verification question. It is not the normal path for an ordinary static review,
6
+ implementation, memory retrieval, or routine tool call.
7
+
8
+ The coordinator owns task facts, protected targets, acceptance, Git, worker
9
+ lifecycle, and the final result. A subnode owns one evidence report and its own
10
+ append-only worklog. This is a behavioral contract; do not add `--sandbox` or
11
+ claim that path restrictions enforce it.
12
+
13
+ ## Artifact Setup
14
+
15
+ Before spawning, the coordinator must use an active task (`planning` or
16
+ `in_progress`), define one stable `work_id` and
17
+ `subnode_id`, then prepare a brief-draft JSON with the question, independence
18
+ reason, scope, protected targets, lens, evidence method, source snapshot,
19
+ dependencies, stop conditions, deadline, `channel_ref`, `retry_of: null`, and
20
+ `counter_of` (null unless this is intentional counterwork). The helper supplies
21
+ the immutable task identity and report path.
22
+
23
+ ```bash
24
+ TASK=.trellis/tasks/09-07-example
25
+ WORK_ID=security-audit
26
+ SUBNODE_ID=dependency-evidence
27
+
28
+ python3 .trellis/scripts/subnode_artifact.py init \
29
+ --task "$TASK" \
30
+ --work-id "$WORK_ID" \
31
+ --subnode-id "$SUBNODE_ID" \
32
+ --draft /tmp/subnode-brief.json
33
+ ```
34
+
35
+ This creates exactly:
36
+
37
+ ```text
38
+ $TASK/subnodes/$WORK_ID/$SUBNODE_ID/
39
+ brief.json # coordinator-owned and immutable after dispatch
40
+ worklog.md # subnode appends material progress and corrections
41
+ report.json # subnode-owned final pending-review result
42
+ ```
43
+
44
+ Do not use a terminal Channel message as the report transport. The short final
45
+ message names the already-written `report.json` and its status; the durable
46
+ JSON file carries the reviewable result.
47
+
48
+ The subnode copies identity, scope, and lens from `brief.json`, then uses the
49
+ SHA-256 digest of the exact `brief.json` bytes. The minimal complete report is:
50
+
51
+ ```json
52
+ {
53
+ "schema_version": 1,
54
+ "task_id": "task-id-from-brief",
55
+ "work_id": "work-id-from-brief",
56
+ "subnode_id": "subnode-id-from-brief",
57
+ "role_id": "subnode",
58
+ "brief_digest": "sha256-of-brief-json-bytes",
59
+ "status": "complete",
60
+ "scope": ["exact scope copied from brief"],
61
+ "lens": "exact lens copied from brief",
62
+ "evidence": [
63
+ {
64
+ "id": "stable-evidence-id",
65
+ "locator": "source path, URL, or command receipt",
66
+ "summary": "What this independently reviewable evidence establishes."
67
+ }
68
+ ],
69
+ "findings": ["Bounded conclusion."],
70
+ "uncertainties": [],
71
+ "corrections": []
72
+ }
73
+ ```
74
+
75
+ For `blocked`, `incomplete`, or `error`, include the same base fields plus a
76
+ non-empty `completed_scope` list and a non-empty `blocker` string. Never use
77
+ `accepted`, `rejected`, or `deferred` as a report status.
78
+
79
+ ## Dispatch And Wait
80
+
81
+ Inspect the installed role first, then use one native Channel lifecycle:
82
+
83
+ ```bash
84
+ trellis channel create subnode-example --by main --cwd "$PWD"
85
+ trellis channel spawn subnode-example --agent subnode --provider codex \
86
+ --as "$SUBNODE_ID" --cwd "$PWD" --timeout 30m
87
+
88
+ printf '%s\n' "Read $TASK/subnodes/$WORK_ID/$SUBNODE_ID/brief.json and perform only that bounded work." \
89
+ | trellis channel send subnode-example --as main --to "$SUBNODE_ID" \
90
+ --stdin --delivery-mode requireRunningWorker
91
+
92
+ trellis channel wait subnode-example --as main --from "$SUBNODE_ID" \
93
+ --kind done,error --timeout 30m
94
+ ```
95
+
96
+ Where the host exposes a live wait continuation, establish one waiter and
97
+ continue that same waiter until terminal state. Do not poll messages, create a
98
+ second waiter, or treat an empty transport slice as completion. The normal CLI
99
+ surface uses the documented single `send` followed by native `wait` pattern.
100
+
101
+ ## Coordinator Review
102
+
103
+ After a terminal message, independently validate and then record a task-level
104
+ disposition. `complete` means only that the subnode claims it completed its
105
+ assigned work; it is not acceptance.
106
+
107
+ ```bash
108
+ REPORT="$TASK/subnodes/$WORK_ID/$SUBNODE_ID/report.json"
109
+ python3 .trellis/scripts/subnode_artifact.py validate --report "$REPORT"
110
+ ```
111
+
112
+ The coordinator must re-check enough source evidence and protected-target state
113
+ to decide `accepted`, `rejected`, or `deferred`, preserving the reason and named
114
+ checks such as `report_validation`, `source_recheck`, and
115
+ `protected_target_check` in task research or a decision record. The validator
116
+ does not make that decision and does not modify `task.json`.
117
+
118
+ Use the separate coordinator work-record helper only for a durable cross-task
119
+ observation, decision, open question, or blocker. It does not substitute for a
120
+ task artifact or subnode worklog.
121
+
122
+ ```bash
123
+ python3 .trellis/scripts/workspace_note.py \
124
+ --kind decision \
125
+ --summary "Accepted independent dependency evidence for the release gate." \
126
+ --source "$REPORT"
127
+ ```
128
+
129
+ ## Counterwork
130
+
131
+ Counterwork is a new, independently scoped subnode, not a retry. It must use a
132
+ different `subnode_id`, lens, and evidence identities, and its brief sets
133
+ `counter_of` to the primary subnode ID. After both reports are complete:
134
+
135
+ ```bash
136
+ python3 .trellis/scripts/subnode_artifact.py validate-counter \
137
+ --primary "$TASK/subnodes/$WORK_ID/primary" \
138
+ --counter "$TASK/subnodes/$WORK_ID/counter"
139
+ ```
140
+
141
+ The coordinator compares the two reports and retains the comparison as part of
142
+ its own disposition. No scheduler, polling loop, automatic retry, worktree,
143
+ global ledger, or provider-specific transport is introduced by this workflow.
@@ -286,13 +286,14 @@ def prompt_has_skip_keyword(prompt: str, keyword: str) -> bool:
286
286
  def _resolve_codex_dispatch_mode(config: dict) -> str:
287
287
  """Normalize `codex.dispatch_mode` from .trellis/config.yaml to "auto" or "inline".
288
288
 
289
- Defaults to `auto`. The legacy `sub-agent` value is an alias for `auto`.
290
- Any other explicit value (including invalid ones) falls back to `inline`
289
+ Defaults to `inline`. `auto` explicitly enables native dispatch; the
290
+ legacy `sub-agent` value is an alias for `auto`. Any other explicit value
291
+ (including invalid ones) falls back to `inline`
291
292
  without per-turn warnings. Shared by `_codex_mode_banner` (the per-turn
292
293
  banner) and `resolve_breadcrumb_key` (the breadcrumb tag key) so the two
293
294
  stay in lockstep.
294
295
  """
295
- mode = "auto"
296
+ mode = "inline"
296
297
  if isinstance(config, dict):
297
298
  codex_cfg = config.get("codex")
298
299
  if isinstance(codex_cfg, dict):
@@ -310,16 +311,16 @@ def _codex_mode_banner(config: dict) -> str:
310
311
  """Emit a `<codex-mode>` banner for the additionalContext payload.
311
312
 
312
313
  Reads `codex.dispatch_mode` from .trellis/config.yaml; defaults to
313
- `auto`, which dispatches Trellis sub-agents using native Codex context
314
+ `inline`, so the main session implements and checks directly. `auto`
315
+ explicitly dispatches Trellis sub-agents using native Codex context
314
316
  injection with a child-side fallback. This does not rely on inherited
315
317
  parent transcripts: `fork_turns` remains caller-controlled, and
316
318
  fresh-history sub-agents still receive their explicit delegated task and
317
- inherited session configuration. `inline` is an explicit opt-out; the
318
- legacy `sub-agent` value is an alias for `auto`. Invalid explicit values
319
- fall back to `inline` without per-turn warnings. The banner makes the
320
- active mode explicit to Codex AI per turn, complementing the workflow-state
321
- body which is per-status. Mode tells AI which dispatch protocol to follow;
322
- workflow-state tells AI what step it's at.
319
+ inherited session configuration. The legacy `sub-agent` value is an alias
320
+ for `auto`. Invalid explicit values fall back to `inline` without per-turn
321
+ warnings. The banner makes the active mode explicit to Codex AI per turn,
322
+ complementing the workflow-state body which is per-status. Mode tells AI
323
+ which dispatch protocol to follow; workflow-state tells AI what step it's at.
323
324
  """
324
325
  mode = _resolve_codex_dispatch_mode(config)
325
326
  if mode == "auto":
@@ -341,12 +342,12 @@ def resolve_breadcrumb_key(
341
342
  ) -> str:
342
343
  """Pick the breadcrumb tag key based on Codex dispatch_mode.
343
344
 
344
- Codex defaults to ``auto`` and therefore uses the ordinary ``<status>``
345
- breadcrumb for native SubagentStart dispatch with child-side fallback;
346
- it does not depend on an inherited parent transcript. ``inline`` selects
347
- the parallel ``<status>-inline`` tag; ``sub-agent`` remains an alias for
348
- ``auto``. Invalid explicit values fall back to inline without per-turn
349
- warnings.
345
+ Codex defaults to ``inline`` and therefore uses the parallel
346
+ ``<status>-inline`` breadcrumb for main-session execution. Explicit
347
+ ``auto`` uses the ordinary ``<status>`` breadcrumb for native
348
+ SubagentStart dispatch with child-side fallback; ``sub-agent`` remains an
349
+ alias for ``auto``. Invalid explicit values fall back to inline without
350
+ per-turn warnings.
350
351
 
351
352
  Non-codex platforms return the plain status unchanged.
352
353
  """
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: subnode
3
+ description: |
4
+ Bounded independent-evidence worker. It preserves its assigned task artifacts,
5
+ never changes protected target files, and leaves acceptance to the coordinator.
6
+ provider: codex
7
+ labels: [trellis, subnode]
8
+ ---
9
+
10
+ # Subnode (channel runtime)
11
+
12
+ You are a bounded Trellis subnode spawned through `trellis channel`. Your job is
13
+ to produce independently reviewable evidence for one assigned question. You are
14
+ not an implementation worker, task owner, reviewer-of-record, or Git operator.
15
+
16
+ ## Required Context
17
+
18
+ Before starting, read the `brief.json` path named in the coordinator message.
19
+ It fixes your task identity, scope, protected targets, evidence method, source
20
+ snapshot, deadline, stop conditions, channel handle, and final `report_path`.
21
+ Read the necessary current project and external sources needed to answer that
22
+ brief. A source snapshot records evidence; it is not a filesystem allowlist.
23
+
24
+ ## Ownership And Write Boundary
25
+
26
+ You may write only within the artifact directory named by the brief:
27
+
28
+ - `worklog.md` — append substantive observations, corrections, blockers, and
29
+ completion notes as they occur.
30
+ - `report.json` — write your one final pending-review report at the exact path
31
+ in `brief.json`.
32
+
33
+ Do not modify `brief.json`. Do not edit any protected target, business source,
34
+ test, task artifact, project rule, coordinator workspace note, or unrelated
35
+ file. Do not run Git commands that change state (`commit`, `push`, `merge`,
36
+ `rebase`, `reset`, `checkout`, `stash`, or branch/worktree operations). Do not
37
+ spawn or control another worker. These are behavioral requirements, not a
38
+ sandbox claim.
39
+
40
+ ## Work Method
41
+
42
+ 1. Confirm the brief identity and artifact paths before doing substantive work.
43
+ 2. Inspect evidence using the stated lens and method. Keep the assigned scope
44
+ narrow; stop when a stop condition is met or the evidence is sufficient.
45
+ 3. Append a concise worklog entry when you make a material discovery, retract a
46
+ conclusion, encounter a blocker, or finish. Preserve corrections rather
47
+ than silently rewriting the historical trail.
48
+ 4. Write `report.json` only when you are ready to stop. Its status is one of
49
+ `complete`, `blocked`, `incomplete`, or `error`; it is always
50
+ **pending coordinator review**, never accepted/rejected/deferred.
51
+ 5. A complete report includes independently checkable evidence. A non-complete
52
+ report explains completed scope and the blocker or error. Include the exact
53
+ identity, scope, lens, and SHA-256 digest of `brief.json` required by the
54
+ artifact helper.
55
+ 6. Send one short terminal Channel message with the status and report path.
56
+ Do not place the report JSON in Channel text.
57
+
58
+ ## Report Boundary
59
+
60
+ The coordinator independently runs the artifact validator and then records the
61
+ task disposition (`accepted`, `rejected`, or `deferred`) with its own source and
62
+ protected-target checks. Do not claim that a report has been accepted, and do
63
+ not infer a disposition from a successful Channel delivery.
@@ -110,14 +110,14 @@ channel:
110
110
  #-------------------------------------------------------------------------------
111
111
  # Codex (dispatch behavior)
112
112
  #-------------------------------------------------------------------------------
113
- # Codex-only knob; other platforms ignore it. Default ("auto") dispatches
114
- # trellis-implement / trellis-check / trellis-research sub-agents. This does
115
- # not rely on inherited parent transcripts: `fork_turns` remains
116
- # caller-controlled, while Codex's native SubagentStart hook injects task
117
- # context when trusted and child-side loading remains the fallback when it is
118
- # unavailable. Set to "inline" only to keep implementation and checks in the
119
- # main session. "sub-agent" remains a backwards-compatible alias for "auto".
120
- # Invalid explicit values safely use inline mode.
113
+ # Codex-only knob; other platforms ignore it. The default is "inline": the
114
+ # main session performs implementation and checks directly. Set "auto" only
115
+ # to opt in to trellis-implement / trellis-check / trellis-research native
116
+ # sub-agents. Their task context does not rely on inherited parent transcripts:
117
+ # `fork_turns` remains caller-controlled, while Codex's native SubagentStart
118
+ # hook injects context when trusted and child-side loading remains the fallback
119
+ # when it is unavailable. "sub-agent" remains a backwards-compatible alias
120
+ # for "auto". Invalid explicit values safely use inline mode.
121
121
  #
122
122
  # In "auto" mode, dispatched sub-agents inherit the main session's model
123
123
  # unless you pin one. To use a cheaper/faster model for implement/check/
@@ -127,7 +127,7 @@ channel:
127
127
  # `trellis update` preserves your edits across regeneration.
128
128
  #
129
129
  # codex:
130
- # dispatch_mode: auto # or "inline"; legacy alias: "sub-agent"
130
+ # dispatch_mode: auto # opt in to native sub-agents; default: "inline"; legacy alias: "sub-agent"
131
131
 
132
132
  #-------------------------------------------------------------------------------
133
133
  # Sub-agent context injection limits