Skip to content

Recover stale journal date cursors without losing same-day pages - #140

Merged
RCmerci merged 3 commits into
mainfrom
devin/1793109130-timeline-date-recovery
Oct 28, 2026
Merged

RCmerci merged 3 commits into
mainfrom
devin/1793109130-timeline-date-recovery

Conversation

@RCmerci

@RCmerci RCmerci commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Journal writes can invalidate an in-flight timeline date continuation. Recover the current Root_dates scan with at most two cursorless reads, resuming inclusively at its oldest observed date. Deduplicate already observed UUIDs on that boundary date without dropping unseen same-day pages. Preserve the loaded prefix, remaining root quota, generation ownership and strict Overlay cursor validation.

Add one public Production_runtime regression covering replay, same-day UUIDs, retry exhaustion and superseded scans, with red/green verification.

Validation

  • dune build @all app/native_embed.exe.o, dune runtest --force, and git diff --check passed on ffd787c839aa9ae9645d0f2aada097b94fc1d8b6.
  • Real iOS 26.5 Simulator, authorized ocaml-sync-test graph: baseline/control captures reproduced staleReadCursor / listTimelineDates in 3/3 attempts; patched captures did not reproduce it in 3 attempts. Final two cycles verified immediate post-capture/append state, task status, refresh/history and restart persistence. All four exact test-owned subtrees were cleaned up; final App diagnostics Current/Ready/Open, zero outbox.
  • spec-dev-tool and ocamlformat unavailable in the prepared environment; those checks are not claimed.
  • Source-bound experimental host-restamped App, cross_abi_validated=false; no physical-device, macOS or independent server-readback claim.

Unresolved observation

The first patched run recorded a separate invalidRequest / graphRequest / admission without a request ID. It did not recur in one header-only control or the final two patched cycles. Neither its cause nor its resolution is established; this PR does not claim to fix it or establish an all-green product result.

Final Simulator evidence

Doing + appended child Done + appended child
Doing Done

Link to Devin session: https://app.devin.ai/sessions/ebe2c4b314574e34af37fb03fa521c1a
Open in Devin Desktop: https://app.devin.ai/desktop/session/ebe2c4b314574e34af37fb03fa521c1a?variant=devin
Requested by: @RCmerci

@devin-ai-integration

Copy link
Copy Markdown
Contributor

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 27, 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-10-27T15:06:57.369513Z ffd787c 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.

@RCmerci
RCmerci merged commit c0722c2 into main Oct 28, 2026
2 checks 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