commandmate 0.32.1 → 0.33.0
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.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +166 -166
- package/.next/app-path-routes-manifest.json +36 -36
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +9 -9
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/more/page_client-reference-manifest.js +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +11 -11
- package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +36 -36
- package/.next/server/chunks/6838.js +1 -1
- package/.next/server/chunks/8918.js +4 -4
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{4718-9d63107c612a065d.js → 4718-d97f52cd932dc1ee.js} +1 -1
- package/.next/static/chunks/app/worktrees/[id]/page-18a7d9374bd8c218.js +1 -0
- package/.next/static/css/{96d94a4ba771efc3.css → fb455b4e308adbaa.css} +1 -1
- package/.next/trace +13 -13
- package/dist/server/src/lib/hooks/sources/codex/transcript.js +88 -6
- package/dist/server/src/lib/hooks/sources/turn-body.js +3 -1
- package/package.json +1 -1
- package/.next/static/chunks/app/worktrees/[id]/page-3d82a9355d5612d9.js +0 -1
- /package/.next/static/{Lno4w_zWXdGdlfXg06Vp8 → eVkZd6vpcQwyJIlbymCUg}/_buildManifest.js +0 -0
- /package/.next/static/{Lno4w_zWXdGdlfXg06Vp8 → eVkZd6vpcQwyJIlbymCUg}/_ssgManifest.js +0 -0
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
* @module lib/hooks/sources/codex/transcript
|
|
92
92
|
*/
|
|
93
93
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
94
|
-
exports.CODEX_THINKING_LABEL = exports.MAX_CODEX_TOOL_DETAIL_LENGTH = exports.MAX_CODEX_TURN_ITEMS = exports.CODEX_TURN_HEAD_TRUNCATION_MARKER = exports.CODEX_TURN_TRUNCATION_MARKER = exports.MAX_CODEX_TURN_BODY_LENGTH = exports.CODEX_ROLLOUT_EXTENSION = exports.CODEX_SESSIONS_DIR_SEGMENTS = void 0;
|
|
94
|
+
exports.CODEX_COMMENTARY_PHASE = exports.CODEX_FINAL_ANSWER_PHASE = exports.CODEX_THINKING_LABEL = exports.MAX_CODEX_TOOL_DETAIL_LENGTH = exports.MAX_CODEX_TURN_ITEMS = exports.CODEX_TURN_HEAD_TRUNCATION_MARKER = exports.CODEX_TURN_TRUNCATION_MARKER = exports.MAX_CODEX_TURN_BODY_LENGTH = exports.CODEX_ROLLOUT_EXTENSION = exports.CODEX_SESSIONS_DIR_SEGMENTS = void 0;
|
|
95
95
|
exports.readCodexRolloutItem = readCodexRolloutItem;
|
|
96
96
|
exports.readCodexRolloutRecord = readCodexRolloutRecord;
|
|
97
97
|
exports.parseCodexRollout = parseCodexRollout;
|
|
@@ -130,6 +130,21 @@ exports.MAX_CODEX_TURN_ITEMS = 2048;
|
|
|
130
130
|
exports.MAX_CODEX_TOOL_DETAIL_LENGTH = 200;
|
|
131
131
|
/** The label a reasoning summary is folded behind. Same word claude uses. */
|
|
132
132
|
exports.CODEX_THINKING_LABEL = 'Thinking';
|
|
133
|
+
/**
|
|
134
|
+
* `AgentMessage.phase` for the reply codex means the operator to read.
|
|
135
|
+
*
|
|
136
|
+
* Measured 268 of 2,211 archived `AgentMessage` items
|
|
137
|
+
* (`docs/design/codex-transcript-reader.md` §2.3).
|
|
138
|
+
*/
|
|
139
|
+
exports.CODEX_FINAL_ANSWER_PHASE = 'final_answer';
|
|
140
|
+
/**
|
|
141
|
+
* `AgentMessage.phase` for the progress narration codex writes while it works.
|
|
142
|
+
*
|
|
143
|
+
* Measured 1,943 of 2,211 — the majority of what codex says in a turn is this.
|
|
144
|
+
* The one phase {@link renderCodexTurn} folds; see its docblock for why the
|
|
145
|
+
* classification is an allow-list of exactly this value and nothing else.
|
|
146
|
+
*/
|
|
147
|
+
exports.CODEX_COMMENTARY_PHASE = 'commentary';
|
|
133
148
|
/**
|
|
134
149
|
* Read one `item_completed` item.
|
|
135
150
|
*
|
|
@@ -437,14 +452,79 @@ function renderReasoningItem(text) {
|
|
|
437
452
|
.join('\n');
|
|
438
453
|
return `> **${exports.CODEX_THINKING_LABEL}**\n>\n${quoted}`;
|
|
439
454
|
}
|
|
455
|
+
/**
|
|
456
|
+
* The prose one `AgentMessage` contributes, or `''` when it contributes none.
|
|
457
|
+
*
|
|
458
|
+
* The single definition of "non-empty body" for this reader, shared by
|
|
459
|
+
* {@link hasFinalAnswerProse} and by {@link renderCodexTurn}'s loop on purpose:
|
|
460
|
+
* the fallback asks whether the turn renders an answer, and if the two spelled
|
|
461
|
+
* that test out separately they could disagree about a message that is nothing
|
|
462
|
+
* but whitespace — the exact turn the fallback exists for.
|
|
463
|
+
*/
|
|
464
|
+
function agentMessageText(item) {
|
|
465
|
+
return item.text?.trim() ?? '';
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Whether this turn renders at least one non-empty `final_answer`.
|
|
469
|
+
*
|
|
470
|
+
* The test is on the **rendered body**, not on the presence of an item: item
|
|
471
|
+
* count and drawn paragraphs are different quantities, because a message whose
|
|
472
|
+
* text is empty or whitespace is dropped before it reaches the body. A turn
|
|
473
|
+
* whose only `final_answer` is blank would, on an item-count test, fold its
|
|
474
|
+
* commentary away and leave an empty bubble.
|
|
475
|
+
*/
|
|
476
|
+
function hasFinalAnswerProse(turn) {
|
|
477
|
+
return turn.items.some((item) => item.type === 'AgentMessage' &&
|
|
478
|
+
item.phase === exports.CODEX_FINAL_ANSWER_PHASE &&
|
|
479
|
+
agentMessageText(item).length > 0);
|
|
480
|
+
}
|
|
440
481
|
/**
|
|
441
482
|
* Render one turn to Markdown.
|
|
442
483
|
*
|
|
443
484
|
* Transcript order within each kind — the same decision #2041 and #2121 took,
|
|
444
485
|
* and for the same reason: the order is the only record of what happened when,
|
|
445
|
-
* and this row is the record.
|
|
446
|
-
*
|
|
447
|
-
*
|
|
486
|
+
* and this row is the record.
|
|
487
|
+
*
|
|
488
|
+
* ## Why `commentary` is folded now (Issue #2420)
|
|
489
|
+
*
|
|
490
|
+
* #2197 kept `commentary` in the body on the argument that "the sentence that
|
|
491
|
+
* explains what the tool line underneath it is for" would otherwise be lost.
|
|
492
|
+
* **#2234 retired that argument by moving every tool line to a folded section
|
|
493
|
+
* at the end of the body** — there is no line underneath the commentary any
|
|
494
|
+
* more, so what leads the bubble is narration with nothing left to narrate.
|
|
495
|
+
* Measured on one live session (`codex-turn:01a07e37-0658`): 4 commentary
|
|
496
|
+
* blocks / 754 characters in front of a single 495-character answer, so the
|
|
497
|
+
* operator read four paragraphs of progress notes before reaching the reply.
|
|
498
|
+
*
|
|
499
|
+
* ## The classification is an allow-list
|
|
500
|
+
*
|
|
501
|
+
* Exactly `phase === 'commentary'` folds. `final_answer`, a missing `phase` and
|
|
502
|
+
* any value codex has not shipped yet all stay in the body. The deny-list
|
|
503
|
+
* spelling — "fold everything that is not `final_answer`" — is rejected on
|
|
504
|
+
* #2196's discipline: it hands codex the power to hide the body of a bubble by
|
|
505
|
+
* adding a phase name, and the failure would be silent. Every `final_answer` is
|
|
506
|
+
* kept, not just the last: the measured corpus has turns carrying more than one.
|
|
507
|
+
*
|
|
508
|
+
* ## The fallback
|
|
509
|
+
*
|
|
510
|
+
* A turn with no non-empty `final_answer` keeps its commentary in the body —
|
|
511
|
+
* see {@link hasFinalAnswerProse}. Folding is only ever an improvement when
|
|
512
|
+
* there is something better to lead with.
|
|
513
|
+
*
|
|
514
|
+
* ## Why the `Thinking` chip and not a new label
|
|
515
|
+
*
|
|
516
|
+
* The folded commentary rides `../turn-body`'s existing `reasoning` kind, so it
|
|
517
|
+
* lands under the `Thinking (N)` heading the other readers already write, and
|
|
518
|
+
* `splitChatThinking` in `components/worktree/ChatMessageBubble` draws it in
|
|
519
|
+
* the chip that is already there. A second label (`Progress`) would read more
|
|
520
|
+
* precisely, and it was rejected on cost: these labels are baked into
|
|
521
|
+
* `chat_messages.content` **at read time**, so a new one is a string every
|
|
522
|
+
* future reader of the table has to keep folding forever, for rows nothing can
|
|
523
|
+
* re-label. Against that, the chip already means the right thing — "subordinate
|
|
524
|
+
* narration the reader may want and does not want first" — and the operator who
|
|
525
|
+
* reported #2420 called this content "thinking" in their own words. Same
|
|
526
|
+
* reasoning as {@link CODEX_THINKING_LABEL}, which is `Thinking` for the same
|
|
527
|
+
* reason.
|
|
448
528
|
*
|
|
449
529
|
* The layout — prose first, the calls folded into one labelled section — is
|
|
450
530
|
* `../turn-body`'s and is shared with the other three readers (#2234).
|
|
@@ -454,12 +534,14 @@ function renderCodexTurn(turn) {
|
|
|
454
534
|
const unknown = new Set();
|
|
455
535
|
let textBlocks = 0;
|
|
456
536
|
let toolBlocks = 0;
|
|
537
|
+
const foldsCommentary = hasFinalAnswerProse(turn);
|
|
457
538
|
for (const item of turn.items) {
|
|
458
539
|
if (item.type === 'AgentMessage') {
|
|
459
|
-
const text = item
|
|
540
|
+
const text = agentMessageText(item);
|
|
460
541
|
if (text.length === 0)
|
|
461
542
|
continue;
|
|
462
|
-
|
|
543
|
+
const folds = foldsCommentary && item.phase === exports.CODEX_COMMENTARY_PHASE;
|
|
544
|
+
rendered.push({ kind: folds ? 'reasoning' : 'prose', text });
|
|
463
545
|
textBlocks += 1;
|
|
464
546
|
continue;
|
|
465
547
|
}
|
|
@@ -38,7 +38,9 @@
|
|
|
38
38
|
* The four readers that push `aside` (claude, codex, antigravity, command-code)
|
|
39
39
|
* are untouched by this Issue because none of them has been measured the way
|
|
40
40
|
* opencode has; they can move a block at a time by switching kind, with no
|
|
41
|
-
* change here.
|
|
41
|
+
* change here. Issue #2420 is the first time that happened: `./codex/transcript`
|
|
42
|
+
* now tags its `commentary` messages `reasoning` and nothing in this module
|
|
43
|
+
* moved.
|
|
42
44
|
*
|
|
43
45
|
* ## Why the order claim from #2041 / #2121 is narrowed rather than dropped
|
|
44
46
|
*
|
package/package.json
CHANGED