fix(tui): close resume handoff races

This commit is contained in:
NI0317
2026-07-24 12:58:53 +08:00
committed by ZiyaZhang
parent 2ae9f4fdf3
commit 54d986ed87
20 changed files with 375 additions and 76 deletions

View File

@@ -249,6 +249,13 @@ describe('SessionPersistenceJsonl: cross-process live leases', () => {
const inheritedClaim = await ctx.sessionPersistence.claimLive(inherited)
await inheritedClaim.release()
const reusedPid = SessionId('reused-pid')
const reusedPidPath = join(liveDir, `${encodeSegment(reusedPid)}.lock`)
await writeFile(reusedPidPath, JSON.stringify({ pid: process.pid, nonce: 'prior-incarnation' }))
await expect(ctx.sessionPersistence.isLive(reusedPid)).resolves.toBe(false)
const reusedPidClaim = await ctx.sessionPersistence.claimLive(reusedPid)
await reusedPidClaim.release()
await expect(ctx.sessionPersistence.claimLive(SessionId('x'.repeat(300))))
.rejects.toThrow()