feat(cmux-next): wire ACPmux events into priority agent view

Merged
TE
19d ago
+281-10

What changed

Wire the existing native ACPmux _acpmux/watch lane feed into the Agent Activity priority view without adding polling or a second session identity model.

  • Preserve the existing sessionId -> workspaceId binding on AgentActivityLane and carry it through the web bridge.
  • Track a monotonic priority revision and changed session so only the hook-updated row gets the transform-only bounce.
  • Feed priority ordering from the existing event-driven AgentTurnStateFeed / AgentLaneStore path.
  • Keep the web event reducer defensive for duplicate and out-of-order ACPmux session events.

Validation

  • bun test ./test/agent-activity-priority.test.ts ./test/agent-activity-lanes.test.tsx — 12 passed.
  • git diff --check — passed.
  • swiftc -parse Packages/macOS/CmuxNext/Sources/CmuxNextAgentActivity/AgentActivityLane.swift Packages/macOS/CmuxNext/Sources/CmuxNextAgentActivity/AgentActivityModel.swift Packages/macOS/CmuxNext/Sources/CmuxNextAgentActivity/AgentActivityHostView.swift — passed.

Full native build was not run on the M5 MacBook Air per repository build policy.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Wires the native ACPmux _acpmux/watch lane feed into the Agent Activity priority view without adding polling or a second session identity model.

  • Carries the existing sessionId → workspaceId binding through the web bridge so priority rows jump to the correct workspace, and retains a session's binding when a later hook event omits it.
  • Tracks a monotonic priority revision and changed-session marker so only the hook-updated row gets a transform-only bounce animation.
  • Validates each ACPmux session summary at runtime and keeps the reducer defensive against duplicate, out-of-order, and purged events.