Skip to content

fix(mst2): fail closed for native merge writer - #36

Merged
genedna merged 19 commits into
fix/mst2-verified-projection-recordsfrom
fix/mst2-native-head-merge-guard
Oct 6, 2026
Merged

genedna merged 19 commits into
fix/mst2-verified-projection-recordsfrom
fix/mst2-native-head-merge-guard

Conversation

@Ivanbeethoven

@Ivanbeethoven Ivanbeethoven commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

When native MST/2 publication is enabled, reject unsupported Merge operations before they modify business rows. The covered trunk Push path commits operation receipts, native certificates and outbox entries atomically. Resolve uses one captured root/tree/sequence/epoch token while another publication commits.

Storage, replay, stale-token, namespace and real writer regressions retain their assertions. The API write fixture verifies that its actual Linux child owns the kernel LISTEN socket before accepting TCP readiness; real socket cases accept an owned listener and reject a connectable foreign listener. Child exit diagnostics, the 90-second bound and Git clone/commit-subject assertions remain enforced.

Validation at 17be89d204e3d3dbce0d6a94550f2fa579aff794: complete Linux repository gates passed formatting, strict all-target/all-feature Clippy, both builds, isolated test dependencies, the complete repository tests and cleanup. Across 18 targets, 2,246 tests passed, none failed and two existing tests remained ignored; the library passed 2,023 tests. All 66 source-selected regression results were individually verified, including both kernel listener readiness cases. Two independent source reviews passed. Local HEAD, the upstream branch and the PR head match; there are no review threads.

Complete Merge/Attach/Detach/Import/Web publication coverage remains separate work. No benchmark or deployment result is claimed.

@Ivanbeethoven
Ivanbeethoven marked this pull request as draft October 5, 2026 02:22
# Conflicts:
#	src/callisto/mst2_publication.rs
#	src/jupiter/migration/mod.rs
#	src/jupiter/service/push_queue_service.rs
#	src/jupiter/storage/mod.rs
#	src/jupiter/storage/mst2_publication_storage.rs
#	src/jupiter/storage/mst2_publication_tests.rs
@Ivanbeethoven
Ivanbeethoven marked this pull request as ready for review October 5, 2026 03:53
Ivanbeethoven and others added 3 commits October 5, 2026 18:13
* fix(mst2): make retention acquisition atomic

Protect snapshot retention roots and edges with one validated commit, reject DELETING references, and propagate lease lifecycle failures.

* feat(mst2): add durable retention GC schema

Add SeaORM retention entities and a forward migration for incoming reference counts and idempotent GC operation replay.

* test(mst2): include retention migration in ordering check

* fix(mst2): bound JSON body reads and preserve typed rejections

* fix(mst2): reject duplicate JSON keys including null and escapes

* feat(mst2): add atomic PostgreSQL retention repository

* fix(mst2): remove obsolete body extractor import

* test(mst2): account for integrated native and retention migrations

* fix(mst2): repair native publication compile gates

* test(mst2): require successful bounded-input lease fixture registration

* test(mst2): seed retention migration timestamps

* test(mst2): seed legacy retention edge timestamps

* test(mst2): assert the GC receipt completion constraint
@Ivanbeethoven
Ivanbeethoven marked this pull request as draft October 5, 2026 17:26
@Ivanbeethoven
Ivanbeethoven marked this pull request as ready for review October 5, 2026 19:06
@genedna
genedna merged commit d9c5e4b into fix/mst2-verified-projection-records Oct 6, 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.

2 participants