Skip to content

D-TGL-PUB step 3: G10 × G11 publication lab, falsifiers L1–L6; post-merge record for #1925 - #1926

Merged
AdaWorldAPI merged 4 commits into
mainfrom
claude/clone-repositories-71a5sw
Nov 2, 2026
Merged

AdaWorldAPI merged 4 commits into
mainfrom
claude/clone-repositories-71a5sw

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

Summary

This is step 3 of g10-g11-atomic-publication-lab-v1.md (D-TGL-PUB), the last lab step. It also carries the post-merge record for #1925, which merged at 03481f98b, before these commits. The branch merges current main and rewrites no history.

Lab only: there is no production land, no ThoughtCommitId or DurableRef (EXO-148 stays locked), and no Lance.

crates/lance-graph-codegraph/src/graph/publication.rs (#[cfg(test)])

A branch revises one Codegraph source and carries DT64 route intents. It lands in the G10 order:

  1. Prepare. prepare_refresh plus BindStore::check_route.
  2. Durable commit through the lab WalSink. The land record is the source plus the route intents. It carries no positions and no RouteVersion, because W0 assigns both when it publishes.
  3. Infallible publication. commit_refresh, then route, then the watermark.

Recovery reads land records from the durable image above the watermark, in canonical cycle order. The record codec refuses truncated or padded bytes.

# result
L1/L5 prepare and discard leave the Codegraph snapshot, RouteVersion, routed_at(P) and claimed unchanged
L2 Fenced publishes nothing; the branch lands after re-preparing against the new head
L3 after a crash between the durable commit and publication, recovery restores exactly the confirmed state: clean-open equality, RouteVersion +1, P → C1
L4 a second recovery changes nothing
L6 a rebuild from the base, with reversed physical order, equals the live state

Test Plan

Disable runs. Each turns its test red at the intended assertion, checked from the panic text, not the line number:

  • Eager route in prepare turns L1, L2 and L3 red.
  • Publishing before the durable commit: the L2 assertion "nothing published" fails.
  • Reading records from scan_sealed: recovery fails with "land record in the durable image".
  • Dropping the watermark: the Codegraph snapshot stays equal (digest skip), while RouteVersion goes from 1 to 2. That is the predicted non-idempotence of route, now measured.
  • Dropping the canonical sort: cycle 2 replays first, then the watermark skips cycle 1. The record is lost, not merely reordered: RouteVersion is 1 and only P → C2 is applied.
    • So physical-order replay combined with a watermark loses data silently.

Results:

  • codegraph suites green (17 lib tests); clippy -D warnings and fmt clean.
  • Board gates pass: entries index, append-only, supersession index, citation decay.

Limits:

  • The lab's prepare takes &mut only so the L1 disable can call route. A production prepare should take &self.
  • The in-memory WalSink has no 512-byte ABI.
  • Lab results satisfy no production gate.

Not to be merged automatically.


Generated by Claude Code

…p 3)

A branch revises one Codegraph source and carries DT64 route intents. It
lands in the G10 order: prepare (prepare_refresh + check_route), durable
commit through the lab WalSink, then an infallible publication. Recovery
reads land records from the durable image above a watermark, in canonical
cycle order. L1/L5 prepare and discard change nothing; L2 Fenced publishes
nothing; L3 recovery after a crash before publication restores exactly the
confirmed state; L4 a second recovery changes nothing; L6 a rebuild replays
every record once in canonical order. Lab only; EXO-148 stays locked.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X6y3drwKSE2zSgoexheLFX
…cal-order replay with a watermark loses records

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X6y3drwKSE2zSgoexheLFX
@coderabbitai

coderabbitai Bot commented Nov 2, 2026

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: babb4a30-1514-4be7-b450-b0adcd0e36b4
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-02T15:27:48.217128Z 5e262e9 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@AdaWorldAPI
AdaWorldAPI merged commit ade765d into main Nov 2, 2026
13 checks passed
AdaWorldAPI pushed a commit that referenced this pull request Nov 2, 2026
Hygiene-only: records the merge of #1926 in PR_ARC_INVENTORY and
LATEST_STATE. Per the CLAUDE.md termination clause this commit's own
merge needs no further record.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X6y3drwKSE2zSgoexheLFX
AdaWorldAPI added a commit that referenced this pull request Nov 2, 2026
…1a5sw

D-DT64-AUTH: method-authority census with a two-way ratchet; post-merge record for #1926
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