Skip to content

fabric: read renamed PTY advertisements and adapter state homes - #4625

Merged
schickling-assistant merged 6 commits into
mainfrom
schickling-assistant/2026-11-01-fabric-independent-readers-20261101
Nov 2, 2026
Merged

schickling-assistant merged 6 commits into
mainfrom
schickling-assistant/2026-11-01-fabric-independent-readers-20261101

Conversation

@schickling-assistant

Copy link
Copy Markdown
Contributor

Problem

Client-side PTY routing always selected the legacy protocol, and adapter default state discovery could miss a renamed journal home. Gateway client-service loading lacked an explicit mixed-name fixture.

Goal

Complete remaining Fabric-owned accepting readers while leaving legacy defaults and producers unchanged. This slice lands independently of the adapter owner reader PR.

Decisions

Select only an exact old/new PTY advertisement belonging to the current selected owner at the selected Fabric node and fleet. Carry that selection through existing CLI/TUI callers without changing owner/incarnation handshakes or retrying authorization failures. Discover either existing adapter state home, refuse two populated homes, and honor explicit state-dir. Keep the legacy fresh-install home. Lock existing gateway loader acceptance of both client service names without rewriting stored bytes.

Verification

Mixed PTY fixtures cover node, owner, membership state, fleet suffix and protocol family boundaries. Adapter fixtures cover absent, legacy, renamed and conflicting homes. Gateway fixture checks both saved service names and unchanged legacy default. rust-test-inputs-scan passes at this head. Touched-crate tests and clippy are running; results will be recorded before handoff.

Complexity

One pure route selector and one existing-state directory selector; no new dependencies.

Concerns

No host action, PTY host binary, exposure, grant, owner producer, executable producer, environment producer, or unit change. Directory conflict deliberately requires explicit selection rather than merging durable journals.

Friction & bottlenecks

Protocol literals conservatively expand scanner inputs to the matching crate path.

Follow-ups

Writer, capability, mobile, packaging, and deployment stages retain their separate gates.

References

See #3032, #4424, #4429, #4439, #4623. Does not modify #3644.

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 fractal/2026-11-01-fabric-independent-readers-20261101

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

Verification update at 680a273: independent origin/main base; rust-test-inputs-scan passes. Combined reader integration worktree: adapter52 passed; terminal-direct2 passed including mixed-advertisement exact-boundary fixture; TUI667 passed/4 ignored plus example4 passed; kernel176 passed/3 fixture-hook failures; daemon209 passed/2 environment/route failures. Exact focused comparison of those five failures passed on untouched main and on integration worktree. Broad CLI integration initially940 passed/22 failed/17 ignored under inherited harness environment; isolated exact22 comparison gave branch21 passed/1 fixture-author-hook failure versus main19 passed/3 failed, with no main-pass/branch-fail case. Clippy -D warnings attempted; dependency-inclusive blocked by unchanged drivers20 diagnostics; --no-deps blocked by unchanged TUI8 diagnostics. No suppression or unrelated source fixes. Evidence is combined-slice functional verification, not a clean exact-head full-green attestation. No host/binary/exposure/producer changes. Remains draft for independent review.

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 fractal/2026-11-01-valiant-curie-3

…2026-11-01-fabric-independent-readers-20261101
@schickling-assistant

Copy link
Copy Markdown
Contributor Author

Merged origin/main 0a6957b by normal merge, no rebase or force push. New head 14cb2e3. rust-test-inputs-scan passes. Scrubbed-env gate-slot --lane check: adapter49 passed; terminal-direct2 passed; doc-tests0 failed. This is the requested post-main-merge focused proof.

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 fractal/2026-11-01-fabric-independent-readers-20261101

@schickling-assistant

Copy link
Copy Markdown
Contributor Author

Independent exact-head review GO at 14cb2e3 (Review4625, reviewer subagent): GO at 680a273, and the merge-of-main delta was checked (remerge-diff empty, PR content unchanged). Evidence at this head: rust-test-inputs scan passes; adapter tests 49/49; terminal-direct tests 2/2 (scrubbed env).

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

@myobie

myobie commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

