Skip to content

Accept both Fabric fleet protocol names at reader boundaries - #4424

Merged
schickling-assistant merged 2 commits into
mainfrom
schickling-assistant/2026-10-31-fabric-rename-readers-a1
Oct 31, 2026
Merged

schickling-assistant merged 2 commits into
mainfrom
schickling-assistant/2026-10-31-fabric-rename-readers-a1

Conversation

@schickling-assistant

@schickling-assistant schickling-assistant commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

Problem

Fleet identity checks accept only st3/fleet/<fleet>. An authenticated endpoint with fractal/fleet/<fleet> fails those checks even when its fleet and gateway match.

Change

  • Centralize exact old/new fleet protocol matching in one allocation-free predicate.
  • Use it for the join gateway binding, adapter invite and confirmation bindings, and signed member endpoint validation.
  • Preserve existing fleet, member, gateway and sponsor checks. Keep default writers, grants, exposures and dial behavior unchanged.
  • Cover both names, wrong fleets and prefixes, persisted TOML spelling, and pairing confirmation. Update replication docs and release notes.
  • Persisted settings, generic endpoint routes, status and handshake fields already carry protocol strings unchanged; no new validation or rewriting is added there.

Verification

At b2d3edea461a611b6e4e414b37592560bcee8b6e, through build admission and nix develop:

  • cargo test -p smallclaims fleet::: 60 passed, 0 failed. Includes fleet_protocol_names_are_bound_to_the_exact_fleet, advertised_fleet_protocol_names_are_read_without_rewriting_routes, persisted_fleet_protocol_round_trip_preserves_either_name, and pairing_join_writes_configuration_only_after_helper_confirmation (both prefixes).
  • cargo test -p fractal-fabric-adapter: 47 passed, 0 failed. Includes endpoint_protocol_accepts_both_names_only_for_this_fleet and unchanged grant/re-key/leave safety tests.
  • Before: new-name sponsor bindings fail the exact old-name check. After: old and new names pass for the same fleet; wrong fleets and prefixes remain refused at these identity boundaries.
  • Diff: 129 additions and 7 deletions (136 changed lines).
  • Disposable Cargo target removed after tests: 1,222,162,944 allocated bytes removed.
  • Ambient Cargo initially had no real toolchain on PATH; using the repository Nix shell resolved it. No full workspace suite or formatter was run.

Open questions

No design questions. This is accepting readers only, not dual exposure or a writer switch. PR #3644 overlaps reconcile.rs and reconcile_tests.rs; this PR changes only its protocol check and adds a separate test. No new public capability or readiness checker. Kept draft as requested.

Posted on behalf of @schickling
field value
agent_identity agent/dotfiles/fabric-mesh
session 01a1ecd5
agent_persona generalist
agent_supervisor unavailable
agent_tool OMP
agent_tool_version 18.12.5
agent_runtime OMP 18.12.5
agent_model anthropic/claude-opus-5-5
worktree smalltalk/2026-10-31-fabric-rename-readers-a1

agent-identity: agent/dotfiles/fabric-mesh
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.12.5
agent-runtime: OMP 18.12.5
agent-model: anthropic/claude-opus-5-5
agent-identity: agent/dotfiles/fabric-mesh
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.12.5
agent-runtime: OMP 18.12.5
agent-model: anthropic/claude-opus-5-5
@schickling-assistant

Copy link
Copy Markdown
Contributor Author

CI scanner repair pushed as a normal commit: 0ac2c1cb2bb9828adfb97ba9f1b019031bc56b6d.

The conservative Rust input scanner treats the protocol prefix literal fractal/fleet/ as a possible path rooted at crates/fractal. No test actually opens that crate. Declared the scan result in .st/rust-test-inputs.json rather than obscuring the protocol constant or changing the scanner.

scripts/rust-test-inputs-scan --check .st/rust-test-inputs.json passed locally (exit 0). The initial 60-second invocation timed out; the completed invocation took 107 seconds. No Cargo target was used or recreated. Product code and earlier test results are unchanged. Total diff is now 140 changed lines.

Posted on behalf of @schickling
field value
agent_identity agent/dotfiles/fabric-mesh
session 01a1ecd5
agent_persona generalist
agent_supervisor unavailable
agent_tool OMP
agent_tool_version 18.12.5
agent_runtime OMP 18.12.5
agent_model anthropic/claude-opus-5-5
worktree smalltalk/2026-10-31-fabric-rename-readers-a1

@schickling-assistant

Copy link
Copy Markdown
Contributor Author

Merge record (Fabric-mesh, fractal merge rule Q26+Q31):

  • Exact head: 0ac2c1c.
  • Independent GO at this exact head: reviewer Review4424 (static review of b2d3ede plus a delta review of 0ac2c1c; no findings).
  • Required checks at this head (Workspace CI run 41159873893): linux-gate, genie-freshness, typescript-client and fractal-web all passed.
  • State: MERGEABLE, CLEAN, not a draft.
  • Scope: rename slice A1, accepting readers only. Writers, grants, exposure and dial behaviour do not change. Plan accepted by Manager (a00e1f83).
    Fabric-mesh now enqueues this PR into the merge queue.
Posted on behalf of @schickling
field value
agent_identity agent/dotfiles/fabric-mesh
session 01a1ecd5
agent_persona generalist
agent_supervisor unavailable
agent_tool OMP
agent_tool_version 18.12.5
agent_runtime OMP 18.12.5
agent_model anthropic/claude-opus-5-5
worktree smalltalk/main

@schickling-assistant
schickling-assistant added this pull request to the merge queue Oct 31, 2026
Merged via the queue into main with commit d3c5284 Oct 31, 2026
34 checks passed
@schickling-assistant
schickling-assistant deleted the schickling-assistant/2026-10-31-fabric-rename-readers-a1 branch October 31, 2026 03:02

This branch was previously deployed

1 inactive deployment
evidence-signing — 0ac2c1cb Deployed Oct 31, 2026 by schickling-assistant via evidence-note-linux-gate #14332
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant