Skip to content

fix(session): complete descriptor-bound cleanup and live migration leases - #3596

Merged
Yeachan-Heo merged 87 commits into
devfrom
fix/windows-session-storage-drop-cleanup
Aug 1, 2026
Merged

fix(session): complete descriptor-bound cleanup and live migration leases#3596
Yeachan-Heo merged 87 commits into
devfrom
fix/windows-session-storage-drop-cleanup

Conversation

@Yeachan-Heo

@Yeachan-Heo Yeachan-Heo commented Jul 30, 2026

Copy link
Copy Markdown
Owner

Summary

This is the sole internal successor for the Windows/session runtime batch.

  • Finishes descriptor-bound, receipt-bound artifact payload cleanup for normal managed session deletion and replay, preserving exact identity/fencing and substituted successors.
  • Keeps a definitely live migration holder exclusive beyond the 60-second lease without timer-dependent self-fencing; expiry alone cannot steal from a live process, while explicit release or proven process death permits bounded successor acquisition.
  • Surfaces artifact_capacity_exceeded and migration_busy at bare-resume and normal startup through fixed path/content-redacted messages with no raw-cause interpolation or manual lock deletion.
  • Adds a Windows-routed two-owner lease/expiry/release/path-ABA regression and affected-CI wiring.
  • Refreshes the stale SDK issue references required by the aggregate rename gate.

Fixes #3538.
Addresses #3508; the issue remains open until post-merge exact-dev proof is attached.

Overlapping external attempts #3586, #3590, and #3555 remain independently dispositioned; this PR does not reuse their branches. PR #3565 is out of scope.

Security and liveness invariants

  • No pathname-only destructive fallback, raw unlink/rm, recursive cleanup, or lease inflation.
  • Lock ownership remains attemptId + descriptor/path identity bound.
  • A live holder whose event loop is starved cannot be reclaimed solely by wall-clock expiry.
  • Explicit release is durable authority for same-process succession; dead-owner reclaim remains fail-closed.
  • Capacity/busy output is fixed and redacted.

Exact-head verification

Head: 9e3f065b624a5bdd0f5e1333ac82eb0870b81ca9
Base: 29ddfe08f51039b1bf4e8e373ba06c68d7005d44

  • Pre-successor full bun run check at a347697cf — exit 0 (log SHA-256 50b5552da2565c62c954fbe26d7cb5de10199252228a9b618590c525076d8778); successor delta adds only current-dev reconciliation plus required Telegram/Discord/Slack native-authority generation bumps, verified by the comparative generation guard, 41 guard tests, 520 daemon tests, 85 affected-planner tests, focused session/delete tests, and coding-agent package check. Exact-head CI is the merge authority.
  • Managed lease Windows regression: 2 pass
  • Resume/startup error contract: 16 pass
  • Session-directory: 68 pass / 3 skip
  • Session-storage: 56 pass
  • ACP delete wire: 2 pass
  • Resident-cache red team: 9 pass
  • SDK broker: 55 pass
  • SDK broker lifecycle e2e: 60 pass
  • Native path identity: 20 pass / 2 skip
  • pi-natives: clippy -D warnings clean; nextest 175 pass
  • Affected CI planner: 85 pass
  • Coding-agent/natives package checks, SDK rename, native authority, schema and tooling gates clean

Review gate

Merge only after signed hostile review of this exact head reports P0/P1 = 0 and every required exact-head CI check is terminal green.


[repo owner's gaebal-gajae (clawdbot) 🦞]

Successor repairs after hostile review / CI

  • Replaced pathname rename/unlink of released locks with exact snapshot-bound native retirement; an interleaved successor-insertion regression proves the successor remains canonical.
  • Normalized raw lost-lock migration_busy release failures into the typed startup path, with a real lower-boundary strict-open regression.
  • Restored no-replace POSIX root detachment to the deterministic .removing sibling before descriptor-bound payload scrub/replay, fixing leaked LocalProtocol and fork staging roots while preserving substituted successors.
  • Current-dev base refreshed to 7e8701da8; comparative daemon generation guard remains green.

Exact-head P1 and shard-unhandled repair

  • Postmortem runtime-state persistence now treats ENOENT as benign only when the owning session root vanished during lock acquisition; deterministic lock-parent race coverage reproduces the failed shard interleaving.
  • Root-successor insertion after the final source revalidation is restored no-replace to canonical authority or surfaced as retained successor authority, never scrubbed.
  • Exact Windows replacement validates the staged source identity and digest twice before deleting the destination; source-substitution and success tests cover the four-identity API.
  • Tombstone-lock contention remains migration_busy through the managed scope and SDK surfaces; partial Windows artifact-tree replay accepts only a unique root-bearing subset at unchanged logical paths.
  • Hard-link count is rechecked after the final deterministic race seam immediately before payload mutation.
  • Native authority guard v29 now protects exact_replace_path / exactReplacePath, supports contract-bumped head-only authority expansion, and has regenerated source/declaration attestations.

Terminal authority successor

  • Exact Windows replacement now retains the verified staged source at a deterministic recovery name, revalidates both source and destination digests at the deletion boundary, and returns that retained authority on publish failure.
  • POSIX tree scrub revalidates size/mtime/digest/single-link evidence at the final mutation seam.
  • Windows partial replay normalizes deterministic nested child-quarantine names; managed deletion release loss is a typed busy result through both SessionManager callers.
  • Postmortem ENOENT suppression is bound to the exact session root and the test hook adds no production await boundary.
  • Broker cleanup receipts persist retained successor/placeholder/unknown authority and block transcript deletion until non-empty/unclassified retained authority is reconciled; empty internal placeholders are boundedly replayed and retained in evidence.
  • The required Windows job now runs path-identity-windows.test.ts whenever native authority or that test changes.

Windows compile successor

Both Windows jobs on 6ed344d85 failed at the same target-only compile boundary before any test: the retained source name used OsStr without importing it into the Windows module. The successor uses the ASCII string's intrinsic encode_utf16() and preserves the exact replacement authority contract unchanged. A local x86_64-pc-windows-gnu cargo check reached and typechecked the Windows module successfully; native/unit/package/generation gates remain green.

Final exact authority successor

  • Non-directory root successors are restored canonical no-replace or returned as retained successor authority.
  • The POSIX retained root namespace is revalidated after payload scrub and before any durable receipt.
  • Windows exact replacement reopens the retained staged source with write/delete sharing excluded and holds that handle through no-replace publication.
  • Broker receipts journal initial and every bounded-retry retained authority before the next effect; generic artifact/transcript pending serializers carry all retained fields; only lstat-confirmed ENOENT resolves successor/unknown authority.
  • Windows owner-only tests now accept exactly the two justified fail-closed pre-repair states (owner_mismatch or acl_verify_failed), then require apply/repair and exact verification success.

Exact hostile-review repair successor (9e3f065b6)

Closes the signed exact-84e36f71 P1 verdict: minimal-rights/final-rebind Windows ACL repair; single-link exclusive replace/unlink/restore/tree commits; typed managed-open release contention; cross-key broker cleanup receipt fencing; retained transcript authority and durable payload scrubbing; exact retained-root proof at transcript unlink; durable lifecycle/managed tombstone replay of scrubbed placeholders.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

Exact successor publication evidence for the sole Windows/session owner.

No merge authorization is claimed here. Required gates remain exact-head hostile review with P0/P1 = 0 and terminal green CI.


[repo owner's gaebal-gajae (clawdbot) 🦞]

@Yeachan-Heo
Yeachan-Heo force-pushed the fix/windows-session-storage-drop-cleanup branch from a347697 to 139cb9a Compare July 30, 2026 17:05
@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

Successor-head CI repair evidence.

  • Prior failed head: a347697cfe813abf7bd907dfa350d0e2a9dd329f
  • Failed run/job: https://github.com/Yeachan-Heo/gajae-code/actions/runs/30563132123 / https://github.com/Yeachan-Heo/gajae-code/actions/runs/30563132123/job/90941070425
  • Confirmed failure: protected native authority changed without strictly higher daemon generations.
  • Current dev base: 5570c351a402221ee9a918b18bdac44757ee1d26
  • Exact successor head: 139cb9a24a374e7c87c6d0f1ad08f0d7a6244151
  • Repair: Telegram generation 38; Discord and Slack generation 19; generated authority manifest refreshed.
  • Comparative guard: telegram-daemon-generation-guard: v28 required generation bump verified.
  • Focused evidence: generation guard 41/41; Telegram/chat daemon 520/520; affected planner 85/85; session lease/startup 18/18; ACP/resident deletion 11/11; coding-agent package check clean.

The prior workflow is not rerun or cancelled. Merge remains blocked on this successor head's terminal CI and fresh exact-head hostile review with P0/P1 = 0.


[repo owner's gaebal-gajae (clawdbot) 🦞]

@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

Hostile-review and CI-blocker repair transition.

Bounded repairs on the sole branch:

  1. Released/dead lock retirement now uses a captured no-follow snapshot plus native exactUnlink; a successor inserted after observation is never renamed or displaced.
  2. Lost-lock release now normalizes raw migration_busy at the SessionManager boundary so strict open, bare resume, and normal startup keep fixed redacted guidance.
  3. POSIX exact tree cleanup again no-replace detaches the verified root to <planned>.removing, revalidates the source after the race seam and the detached root before scrubbing, and updates replay tests/contracts. This fixes the four shard regressions: both LocalProtocol legacy migrations and both fork staging cleanup cases.

Current focused evidence:

  • prior CI regression files: 43/43
  • managed lock race: 3/3
  • full session-directory: 69 pass / 3 skip
  • ACP/resident: 11/11; SDK broker 55/55; lifecycle e2e 60/60
  • native POSIX 20 pass / 2 skip; pi-natives nextest 175/175; clippy -D warnings clean
  • coding-agent/natives package checks clean
  • comparative daemon generation guard v28 green

The failed workflow was not rerun or cancelled. Merge remains blocked on fresh exact-head hostile review and terminal CI with P0/P1 = 0.


[repo owner's gaebal-gajae (clawdbot) 🦞]

@Yeachan-Heo
Yeachan-Heo force-pushed the fix/windows-session-storage-drop-cleanup branch from cfa3bcd to a23b316 Compare July 30, 2026 19:12
@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

Exact-head CI/P1 repair transition.

The cfa shard's only primary failure was an unhandled postmortem ENOENT between recursive lock-parent creation and lock-directory creation after the test session root vanished. The successor ignores that error only when the session root is confirmed absent and has a deterministic boundary regression; transcript-viewer + resident-cache now pass 34/34 and sidecar 52/52 locally.

All confirmed hostile-review P1s were repaired on the sole branch:

  1. post-final-validation root successor restoration/retained-successor authority;
  2. exact replacement source identity + digest binding and Windows substitution coverage;
  3. final hard-link recheck at the mutation seam;
  4. native declaration/source guard expansion with contract v29 and regenerated attestations;
  5. tombstone-lock migration_busy propagation through managed and SDK types;
  6. unique-subset Windows partial artifact replay.

Current exact-head evidence includes native nextest 175/175, POSIX 20 pass/2 skip, session-directory 71 pass/3 skip, managed/startup regression matrix 59/59, coding-agent and natives package checks, guard 41/41, and comparative guard v29 green.

Run 30569723387 was not rerun or cancelled. Merge remains blocked on this new exact head's terminal CI and a fresh hostile review with P0/P1 = 0.


[repo owner's gaebal-gajae (clawdbot) 🦞]

@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

Terminal hostile-review repair transition.

All P1s from the a23 exact-head review were repaired on the sole branch: final destination/source/tree digest binding; deterministic source recovery authority; nested Windows child-quarantine replay; typed deletion release loss; exact-root postmortem suppression with an inert production hook; durable retained successor/placeholder/unknown broker receipts; and required Windows execution of path-identity-windows.test.ts.

Current exact-head local evidence:

  • pi-natives nextest 176/176; POSIX path identity 20 pass / 2 skip; clippy -D warnings clean
  • session-directory 72 pass / 3 skip; sidecar 53/53; managed/startup CI matrix 59/59
  • broker 55/55; broker lifecycle e2e 60/60; ACP/resident 11/11
  • CI planner 85/85; generation guard 41/41; coding-agent/natives package checks clean
  • comparative guard v29 green against base 23983ef4a

The prior a23 workflow was not rerun or cancelled. The independently owned current-dev ultragoal shard-5 failure is not absorbed into this branch. Merge remains blocked on this exact successor's terminal green CI and a fresh signed exact-head hostile verdict with P0/P1 = 0 / MERGE_READY.


[repo owner's gaebal-gajae (clawdbot) 🦞]

@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

Exact-head CI blocker confirmed for 6ed344d85b38d2609e54e77d37791c69ebb2ce5d in run 30578263640. Both Windows jobs fail at the same primary compile error: crates/pi-natives/src/path_identity.rs:5028 references undeclared OsStr (E0433), so native build exits 101 before the Telegram or dev:doctor regressions execute. Jobs: 90991963342, 90991963344. The existing Windows/session-runtime lane is the sole repair owner and has resumed on this branch; no workflow rerun/cancel and no duplicate lane. Merge remains blocked pending a successor, Windows-native verification, and fresh hostile exact-head review.


[repo owners gaebal-gajae (clawdbot) 🦞]

@Yeachan-Heo
Yeachan-Heo force-pushed the fix/windows-session-storage-drop-cleanup branch from 6ed344d to 6533308 Compare July 30, 2026 20:25
@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

Exact Windows compile repair transition.

Both jobs failed during the identical bun run ci:build:native step before test execution: Rust E0433 at path_identity.rs:5028 because OsStr was not in the Windows platform module scope. This is PR-local and not the separately owned dev ultragoal failure. The minimal repair replaces OsStr::new(...).encode_wide() with retained_name_string.encode_utf16(); the deterministic ASCII authority name and all source/destination identity/digest semantics are unchanged.

Current evidence:

  • cargo check -p pi-natives --target x86_64-pc-windows-gnu passed (a dummy libnode.dll only satisfied napi-build's cross-target presence probe; cargo typechecked the Windows module)
  • pi-natives nextest 176/176; clippy -D warnings clean
  • coding-agent/natives package checks clean
  • CI planner 85/85; generation guard 41/41; comparative guard v29 green against 9547ca6ae
  • managed/native focused regression matrix 43/43

Run 30578263640 was not rerun or cancelled. This successor is not merge-authorized; it stops at fresh exact-head CI plus independent hostile review.


[repo owner's gaebal-gajae (clawdbot) 🦞]

@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

Exact 65333080489816b37cd6cb85c2c4a9b10bd7445d Windows transition: native compilation is repaired, but job 90996694747 now exposes three contract failures in path-identity-windows.test.ts (lines 187, 205, 234). Each expected acl_verify_failed and received owner_mismatch. This may be a justified more-specific fail-closed result or an owner-resolution regression; expectations will not be changed without proving the authority contract. The existing Windows/session lane remains sole mutation owner and is incorporating this blocker with both Windows safety jobs and native/broker verification. No rerun, cancellation, merge, or duplicate lane.


[repo owners gaebal-gajae (clawdbot) 🦞]

@Yeachan-Heo
Yeachan-Heo force-pushed the fix/windows-session-storage-drop-cleanup branch from 6533308 to 84e36f7 Compare July 30, 2026 21:02
@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

Final native/broker/Windows authority transition.

The 6533308 Windows job compiled and exposed three test assertions where newly created objects were owned by the runner's enabled owner group. Native inspection correctly returned the more specific fail-closed owner_mismatch, not acl_verify_failed; apply/repair explicitly handles both states by setting the current user owner and protected owner-only DACL. The test contract now accepts only those two pre-repair classifications and still requires post-repair exact verification/content preservation.

The same successor closes the exact hostile-review authority gaps:

  1. regular-file/symlink root successors are rolled back canonical or retained as successor evidence;
  2. .removing namespace identity is rebound after scrub and before payloadDurable;
  3. retained Windows staged source is reopened with write/delete sharing excluded through publication;
  4. initial and every retry retained successor/placeholder/unknown path is durably journaled;
  5. generic artifact/transcript pending receipts carry retained authority, and lstat errors/dangling symlinks block transcript cleanup.

Current exact evidence:

  • pi-natives nextest 178/178; POSIX 20 pass / 2 skip; clippy clean
  • Windows GNU cross-target cargo check passed with the Windows module typechecked
  • broker 55/55; broker e2e 60/60; ACP/resident 11/11
  • coding-agent/natives package checks clean
  • CI planner 85/85; guard 41/41; comparative guard v29 green against d29864acd

Run 30579138896 was not rerun or cancelled. This exact head remains merge-blocked pending fresh terminal CI and independent hostile MERGE_READY review.


[repo owner's gaebal-gajae (clawdbot) 🦞]

@Yeachan-Heo Yeachan-Heo left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exact-head hostile review: REQUEST_CHANGES

Reviewed head: 84e36f71b45a989269108ffcf11500f6be8bee04
Base reviewed: d29864acd79ae4aa22bfdcbcd7022bc42411a9d3

P0: 0. P1 blockers:

  1. Windows ACL apply/expected/FD repair opens with WRITE_OWNER before distinguishing owner mismatch from DACL-only repair, denying repairable owner-correct objects; expected-path repair also lacks final pathname rebinding.
  2. Windows exactReplacePath does not reject hard-linked staged sources or destinations, so aliases can preserve/mutate bytes outside the exact replacement authority.
  3. Windows regular-file exactUnlink and exactRestore validate through permissively shared handles; a writer/hard-link can race after validation and survive the reported commit.
  4. Windows tree snapshot/removal does not reject hard-linked file children and holds file children with write/delete sharing through the digest-to-delete seam.
  5. openManagedCandidateForWrite can throw raw migration_busy from finally release instead of returning its declared typed result.
  6. Broker transcript cleanup omits returned retained transcript successor/placeholder/unknown authority from durable receipts and can bypass a transcript pending result at the planned path.
  7. A new delete idempotency key is not fenced behind an existing cleanup receipt for the same canonical target.
  8. Retained artifact proof is checked in broker space but not rebound at the transcript-unlink boundary; Windows transcript hard links are not rejected at the final native commit.

These are source-backed exact-head authority gaps despite terminal green CI. The branch must remain unmerged until a successor closes them, obtains a new exact-head run, and receives a fresh P0/P1-zero hostile review.


[repo owner's gaebal-gajae (clawdbot) 🦞]

@Yeachan-Heo
Yeachan-Heo force-pushed the fix/windows-session-storage-drop-cleanup branch from 84e36f7 to 9e3f065 Compare July 30, 2026 23:23
@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

Hostile-review repair transition.

Repairs all source-backed P1s from the exact 84e36f71 hostile verdict:

  • Windows ACL repair now inspects with READ_CONTROL | WRITE_DAC, adds WRITE_OWNER only for owner mismatch, and rebinds the expected pathname after mutation.
  • Exact replace rejects hard-linked source/destination authority; unlink/restore/tree regular-file commits exclude write/delete sharing and recheck link/content authority.
  • POSIX transcript cleanup descriptor-scrubs exact bytes durably before reconciling retained internal placeholders; lifecycle and managed tombstone receipts persist/replay that proof.
  • Managed open returns typed migration_busy across lost-lock release.
  • Broker journals retained transcript authority before bounded retries, fences new delete keys behind unresolved canonical cleanup receipts, and revalidates retained artifact proof at the transcript boundary.

Current exact local evidence after rebase:

  • pi-natives nextest 178/178; clippy -D warnings; Windows GNU cross-target typecheck
  • POSIX path identity 20 pass / 2 skip; natives package check clean
  • session-directory 73 pass / 3 skip
  • broker/storage 112/112; broker e2e 60/60; ACP/resident 11/11; sidecar/managed regressions 73/73
  • coding-agent package check clean; CI planner 85/85; generation guard 41/41 and comparative v29 green

No stale workflow was rerun or cancelled. This successor remains merge-blocked pending terminal exact-head CI and a fresh independent P0/P1-zero hostile verdict.


[repo owner's gaebal-gajae (clawdbot) 🦞]

@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

Windows owner-correct ACL fixture transition.

  • Failing exact head: 9e3f065b624a5bdd0f5e1333ac82eb0870b81ca9
  • Exact failure: run 30590379579, job 91031234060, log SHA-256 092b0caa8339b54034e31a031965117b867f1042e37be77aeb5d5971f0e263e5
  • Exact successor: 904cf541ec6768cc8370d531825589e50a90f6df
  • New exact-head CI: https://github.com/Yeachan-Heo/gajae-code/actions/runs/30591039888

The implementation compiled and all new hard-link/exclusive-handle cases passed. The sole failure was the owner-correct DACL fixture: its custom ACE omitted SYNCHRONIZE (and delete cleanup authority), so exact open failed with the generic fail-closed owner_mismatch mapping before ACL inspection. The fixture now grants S and D while still withholding WRITE_OWNER, and resets its ACL in finally. It continues to require the specific owner-correct acl_verify_failed pre-state followed by successful expected repair and exact verification.

Natives package check and CI planner 85/85 pass. The stale run was not rerun or cancelled. Fresh exact-head Windows CI and hostile review remain required.


[repo owner's gaebal-gajae (clawdbot) 🦞]

@Yeachan-Heo Yeachan-Heo left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exact-head hostile review: REQUEST_CHANGES

Reviewed head: 904cf541ec6768cc8370d531825589e50a90f6df
Base: 29ddfe08f51039b1bf4e8e373ba06c68d7005d44

P0: 0. P1: 10.

Native/Windows/POSIX:

  1. POSIX regular-file detach/restore does not reject multi-link authority.
  2. POSIX regular/tree scrub still has a final validation-to-truncate window where a link/write can race the destructive commit.

Managed cleanup:
3. A later transcript-pending attempt loses the immutable prior artifacts_removed attempt reference across crash/restart.
4. Durable replay unlinks any unbound zero-byte canonical/retained path by pathname, so an empty successor can be deleted.
5. Final completion exempts a retained artifact root by pathname after an earlier proof check instead of revalidating exact identity/tree at the completion boundary.

Broker/ledger:
6. Cross-key pending lookup uses lexical path.resolve equality, allowing Windows case/POSIX physical aliases to bypass the receipt fence.
7. Terminal replay uses existsSync; EACCES/EIO/sharing failures can be misclassified as ENOENT absence.
8. A cleanup receipt transitioned to terminal_uncertain is no longer indexed, allowing a new key to fresh-delete around unresolved retained bytes.
9. Replayed transcript deletion suppresses retained artifact identity/tree/detached fields, skipping the storage-bound final root revalidation.

CI:
10. The required Windows Telegram/native job lacks an exact CI_DEV_SOURCE_SHA post-checkout assertion even though its result is consumed as exact-head evidence.

The exact Windows fixture correction is sound, but this head remains unmergeable despite any green checks. A successor needs fresh exact-head CI and a P0/P1-zero review.


[repo owner's gaebal-gajae (clawdbot) 🦞]

@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

MERGE_READY verdict — terminal green on exact head 201333a.

Rebase: full 88-commit session/runtime chain replayed onto exact dev 381c534 (#3685 rustfmt/clippy lane included); generation collisions resolved by keeping upstream gen-39 (discord 21) and renumbering this lane to DAEMON_GENERATION=40 / discord 22-23 / slack 21-22; telegram generation manifest regenerated and guard-verified (42/42).

Failure attribution for dev 381c534 CI (run 30682322194): shard-3 sdk-machine-lifecycle-topology 4 failures + shard-6 AD-M/A/L-G07 session.delete forwarded 3 failures reproduced locally on pristine dev (session.delete on missing session returned ok:true broker_response instead of invalid_input). Same tests on this head: topology 7/7 pass, G07 dispositions 6/6 pass — this lane is the repair.

Verification matrix on 201333a: coding-agent check green; natives check green; session/broker/storage batch 815 pass 0 fail; sdk-broker-lifecycle-e2e 59/59; natives+scripts 159/159; telegram guard 42/42; cargo pi-natives 176 pass with 2 failures that also fail on pristine dev (pty/shell signal tests, environmental; dev fails a third path_identity test that this lane fixes).

Hostile review of successor receipts (BigInt-safe identity persistence + reconciliation): fail-closed, canonical u64 parsing bounded at U64_MAX, receipt pathname hex identity cross-checked against payload, reentrancy-guarded; no blocking findings.

CI: Dev CI run 30683386213 SUCCESS — 50 pass / 3 skipping / 0 fail; mergeStateStatus CLEAN.

@Yeachan-Heo
Yeachan-Heo merged commit f989a59 into dev Aug 1, 2026
53 checks passed
@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

OWNER_CONFIRMATION_REQUIRED

The lifecycle repair lane is terminally superseded by the merged PR state. This lane did not merge, close, reopen, force-push, or modify the repair branch.

Evidence:

  • GitHub PR fix(session): complete descriptor-bound cleanup and live migration leases #3596 is already closed and merged at 2026-08-01T04:33:41Z, with merge commit f989a597ffccbc5cbd6cb2de148bdc3934c80cf7 into base dev at 381c5346fc5e3917dba0b9e9ce22a2c83fddddf0. The API records merged head 201333a5ed7e5f7e712a9118678d05b344bace64.
  • git merge-base --is-ancestor f989a597ffccbc5cbd6cb2de148bdc3934c80cf7 origin/dev passed, and git diff --quiet f989a597ffccbc5cbd6cb2de148bdc3934c80cf7..origin/dev passed: the merged tree is exactly current origin/dev.
  • The lifecycle contract paths are byte-identical between the merged commit and the local repair head: managed session storage/manager/storage, native path/recovery authority, and focused session tests. The only local-head delta versus the merged tree is five current-dev daemon/pi-shell generation files: crates/pi-shell/src/process.rs, packages/coding-agent/src/sdk/bus/chat-daemon-control.ts, packages/coding-agent/src/sdk/bus/telegram-daemon-contract.ts, packages/coding-agent/test/notifications-telegram-daemon.test.ts, and scripts/telegram-daemon-generation-manifest.json.
  • Focused lifecycle/native/daemon validation: 917 passed, 47 skipped, 0 failed across 12 test files.
  • bun --cwd=packages/coding-agent run check: passed.
  • cargo check -p pi-natives -p gjc-sdk: passed.
  • bun scripts/telegram-daemon-generation-guard.ts --validate-current-tree: passed.
  • The aggregate bun run check:rs on this stale repair head fails only at the superseded local crates/pi-shell/src/process.rs:110 clippy question_mark diagnostic; the targeted lifecycle/native Rust check passes, and current origin/dev contains the merged current-dev cleanup.
  • RALPLAN Planner launch failed three times before planning could start with the same GJC product binding error: reviewSource must resolve to an active runtime-owned dispatch before task launch. Per owner instruction, no further Planner retry was attempted; this comment records the binding failure.

Disposition:

  • Exact merged-history supersession is proven; no rebase/reconstruction or source repair is warranted.
  • MERGE_READY is not asserted because the PR is already merged/closed and there was no post-push PR-check cycle in this lane.
  • REQUEST_CHANGES is not appropriate because no missing lifecycle repair remains.
  • Owner confirmation is required only for the already-merged/closed PR disposition; this lane leaves the stale repair branch untouched.


[repo owner's gaebal-gajae (clawdbot) 🦞]

@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

MERGE_READY

Exact reviewed PR head: 201333a5ed7e5f7e712a9118678d05b344bace64

Recorded base: dev at 381c5346fc5e3917dba0b9e9ce22a2c83fddddf0

Merged commit: f989a597ffccbc5cbd6cb2de148bdc3934c80cf7

Exact-head Dev CI run 30683386213 was terminal: 50 success, 3 intentionally skipped, 0 failure. The merged implementation resolves the admitted #3508/#3538 owner scope without weakening fail-closed authority: capacity/busy failures are typed and rendered as fixed operator guidance; live holders are not reclaimable from lease expiry alone; exact identity still fences replacement and cleanup; descriptor-bound cleanup remains pending rather than falsely succeeding when authority is absent.

Current dev is 732856b3ccb3fade6e9fbc17908a4fbca5a7682f, and the merge commit remains in its ancestry. Current Dev CI run 30935832940 passes the Windows dev:doctor/session-path job, coding-agent TypeScript build, and cleanup/session shards 1, 3, 6, and 7. Its primary failure is the unrelated shard-8 SDK operation-inventory mismatch; producer/aggregate failures cascade from that result.

This signs the exact-head review evidence. The PR is already merged; no merge, branch, CI, or release action is implied.

Signed: GJC / gaebal-gajae

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