Files
orca/tests/e2e/helpers/remote-terminal-source-range-contract-fixture.ts
T
JinjingandOrcaWin 5f7807497e feat(ssh): bound relay PTY output end to end (#11005)
* docs: design SSH relay PTY backpressure

* fix(ssh): bound relay frame decoding

* fix(relay): bound PTY output publication

* fix(ssh): bound PTY model admission

* fix(ssh): settle closed model admissions

* feat(ssh): negotiate bounded PTY consumer sessions

* fix(ssh): fence exit on renderer settlement

* feat(ssh): track PTY source credit end to end

* fix(ssh): recover bounded PTY output across reconnect

* feat(ssh): complete relay PTY output backpressure

* fix(ssh): close final PTY source credit races

* docs(ssh): record final backpressure validation

* feat(ssh): complete relay PTY source-credit lifecycle

* test(ssh): complete provider notification fixture

* fix(ssh): preserve terminal source credit across rotation

* fix(ssh): fail closed on recovery cancellation

* fix(ssh): prioritize mux control writes after drain

* fix(ssh): retire canceled relay restore deliveries

* fix(ssh): order exit cancellation cleanup

* fix(ssh): gate provisional source activation

* test(ssh): register mux drain-priority coverage

* fix(ssh): type stale owner recovery mismatches

* fix(ssh): close projection replacement races

* fix(relay): contain streaming edge failures

* fix(ssh): secure relay endpoint credentials

* docs(ssh): reconcile final backpressure lifecycle

* fix(ssh): bound main IPC output lifecycle

* fix(ssh): close recovery ownership gaps

* docs(ssh): record exact artifact validation

* fix(ssh): reject reclaimed snapshot replacements

* fix(ssh): fence model admission across reconnect

* fix(ssh): contain migration failure per PTY

* docs(ssh): record final exact-head validation

* test(ssh): align deploy fixtures with credential publication

* feat(ssh): add per-target bounded output setting

* fix(ssh): close source recovery review gaps

* fix(ssh): latch source credit environment override

* feat(ssh): make PTY source credit the default

* docs(ssh): record always-on relay validation

* docs(ssh): bind validation to current main

* test(ssh): grant source credit in IPC fixture

* test(ssh): grant source credit in fake relay

---------

Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-07-29 17:03:15 -07:00

61 lines
2.0 KiB
TypeScript

import type { TerminalOutputSourceRange } from '../../../src/shared/terminal-output-source-range'
import { TerminalSourceRangeLedger } from '../../../src/main/runtime/rpc/terminal-source-range-ledger'
export type RemoteTerminalContractTopology = 'headed-desktop-server' | 'headless-serve'
export function createRemoteTerminalSourceRangeContractFixture(
topology: RemoteTerminalContractTopology
) {
const settled: TerminalOutputSourceRange[] = []
const transferred: TerminalOutputSourceRange[] = []
let generationCounter = 0
let active:
| {
generation: string
ledger: TerminalSourceRangeLedger
}
| undefined
return {
topology,
evidence: 'deterministic-contract-fixture' as const,
hostPtyIdentity: 'host-owned-pty',
connect() {
const generation = `${topology}:stream:${++generationCounter}`
active = { generation, ledger: new TerminalSourceRangeLedger(generation) }
return generation
},
accept(encodedBytes: number, ranges: readonly TerminalOutputSourceRange[]) {
const displayLength =
ranges.length > 0 ? ranges.at(-1)!.displayEnd - ranges[0]!.displayStart : 0
return active?.ledger.accept(encodedBytes, displayLength, ranges) ?? null
},
acknowledge(generation: string, ackedEndByte: number) {
if (!active) {
throw new Error('remote_terminal_fixture_disconnected')
}
const result = active.ledger.acknowledge(generation, ackedEndByte)
if (result.status === 'accepted') {
settled.push(...result.settled)
}
return result
},
detach() {
if (!active) {
return
}
const transfer = active.ledger.beginTransfer()
transferred.push(...transfer.frames.flatMap((frame) => frame.sourceRanges))
transfer.commit()
active = undefined
},
snapshot() {
return {
settled: settled.slice(),
transferred: transferred.slice(),
active: active?.ledger.getDebugSnapshot() ?? null
}
}
}
}