You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maka.apache.org by "me2seeks (via GitHub)" <gi...@apache.org> on 2026/08/21 06:09:54 UTC

[PR] fix(runtime-host,ui,cli): name live tool calls on compact and collapsed rows [maka]

me2seeks opened a new pull request, #3376:
URL: https://github.com/apache/maka/pull/3376

   Closes #3336. Closes #3338.
   
   ## Problem
   
   Collapsed tool rows on Desktop and compact rows on the TUI rendered **name-only** — `● Bash`, `● Task Create` — with no hint of what the call does. Two distinct causes, one shared root:
   
   1. **Shared root (live window):** Runtime Host live `tool_start` frames omit `args` entirely (lean-channel decision from #2308), and durable args arrive only with the turn-end transcript reconcile. So during the one window a user actually watches, neither surface can name the call.
   2. **Desktop-specific:** even after args arrived (and on history replay), the collapsed row/group-header target read only `item.intent`, which `describeToolIntent` produces solely for `ExploreAgent` — every other tool rendered `● Name` forever.
   
   ## What changes
   
   | Layer | Change |
   |---|---|
   | `@maka/core` | `formatToolInvocationLine` gains per-tool lines for `task_create` (first subject + count), `task_update` (subject / `id → status`), `GoalSet` (condition), `AskUserQuestion` (first question + count). New `projectToolArgsPreview(toolName, args)` builds a **bounded, redacted, whitelist-shaped** args subset for the live wire (never file bodies or option payloads; sensitive keys dropped structurally; every string through `redactSecrets`; per-string 240 chars, whole preview 2 KB). |
   | runtime-host wire | Live `tool_start` frames carry optional `intent` (pass-through, 512 B) and `argsPreview` (≤8 KB). The strict decoder accepts and bounds both. **`RUNTIME_HOST_COMPATIBILITY_EPOCH` bumped 29 → 30**: older clients reject unknown keys on this event and would tear the connection down. |
   | Desktop (`@maka/ui`) | Collapsed row + collapsed group header target: `intent ?? firstLine(formatToolInvocationLine(args ?? argsPreview))`, hard-capped at 120 chars. Works live (preview), after settle (full args), and on history replay (persisted args) — history needs no wire change. |
   | TUI (`packages/cli`) | Compact rows consume `argsPreview` while live (turn-end reconcile still replaces it with durable full args). The dim `(no output)` placeholder now appears **only when the row cannot name the call** — `● Bash  $ git add -A` no longer carries the disclaimer. Empty args objects no longer render as `input: {}` noise. |
   
   `formatToolInvocationLine` stays client-side, so each surface formats in its own locale; the host ships data, not text.
   
   ## Verification
   
   - `@maka/core` 585/585 — incl. new invocation-line cases (task/goal/question/ScheduledTask) and `projectToolArgsPreview` (whitelist shape, secret redaction, sensitive-key drop, bounds, count fidelity via `tasksTotal`, WriteStdin `inputPreview` shape).
   - `@maka/runtime-host` 1038/1038 — incl. live `tool_start` projection (intent + bounded preview, never full args), strict-decoder accept/reject cases, client projector pass-through.
   - `@maka/ui` 189/189 — incl. collapsed-target suite: args-derived line, intent precedence, live `argsPreview`, task subject, 120-char cap, redaction.
   - `packages/cli` 339/339 — incl. live quiet-Bash row from the preview, `task_create` subject row, `no output` kept only for un-nameable rows.
   - Desktop main-process suite green, incl. extended `tool-args-redaction-contract` (secrets in command strings never reach the collapsed row or the wire preview).
   - `npm run typecheck` (all workspaces), `biome lint`/`format`, and `knip` (desktop, ui) clean.
   
   ## Notes / follow-ups
   
   - The `(no output)` annotation remains for rows that genuinely cannot name the call; counts (`5 matches`, `3 lines`, exit codes) are untouched.
   - #3338's P1 idea (a one-line result preview between compact and full expand) is **not** in this PR — the expand contract is unchanged.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(runtime-host,ui,cli): name live tool calls on compact and collapsed rows [maka]

Posted by "jackwener (via GitHub)" <gi...@apache.org>.
jackwener commented on code in PR #3376:
URL: https://github.com/apache/maka/pull/3376#discussion_r3840244757


##########
packages/runtime-host/src/protocol/index.ts:
##########
@@ -124,6 +126,9 @@ export const RUNTIME_HOST_COMPATIBILITY_EPOCH = 44 as const;
 // needed its client identity. An older peer still offers both.
 // 30: Access credential pairing adds prepare/finalize operations. Older Hosts
 // cannot complete the staged credential handoff used by managed onboarding.
+// 30: live `tool_start` frames may carry optional `intent` / `argsPreview`

Review Comment:
   [P3] Conflict/rebase leftover in the epoch changelog.
   
   This file dropped main's `// 40: The message queue gains per-entry mutation operations...` block (jump 41→39) and kept a second `// 30:` that restates the live `tool_start` `intent`/`argsPreview` change already documented as this head's current epoch.
   
   Wire behavior is fine — this is changelog only. Restore the missing 40 note and delete the duplicate 30 so the history stays one line per integer. Not blocking.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(runtime-host,ui,cli): name live tool calls on compact and collapsed rows [maka]

Posted by "me2seeks (via GitHub)" <gi...@apache.org>.
me2seeks commented on PR #3376:
URL: https://github.com/apache/maka/pull/3376#issuecomment-5384511871

   Rebased onto current `main` (`2e5fe9c55`). Three conflict resolutions:
   
   1. **Compatibility epoch** (`protocol/index.ts`): main had advanced to 39; this PR's wire change (optional `intent`/`argsPreview` on live `tool_start` frames) is now epoch **40** with both comment lists preserved.
   2. `ui/tool-activity.tsx`: merged main's `inferredTarget` parameter (accumulated Computer-Use target) with this PR's args-derived naming — precedence is runtime `intent` → caller-inferred target → first invocation line. `collapsedToolTarget` gains an optional preferred value; group-header callers are unchanged.
   
   Verified on the new head: full root build, runtime-host 1092/1092 (incl. handshake-compatibility), CLI 385/385, biome clean. UI suite is 218/219 — the one failure (`composer-plus-menu › a loading catalog holds the row still and marks the held state`) reproduces identically on a clean checkout of current `main`, so it is pre-existing and unrelated to this branch.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(runtime-host,ui,cli): name ordinary tool calls during the live window [maka]

Posted by "me2seeks (via GitHub)" <gi...@apache.org>.
me2seeks merged PR #3376:
URL: https://github.com/apache/maka/pull/3376


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(runtime-host,ui,cli): name live tool calls on compact and collapsed rows [maka]

Posted by "Astro-Han (via GitHub)" <gi...@apache.org>.
Astro-Han commented on PR #3376:
URL: https://github.com/apache/maka/pull/3376#issuecomment-5439631598

   This is a synthesis of the independent blind review by @Ox-Qronos at exact head `9e2f378b110909b17b9bb2ee0d27dd77747416a6` (base `38f0a275c`, delta from `ac77480d`). I verified the drift and the exact-head CI myself; the file:line findings below are from Ox's sealed delta review.
   
   What I checked myself:
   - Read the bounded diff `ac77480d → 9e2f378b` and confirmed the two new PR-owned commits: `747f7c3e6` (display + epoch ledger fix) and `09734579d` (list-subject redaction).
   - Checked exact-head CI: `test` run 32992286767 SUCCESS, `windows_recovery` run 32992287189 SUCCESS.
   - Checked merge state: `mergeStateStatus=CONFLICTING` — `main` has advanced `38f0a275c → 4cc781f31` since the last merge.
   
   Findings from Ox's review:
   
   **Code — GO — prior 3 findings are all closed and the two new commits are sound.**
   
   - **Closed P2 — TUI dropping Explore `intent`:** now closed. Durable detail fills `entry.intent` at `pi-transcript.ts:456`, events and calls propagate it (`:660/:961`), render cache key includes `intent` (`:1417`), and `live-turn-projection` also preserves it (`:357`).
   - **Closed P2 — Desktop WriteStdin preview swallowed by empty object:** now closed. `live-turn-projection.ts:362-366` keeps wire `argsPreview`, `builtin-preview.ts:47` uses `args ?? argsPreview`, and `projectToolArgsPreview` first passes the canonical activity projection so WriteStdin's `inputPreview` shape is caught by the whitelist.
   - **Closed P3 — Epoch ledger duplication/inaccuracy:** now closed. `protocol/index.ts` is now a single ledger (duplicate `30` removed, missing `40` added, head now `epoch 54` with an accurate description of `intent/argsPreview`).
   - **New commit 747f7c3e6 (display + ledger):** as above, correctly landed.
   - **New commit 09734579d (list redaction):** `previewListSubjects` for tasks/questions — sensitive keys are rejected column-wise, subject text is sanitized via `safeKeyLabel` (masks sensitive payload then `redactSecrets`), entries that become empty after sanitization are dropped (prevents empty-label injection). 15 new tests (`'password=short-secret'→'<redacted>'` etc.) pass. Fail-closed. Local `core` 15/15 green; red/green against merge-base shows the new tests fail without the patch and pass with it.
   
   **Gate — NO-GO — `CONFLICTING` after `main` advanced.** The PR now conflicts with `main` on one file: `packages/runtime-host/src/protocol/index.ts` — epoch constant (PR is `54`, `main` at `4cc781f31` is `55`), so a mechanical rebase (bump the PR's epoch to `55`) resolves it. `merge-tree` shows no other conflicts. Hosted checks remain green, but the PR cannot be merged until rebased to `4cc781f31`.
   
   Verification: `git diff --check` PASS; changed-file checks PASS; head unchanged; OPEN/MERGEABLE → `CONFLICTING`. No Docker cells.
   
   What I did not re-do: a full first-pass derivation — this was a delta rebind plus two new-commit reads; `ui` layer `tool-activity-presentation` local render tests fail locally due to a dual-React-instance environment issue (`invalid hook call`) that is not PR-attributable and is covered by the green hosted `test`.
   
   ---
   
   > **Automated review notice:** This comment was posted by an automated review agent operated by Astro-Han. It is not an independent human review and does not replace one.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(runtime-host,ui,cli): name live tool calls on compact and collapsed rows [maka]

Posted by "Astro-Han (via GitHub)" <gi...@apache.org>.
Astro-Han commented on code in PR #3376:
URL: https://github.com/apache/maka/pull/3376#discussion_r3840837965


##########
packages/cli/src/pi-transcript.ts:
##########
@@ -569,14 +569,16 @@ export function applyMakaSessionEventToTranscript(
       const suppressed =
         (event.toolName === 'Read' || event.toolName === 'StopBackgroundTask') &&
         !!ref &&
-        !!findShellRunParent(state, ref, event.toolUseId);
-      state.entries.push({
+        !!findShellRunParent(state, ref, event.toolUseId);      state.entries.push({

Review Comment:
   [P3] Biome format fails here — `state.entries.push({` is joined onto the end of the boolean expression.
   
   ```ts
     !!findShellRunParent(state, ref, event.toolUseId);      state.entries.push({
   ```
   
   Splitting the statement onto its own line clears it. This is the whole of the exact-head `test` failure on this PR, so it is worth a one-line fix rather than a re-run.
   
   <details>
   <summary>中文</summary>
   
   这里 Biome 格式检查失败:`state.entries.push({` 被接在布尔表达式末尾的同一行。把这条语句换到下一行即可。本 PR exact head 上 `test` 的失败就只是这一处,改一行比重跑有用。
   </details>
   



##########
packages/core/src/tool-quiet-preview.ts:
##########
@@ -288,6 +339,176 @@ export function formatToolInvocationLine(
   return lines.length > 0 ? lines : undefined;
 }
 
+// ── Public API: args preview (live wire) ────────────────────────────────
+
+/**
+ * Per-value cap for the wire preview. Long commands/paths still identify the
+ * call; the full value arrives with the durable transcript at turn end.
+ */
+const ARGS_PREVIEW_STRING_MAX_CHARS = 240;
+/** Whole-preview cap; lowest-priority fields drop until the preview fits. */
+const ARGS_PREVIEW_MAX_CHARS = 2048;
+/** List fields (tasks / questions) keep only their leading entries. */
+const ARGS_PREVIEW_LIST_MAX_ITEMS = 4;
+
+/**
+ * Whitelist of scalar args keys {@link formatToolInvocationLine} can read, in
+ * display-priority order. Anything not listed here (file contents, option
+ * payloads, provider blobs) never enters the live wire preview.
+ */
+const ARGS_PREVIEW_SCALAR_KEYS = [
+  'command',
+  'cmd',
+  'script',
+  'path',
+  'file',
+  'pattern',
+  'glob',
+  'cwd',
+  'query',
+  'url',
+  'name',
+  'title',
+  'subject',
+  'condition',
+  'status',
+  'id',
+  'ref',
+  'input',
+] as const;
+
+const ARGS_PREVIEW_NUMBER_KEYS = ['offset', 'limit'] as const;
+
+function boundPreviewString(value: string): string {
+  const redacted = redactSecrets(value);
+  const chars = Array.from(redacted);
+  return chars.length <= ARGS_PREVIEW_STRING_MAX_CHARS
+    ? redacted
+    : `${chars.slice(0, ARGS_PREVIEW_STRING_MAX_CHARS - 1).join('')}…`;
+}
+
+function previewStringField(record: Record<string, unknown>, key: string): string | undefined {
+  const raw = record[key];
+  return typeof raw === 'string' && raw.trim().length > 0 ? boundPreviewString(raw) : undefined;
+}
+
+function previewListSubjects(
+  record: Record<string, unknown>,
+  listKey: 'tasks' | 'questions',
+  itemKey: 'subject' | 'question',
+): { items: Record<string, unknown>[]; total: number } | undefined {
+  const list = record[listKey];
+  if (!Array.isArray(list) || list.length === 0) return undefined;
+  const items: Record<string, unknown>[] = [];
+  for (const entry of list.slice(0, ARGS_PREVIEW_LIST_MAX_ITEMS)) {
+    const text = previewStringField(asRecord(entry) ?? {}, itemKey);

Review Comment:
   [P2] Free-text list subjects reach the wire with less protection than the sibling path in this same file.
   
   `previewListSubjects` bounds the string and nothing else — no `isSensitiveKey` skip, no `maskSensitiveKeyPayload`, not even `redactSecrets`. In `projectToolArgsPreview` the scalar keys are filtered by `isSensitiveKey`, but the `tasks`/`questions` items bypass that entirely, so `projectToolArgsPreview('task_create', { tasks: [{ subject: 'password=short-secret' }] })` renders verbatim.
   
   What makes this more than theoretical is that this file already knows `redactSecrets` is not enough. `safeKeyLabel` says so outright:
   
   > Keys may themselves embed secrets (`password=x`, `password: x`). Mask the assignment payload for = / : / whitespace separators — **never rely on `redactSecrets` alone for short passwords**.
   
   and `maskSensitiveKeyPayload` exists for exactly that shape. The quiet-preview path for the same field does at least run `redactSecrets` (`:278`, `:284`); the new structured preview runs nothing. Dropping to *below* the weaker sibling, in a path that now feeds the live wire via `session-continuity-coordinator.ts:2012-2018`, is the regression.
   
   Top-level `password`/`api_key` dropping does not help — these are nested strings, not keys.
   
   Suggest running list-item text through the same embedded-key masking the task ledger uses, or not forwarding free text in the preview at all.
   
   <details>
   <summary>中文</summary>
   
   `previewListSubjects` 只做了长度截断,既没有 `isSensitiveKey` 过滤,也没有 `maskSensitiveKeyPayload`,甚至没有 `redactSecrets`。`projectToolArgsPreview` 里标量键会经 `isSensitiveKey` 过滤,但 `tasks`/`questions` 的条目完全绕过,所以 `projectToolArgsPreview('task_create', { tasks: [{ subject: 'password=short-secret' }] })` 会原样渲染。
   
   值得注意的是,本文件自己就明确写过 `redactSecrets` 不够用——`safeKeyLabel` 的注释说"键本身可能内嵌机密(`password=x`、`password: x`),要对赋值载荷做遮蔽,**绝不能只依赖 `redactSecrets` 来处理短密码**",`maskSensitiveKeyPayload` 就是为这个形状准备的。同一字段的 quiet-preview 路径至少还跑了 `redactSecrets`(`:278`、`:284`),而新的结构化 preview 什么都没跑。在一条如今经 `session-continuity-coordinator.ts:2012-2018` 进入实时线路的路径上,保护强度低于同文件里较弱的那条兄弟路径,这才是问题所在。
   
   顶层丢弃 `password`/`api_key` 键帮不上忙——这里是嵌套的字符串,不是键。建议让列表条目文本走与 task ledger 相同的内嵌键遮蔽,或者干脆不在 preview 里转发自由文本。
   </details>
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(runtime-host,ui,cli): name live tool calls on compact and collapsed rows [maka]

Posted by "me2seeks (via GitHub)" <gi...@apache.org>.
me2seeks commented on PR #3376:
URL: https://github.com/apache/maka/pull/3376#issuecomment-5388851985

   Rebased as a single clean change onto `main` (`c79e9eb4`): epoch is now **45** with the rewritten history entry, and `decodeSessionToolEvent`'s allowed-key list is the three-way union (`intent`, `argsPreview`, plus main's `shellRunRef`). One deliberate reconciliation: correlated hidden-shell polls keep publishing **only** their correlation ref (main's #3569 minimal-frame contract), so `argsPreview` synthesis skips exactly those frames — every other live tool start still names itself for compact rows. Epoch guard passes against the new base; runtime-host 1127 green.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(runtime-host,ui,cli): name live tool calls on compact and collapsed rows [maka]

Posted by "me2seeks (via GitHub)" <gi...@apache.org>.
me2seeks commented on PR #3376:
URL: https://github.com/apache/maka/pull/3376#issuecomment-5450166959

   Rebased onto current main and force-pushed head `76fc5a10f`. The semantic range is unchanged; the protocol ledger now preserves main epochs 57–59 and assigns this strict `tool_start` wire expansion epoch 60. Clean workspace build passed, focused affected tests are 268/268, and Biome/diff checks are clean. The PR description now reflects the current epoch and validation.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(runtime-host,ui,cli): name live tool calls on compact and collapsed rows [maka]

Posted by "Astro-Han (via GitHub)" <gi...@apache.org>.
Astro-Han commented on PR #3376:
URL: https://github.com/apache/maka/pull/3376#issuecomment-5384307129

   Independent review of `61391a6eb498539dc20a69e8bbf638c1ebfbf009`. **Three [P2]s, all reproduced against this head.** Posting them here rather than inline: each defect's decisive line sits in unchanged context, so GitHub cannot anchor a review comment to it.
   
   ### [P2] A Bash row that was redacted while live shows the original value again once the turn settles
   
   `packages/cli/src/pi-transcript-tools.ts:727-743` — the `Bash` case returns early:
   
   ```ts
   return `$ ${firstRealLine ?? command.split('\n')[0]!.trim()}`;   // before the shared formatter
   ```
   
   Two things combine. `projectToolArgsPreview` redacts only the **live** copy — and then `pi-transcript.ts:385-388` does `entry.input = structuredClone(durable.input)`, replacing it with the **full, unredacted** durable args. Meanwhile this `Bash` branch returns before reaching the shared `formatToolInvocationLine`, so the shared redactor never sees the text.
   
   Reproduced with a placeholder secret: the live row renders `Authorization: Bearer <redacted>`; after `reconcileToolsWithStoredMessages` runs over that same row, it renders the placeholder's original value.
   
   **Why this is worse than "not redacted at all": the row was already redacted in front of the user, and then un-redacted itself.** Someone who watched it go by has no reason to look again, and anyone reading the scrollback later sees the raw value with nothing indicating it was ever meant to be hidden. A redactor that reverses itself breaks a promise it already made.
   
   Existing tests cover the live preview only — nothing exercises the live → durable reconcile, which is why the round trip passes.
   
   Minimal fix: keep the "first non-comment command line" presentation (it is genuinely the useful part), but route the final text through the shared redactor instead of returning early, plus a regression asserting a placeholder secret does not reappear across reconcile.
   
   ### [P2] A synthesized empty `args = {}` hides the live `WriteStdin` preview
   
   `packages/ui/src/live-turn-projection.ts:329-341` with `packages/core/src/tool-activity-args.ts:163-179`. `projectToolActivityArgs('WriteStdin', undefined)` is the only path returning `{}`. Given a Host `WriteStdin tool_start` with no full `args` but a populated `argsPreview` (`inputPreview={text:"ls -la\n",bytes:7,truncated:false}`, `size={cols:80,rows:24}`), the projected item carries **both** a complete `argsPreview` and `args = {}`.
   
   The wrapper picks with `args ?? argsPreview`. **`{}` is non-nullish, so it wins**, and the row collapses to `Background terminal interaction` — the typed input and the `80x24` geometry both vanish, in precisely the case this PR exists to improve.
   
   **Why the tests miss it:** the UI tests construct items with `args: undefined` directly and the core tests format the preview directly — **neither goes through the real `applyLiveTurnEvent`**, which is the only place that empty object is manufactured. Both sides test around it.
   
   Fix: do not synthesize `args` when the event has no full args, and add a `WriteStdin` regression that runs *through* live projection.
   
   ### [P2][design] The new live-preview allowlist omits current built-in structured tools
   
   `packages/core/src/tool-quiet-preview.ts:318-361,429-490`. `projectToolArgsPreview('deep_research_start', {objective:'…', scope_level:'standard'})` returns `undefined`, so the live row shows the bare tool name — while the durable formatter, given the same args, prints `objective: …` and `scope_level: standard`. `deep_research_record_step` keeps only `status` and drops the objective.
   
   The durable generic formatter reads arbitrary structured fields; the new preview authority permits **18 scalar keys**, and neither `objective` nor `scope_level` is among them. The tests enumerate the headline-shaped tools that were picked, without cross-checking the live preview against the current built-in schema.
   
   **This is not a hypothetical MCP tool** — `deep_research_start` is a reachable built-in today (`packages/runtime/src/deep-research-tools.ts:124-148`). Fix by admitting a bounded/redacted `objective` (and stating the policy for the other current structured tools), with a built-in-coverage test.
   
   ### Where the entropy actually is
   
   **The file count is not the problem** — 12 production and 7 test files, 352 production additions against 437 test. Propagation across core, wire, and two clients is a real contract boundary.
   
   The problem is that **"the invocation name" now has two authorities in each of two places**: one shared core formatter plus **8 tool-specific branches in the CLI** (Bash / Read / WriteStdin / Write / Edit / Grep / Glob / maka_computer), and separately the `ARGS_PREVIEW_*` allowlist versus the durable generic formatter's wider field access. **Findings 1 and 3 are not two unrelated bugs — they are the observable drift of those two pairs.**
   
   Convergence worth aiming for: the shared redacted invocation formatter is the single semantic authority, surface-specific code decorates only, and preview coverage has a checkable contract against the current tool catalog rather than a hand-maintained parallel field table.
   
   ### Candidates raised and withdrawn
   
   - `ExploreAgent` / legacy `agent_swarm` objective — the current call name is `ExploreAgent` and `describeToolIntent` already supplies a bounded, redacted intent. **Withdrawn.**
   - Arbitrary MCP `{owner,repo}` unnamed while live — behavior confirmed, but withdrawn as a separate finding since `deep_research_start` already demonstrates the same design gap via an in-repo path.
   - `Read` / `StopBackgroundTask` live polls still reading `event.args` — pre-existing folding, not a regression within this PR's naming charter. **Withdrawn.**
   - Removing `(no output)` once a target exists — an explicit product choice; the status dot and expanded card still carry the outcome. **Withdrawn.**
   - The decoder validating only byte bounds, not exact preview shape — the Host is the production authority; no trust-boundary bypass established. **Withdrawn.**
   
   ### Gate state
   
   - `CONFLICTING / DIRTY`. Against `origin/main=2e5fe9c5`, `merge-tree` gives 2 content conflicts: `packages/runtime-host/src/protocol/index.ts` and `packages/ui/src/tool-activity.tsx`.
   - **`check-runs` on this head: 0. `gh run list --commit`: 0. `statusCheckRollup`: empty.** There is an older maintainer comment stating CI was green at the time — **that is a historical description, not a binding gate on this head**, and I am not treating it as one.
   - All three review endpoints read separately: 1 issue comment (a rebase request, no findings), 0 reviews, 0 inline comments. Nothing to deduplicate against.
   - Local on this exact head: clean tree, `npm ci` fine, Desktop dependency build fine, CLI + eval build fine, 8 focused test files **202/202** green. Three targeted probes reproduce all three findings above stably.
   
   *Blind line — provisional judgment sealed before the endpoints were read. Reviewed 2026-08-23 13:35 UTC. No overall verdict offered.*


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(runtime-host,ui,cli): name live tool calls on compact and collapsed rows [maka]

Posted by "Astro-Han (via GitHub)" <gi...@apache.org>.
Astro-Han commented on PR #3376:
URL: https://github.com/apache/maka/pull/3376#issuecomment-5382084202

   Heads up — this is currently conflicting with `main`, so I can't review or merge it as-is. **Your CI is fully green**, so it really is just the base that's behind.
   
   One thing worth knowing: [#3397](https://github.com/apache/maka/pull/3397) landed on 2026-08-22 and added ASF license headers across ~2685 files, so the rebase will touch more than you'd expect, and any file you add now needs a header (`npm run write:asf-headers`).
   
   Ping me once it's rebased and I'll pick it up.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(runtime-host,ui,cli): name live tool calls on compact and collapsed rows [maka]

Posted by "me2seeks (via GitHub)" <gi...@apache.org>.
me2seeks commented on PR #3376:
URL: https://github.com/apache/maka/pull/3376#issuecomment-5453589101

   The prior Linux run failed in the newly merged #4062 MCP test, not in this PR’s tool-preview paths. Its count-based `setImmediate` polling could exhaust under parallel CI before async file-lock work entered credential retirement. Head `b1e1020a5` replaces that poll with a deterministic test-fixture signal; product code is unchanged. CLI build, Biome/diff checks, and 10/10 focused repetitions pass locally.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(runtime-host,ui,cli): name live tool calls on compact and collapsed rows [maka]

Posted by "me2seeks (via GitHub)" <gi...@apache.org>.
me2seeks commented on PR #3376:
URL: https://github.com/apache/maka/pull/3376#issuecomment-5453439347

   Rebased onto current main and force-pushed `3dd446510`. The only conflict was the compatibility ledger: main now owns epoch 60 for WorkHub delegation, so this strict live `tool_start` preview wire change now owns epoch 61. Clean full-workspace build passed.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(runtime-host,ui,cli): name live tool calls on compact and collapsed rows [maka]

Posted by "Astro-Han (via GitHub)" <gi...@apache.org>.
Astro-Han commented on code in PR #3376:
URL: https://github.com/apache/maka/pull/3376#discussion_r3839493089


##########
packages/runtime-host/src/protocol/index.ts:
##########
@@ -91,14 +91,15 @@ export const RUNTIME_HOST_REGISTRATION_SCHEMA_VERSION = 1 as const;
 export const RUNTIME_HOST_PROTOCOL_VERSION = 0 as const;
 // Increment when the same protocol version no longer guarantees safe Client-Host
 // interoperability. Mismatches are rejected before domain commands are admitted.
-export const RUNTIME_HOST_COMPATIBILITY_EPOCH = 42 as const;
+export const RUNTIME_HOST_COMPATIBILITY_EPOCH = 43 as const;

Review Comment:
   **[P3] The epoch this branch claims (43) is now taken on `main` - the rebase must move to 45, and one array needs a three-way union.**
   
   `main`'s epoch 43 is `shellRunRef` on Session tool-start events (from #3569), and 44 is the Session last-used removal (#3619) - so after rebasing onto current `main`, this change needs epoch **45**, with the comment rewritten to the new number (the current `// 43: live tool_start frames may carry optional intent / argsPreview` text would collide with `main`'s actual 43).
   
   The sharper edge: #3569 also edits the *same* `tool_start` allowed-keys array in `decodeSessionToolEvent` (`shellRunRef` added on `main`; `intent` + `argsPreview` added here). The rebase conflict in that array must resolve to the union of all three keys - taking either side alone would either break live shell-poll correlation or have the strict decoder tear down connections on the new keys. The epoch guard will catch a wrong epoch mechanically (it rejects both same-number and backward values), and #3569's protocol tests would catch a dropped `shellRunRef`, but the union is the one resolution to get right by hand.
   
   Everything else about the epoch handling here is correct (the `27d506e07` conflict-marker resolution kept both comments and the bump), so this is purely a stale-base note, not a code defect.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org