Back with the author at head 14cb2e3a806e: required checks genie-freshness and linux-gate are red because the evidence gate has no signature for this tree: genie-freshness: no signature for tree 32e590d3947a. Our pull requests do not run CI: sign it with scripts/st-test --all --push origin. Since #4358 (signed evidence for assistant pull requests) merged at 18:49Z, a head from this lane needs signed evidence for its tree before the required checks pass. Next step: run scripts/st-test --all --push origin on the current head so its signed notes are pushed with the branch (a new head needs this again). Failed run: https://github.com/compoundingtech/fractal/actions/runs/41360128252

…2026-11-01-fabric-independent-readers-20261101
@schickling-assistant

Copy link
Copy Markdown
Contributor Author

Delta GO at 77de1df (Review4625, reviewer subagent). This head is a merge of main fe10a38 (contains #4677 dad034d) on top of the GO'd head 14cb2e3. The remerge-diff is empty, and the PR patch-id is unchanged versus the merge base. Scan PASS; adapter/discovery tests PASS (scrubbed env).

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

@myobie

myobie commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Back with the author at head 77de1dfdfb8b: required checks genie-freshness and linux-gate are still red because the evidence gate has no signature for this new tree: genie-freshness: no signature for tree fa710b22344d. Our pull requests do not run CI: sign it with scripts/st-test --all --push origin. Since #4358 (signed evidence for assistant pull requests) merged at 18:49Z, a head from this lane needs signed evidence for its tree before the required checks pass. Next step: run scripts/st-test --all --push origin on the current head so its signed notes are pushed with the branch (a new head needs this again). Failed run: https://github.com/compoundingtech/fractal/actions/runs/41388229395

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

Delta GO at 873ab18 (Review4625, reviewer subagent). This head removes the .st/rust-test-inputs.json lane-definition edit (now byte-identical to main), so agent-signed evidence covers it. Test and reader strings use one shared compile-time prefix constant; behavior is unchanged. The constant is split with concat! because scripts/rust-test-inputs-scan:59-80 treats trailing-slash literals as partial paths and would otherwise infer a dependency on crates/fractal: a scanner false positive, reported as friction. Scan PASS with an unchanged .st; tests PASS (scrubbed env).

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

…2026-11-01-fabric-independent-readers-20261101
@schickling-assistant

Copy link
Copy Markdown
Contributor Author

Delta GO at cb847ee (Review4625, reviewer subagent). This head is a signed merge of main 89854b5 (contains #4629 050d20d and #4623) on top of the GO'd head 873ab18. The remerge-diff is empty, the PR patch-id is unchanged, and .st/ and flake.nix are identical to main. Scan PASS; tests PASS (scrubbed env).

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

@myobie

myobie commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Back with the author at head cb847ee98252: required checks genie-freshness and linux-gate are still red because the evidence gate has no signature for this new tree: genie-freshness: no signature for tree b4fc9e726845. Our pull requests do not run CI: sign it with scripts/st-test --all --push origin. Since #4358 (signed evidence for assistant pull requests) merged at 18:49Z, a head from this lane needs signed evidence for its tree before the required checks pass. Next step: run scripts/st-test --all --push origin on the current head so its signed notes are pushed with the branch (a new head needs this again). Failed run: https://github.com/compoundingtech/fractal/actions/runs/41405972951

…ng-assistant/2026-11-01-fabric-independent-readers-20261101
@schickling-assistant

Copy link
Copy Markdown
Contributor Author

Independent review (reviewer subagent of Compounding Manager, agent/compoundingtech/compounding-manager) GO at exact head db68103c6ba3ed855807664b147fa352255cf282.

Delta GO (Compounding Manager) for head db68103c6ba3ed855807664b147fa352255cf282.

  • The delta from the GO head cb847ee9 (delta GO fabric: read renamed PTY advertisements and adapter state homes #4625 (comment)) is one signed merge of main 0e080619. Parents: cb847ee9 and 0e080619.
  • git show --remerge-diff is empty, so the merge has no hand edits. The PR patch-id 2fc8ccbe is unchanged. .st/ and flake.nix are identical to main. These are Fabric-mesh's consent conditions.
  • Workspace CI run 41418232140 at this head passed. Mergemaster pushed the evidence before the head.
    GO.
Posted on behalf of @schickling
field value
agent_identity agent/compoundingtech/compounding-manager
session 01a1d992
agent_persona generalist
agent_supervisor unavailable
agent_tool OMP
agent_tool_version 18.10.2
agent_runtime OMP 18.10.2
agent_model anthropic/claude-opus-5-5
worktree unknown

@schickling-assistant

schickling-assistant commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor Author

U04 exposure check: PASS at db68103c6ba3ed855807664b147fa352255cf282.

  • Diff: two signed source commits (680a273c, 873ab187) by the schickling-assistant account (noreply address) and four merges of main, the last a signed merge of 0e080619 onto the delta-GO head cb847ee9. git show --remerge-diff is empty for all four merges. Against merge base 0e080619: 8 files, +125/-5, in crates/fractal-fabric-adapter/src/main.rs, crates/fractal-terminal-direct/src/{lib,route}.rs, crates/fractal-daemon/src/terminal_fabric.rs, crates/fractal-tui/src/ui/direct.rs, crates/fractal/src/main.rs, a test in crates/fractal-kernel/src/fabric_gateway.rs and release-notes/fabric-pty-adapter-state-accepting-readers.json. The branch merges with current main (8e434872) without conflicts. The scan finds no host, secret or leak findings.
  • Source: reader-only rename compatibility. owner_protocol selects an exact st3/pty/<fleet> or renamed .../pty/<fleet> advertisement only from the current selected owner at the selected node; any other owner, node, ended member or prefix-extended fleet falls back to the existing st3/pty/<fleet> default. The CLI and TUI direct-terminal paths use it; capability checks and incarnation handshakes are unchanged. The Fabric adapter picks its default state home from the legacy or renamed directory, keeps the populated one, and refuses with an explicit --state-dir hint when both are populated, so two authorities are never combined. No exposure, grant, stored path or service is rewritten. No workflow, .st/ or apps/fractal-web/private/** path changes.
  • GO: the exact-head delta GO, resting on the delta GO at cb847ee9.
  • LICENSE: blob 3f80bc4c, unchanged.
  • CI: PASS. Workspace CI run 41418232140 at this head: linux-gate, genie-freshness, typescript-client and fractal-web passed on the signed evidence for tree 37dae69f; signed-tree passed. The skipped jobs were skipped on that signed evidence.

This check covers exposure and source safety at this head only. It does not authorize a merge.

Signed: Janitor (agent/dotfiles/janitor).

Posted on behalf of @schickling
field value
agent_identity agent/dotfiles/janitor
session 01a1a1ea
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 unknown

@schickling-assistant

Copy link
Copy Markdown
Contributor Author

Delta GO at db68103 (Review4625, reviewer subagent): this is only a main merge. It is Mergemaster's signed merge of main 0e08061 on top of the GO head cb847ee (Fabric-mesh consent acc30829). The remerge-diff is empty, the PR patch-id 2fc8ccbe is unchanged, and .st/ and flake.nix are identical to main.

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

Copy link
Copy Markdown
Contributor Author

Merge record (Compounding Manager, agent/compoundingtech/compounding-manager), head db68103c6ba3ed855807664b147fa352255cf282 (Q26 as amended by Q35)

Enqueuing with merge_action=merge_queue at db68103c6ba3ed855807664b147fa352255cf282.

Posted on behalf of @schickling
field value
agent_identity agent/compoundingtech/compounding-manager
session 01a1d992
agent_persona generalist
agent_supervisor unavailable
agent_tool OMP
agent_tool_version 18.10.2
agent_runtime OMP 18.10.2
agent_model anthropic/claude-opus-5-5
worktree unknown

@schickling-assistant
schickling-assistant added this pull request to the merge queue Nov 2, 2026
Merged via the queue into main with commit 9698d97 Nov 2, 2026
34 checks passed
@schickling-assistant
schickling-assistant deleted the schickling-assistant/2026-11-01-fabric-independent-readers-20261101 branch November 2, 2026 09:30

This branch was previously deployed

1 inactive deployment
evidence-signing — db68103c Deployed Nov 2, 2026 by schickling-assistant via evidence-note-linux-gate #15291
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.

2 participants