Skip to content

fix: reject incompatible UnivMon update modes on restore - #620

Closed
zzylol wants to merge 1 commit into
feat/univmon-runtimefrom
fix/univmon-standard-state-admission
Closed

zzylol wants to merge 1 commit into
feat/univmon-runtimefrom
fix/univmon-standard-state-admission

Conversation

@zzylol

@zzylol zzylol commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Restored UnivMon states must use the same update mode as the backend accumulator. Valid terminal-mode sketchlib bytes otherwise pass decoding but are incompatible with subsequent standard updates and merges.

Use sketchlib's public compatibility accessor at the accumulator decode boundary, before publishing or updating the reconstructed state. The check reuses the library contract rather than duplicating its wire format.

Before this PR: a terminal-mode state could enter the standard accumulator.

After this PR: decoding rejects it; standard and reset-empty states remain accepted.

Verification: five focused backend tests pass, including terminal rejection, empty reset, serialization, merge and four catalog-bound readouts. Tested in isolated sibling checkouts against ProjectASAP/asap_sketchlib#139 commit c0de315; the shared library checkout was not changed.

Draft, stacked on #617. Requires sketchlib #139, whose CI is green but GitHub review is still required. This branch cannot pass ordinary main-library CI until that dependency is merged. No performance claim.

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