Repository navigation
feat(fleet): prefer either enabled replication transport - #3677
Conversation
agent-identity: agent/dotfiles/fabric-mesh agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.9.1 agent-runtime: OMP 18.9.1 agent-model: anthropic/claude-opus-5-5
|
Independent internal correctness GO at exact head 48a4ceb from reviewer PreferCorrectness. Static review covered all changed Rust commands, tests, docs and release note, command dispatch, endpoint publication, atomic saving, settings-lock fencing and transport-order consumers. No blocking findings (confidence 0.91). Reviewer confirmed reordering preserves enablement and other carrier order; disabled carriers are refused; already-first avoids writes/publication/restarts; exposure tools are never invoked. This is code-review evidence, not executed-test evidence. Hosted Workspace CI proof is running separately: https://github.com/compoundingtech/fractal/actions/runs/39882107450 . Posted on behalf of @schickling
|
agent-identity: agent/dotfiles/fabric-mesh agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.9.1 agent-runtime: OMP 18.9.1 agent-model: anthropic/claude-opus-5-5
|
Renewed independent internal correctness GO at exact head f845384 from reviewer PreferCorrectness (confidence 0.93). Static review of the four-file documentation-only delta found no blocking defects: coverage rows reference the reviewed tests, the actor-contract entry matches the clap-derived no-actor classification and neighboring transport commands, and transport docs accurately describe ordering and guards. Prior Rust review remains applicable. No local checks were run. Corrected-head hosted proof: https://github.com/compoundingtech/fractal/actions/runs/39885649120 . Posted on behalf of @schickling
|
agent-identity: agent/dotfiles/fabric-mesh agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.9.1 agent-runtime: OMP 18.9.1 agent-model: anthropic/claude-opus-5-5
|
Final renewed independent internal correctness GO at exact head 3448c8c from reviewer PreferCorrectness (confidence 0.95). The sole new delta exempts both fleet::transport_prefer_ tests from the daily-only exclusion, retaining these command contracts in PR CI while preserving other fleet exclusions. Prior Rust and documentation review conclusions remain applicable. This is a static review GO, not a test execution claim. Final-head hosted proof: https://github.com/compoundingtech/fractal/actions/runs/39888802518 . Posted on behalf of @schickling
|
|
Intake A FINAL GO #3677 (feat(fleet): prefer either enabled replication transport) at exact head 3448c8c (3 commits 48a4ceb, f845384, 3448c8c; not draft; behind main 0, CLEAN). Read the source diff (fleet_cli.rs, main.rs, setup.rs, daily-only.filterset, action-coverage.json, actor-contract.json, release note). st fleet transports prefer <tailscale|fabric> [--no-service] refuses a carrier that is not enabled, is a no-op (no restart, no save) when already first, otherwise rotates only that entry to the front (transports[..=index].rotate_right(1)), keeping the others in relative order, then uses the existing locked saver and endpoint publication. No exposure/Fabric executable calls on this path, no wire, schema or store change, no store.rs. The filterset keeps fleet::transport_prefer_ on the PR lane; the actor-contract and action-coverage rows are added (actor none). |
Problem
#3642 introduced
st fleet transports add fabric --prefer, but restoring Tailscale-first automatic routing required editing fleet.toml by hand.Goal
st fleet transports prefer <tailscale|fabric> [--no-service]restores either enabled carrier's priority without changing exposure or enablement.Decisions
Verification
Added integration coverage for both directions, disabled-carrier refusal, unchanged exposure tool calls and endpoint membership, no-op inode preservation, actual settings-lock contention and reloading under lock, atomic inode replacement with intact old contents, and 0600 permissions. Extended conflicting-service setup coverage to the new command.
3448c8cd9a9353bbc513d364c599794d74553afb: 8,775 tests passed across both shards, zero flaky; build, clippy, fleet compatibility, freshness, isolation, web and TypeScript jobs passed.Before: restoring Tailscale priority required hand-editing fleet.toml.
After:
st fleet transports prefer tailscaleperforms the locked reorder and refreshes services (or gives both restart commands with--no-service).Commit used
ST_SKIP_EVIDENCE=1because hosted CI, rather than local build evidence, is required for this task.Complexity
No new dependencies or abstraction; one CLI variant uses the existing transport mutation path.
Concerns
Explicit peer URLs still override automatic carrier preference, and loopback remains the last automatic fallback. Preference is local to each member.
Friction & bottlenecks
A read-only GitHub log request was incorrectly refused by the subprocess runner; the ordinary shell path worked without changing authentication. Feedback was filed. No measured resource bottleneck.
Follow-ups
None.
References
Refs #3642. Symmetric rollback for Fabric-first routing.
Posted on behalf of @schickling
agent_identitysessionagent_personaagent_supervisoragent_toolagent_tool_versionagent_runtimeagent_modelworktree