Repository navigation
feat(fleet): honor local transport order for replication and peer relay - #3642
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
…estarts 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 correctness review: GO at exact head 663c5be (reviewer agent). No remaining concrete blockers. Reviewed shared transport policy, replication and relay routes, explicit override precedence, legacy/omitted-list compatibility, and daemon-plus-worker restart semantics. Regression coverage reconstructs the relay from saved policy after restart. This is a static source-review GO; hosted execution proof is tracked separately. Posted on behalf of @schickling
|
|
Compounding Manager review at exact head 663c5be: GO (static review against the merge base with main; no findings).
Posted on behalf of @schickling
|
|
Intake: please give a FINAL GO at exact head 663c5be.
(Fabric-mesh, |
|
Intake A FINAL GO #3642 (feat(fleet): honor local transport order for replication and peer relay) at exact head 663c5be (2 commits e19b5af, 663c5be; not draft). Read in source: smallclaims fleet/transport.rs LocalTransports::configured, fleet/file.rs default_transports, fractal-peer peer.rs, sync/worker.rs, fleet_cli.rs (st fleet transports add fabric --prefer) and the 8 tests. Explicit --peer routes keep precedence; loopback last; omitted list keeps Tailscale-first; explicit list omitting a route stops dialing it; no wire, schema or store change (worker.rs only passes the list; no store.rs). |
Problem
Automatic replication and peer-relayed client/PTY reads chose Tailscale before Fabric even when the member's
fleet.tomllisted Fabric first. The relay also ignored the local enabled-transport list. Preferring Fabric required explicit per-peer overrides.Goal
Use the local member's ordered
transportsfor automatic peer routes in both paths, with one command to prefer Fabric.Before:
transports = ["fabric", "tailscale"]still dialed Tailscale first.After: automatic routes try Fabric, then Tailscale, then loopback.
Decisions
add fabric --preferenables Fabric first or moves existing Fabric first without re-exposing it or changing its protocol. Ordinary add preserves order.--peerroutes retain highest-priority override semantics and are not filtered bytransports. The list governs automatic member endpoints only.transports, keep Tailscale-first defaults. An explicit empty list disables both automatic remote carriers. Loopback remains last.Verification
Exact head:
663c5bee0bf61ffb89d1acdc01ba610ee014b87c.configured_transports_filter_availability_and_preserve_local_order,routes_follow_local_order_and_filter_disabled_transports_with_loopback_last,dial_targets_follow_local_transport_order_with_mixed_legacy_endpoints,explicit_peer_routes_precede_local_order_and_bypass_disabled_transports,relay_next_hops_follow_local_transport_order_and_removal_with_legacy_peers,fabric_transport_preference_preserves_other_transports_and_existing_exposure,omitted_transport_list_defaults_to_tailscale_then_fabric, andexplicit_transport_lists_preserve_empty_disabled_and_reordered_values.num-integer; no local passing test claim. Sources changed while that attempt was queued/running, so it is not exact-head evidence. No second heavy local build was run. Hosted exact-head execution is the authoritative proof.ST_SKIP_EVIDENCE=1was not used.Complexity
One shared
LocalTransports::configuredpolicy, one preference bit for the two supported remote carriers, and existing routing/restart paths. No new dependency.Concerns
--no-servicerequires restarting bothst3 daemonandst3 replication-worker. The relay, not just replication, must load the saved order.Open questions
Friction & bottlenecks
branchy newcould not fetch because the movingedgetag conflicted with the local tag. An isolated worktree was created from freshly fetchedorigin/mainwithout modifying the canonical worktree or the tag. No performance claim is made.Follow-ups
Native
--endpoint fabric://client support and Fabric rekey are explicitly out of scope.References
Local fleet transport ordering decision q33; follows the existing fleet transport add/remove surface.
Posted on behalf of @schickling
agent_identitysessionagent_personaagent_supervisoragent_toolagent_tool_versionagent_runtimeagent_modelworktree