feat(fleet): broadcast to marked agents across hosts - #131
Open
jiunbae wants to merge 2 commits into
Open
Conversation
CHANGELOG only. The branch was nine commits behind; the implementation files merged cleanly. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AVQaf1oSAj6ZkgBg2uY2Gk
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #125, closing the Fleet half of #101.
What it does
A
Spacemark inmuxa fleet watchcarries its host alias and full pane identity, so a local%1and a remote%1are two exact recipients rather than one ambiguous screen position.mfreezes the set and gives every recipient its own ordinary durable request, sequentially —localthrough the controller daemon, remote aliases through their existing Fleet relay. Both yield a request id.Remote authority is preflighted before the first request leaves: an observe-only host, or one missing
collaboration/collaboration_get, is shown as will be refused and never called. A delivery failure stops nothing. Every recipient keeps a row with its request id, refusal or error; delivered agents lose their marks while refused and failed ones keep theirs for a deliberate retry.Remote marking stays in
muxa fleet watchrather than duplicating Fleet inventory insidemuxa watch— the two are different TUIs, and the local one has no host axis.Provenance and verification
Implemented by a codex agent working from a written brief in its own worktree; I verified it rather than taking the report:
fleet_watch.rs,docs/FLEET.md,CHANGELOG.md), +901/−51 — no scope creep;cargo fmt --check,clippy --workspace --all-targets -D warnings,cargo test --workspace(1,801 tests) run by me on the merged branch, all clean;broadcast_preflight_refuses_remote_observe_and_old_hosts_onlyandbroadcast_dispatch_is_sequential_transport_aware_and_failure_tolerantfail, and restoring it made them pass. The tests bite.The agent also corrected my brief: I had described both remote refusals as remote-only, but
validate_fleet_collaboration_authority's capability loop applies to local hosts too. Local snapshots normally advertise both capabilities, so the broadcast path keeps the direct-local behaviour.Note
The branch merged
origin/main(nine commits) before this PR; onlyCHANGELOG.mdconflicted. While resolving it I first filed this entry under the already-released0.8.41section and then briefly duplicated it — both corrected here, and the released section is unchanged.🤖 Generated with Claude Code
https://claude.ai/code/session_01AVQaf1oSAj6ZkgBg2uY2Gk