mirror of
https://github.com/stablyai/orca.git
synced 2026-09-23 08:02:31 +00:00
* 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>
48 lines
1.7 KiB
TypeScript
48 lines
1.7 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import type { TerminalOutputSourceRange } from '../../../src/shared/terminal-output-source-range'
|
|
import {
|
|
createRemoteTerminalSourceRangeContractFixture,
|
|
type RemoteTerminalContractTopology
|
|
} from './remote-terminal-source-range-contract-fixture'
|
|
|
|
function sourceRange(): TerminalOutputSourceRange {
|
|
return {
|
|
id: 'pty-1',
|
|
spanId: 'span-1',
|
|
providerGeneration: 8,
|
|
clientGeneration: 5,
|
|
ownerGeneration: 3,
|
|
ptyIncarnation: 'incarnation-1',
|
|
deliveryToken: 'token-1',
|
|
sourceStartSu: 0,
|
|
sourceEndSu: 4,
|
|
displayStart: 0,
|
|
displayEnd: 4,
|
|
splittable: true,
|
|
transform: { transformed: false, rawLengthSu: 4, scalarSafe: true }
|
|
}
|
|
}
|
|
|
|
describe.each<RemoteTerminalContractTopology>(['headed-desktop-server', 'headless-serve'])(
|
|
'%s remote terminal source-range contract',
|
|
(topology) => {
|
|
it('keeps host identity and rejects a stale client generation after reconnect', () => {
|
|
const fixture = createRemoteTerminalSourceRangeContractFixture(topology)
|
|
const oldGeneration = fixture.connect()
|
|
fixture.accept(4, [sourceRange()])
|
|
fixture.detach()
|
|
const generation = fixture.connect()
|
|
fixture.accept(4, [sourceRange()])
|
|
|
|
expect(fixture.hostPtyIdentity).toBe('host-owned-pty')
|
|
expect(fixture.evidence).toBe('deterministic-contract-fixture')
|
|
expect(fixture.acknowledge(oldGeneration, 4).status).toBe('stale-generation')
|
|
expect(fixture.acknowledge(generation, 4).status).toBe('accepted')
|
|
expect(fixture.snapshot()).toMatchObject({
|
|
settled: [{ spanId: 'span-1' }],
|
|
transferred: [{ spanId: 'span-1' }]
|
|
})
|
|
})
|
|
}
|
|
)
|