Files
orca/src/main/daemon/daemon-errors.test.ts
T
Brennan Benson 81e7a2ddf7 fix(terminal): recover live panes after renderer restart (STA-3536) (#12776)
* fix(terminal): stop transient probe blips from erroring restored panes (STA-3536)

terminal_pane_owner_unverified fired for every restored pane whenever one
liveness probe answer went missing: a cold-start daemon draining an attach
stampede misses the 2s getSize deadline, and a wedged superseded daemon
(protocol upgrades leave them running) turns every unmapped fan-out probe
null forever.

- probePtyOwners now skips legacy daemons whose startup inventory listing
  succeeded: fresh sessions never route to them, so they provably don't own
  an unmapped id and one wedged zombie can't poison every pane's verdict.
- attachStablePaneOwner retries the probe over a short backoff ladder before
  surfacing unverified, so a single missed deadline resolves to a verdict.
- The renderer replaces the raw error code with actionable copy.

* fix(terminal): stop retrying definitive owner probes

* fix(terminal): recover live panes after renderer restart

* refactor(terminal): share owner resolution abort guard
2026-08-05 20:52:22 -07:00

21 lines
589 B
TypeScript

import { describe, expect, it } from 'vitest'
import {
DaemonProtocolError,
decodeDaemonResponseError,
SessionNotFoundError
} from './daemon-errors'
describe('decodeDaemonResponseError', () => {
it('types the exact legacy session-absence response', () => {
expect(decodeDaemonResponseError('Session not found: pty-1')).toBeInstanceOf(
SessionNotFoundError
)
})
it('keeps unrelated daemon failures non-authoritative', () => {
expect(decodeDaemonResponseError('proxy failed: Session not found: pty-1')).toBeInstanceOf(
DaemonProtocolError
)
})
})