Repository navigation
acpmux: regenerate the protocol IR for _acpmux/mesh_control (base red) - #27556
Conversation
#27050 declared _acpmux/mesh_control in the protocol registry without re-blessing spec/acpmux-protocol.json, so protocol_ir_is_current fails on feat-cmux-next. Regenerated with ACPMUX_PROTOCOL_BLESS=1 and `bun scripts/acpmux-protocol-codegen.ts` on Linux; generated outputs only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-1288bbb2b5d2f5c6b66a
|
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)
Gallery before/after for
States
Pick other states with a red: cmux-next checks (god files, concurrency, crash safety, l10n); base red: the same failure on the base 34e31e4; does not block |
|
Owned by an agent session · session |
|
Found 6 test failures on Blacksmith runners: Failures
|
teamleaderleo
left a comment
There was a problem hiding this comment.
Review (codex gpt-6-astra high fast, independent review): SHIP at ebfd7a8
Reviewer: "All 243 registry entries match the IR in order, kind, ACP flag, and parameter/result slots. Running the TypeScript generator in memory produced exact byte matches for both generated files; the only TS changes are the two expected mesh_control lines. The manifest's input/output rule accepts the change, and the supplied culprit diff confirms the registry addition in #27050."
Reds: one, cmux-next checks -> "No new SwiftUI (macOS UI is AppKit)". It is a base red: base's Packages/macOS/CmuxNext/Sources/CmuxNextHome/ChatColors/HomeChatColors{Panel,View}.swift import SwiftUI (27d2053). #27017 fails it the same way, and #27457 fixes it. This PR touches no Swift.
Green at head (tree cd1c8fcae40): cmux-ci runs 40948903092 (acpmux lib, 1924 passed) and 40948907379 (acpmux-protocol:check).
Overlap: #27017 carries the same _acpmux/mesh_control IR and methods.ts lines, byte-identical, so whichever lands second merges those lines as a no-op.
|
Shipped in:
|
…ux (#27599) * ci(cmux-tui-spec): run acpmux's protocol tests on PRs that touch acpmux spec/acpmux-protocol.json is generated from acpmux's protocol registry, but only the dispatch-only cmux-tui.yml ran protocol_ir_is_current, so #27050 and the machine consent methods left a stale IR on base until #27556 and #27438 regenerated it. A new acpmux-protocol-ir job in cmux-tui-spec.yml (already path-filtered to cmux-tui/**) runs `cargo test -p acpmux --lib -- protocol::` when the change touches the acpmux crate, the cmux-tui manifest, lockfile or toolchain, and skips the build otherwise. Lib target only, on Blacksmith 32 vCPU, with its own cargo cache saved from feat-cmux-next pushes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-1288bbb2b5d2f5c6b66a * ci(cmux-tui-spec): quote the acpmux test step's name (a trailing :: is YAML) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-1288bbb2b5d2f5c6b66a * ci(cmux-tui-spec): the acpmux scope diff lists both sides of a rename Moving the IR out of the crate reported only the new path, which the scope missed, so the job skipped while protocol_ir_is_current would fail. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-1288bbb2b5d2f5c6b66a --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Fixes a base red:
acpmux protocol::tests::protocol_ir_is_current(cmux-tui/crates/acpmux/src/protocol/tests.rs:28) fails on feat-cmux-next, so every full acpmux lib run fails it (#27187 and #26984 hit it).Leo's standing rule: "Fixing a base red is its own PR, and red fixes are never blocked."
What changed
Generated outputs only, from the repo's own generators:
cmux-tui/crates/acpmux/spec/acpmux-protocol.json:ACPMUX_PROTOCOL_BLESS=1 cargo test -p acpmux --lib protocol_ir_is_currentadds the_acpmux/mesh_controlrequest (untyped).webviews/src/agent-session/acpmux/protocol/generated/methods.ts:bun scripts/acpmux-protocol-codegen.tsadds the same method toAcpmuxRequestsandACPMUX_METHODS.Both were run on Linux through cmux-ci; nothing was hand-edited.
Cause
#27050 (a95f085, "route lifecycle controls through owner-authorized mesh senders") added
untyped(method::MUX_MESH_CONTROL, Request)to the registry insrc/protocol/mod.rsand did not re-bless the IR. Later IR updates (#27255, e07b33b) came from branches that did not have it, so the IR has been stale since #27050 landed.Why CI missed it: no pull-request job runs the acpmux lib tests.
protocol_ir_is_currentonly runs incmux-tui.yml(the full cross-platformcargo test --workspace), and that workflow isworkflow_dispatchonly.cmux-next fast tier (cargo)has no acpmux entry. The webviewsacpmux-protocol:checkcompares the generated TS against the committed IR, not the IR against the registry, so it stayed green. #27050's PR checks include no acpmux lib test run.Other generated outputs checked (not stale)
With the regenerated IR, on Linux (run 40948068785):
check-spec-inventory.py,check-sdk-schema.py,bindings/codegen/generate.py --check(python, rust, typescript, zig, pageRouter.ts),check-resource-api-boundary.pyandapi-compat-check("protocol surface matches revision 12") all pass. Sospec/api-compat.surface.json, the SDK wire layers and the spec inventory are current. They come from cmux-tui's own protocol (sdk-schema.json), not from the acpmux IR.Generated-files guard
scripts/ci/generated-files.jsonlistswebviews/src/agent-session/acpmux/protocol/generated/*as the output of theacpmux-protocolgenerator, with inputscmux-tui/crates/acpmux/spec/**. This PR changes that input (the IR) together with its output, so the inputs rule passes. The IR itself is not a registered output.Evidence
protocol::tests::protocol_ir_is_current ... panicked at crates/acpmux/src/protocol/tests.rs:28:9,1 failed._acpmux/mesh_controlentry above.cargo test -p acpmux --lib,protocol_ir_is_current ... ok, 1924 passed, 0 failed. cmux-ci run 40948907379,bun scripts/acpmux-protocol-codegen.ts --check, "acpmux protocol generated code is current".Risk
Low. Generated files only, adding one method name to an IR and to a TS method table. No runtime code changes. The daemon already serves
_acpmux/mesh_control.Agent session: agent session
🤖 Generated with Claude Code