Skip to content

Validate immutable publication against every consumed input - #664

Merged
zzylol merged 4 commits into
mainfrom
feat/maintenance-cohort-publication
Sep 11, 2026
Merged

zzylol merged 4 commits into
mainfrom
feat/maintenance-cohort-publication

Conversation

@zzylol

@zzylol zzylol commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Why

A multi-input immutable output must not commit after any consumed source changes lifetime, or reuse a receipt that omits an input.

What

Extend existing publication and recovery to validate an entire frozen cohort, and hash canonical complete input lineage.

How

Hold admission and instance guards across all-source validation, existing target registration, and the durable transaction. Registration reuses the existing index helper. Multi-input lineage includes definition, SID, group, generation, window bounds, payload, and program identity in canonical order. Existing single-input receipt bytes remain compatible.

Before this PR

Publication validated one source; recovery did not validate source lifetime.

After this PR

The storage transaction can reject a cohort when its second source expires, including recovery. Current production execution still supplies one source until multi-frontier scheduling is enabled.

Verification

97 storage index tests passed after the registration/guard change. 11 maintenance runtime tests passed after lineage changes, including canonical ordering and second-input mutations. Source review identified and closed the registration lock gap; no concurrent interleaving test is claimed.

Limits

This does not yet enable multi-frontier DAG execution, shuffle completeness, continuous watermarks, or sliding scheduling. The initial publication guard holds the instance write lock through persistence; finer lock granularity is separate work.

@zzylol
zzylol changed the base branch from feat/maintenance-input-cohort to main September 11, 2026 18:36
@zzylol
zzylol marked this pull request as ready for review September 11, 2026 18:36
@zzylol
zzylol merged commit ce2405a into main Sep 11, 2026
1 check passed
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