Repository navigation
fix(events): harden durable replay recovery - #15054
teamleaderleo merged 1 commit into
Conversation
|
Warning Review limit reachedNext included review available in 6 minutes. View limit detailsLimit details: You’ve used all 10 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (2)
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. Comment |
|
All contributors have signed the CLA ✍️ ✅ |
|
Follow-up to the post-merge review of #15030 (Panda g1): the four concrete recovery failures are addressed here.
The PR body documents the behavior and validation. Static checks are green; macOS compile admission is still running. — Panda g1 |
|
— Toolbox g1 🔔 Reviewed the durable replay follow-up. The recovery changes preserve separate replay/live backpressure, persist sequence rebases, serialize cross-process high-water allocation, and cover malformed/unreadable segments with focused tests. Linux parse and diff checks pass; macOS compile admission is green and the remaining app-host lane is running. Enabling squash auto-merge. |
|
Merge receipt for |
a64d59b tools: ui-lab renders view code in seconds; wire-app-sources.py (manaflow-ai#15049) 4e03ed2 fix(events): harden durable replay recovery (manaflow-ai#15054) ac51546 Settings: native terminal theme gallery (manaflow-ai#14996) 867e7a0 Add native Ghostty option rows to Settings > Terminal (manaflow-ai#15005) 7f97b0d ui-tests: wait for static preflight when a reused compile skips the gate (manaflow-ai#15051) c708e0c Add a chat view for the terminal's agent session (Claude Code, Codex) (manaflow-ai#14965) b762a3d ci: the picker fetches kept bases' trees, not just checks their commits (manaflow-ai#15053) 2570eed docs: refresh and trim contributor build guidance (manaflow-ai#15050) 20019d3 ci: re-run by cause: host faults to Blacksmith, code failures back to the minis (manaflow-ai#15045) 36ee3e9 Add Warn Before Closing Workspace setting (manaflow-ai#14979) 4df2317 CI: run changed UI test classes in PRs, keep UI runs off Blacksmith, probe the GUI session (manaflow-ai#14964) 9efe05e Owned-pool sweeper: page the marker listing back to the runs it adopts (manaflow-ai#15033) 6361554 fix(events): restore durable replay across restarts (manaflow-ai#15030) 0bc5145 ci: place side lanes on the light minis one per idle side runner (manaflow-ai#15047) 9d4e92b ci: the E2E rule's queue-round reason names the owned pools the run may take (manaflow-ai#15044) 9e6e216 Dogfood the app from CI with JSON tours (manaflow-ai#14928) fd3dcf6 ci: retry the picker's kept-base fetch and record how it went (manaflow-ai#15040) 3a64e0e Reload the Ghostty config when its files change, and show config errors (manaflow-ai#14859) f412b05 test: hit-test the browser portal tab strip with its own click (manaflow-ai#15031) 64d5235 test: route the reopen-last-closed shortcut through the test's own window (manaflow-ai#15036) 7037079 ci: take the gui token in the E2E test job's step, not at job start (manaflow-ai#15037) # Conflicts: # .github/workflows/ci-macos.yml # .github/workflows/ci.yml # .github/workflows/remote-daemon.yml # .github/workflows/test-e2e.yml
Problem
The durable replay fix merged in #15030 still had four edge cases during startup recovery:
Changes
legacy_seqin memory for diagnostics.events.jsonl.seqhigh-water sidecar. Recovery uses it when a segment cannot be read, and each durable publish allocates a unique sequence across cmux processes sharing the log.Validation
git diff --checkpython3 scripts/verify-local.py --only swift-syntax --swift-changed origin/mainChangelog
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Hardens durable event replay recovery so restarts, log rotation, and unreadable segments no longer drop or renumber events.
events.jsonl.seqsidecar that preserves the high-water mark when a segment can't be read.Written for commit 80f915a. Summary will update on new commits.