You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Add durable trusted pre-merge rebase foundation - #136
add the F3 trusted local rebase engine with one-to-one commit mappings and byte-exact checkout verification
persist exact rebase/process-group ownership and recover interrupted work before startup proceeds
preserve cancellation, deadline, cleanup, and provenance state across the Store, production wiring, and recovery path
This is the first reviewable slice of issue #22. It is intentionally local-only. F4-F6 remain in #22: foreign-conflict resolution, attribution/approval refresh, plan cmd: checks, remote push/check refresh, and guarded merge handoff.
local real-Docker run — blocked by an unresponsive local Docker daemon; exact-head CI is the merge gate for real-Docker
exact-head GitHub CI — both standard jobs passed (4m23s, 3m54s); real-Docker passed (16m38s)
Review rounds
Twelve fresh independent high-effort rounds converged on this exact head. Findings fixed across the loop include process/recovery ownership, cleanup and deadline preservation, checkout fidelity, fail-closed process scans, ignored tracked files, gitlinks, raw path handling, verifier scaling/transport bounds, complete mapping provenance, exact retained-ref recovery, absent-ref idempotency, pre-write intended-result ownership, same-head create refusal, empty-history target binding, trusted Git executable resolution, cleanup-only marker ownership, kernel-backed process identity, subprocess environment isolation, monotonic signal-settlement bounds, and the Linux rejection-test observation race. No findings were declined.
The full-PR round reviewed the complete production diff and documentation at 58ff11a, traced identity/platform fallback, ESRCH/EPERM handling, schema v16 migration, ref deletion, Git pinning, cleanup settlement, and compare-and-swap paths, and returned no actionable findings. Exact-head Linux CI then showed that the expected bounded-settlement rejection was observed only after fake time advanced, briefly surfacing it as unhandled despite 1,746 passing tests. 9b28695 attaches the rejection assertion synchronously before timer advancement; the final focused independent round reviewed that test-only delta and returned no findings.
Copilot produced six valid inline findings across prior rounds. All are fixed, replied to, and resolved: retained refs reject reused attempt IDs and use atomic creation/exact-value cleanup; Store validates mapping endpoints including empty history; recovery deletion is bound to durable exact ownership; the Linux process scan runs in a killable subprocess inside the overall deadline; checkout verification and all rebase Git calls share one trusted absolute executable; and recovery requires exact kernel-backed process ownership at each signal boundary. The fresh exact-head Copilot round completed at 2026-10-06 20:04:51 UTC with no findings.
Review-lesson audit
All findings are covered by existing repository rules for lifecycle ownership, exact process settlement, monotonic bounded cleanup, fail-closed scans, explicit allowlisted subprocess environments, trust-root validation, external identity, persisted lifecycle-field validation, byte-exact agent-controlled paths, and failing-before/passing-after race regressions. No new AGENTS.md rule was added because it would duplicate those existing rules.
Synchronous Linux scan can exceed the overall startup deadline
runner/recovery.ts:313
The Linux branch cannot enforce the advertised overall deadline because the scan and every path resolution are synchronous; the clock is checked only between calls. In particular, realpathSync follows each same-UID process's cwd/FD target, so a stalled FUSE or network-backed target can block startup indefinitely past 15 seconds. Run this scan in a killable worker/subprocess with the deadline covering its settlement, as the lsof branch does.
Copilot round 2 summary-only finding is fixed in 28473fa: the synchronous Linux /proc open-file walk now runs in an owned Node subprocess, with its timeout plus process-group and pipe settlement inside the existing overall recovery deadline. The regression asserts the subprocess boundary, stdin path transport, child budget, and fail-closed overall timeout.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This is the first reviewable slice of issue #22. It is intentionally local-only. F4-F6 remain in #22: foreign-conflict resolution, attribution/approval refresh, plan
cmd:checks, remote push/check refresh, and guarded merge handoff.Validation
Validated head:
9b286956d3ea2cc4785681d5616e32bed4ea7375npm test -- --project parallel— 69 files, 1,744 tests passed, 1 Linux-only test skipped on macOSnpm run typecheck— passedgit diff --check— passed4m23s,3m54s); real-Docker passed (16m38s)Review rounds
Twelve fresh independent high-effort rounds converged on this exact head. Findings fixed across the loop include process/recovery ownership, cleanup and deadline preservation, checkout fidelity, fail-closed process scans, ignored tracked files, gitlinks, raw path handling, verifier scaling/transport bounds, complete mapping provenance, exact retained-ref recovery, absent-ref idempotency, pre-write intended-result ownership, same-head create refusal, empty-history target binding, trusted Git executable resolution, cleanup-only marker ownership, kernel-backed process identity, subprocess environment isolation, monotonic signal-settlement bounds, and the Linux rejection-test observation race. No findings were declined.
The full-PR round reviewed the complete production diff and documentation at
58ff11a, traced identity/platform fallback, ESRCH/EPERM handling, schema v16 migration, ref deletion, Git pinning, cleanup settlement, and compare-and-swap paths, and returned no actionable findings. Exact-head Linux CI then showed that the expected bounded-settlement rejection was observed only after fake time advanced, briefly surfacing it as unhandled despite 1,746 passing tests.9b28695attaches the rejection assertion synchronously before timer advancement; the final focused independent round reviewed that test-only delta and returned no findings.Copilot produced six valid inline findings across prior rounds. All are fixed, replied to, and resolved: retained refs reject reused attempt IDs and use atomic creation/exact-value cleanup; Store validates mapping endpoints including empty history; recovery deletion is bound to durable exact ownership; the Linux process scan runs in a killable subprocess inside the overall deadline; checkout verification and all rebase Git calls share one trusted absolute executable; and recovery requires exact kernel-backed process ownership at each signal boundary. The fresh exact-head Copilot round completed at 2026-10-06 20:04:51 UTC with no findings.
Review-lesson audit
All findings are covered by existing repository rules for lifecycle ownership, exact process settlement, monotonic bounded cleanup, fail-closed scans, explicit allowlisted subprocess environments, trust-root validation, external identity, persisted lifecycle-field validation, byte-exact agent-controlled paths, and failing-before/passing-after race regressions. No new
AGENTS.mdrule was added because it would duplicate those existing rules.Part of #22.