Skip to content

Accept both native Fabric client URI service names - #4429

Merged
schickling-assistant merged 1 commit into
mainfrom
rename-a3-client-uri
Oct 31, 2026
Merged

schickling-assistant merged 1 commit into
mainfrom
rename-a3-client-uri

Conversation

@schickling-assistant

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

Copy link
Copy Markdown
Contributor

Problem

Rust and Node native Fabric clients only accept fabric://<node-or-name>/st3-client-v0, so a fractal-client-v0 URI is rejected before dialing.

Change

  • Accept exactly either client service name, keeping arbitrary services refused.
  • Both URI spellings dial the gateway's existing st3-client-v0 service. URI formatters, gateway defaults and gateway exposure remain unchanged.
  • Keep trusted-name resolution, NodeID handling, pairing authentication and route restrictions unchanged.
  • Reject trailing URI data, including final line terminators (JavaScript $ alone accepts a final newline).
  • Add Rust and Node parser/dial coverage and a release note. No new capability protocol or abstraction.

Verification

Exact head: aa026353b49b17e29a7a881736188797065f7c15. Both targeted suites ran under gate-slot --lane build --max-wait 5400 -- nix develop -c …:

  • cargo test -p fractal-client fabric::tests --lib: 8 passed, 0 failed.
  • node --test clients/typescript/fractal-client/fabric.test.cjs: 5 passed, 0 failed, using the pinned TypeScript-client installation through NODE_PATH.

Coverage includes old/new URI spellings, wrong services, exact URI anchoring/trailing line breaks, canonical old formatting, identical gateway dial arguments for peer names and NodeIDs, trusted-name ambiguity/refusal, routing guards, authenticated HTTP and client WebSocket streams.

Before: fractal-client-v0 URI rejected. After: it parses and dials st3-client-v0; existing old URIs still work.

Build target removed after testing: 321,206,272 allocated bytes reclaimed (856,150,512 apparent bytes). No live gateway or host changes. No broad suite or formatter was run.

Admission friction: the first Rust request expired while queued, before running; the deadline-free retry passed. Shared build admission and a GC fence dominated wait time.

Open questions

None. This is an accepting-reader change only; switching URI writers/defaults belongs to the later writer slice. The new URI spelling intentionally maps to the currently exposed old gateway service instead of changing exposure.

Refs #4424 (fleet accepting-reader companion).

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/rename-a3-client-uri

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

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

  • Exact head: aa02635.
  • Independent GO at this exact head: reviewer Review4429 (no findings).
  • Required checks at this head (Workspace CI run 41164390135): linux-gate, genie-freshness, typescript-client and fractal-web all passed.
  • State: MERGEABLE, CLEAN, not a draft.
  • Scope: rename slice A3, client URI accepting readers only. Writers, defaults, saved targets and gateway exposure do not change. Plan accepted by Manager (a00e1f83). Sibling A1 (Accept both Fabric fleet protocol names at reader boundaries #4424) merged as d3c5284.
    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

This branch was previously deployed

1 inactive deployment
evidence-signing — aa026353 Deployed Oct 31, 2026 by schickling-assistant via evidence-note-linux-gate #14365
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