Skip to content

Keep Sush compatible with ongoing Rumors triage - #84

Draft
plaidfinch wants to merge 40 commits into
mainfrom
codex/rumors-compat
Draft

plaidfinch wants to merge 40 commits into
mainfrom
codex/rumors-compat

Conversation

@plaidfinch

@plaidfinch plaidfinch commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

CAVEAT LECTOR

This PR description was written by GPT-6 Astra.

This is in-progress compatibility work for the ongoing Rumors review and triage. The draft tracks Sush main and will change as that work proceeds. The owner's final review of the complete branch is required before merge.

The changes use Rumors-owned routed connection pooling, apply the connection timeout to incoming routing, handle revised errors and bootstrap outcomes, and adopt the expanded link conformance suite. Gossip follows changes and also probes each connection every ten seconds. Each wire exchange has a one-second deadline; the separate join timeout still covers local bookmark attachment. Migration waits for old gossip drivers to stop before the new peer uses bookmark storage.

Bookmark storage accepts owned Rumors records and reports locker errors directly. Its versioned wrapper records the Rumors format version so incompatible recovery data starts fresh bookkeeping. The dependency includes the approved Rumors recovery fix and bounded retention. The new Bookmark conformance check exposed a Sush decoding bug: records larger than CBOR's scratch buffer were treated as absent after a successful store. Requesting owned bytes fixes that without changing the stored format.

Validation of the latest increment against the published Git dependency, without a local override: native Helios bookmark, format, locker, and gossip-manager tests, plus workspace Clippy for all targets. Local formatting also passes. Tests cover storage conformance, large records, incompatible bookmark formats, fresh checkpoints, and both wrapper byte layouts.

Compatibility edits stay local during Rumors review. After each approved Rumors merge, this draft advances to the published revision and is validated again. Further API adaptations and simplifications will be incorporated here throughout the triage effort.

Let Rumors own per-link connection reuse and remove qorb's peer-wide pools,
recycle state, and READY tasks. Keep attestation and TLS shutdown in the
Sprockets adapter. Bound initial inbound routing with the new deadline hook;
established gossip remains free to wait between rounds.

Add the required Eq bounds and handle send admission results. A locally
authored Sush message that fails admission is a codec bug; assert success
before advancing execution boundaries. Existing wire fixtures now exercise
Rumors admission as well as byte compatibility.

This ongoing compatibility branch is based on locker at fa405c2. The current
Rumors routing changes are under review and have no commit to pin yet.
Validation uses an ignored Cargo config patch to that worktree. The checked-in
Git pin and lockfile remain portable and must advance when Rumors lands;
the new routing hook requires the local override until then.

Validation: workspace check and clippy with warnings denied; build, doctests,
unchanged OpenAPI output, and optional permslip client checks passed. The
full nextest run passed transport conformance, gossip, and message fixtures,
but failed PTY and process/job tests on macOS. Linux PTY-path assertions and
rejected address-space limits need validation on Linux before final review.
Supply a fresh timer for each check, including connected-pair setup. Validated with sush-server link Clippy and both attested transport tests against the routed-pooling Rumors worktree.
Handle network mismatches through Mismatch and log protocol diagnostics. Use the local network carried by the error instead of caching it separately.

Validated on ox-east-1-agent with native workspace check and clippy. The workspace suite passes except for link conformance, which also hits its dial timeout in isolation; that follow-up remains recorded in the Rumors triage notes. Final non-exhaustive match patterns pass native workspace check.
Simultaneous connection opens in the expanded Rumors conformance suite serialize synchronous attestation work on the default single-thread test runtime. The isolated concurrency check reproduces the ten-second dial timeout on Helios.

Use four runtime workers, matching the server runtime model while bounding test resources. Keep the full conformance suite and production dial deadline unchanged.

Validation: formatting; Helios workspace check and Clippy with warnings denied; all 163 native workspace tests passed, including attested link conformance.
Rebase compatibility work onto current Sush main, preserving its send-error logging. Pin Rumors bdb79ecb and validate the published Git dependency without a local override.

Validation: native Helios server/test Clippy and both attested link tests pass; cargo fmt --all --check passes.
Advance the manifest and lockfile to published Rumors main bcfb6ec7. Validated with server/test Clippy and the attested link conformance and two-peer gossip tests against the Git dependency.
Advance to published Rumors main 4c6f01b3. Server/test Clippy, attested link conformance, and two-peer gossip passed using the published Git dependency.
Advance to published Rumors main 20d1cd67. Server/test Clippy, attested link conformance, and two-peer gossip passed against the published Git dependency.
Advance the published Rumors pin to 84ffc11f. That commit changes only triage notes; library code matches the previously validated pin. Validation against the Git dependency: cargo metadata --format-version 1; cargo nextest run --locked -p sush-server --test link --run-ignored all (conformance and gossip convergence passed).
Advance Rumors to published main 6ed760f0. Validate without a local dependency override: workspace/all-target clippy with warnings denied, and the opt-in link conformance and gossip convergence tests.
Advance to published Rumors main 913ae385. This revision changes triage notes only; library code matches the previously validated pin. The opt-in link conformance and gossip convergence tests pass against the Git dependency without a local override.
Advance the Rumors pin to 1aefec1128906db28683790569754a1163e94877,
which includes the approved owned leaf iterator cleanup. No Sush source
changes are needed for this internal refactor.

