Repository navigation
acpmux: omit tools from session summary rows - #27211
Conversation
|
Bead |
|
Found 16 test failures on Blacksmith runners: Failures
...and 6 more test failures. View all on Blacksmith: run 40837459541, run 40837459155, run 40837459381
|
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Unclear: CI failed on
Failures:
Matched log linesNot re-run automatically: Written by red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on ba6bbf4 to compare; do not merge until green; see lane-rules Gallery before/after for
States
Pick other states with a |
4200272 to
563b8e4
Compare
7fa7373 to
563b8e4
Compare
7fa7373 to
4857dad
Compare
|
Review (the owner lane's independent review, at its land request): SHIP at 612eac1 Recorded by lane-gh-broker from this PR's owner lane, which asked to land this exact head after its independent review. next-autoland lands it once every red is the base's; a BLOCK at this head, a HOLD line or a hold label still stops it. |
teamleaderleo
left a comment
There was a problem hiding this comment.
Review (gpt-6-astra, high; independent Codex reviewer): SHIP at 612eac1
- Rereview of the delta from 4857dad, building on the earlier whole-PR review. The stale peer-inventory finding is fixed: peers opt into full initial inventories and full updates. No new correctness blockers.
- Focused green: clippy plus tool_inventory and ls_selection (run 40837507332).
- Red comparison at this head:
- cmux-next swift test and generated files (shared build): the package build fails at BrowserEntryRetirementTests.swift:43:57 ("returning main actor-isolated '$0.some.chrome.some' as a 'sending' result"). That is the base compile red from #27166, which also fails on base. This PR changes no Swift.
- acpmux protocol codegen: the protocol spec it does change feeds only the webviews TypeScript codegen.
acpmux-protocol:checkran in the passing Web validation (run 40839046828). - web react-apps-check: all four head shards pass. Only react-apps-base-check (1) fails, on base's own tests (running-strip, motion-scale, clickable-cursor, agent-pane-pending-steer). accent-glass-invariants passes.
- SDK inventory, protocol contract, api-compat, No-SwiftUI, release-notary: known base reds. In run 40838642460, test_digest passes on both base and head.
|
Shipped in:
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Default
_acpmux/sessionsand_acpmux/watchreplies omit onlytoolsandtoolsMutable. Closed sessions remain in both._acpmux/info, session attachments, and attached updates retain the complete inventory. ExplicitwithTools: truepreserves inventories for consumers that need a full list;acpmux ls --with-tools --jsonexposes it in the CLI. Peer daemons opt in so remote per-session wait results keep current inventories, including sessions created after subscription. ACPsession/listremains full.Leo (2026-10-28): "I do a hell of a lot of routing to remote machines, right? ... Are we covering the edge cases for when, you know, something isn't going right, if there's recovery, whatever, stuff like that."
Leo (HQ #4870): "how much RAM, how many CPU cores are we taking with all these things? Are there ways to make things more efficient?"
Based on
feat-cmux-nextafter #27048 merged; rebased ontoba6bbf43e28b3d49f431d9438855650c90089347. This changes neither Home nor sidebar behavior.Consumer audit
direct.ts,model.ts,App.tsx,summary/chatTools.ts,SourcesAddMenu.tsx_acpmux/attachresponse and attached updates, then_acpmux/set_toolsresults. The browser regression now supplies no tools in its initial watch row and verifies the tools menu still works. Census updates merge into selected-session detail without deleting absent fields.AcpmuxStatusClient, agent pane, census, links, session-folder callerstoolsinteger inHomeEngineTurnis unrelated turn statistics. Audited #27017 at05d4d47fb256464aa5436d0206b70c5d4244c0fa; its census/dialog/link/folder/harness callers do not read either field and are not edited here.acpmux ls --json(cli/run/standard.rs)session info SESSION --jsonfor one inventory or explicitls --with-tools --jsonfor the full list. The daemon-backed CLI regression checks both shapes.acpmux wait(server/wait.rs)withToolsfor initial state and subsequent updates so its remote cache remains complete and current.acpmux web(cli/run/extra.rs)acpmux_mcp.rs(acpmux_ls,acpmux_info)lsreturns compact census rows and displays name/state/title;infoalready calls_acpmux/infofor the complete session, including tools.cmux-chief/src/acp.rs, TUI list and native agent-session list/notice readerspeer.rs,hub/peers.rs) and ACPsession/listwithToolsto support remote wait/cache reads; default peer queries are compact too. ACP's separate list shape retains its_meta.acpmuxinventory.Validation
Focused regression covers default full and paged lists, initial watch, closed sessions, per-session info/attach, compact census notices, opted-in peer discovery and tool changes, and unchanged ACP metadata. CLI and browser regressions cover explicit list inventory and selected-session UI inventory.
612eac11aa80e23ac7119f5b5fd7ba390b776d67: clippy--all-targets --locked -D warnings,tool_inventory, andls_selectionpass in run 40837507332, lane jobb85c280c544c4fbcb0fad35ec9a2d782.1dec6ac0e9834b12b478f7541af6c70f, at1ed830fd3d2e23c8a13b7923d272c76d1507d860. The only subsequent change replaces two divisibility expressions in the benchmark to satisfy clippy.8608281b57b64193b3b55eda1d07adc9, at the same unchanged web tree.1d96c7237b6247d5bfaae336a8f5b574, at final head; baselineba6bbf43e28b3d49f431d9438855650c90089347.57b1a9e796c241f7b8b7acf63eacb038, compiles baseba6bbf43e28b3d49f431d9438855650c90089347with the head'stool_inventorytest and fails onsummary carries tools(exit 101). The final-head green counterpart is40837507332above.test_live_raw_v12_layout_and_history_contracts_are_exact/new-pane-rightand the identical stalespec/api-compat.surface.jsonfailure on both versions.e16851b4552c42c28deafbc8bb367026, reproduces the same two SwiftUI findings (HomeChatColorsPanel.swift,HomeChatColorsView.swift) and stale phone lane field allowlist on both. The unrelatedscripts/whats-new/test_digest.pyCI failure does not reproduce: all five tests pass on both base and head.612eac11aa80e23ac7119f5b5fd7ba390b776d67. The earlier stale-peer-inventory finding was repaired and the exact final head re-reviewed.Performance
The seeded fixture contains 3,000 sessions (1,000 closed), each with 66 tools; seed
0x5eed3000. The benchmark uses fresh daemon and Chromium renderer processes per endpoint. Browser RSS is a minimal page retaining the raw reply and parsed JSON after GC, not production-app RSS. The pre-fix reply exceeds the normal 15 MiB frame limit; the before/after measurement applies the same temporary 128 MiB cap on both CI trees, without changing the shipped cap. Both runs use the identical fixture on one Linux worker and Chromium 151.0.7922.34. RSS values are one sample, not a statistical estimate.No new timer or background loop is added. The benchmark terminates its own child daemon and browser and removes its own temporary fixture.
No capture: the product UI is unchanged; this changes wire payloads and generated protocol types. Browser regression coverage exercises the existing tools menu with compact census rows.
Risk: callers that consumed inventories from default census JSON must use a per-session read or the explicit opt-in. Full opted-in lists can still exceed the existing frame limit; per-session reads remain available.
pr-overlap 27211could not use GraphQL through this VM's broker. A REST file overlap sweep of open acpmux PRs found #26855, #27038, #27017, #27214, #27213, #26466, #27255, #27018, #26987, #27005, #26747, #26998 and #22030; none implements this omission. #22030 is teammate-owned and was left untouched. Open and merged PRs were searched for this fix.Agent session: agent session