Skip to content

refactor: unify Resolved*Range over ScanBounds<P> 4/5 - #27754

Merged
wlmyng merged 4 commits into
wlmyng/resolved-range-wire-semanticsfrom
wlmyng/resolved-range-unify
Aug 20, 2026
Merged

refactor: unify Resolved*Range over ScanBounds<P> 4/5#27754
wlmyng merged 4 commits into
wlmyng/resolved-range-wire-semanticsfrom
wlmyng/resolved-range-unify

Conversation

@wlmyng

@wlmyng wlmyng commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Description

Generalize ResolvedRange and ResolvedIntraTxRange over ScanBounds<P> as ResolvedScan<P>.

Test plan

No behavior change; the prior PRs' characterization and per-arm tests pass unchanged, and cargo check --workspace covers out-of-crate consumers of the removed twin types.

Release notes

  • Protocol
  • Nodes (Validators and Full nodes)
  • gRPC
  • JSON-RPC
  • GraphQL
  • CLI
  • Rust SDK

@wlmyng
wlmyng deployed to sui-typescript-aws-kms-test-env August 19, 2026 01:54 — with GitHub Actions Active
@vercel

vercel Bot commented Aug 19, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
sui-docs Ready Ready Preview Aug 20, 2026 11:05pm
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
multisig-toolkit Ignored Ignored Preview Aug 20, 2026 11:05pm
sui-kiosk Ignored Ignored Preview Aug 20, 2026 11:05pm

Request Review

@wlmyng
wlmyng force-pushed the wlmyng/resolved-range-unify branch from 7c04da7 to 1959b84 Compare August 19, 2026 05:19
@wlmyng
wlmyng deployed to sui-typescript-aws-kms-test-env August 19, 2026 05:19 — with GitHub Actions Active
@wlmyng wlmyng changed the title refactor: unify Resolved*Range over ScanBounds<P> refactor: unify Resolved*Range over ScanBounds<P> 4/5 Aug 19, 2026
@wlmyng
wlmyng force-pushed the wlmyng/resolved-range-unify branch from 1959b84 to d98f0b1 Compare August 19, 2026 05:26
@wlmyng
wlmyng deployed to sui-typescript-aws-kms-test-env August 19, 2026 05:26 — with GitHub Actions Active
@wlmyng
wlmyng force-pushed the wlmyng/resolved-range-unify branch from d98f0b1 to 48282aa Compare August 19, 2026 05:38
@wlmyng
wlmyng deployed to sui-typescript-aws-kms-test-env August 19, 2026 05:38 — with GitHub Actions Active
@wlmyng
wlmyng deployed to sui-typescript-aws-kms-test-env August 19, 2026 05:38 — with GitHub Actions Active
@wlmyng
wlmyng force-pushed the wlmyng/resolved-range-unify branch from 48282aa to a923475 Compare August 19, 2026 05:46
@wlmyng
wlmyng deployed to sui-typescript-aws-kms-test-env August 19, 2026 05:46 — with GitHub Actions Active
@wlmyng
wlmyng force-pushed the wlmyng/resolved-range-unify branch from a923475 to a4c6490 Compare August 19, 2026 06:24
@wlmyng
wlmyng deployed to sui-typescript-aws-kms-test-env August 19, 2026 06:24 — with GitHub Actions Active
@wlmyng
wlmyng deployed to sui-typescript-aws-kms-test-env August 19, 2026 06:24 — with GitHub Actions Active
@wlmyng
wlmyng marked this pull request as ready for review August 19, 2026 06:32
@wlmyng
wlmyng deployed to sui-typescript-aws-kms-test-env August 19, 2026 06:32 — with GitHub Actions Active
@wlmyng
wlmyng requested review from a team and nickvikeras August 19, 2026 06:32
wlmyng added 4 commits August 20, 2026 16:01
One record and one cursor-application body for both lanes: ResolvedScan<P>
with a three-function ScanPosition seam (from_tx, cursor_position,
resume_lo). resume_lo canonicalizes the dense u64 lane's Item cursor to its
inclusive successor, which keeps the generic emptiness lattice exact and
confines the +1/u64::MAX arithmetic to ScanBounds<u64>::to_range at the
store edge. Scalar callers read the store range via .range().
All four scalar endpoint resolvers use the same one-line resolve +
apply_cursor_bounds shape as events; with_range and the per-endpoint empty
branches are deleted (empties ride the total path — apply is identity on
them). Ride-along: scalar descending-empty records get the normalized
entry = terminal instead of the end-1 formula, matching the intra-tx lane;
wire-invisible since empty terminal frames never read entry.
Post-unify both lanes run the one ResolvedScan cursor-application body, so
scalar tests that only re-exercise it through the u64 seam duplicate their
intra-tx twins. Deleted the structural twins (before-arm tighten/fold/empty,
rejected no-ops, entry folds, crossed attribution, empty passthrough); kept
the lane-divergent scalar tests: resume_lo successor canonicalization,
raw-echo vs scan-start terminals, u64::MAX saturation, and the after/before
Item-offset asymmetry. The one twin-missing scenario (before-claim overriding
an eagerly written after terminal) is ported into
crossed_cursors_descending_attribution.
resolve() takes the scan window in position space and applies cursor bounds
itself; callers interpret their own row windows (the event lane via
IntraTxCoordinate::tx_window). The row-embedding hook (from_tx), tx_span, and
the unused ResolvedScan::empty_at are deleted. The remaining lane seam is
ScanCursor<P> on CursorToken — coordinate and resume_lo — since how cursors
read is the one thing the lanes actually disagree about.
@wlmyng
wlmyng force-pushed the wlmyng/resolved-range-unify branch from a4c6490 to d866e52 Compare August 20, 2026 23:01
@wlmyng
wlmyng deployed to sui-typescript-aws-kms-test-env August 20, 2026 23:01 — with GitHub Actions Active
@wlmyng
wlmyng deployed to sui-typescript-aws-kms-test-env August 20, 2026 23:01 — with GitHub Actions Active
@wlmyng
wlmyng merged commit 8fa8c75 into main Aug 20, 2026
83 of 119 checks passed
@wlmyng
wlmyng deleted the wlmyng/resolved-range-unify branch August 20, 2026 23:44
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