Validated against the published Git revision without the local override:
locked workspace/all-targets Clippy, attested link conformance, and
bootstrap/gossip convergence all pass.
Advance Rumors to ea972b5ada8e148144ddc5edbff8520278c7d32a after its
approved main merge. Its height definition cleanup is internal and needs
no Sush source changes.

Validated against the published Git revision without the local override:
locked workspace/all-targets Clippy, attested link conformance, and
bootstrap/gossip convergence all pass.
Advance Rumors to ce8f12c41fdb26bd0649a3c41c283a2351259416 after its
approved main merge. Its iterator adapters and derived cloning are
internal changes and require no Sush source changes.

Validated against the published Git revision without the local override:
locked workspace/all-targets Clippy, attested link conformance, and
bootstrap/gossip convergence all pass.
Advance Rumors to e24d9817423e45ddbc597afcbe7bface29b5eb1a after its
approved main merge. The path and prefix changes are internal and require
no Sush source changes.

Validated against the published Git revision without the local override:
locked workspace/all-targets Clippy, attested link conformance, and
bootstrap/gossip convergence all pass.
Advance Rumors to c5a3bf877d6e793499576e8daa277586e04dc2f9 after its
approved main merge. This adds internal tests and clarifies test helpers;
no Sush source adaptation is needed.

Validated against the published Git revision without the local override:
locked workspace/all-targets Clippy, attested link conformance, and
bootstrap/gossip convergence all pass.
Advance the Rumors Git pin and lockfile to published main after the owner-approved documentation and conformance-test cleanup. No Sush API adaptation is needed.

Validation without a local override: locked workspace/all-target Clippy; attested-link conformance and gossip convergence.
Use ten-second heartbeat sessions alongside change notifications and a one-second deadline for all wire exchanges. Wait for old drivers to stop before joining another network, and clarify bookmark ownership during migration.

Validated workspace Clippy and all seven gossip/attested-link integration tests against the published Rumors revision.
Advance the published Rumors dependency and lockfile without changing unrelated resolutions. Workspace Clippy and all gossip and attested-link integration tests pass against the Git dependency without a local override.
Pin Rumors to published main f4e2b1bb8efc89965a6d94ab84be7c12f8f8485d,
including the fix for bookmark recovery that could reuse versions.

Advance the Sush bookmark wrapper to version 1 and store the Rumors
format version alongside its opaque bytes. An older wrapper or an
incompatible Rumors record starts fresh bookkeeping, allowing subsequent
checkpoints instead of repeatedly failing during session startup. Pin
both wrapper layouts and test that incompatible records can be replaced.

Validation against the published Git dependency, without a path override:
formatting; native Helios workspace checking and Clippy for all targets;
bookmark, locker, and gossip-manager tests.
Request owned CBOR bytes so records larger than the decoder scratch buffer load completely. Keep the stored format unchanged and cover the failure with a large-record regression and the public Rumors Bookmark conformance suite.

Track published Rumors ce670e87. Validation without a local override: native Helios bookmark, format, locker, and gossip tests, plus workspace Clippy for all targets. Local formatting passes.
Advance to published Rumors b0d0abbb, including the frame-head EOF classification fix and expanded decoder properties. Preserve unrelated lockfile selections.

Validation: native Helios cargo nextest run --locked --workspace -E "test(bookmark::) | test(locker::) | test(format::)" (49 passed); cargo clippy --locked --workspace --all-targets -- --no-deps --deny warnings; local cargo fmt --check and locked fetch. The previously recorded lifecycle failures remain outside this focused pin-update run.
Advance to published Rumors c75a57b8, which strengthens tree-join tests and documentation without changing the API. Preserve unrelated lockfile selections.

Validation: native Helios cargo nextest run --locked --workspace -E "test(bookmark::) | test(locker::) | test(format::)" (49 passed); cargo clippy --locked --workspace --all-targets -- --no-deps --deny warnings; local cargo fmt --check and locked fetch. Previously recorded lifecycle failures remain outside this focused pin-update run.
Advance to published Rumors fa9a1f0e, which strengthens observer tests and comments without changing the API. Preserve unrelated lockfile selections.

Validation: native Helios cargo nextest run --locked --workspace -E "test(bookmark::) | test(locker::) | test(format::)" (49 passed); cargo clippy --locked --workspace --all-targets -- --no-deps --deny warnings; local cargo fmt --check and locked fetch. Previously recorded lifecycle failures remain outside this focused pin-update run.
Advance to published Rumors 7cb864cc, which strengthens retirement tests without changing the API. Preserve unrelated lockfile selections.

Validation: native Helios cargo nextest run --locked --workspace -E "test(bookmark::) | test(locker::) | test(format::)" (49 passed); cargo clippy --locked --workspace --all-targets -- --no-deps --deny warnings; local cargo fmt --check and locked fetch. Previously recorded lifecycle failures remain outside this focused pin-update run.
Advance to published Rumors a889c8fa, which strengthens session-accounting tests without changing the API. Preserve unrelated lockfile selections.

Validation: native Helios cargo nextest run --locked --workspace -E "test(bookmark::) | test(locker::) | test(format::)" (49 passed); cargo clippy --locked --workspace --all-targets -- --no-deps --deny warnings; local cargo fmt --check and locked fetch. Previously recorded lifecycle failures remain outside this focused pin-update run.
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