From bd89afa3b0a103d9eb7d6575ea28b1151c3a7907 Mon Sep 17 00:00:00 2001 From: Jinwoo-H Date: Sun, 23 Aug 2026 19:21:09 -0400 Subject: [PATCH] test: reproduce unverifiable daemon owner loss --- .../daemon/daemon-session-owner-resolution.test.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/daemon/daemon-session-owner-resolution.test.ts b/src/main/daemon/daemon-session-owner-resolution.test.ts index 55dc6142658..6b02c4a9d2d 100644 --- a/src/main/daemon/daemon-session-owner-resolution.test.ts +++ b/src/main/daemon/daemon-session-owner-resolution.test.ts @@ -378,6 +378,17 @@ describe('DaemonSessionOwnerResolver', () => { await expect(resolver.probe('session')).resolves.toBe(true) }) + it('does not let a replacement daemon report a historical owner session exited', async () => { + const replacement = provider(async () => []) + replacement.probePtyLiveness = vi.fn(async () => false) + const resolver = new DaemonSessionOwnerResolver([replacement], new Map()) + + await expect(resolver.probe('session-owned-by-unregistered-daemon')).resolves.toBe(null) + expect(replacement.probePtyLiveness).toHaveBeenCalledExactlyOnceWith( + 'session-owned-by-unregistered-daemon' + ) + }) + it('fails closed when duplicate owners cannot be disambiguated', async () => { const first = provider(async () => [{ id: 'session', cwd: '', title: 'first' }]) const second = provider(async () => [{ id: 'session', cwd: '', title: 'second' }])