mirror of
https://github.com/stablyai/orca.git
synced 2026-10-07 00:02:29 +00:00
Reduce repeated CI setup and overlap mobile typechecks (#25359)
* Measure remaining CI import, diagnostic and checkout savings * Qualify remaining CI candidates on hosted runners * Qualify independent mobile typecheck overlap on Actions * Keep explicit RPC test registries from loading unused methods * Qualify complete RPC registry cohort and mobile cancellation * Promote measured CI setup and typecheck savings * Recognize the shared RPC test guard in lint policy * Align the mobile barrier contract with independent typechecks
This commit is contained in:
@@ -120,8 +120,6 @@ jobs:
|
||||
background: true
|
||||
run: node node_modules/typescript/bin/tsc --noEmit
|
||||
|
||||
- wait: production-types
|
||||
|
||||
# Why a ratchet and not the raw typecheck: mobile/tsconfig.json excludes test files, so until
|
||||
# tsconfig.test.json existed nothing checked them, and at introduction 127 of the 632 had
|
||||
# drifted. This fails when a test file that checks today stops checking, when a test leaves
|
||||
@@ -129,6 +127,8 @@ jobs:
|
||||
- name: Typecheck tests (ratchet)
|
||||
run: node scripts/check-tests-typecheck-ratchet.mjs
|
||||
|
||||
- wait: production-types
|
||||
|
||||
# This includes the bridged replay of the whole recording corpus, which used to be a second
|
||||
# step of its own behind RPC_FOUNDATION_BRIDGE=1. A gate nobody can forget to set is the point:
|
||||
# it fails when a divergence class grows, when a divergence lands in no class at all, or when
|
||||
|
||||
@@ -84,6 +84,17 @@ jobs:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
# Keep complete server/test trees; missing future imports fail the unchanged builds.
|
||||
sparse-checkout: |
|
||||
.github
|
||||
config
|
||||
native
|
||||
resources
|
||||
tests
|
||||
src/main
|
||||
src/shared
|
||||
src/relay
|
||||
src/types
|
||||
- name: Self-test the provisioning scripts before touching the machine
|
||||
shell: pwsh
|
||||
run: |
|
||||
|
||||
@@ -65,6 +65,13 @@
|
||||
"anti-slop/no-module-mocking": "off"
|
||||
}
|
||||
},
|
||||
// Test-only side effect for explicit RPC registries; real catalog tests never import it.
|
||||
{
|
||||
"files": ["**/src/main/runtime/rpc/unused-default-rpc-methods.test-fixture.ts"],
|
||||
"rules": {
|
||||
"anti-slop/no-module-mocking": "off"
|
||||
}
|
||||
},
|
||||
// The exemptions below are file-scoped rather than inline `oxlint-disable` comments
|
||||
// because the root lint scan does not load this plugin, so an inline directive naming
|
||||
// an anti-slop rule always reads back as an unused directive there.
|
||||
|
||||
+29
-27
@@ -8,10 +8,14 @@
|
||||
* Counting passes patch `Map`/`Set`/`Object.assign`/`Object.values`, which deoptimizes them, so
|
||||
* counts and timings are taken in separate passes and never from the same run.
|
||||
*
|
||||
* Run: ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config config/vitest.agent-status-benchmark.config.ts
|
||||
*
|
||||
* Scale mirrors the reporting user rather than the 100-worktree fixture in
|
||||
* docs/reference/renderer-agent-status-performance.md: 423 worktrees, 634 terminal tabs.
|
||||
*/
|
||||
import { writeFileSync } from 'node:fs'
|
||||
import { tmpdir } from 'node:os'
|
||||
import { join } from 'node:path'
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import type { AppState } from '@/store/types'
|
||||
import type { AgentStatusBatchUpdate } from '@/store/slices/agent-status'
|
||||
@@ -23,6 +27,7 @@ import {
|
||||
TEST_REPO
|
||||
} from '@/store/slices/store-test-helpers'
|
||||
import { makePaneKey } from '../../src/shared/stable-pane-id'
|
||||
import { getDefaultSettings } from '../../src/shared/constants'
|
||||
import {
|
||||
createAgentStatusPaneRoutingIndex,
|
||||
resolvePaneKeyFromRoutingIndex
|
||||
@@ -39,25 +44,24 @@ const counters = { maps: 0, sets: 0, tabComparisons: 0 }
|
||||
|
||||
const NativeMap = globalThis.Map
|
||||
const NativeSet = globalThis.Set
|
||||
const nativeArrayIterator = Array.prototype[Symbol.iterator]
|
||||
|
||||
function withAllocationCounting<T>(run: () => T): T {
|
||||
class CountingMap<K, V> extends NativeMap<K, V> {
|
||||
constructor(entries?: readonly (readonly [K, V])[] | null) {
|
||||
constructor(entries?: Iterable<readonly [K, V]> | null) {
|
||||
super(entries)
|
||||
counters.maps += 1
|
||||
}
|
||||
}
|
||||
class CountingSet<V> extends NativeSet<V> {
|
||||
constructor(values?: readonly V[] | null) {
|
||||
constructor(values?: Iterable<V> | null) {
|
||||
super(values)
|
||||
counters.sets += 1
|
||||
}
|
||||
}
|
||||
counters.maps = 0
|
||||
counters.sets = 0
|
||||
globalThis.Map = CountingMap as unknown as MapConstructor
|
||||
globalThis.Set = CountingSet as unknown as SetConstructor
|
||||
globalThis.Map = CountingMap
|
||||
globalThis.Set = CountingSet
|
||||
try {
|
||||
return run()
|
||||
} finally {
|
||||
@@ -68,34 +72,33 @@ function withAllocationCounting<T>(run: () => T): T {
|
||||
|
||||
/** Tab list whose iteration is observable, so the nested-loop resolver's comparisons are countable. */
|
||||
class CountingTabList<T> extends Array<T> {
|
||||
[Symbol.iterator](): IterableIterator<T> {
|
||||
const inner = nativeArrayIterator.call(this) as IterableIterator<T>
|
||||
const wrapped: IterableIterator<T> = {
|
||||
next: () => {
|
||||
const result = inner.next()
|
||||
if (!result.done) {
|
||||
counters.tabComparisons += 1
|
||||
}
|
||||
return result
|
||||
},
|
||||
[Symbol.iterator]: () => wrapped
|
||||
[Symbol.iterator](): ArrayIterator<T> {
|
||||
const iterator = super[Symbol.iterator]()
|
||||
const next = iterator.next.bind(iterator)
|
||||
iterator.next = (...args) => {
|
||||
const result = next(...args)
|
||||
if (!result.done) {
|
||||
counters.tabComparisons += 1
|
||||
}
|
||||
return result
|
||||
}
|
||||
return wrapped
|
||||
return iterator
|
||||
}
|
||||
}
|
||||
|
||||
function buildFixture(countTabIteration: boolean) {
|
||||
const store = createTestStore()
|
||||
const settings = store.getState().settings ?? getDefaultSettings(tmpdir())
|
||||
const tabsByWorktree: AppState['tabsByWorktree'] = {}
|
||||
const unifiedTabsByWorktree: AppState['unifiedTabsByWorktree'] = {}
|
||||
const worktrees = []
|
||||
const worktrees: ReturnType<typeof makeWorktree>[] = []
|
||||
const paneKeys: string[] = []
|
||||
const owners: { tabId: string; worktreeId: string }[] = []
|
||||
for (let index = 0; index < WORKTREES; index += 1) {
|
||||
const worktreeId = `wt-${index}`
|
||||
worktrees.push(makeWorktree({ id: worktreeId, repoId: TEST_REPO.id }))
|
||||
const tabs = []
|
||||
const unified = []
|
||||
const tabs: ReturnType<typeof makeTab>[] = []
|
||||
const unified: ReturnType<typeof makeUnifiedTab>[] = []
|
||||
for (let tab = 0; tab < (index % 2 === 0 ? 1 : 2); tab += 1) {
|
||||
const tabId = `tab-${index}-${tab}`
|
||||
tabs.push(makeTab({ id: tabId, worktreeId, title: `Terminal ${index}-${tab}` }))
|
||||
@@ -110,9 +113,7 @@ function buildFixture(countTabIteration: boolean) {
|
||||
paneKeys.push(makePaneKey(tabId, LEAF_ID))
|
||||
owners.push({ tabId, worktreeId })
|
||||
}
|
||||
tabsByWorktree[worktreeId] = countTabIteration
|
||||
? (CountingTabList.from(tabs) as unknown as typeof tabs)
|
||||
: tabs
|
||||
tabsByWorktree[worktreeId] = countTabIteration ? CountingTabList.from(tabs) : tabs
|
||||
unifiedTabsByWorktree[worktreeId] = unified
|
||||
}
|
||||
store.setState({
|
||||
@@ -122,8 +123,8 @@ function buildFixture(countTabIteration: boolean) {
|
||||
unifiedTabsByWorktree,
|
||||
terminalLayoutsByTabId: {},
|
||||
setGeneratedTabTitlesFromAgentPrompts: () => {},
|
||||
settings: { ...store.getState().settings, tabAutoGenerateTitle: false }
|
||||
} as Partial<AppState>)
|
||||
settings: { ...settings, tabAutoGenerateTitle: false }
|
||||
})
|
||||
return { store, paneKeys, owners }
|
||||
}
|
||||
|
||||
@@ -141,7 +142,7 @@ function per1k(value: number): number {
|
||||
function runIndexedRouting(store: ReturnType<typeof createTestStore>, paneKeys: string[]): void {
|
||||
for (let event = 0; event < EVENTS; event += 1) {
|
||||
if (event % BATCH_SIZE === 0) {
|
||||
store.setState({ agentStatusEpoch: event } as Partial<AppState>)
|
||||
store.setState({ agentStatusEpoch: event })
|
||||
}
|
||||
const index = createAgentStatusPaneRoutingIndex(store.getState())
|
||||
resolvePaneKeyFromRoutingIndex(index, paneKeys[event % paneKeys.length])
|
||||
@@ -287,7 +288,8 @@ describe('agent-status hot path benchmark', () => {
|
||||
}
|
||||
|
||||
const outputPath =
|
||||
process.env.ORCA_AGENT_STATUS_BENCH_OUTPUT ?? '/tmp/agent-status-hot-path-benchmark.json'
|
||||
process.env.ORCA_AGENT_STATUS_BENCH_OUTPUT ??
|
||||
join(tmpdir(), 'agent-status-hot-path-benchmark.json')
|
||||
writeFileSync(
|
||||
outputPath,
|
||||
`${JSON.stringify({ worktrees: WORKTREES, events: EVENTS, report }, null, 2)}\n`
|
||||
@@ -96,13 +96,13 @@ describe('CI background step barriers', () => {
|
||||
expect(steps.findIndex((step) => step.id === 'changed-code-quality')).toBeGreaterThan(install)
|
||||
})
|
||||
|
||||
it('serializes mobile pnpm entrypoints before allocating test workers', () => {
|
||||
it('joins independent mobile typechecks before allocating test workers', () => {
|
||||
const steps = mobile.jobs.verify.steps
|
||||
assertJoinedBefore(steps, 'production-types', (step) => step.name === 'Test')
|
||||
const ratchet = steps.findIndex((step) => step.name === 'Typecheck tests (ratchet)')
|
||||
const join = steps.findIndex((step) => step.wait === 'production-types')
|
||||
expect(steps[ratchet].background).toBeUndefined()
|
||||
expect(ratchet).toBeGreaterThan(join)
|
||||
expect(ratchet).toBeLessThan(join)
|
||||
})
|
||||
|
||||
it('waits for WebKit and the bundle before any browser tests', () => {
|
||||
|
||||
@@ -23,7 +23,7 @@ describe('mobile verification command ownership', () => {
|
||||
}
|
||||
})
|
||||
|
||||
it('finishes installation and joins production types before checking test types', () => {
|
||||
it('finishes installation and joins both independent typechecks before tests', () => {
|
||||
const installIndex = steps.findIndex((step) => step.name === 'Install dependencies')
|
||||
const productionIndex = steps.findIndex((step) => step.name === 'Typecheck')
|
||||
const ratchetIndex = steps.findIndex((step) => step.name === 'Typecheck tests (ratchet)')
|
||||
@@ -36,7 +36,10 @@ describe('mobile verification command ownership', () => {
|
||||
expect(steps[productionIndex].background).toBe(true)
|
||||
expect(productionIndex).toBeLessThan(ratchetIndex)
|
||||
expect(waitIndex).toBeGreaterThan(productionIndex)
|
||||
expect(waitIndex).toBeLessThan(ratchetIndex)
|
||||
expect(ratchetIndex).toBeLessThan(testIndex)
|
||||
expect(ratchetIndex).toBeLessThan(waitIndex)
|
||||
expect(waitIndex).toBeLessThan(testIndex)
|
||||
expect(steps[waitIndex].if).toBeUndefined()
|
||||
expect(steps[productionIndex]['continue-on-error'] ?? false).toBe(false)
|
||||
expect(steps[ratchetIndex]['continue-on-error'] ?? false).toBe(false)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
import { defineConfig } from 'vitest/config'
|
||||
import baseConfig from './vitest.config'
|
||||
|
||||
export default defineConfig({
|
||||
...baseConfig,
|
||||
test: {
|
||||
...baseConfig.test,
|
||||
include: ['config/scripts/agent-status-hot-path-benchmark.ts'],
|
||||
fileParallelism: false,
|
||||
retry: 0
|
||||
}
|
||||
})
|
||||
@@ -2383,3 +2383,139 @@ These screens reject the examined changes; they do not establish that every
|
||||
future optimization is exhausted. Shorter admitted jobs and one shared preflight
|
||||
reduce demand on the existing runner allowance. They do not increase that
|
||||
allowance or prove lower queue delay under different account traffic.
|
||||
|
||||
## October 5 remaining import, diagnostic and checkout work
|
||||
|
||||
The [hosted comparison](https://github.com/stablyai/orca/actions/runs/37247027814)
|
||||
used three alternating pairs per treatment at source
|
||||
`b18b174cd463f852051dc22adc8478b82dee4d1f`. Focused tests ran as fresh one-worker
|
||||
processes on the four-core, 16 GB Linux ARM runner with Node 24.21.0, pnpm 12.8.1
|
||||
and Vitest 4.1.11; persisted transforms and Node compile caches were disabled.
|
||||
|
||||
| Work | Original median | Candidate median | Median paired saving |
|
||||
| ------------------------------------------------- | --------------- | ---------------- | -------------------- |
|
||||
| Real incumbent-process test file | 16.478s | 5.976s | 10.520s |
|
||||
| Commentable-line lifecycle test file | 9.595s | 6.880s | 2.714s |
|
||||
| Agent-status diagnostic plus semantic test cohort | 11.547s | 8.235s | 3.361s |
|
||||
| Windows x64 SSH checkout | 22.052s | 16.884s | 5.020s |
|
||||
| Windows ARM SSH checkout | 46.758s | 33.910s | 13.456s |
|
||||
|
||||
The incumbent cases own distinct sockets, shim directories and process groups.
|
||||
Running them concurrently preserves all nine outcomes and every real five-second
|
||||
lsof deadline. Both original and candidate still reject an unreaped helper and
|
||||
false claims of clean enumeration. Fault receipts prove the actual modified probe
|
||||
was imported and all owned helpers, groups, sockets and directories were cleaned.
|
||||
The Windows platform gate retains all nine skips.
|
||||
|
||||
The renderer lifecycle tests keep their six original bodies and real decorator,
|
||||
zone and model behavior. Only the unrelated saved-note delivery menu is replaced
|
||||
by a typed throwing facade. Its cleanup assertion rejects unexpected use. Actual
|
||||
faults in memoization, value-equal refreshes and model replacement still fail their
|
||||
original assertions; a real menu call fails the facade and the cleanup guard.
|
||||
|
||||
The agent-status benchmark reports counters and timings but asserts only a
|
||||
nonempty status map and positive elapsed time. It remains available through
|
||||
`ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config config/vitest.agent-status-benchmark.config.ts`.
|
||||
Ordinary discovery removes exactly that reporting test. Its 15 meaningful routing,
|
||||
index-retention and batch cases remain unchanged. Three real production faults
|
||||
pass the old reporting test and fail those retained contracts. Manual execution
|
||||
preserves its JSON schema and all nine deterministic counters at 423 worktrees,
|
||||
634 tabs and 1,000 events.
|
||||
|
||||
Windows SSH hosts retain complete main, shared, relay, type, configuration,
|
||||
native, resource and test trees, plus root files. Six actual checkouts per
|
||||
architecture pinned candidate source `ce69b84d675b0a8b4763b03329c9d6549ac723f1`;
|
||||
all 16,568 retained files match the full checkout's contents, modes and index.
|
||||
The original 5,209 required inputs and six further inputs added by the source
|
||||
rebase are present. Local full/sparse builds match 54 generated artifacts;
|
||||
explicit test discovery is identical. Missing imported source, a named test or a
|
||||
required descriptor still fails. Full Windows native/provisioning lanes remain
|
||||
a separate qualification gate.
|
||||
|
||||
Test timings exclude dependency setup, checkout and queues. Checkout timings
|
||||
include the action and shell/runner observation boundaries but exclude later
|
||||
builds and provisioning. These scoped savings must not be summed or treated as
|
||||
measured changes to full-shard occupancy or PR latency.
|
||||
|
||||
## October 5 mobile typecheck overlap
|
||||
|
||||
The [hosted comparison](https://github.com/stablyai/orca/actions/runs/37249591578)
|
||||
ran three alternating pairs on the four-core, 16 GB Linux ARM runner, with Node
|
||||
24.21.0 and TypeScript 6.0.3. The production compiler and test-typecheck ratchet
|
||||
use installed tools after dependency installation. Both resolved compiler
|
||||
programs have `noEmit: true`, with no incremental, composite or build-info writes.
|
||||
The change moves the existing unconditional production join after the foreground
|
||||
ratchet and before tests; it changes no compiler command or failure policy.
|
||||
|
||||
| Complete typecheck stage | Original serial | Overlapped |
|
||||
| ------------------------ | --------------- | ---------- |
|
||||
| Pair 1 | 68.284s | 41.582s |
|
||||
| Pair 2, reversed order | 65.385s | 41.042s |
|
||||
| Pair 3 | 64.240s | 40.418s |
|
||||
| Median | 65.385s | 41.042s |
|
||||
|
||||
The median paired saving is 24.343 seconds, or 37.2% of this stage. The stage
|
||||
bracket includes native background/wait boundaries and observation overhead,
|
||||
but excludes dependency installation and the later test suite. All six stages
|
||||
preserve the three workers' compiler/ratchet verdicts and stdout/stderr hashes.
|
||||
The test compiler's existing diagnostics remain subject to the unchanged
|
||||
ratchet. Neither compiler attempted native loading or recorded filesystem
|
||||
mutations. Maximum aggregate owned-process RSS sampled every 200 milliseconds
|
||||
was 5.137 GiB; this is a sampled value rather than a kernel peak. The ratchet now
|
||||
runs even when the concurrently running production compiler later fails.
|
||||
|
||||
Two real, independent type faults still prevent tests from starting. The
|
||||
production fault preserves the unaffected ratchet and child output; the test
|
||||
fault preserves the production output and fails the ratchet. Their explicit
|
||||
control receipts pass even though their intentionally failing jobs are allowed
|
||||
to finish collecting evidence.
|
||||
|
||||
The separate [external cancellation control](https://github.com/stablyai/orca/actions/runs/37251289372)
|
||||
held the two real installed compiler entrypoints before checking, while retaining
|
||||
the production-background/ratchet-foreground topology. All three owned workers
|
||||
were observed alive 14.275 seconds before the cancellation request. Both native
|
||||
step outcomes became cancelled, tests did not start, and the runner's final
|
||||
cleanup log names all three exact worker PIDs. The attempted earlier assertion
|
||||
of PID absence failed: GitHub performs orphan cleanup after the always-tail
|
||||
observer and artifact upload. Post-cleanup absence was not observed and is not
|
||||
claimed. This control supplies no compiler-completion or timing measurement.
|
||||
|
||||
## October 5 explicit RPC registry test setup
|
||||
|
||||
The [hosted comparison](https://github.com/stablyai/orca/actions/runs/37251277897)
|
||||
ran three alternating pairs of the complete 156-file mixed cohort on source
|
||||
`d1e08ddd666e3099fc51c79f01f0305f5162186d`, using four workers on the four-core
|
||||
Linux ARM runner, Node 24.21.0, pnpm 12.8.1 and Vitest 4.1.11. Persisted module
|
||||
transforms and Node compile caches were disabled. All 153 candidate test files
|
||||
pass explicit method lists to their dispatchers. A shared throwing fixture
|
||||
prevents those tests from loading the unused default method catalog and rejects
|
||||
any accidental iteration of it. The three real catalog subjects remain
|
||||
unchanged and run beside the candidate subjects in every arm.
|
||||
|
||||
| Complete cohort process | Original | Candidate | Paired saving |
|
||||
| ----------------------- | -------- | --------- | ------------- |
|
||||
| Pair 1 | 142.184s | 89.238s | 52.946s |
|
||||
| Pair 2, reversed order | 142.833s | 88.933s | 53.900s |
|
||||
| Pair 3 | 141.274s | 90.186s | 51.088s |
|
||||
| Median | 142.184s | 89.238s | 52.946s |
|
||||
|
||||
The median paired saving is 37.2% of this fixed cohort. All six arms preserve
|
||||
the complete ordered ledger, including duplicate parameterized case names:
|
||||
1,469 passes and one existing setup-dependent skip, totaling 1,470 outcomes.
|
||||
The real catalog subjects contribute 63 of those cases. Candidate bodies and
|
||||
assertions are unchanged. One file at its line limit uses the dispatch method's
|
||||
parameter type in place of its equivalent type-only import; its emitted code
|
||||
matches the measured candidate.
|
||||
|
||||
Seventeen control invocations preserve actual terminal-handler fault detection,
|
||||
reject unexpected default-catalog consumption, and still detect a missing real
|
||||
catalog registration. A plain consumption counter prevents global mock-history
|
||||
resets from erasing the guard; actual `clearAllMocks` and `resetAllMocks` controls
|
||||
demonstrate that distinction and preserve unrelated call history. The isolated
|
||||
driver restores all source files after success, faults and a real cancellation.
|
||||
Independent review also confirms all 153 candidate sources, the fixture, three
|
||||
catalog subjects and declared qualification inputs survive the rebase unchanged.
|
||||
|
||||
These are fresh-process wall times for this cohort, excluding dependency setup,
|
||||
queues and other test shards. They do not measure full-shard balance, total PR
|
||||
runner demand, or a change to the dashboard's PR runtime percentiles.
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../runtime/rpc/unused-default-rpc-methods.test-fixture'
|
||||
import { afterEach, describe, expect, it } from 'vitest'
|
||||
import { AiVaultHandler } from '../../relay/ai-vault-handler'
|
||||
import type { RelayDispatcher } from '../../relay/dispatcher'
|
||||
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
import '../../runtime/rpc/unused-default-rpc-methods.test-fixture'
|
||||
import { createHash } from 'node:crypto'
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { AGENT_JOURNAL_THREAD_SCOPE } from '../../../shared/agent-session-journal-types'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import './rpc/unused-default-rpc-methods.test-fixture'
|
||||
/**
|
||||
* `browser.screencast` is the one stream a phone, a paired desktop client, the web client and the
|
||||
* CLI all open against the same host page. Stamping every subscriber as the mobile driver put the
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import './rpc/unused-default-rpc-methods.test-fixture'
|
||||
import { mkdir, mkdtemp, rm } from 'node:fs/promises'
|
||||
import { homedir, tmpdir } from 'node:os'
|
||||
import { join } from 'node:path'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import './rpc/unused-default-rpc-methods.test-fixture'
|
||||
import { settledWriteStub } from '../providers/settled-pty-write-stub'
|
||||
import { mkdtempSync, rmSync } from 'node:fs'
|
||||
import { tmpdir } from 'node:os'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import './rpc/unused-default-rpc-methods.test-fixture'
|
||||
import { settledWriteStub } from '../providers/settled-pty-write-stub'
|
||||
import { spawn } from 'node:child_process'
|
||||
import { existsSync, mkdtempSync, rmSync } from 'node:fs'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import './unused-default-rpc-methods.test-fixture'
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { z } from 'zod'
|
||||
import type { OrcaRuntimeService } from '../orca-runtime'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import './unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { z } from 'zod'
|
||||
import { RpcDispatcher } from './dispatcher'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import './unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { z } from 'zod'
|
||||
import type { PersistedUIState } from '../../../shared/persisted-ui-state-types'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
/**
|
||||
* The pane a caller reserves for the terminal `agent.launch` creates.
|
||||
*
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
/**
|
||||
* A terminal launch that fails before its spawn is requested — no launch command, runtime
|
||||
* unavailable — created nothing, so a named operation settles as failed with its real cause.
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
/**
|
||||
* Replay safety for `agent.launch`, against the real durable ledger.
|
||||
*
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
/**
|
||||
* The chat session a caller reserves for the structured launch `agent.launch` creates.
|
||||
*
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import {
|
||||
AGENT_SESSION_HOST_AUTHORITY_RUNTIME_CAPABILITY,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { afterEach, describe, expect, it, vi } from 'vitest'
|
||||
import { AI_VAULT_AGENTS } from '../../../../shared/ai-vault-types'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
/**
|
||||
* The runtime end of the list contract: an old client that sends no params must
|
||||
* keep receiving the authority's complete list through the legacy field while
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { BROWSER_CLIENT_HOST_RUNTIME_CAPABILITY } from '../../../../shared/protocol-version'
|
||||
import type { BrowserClientHostedPageInventory } from '../../../../shared/browser-client-host-protocol'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { BROWSER_CLIENT_HOST_RUNTIME_CAPABILITY } from '../../../../shared/protocol-version'
|
||||
import { getBrowserHostLeaseRegistry } from '../../browser-host-lease-registry-instance'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { BROWSER_CLIENT_HOST_RUNTIME_CAPABILITY } from '../../../../shared/protocol-version'
|
||||
import { getBrowserHostLeaseRegistry } from '../../browser-host-lease-registry-instance'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import {
|
||||
BROWSER_CLIENT_HOST_RUNTIME_CAPABILITY,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
|
||||
const mocks = vi.hoisted(() => ({
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import {
|
||||
BROWSER_CLIENT_HOST_RUNTIME_CAPABILITY,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import type { OrcaRuntimeService } from '../../orca-runtime'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { getDefaultUIState } from '../../../../shared/constants'
|
||||
import { PAIRING_LOCAL_UI_FIELDS } from '../../../../shared/pairing-local-ui-fields'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { getDefaultUIState } from '../../../../shared/constants'
|
||||
import type { OrcaRuntimeService } from '../../orca-runtime'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { getDefaultUIState } from '../../../../shared/constants'
|
||||
import { omitPairingLocalUiFields } from '../../../../shared/pairing-local-ui-fields'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest, RpcResponse } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import type { OrcaRuntimeService } from '../../orca-runtime'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import type { OrcaRuntimeService } from '../../orca-runtime'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
/**
|
||||
* #12547: `files.listAll` did not declare `maxResults`, so "the client names its cap and a full page
|
||||
* means there is more" was wired only on the Electron IPC hop. Web and mobile were saved incidentally,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import type { OrcaRuntimeService } from '../../orca-runtime'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { remoteRpcContentBudget } from '../../../../shared/remote-rpc-content-budget'
|
||||
import type { OrcaRuntimeService } from '../../orca-runtime'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import type { RpcRequest } from '../core'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { expect, it, vi } from 'vitest'
|
||||
import { WatcherProcessFailure } from '../../../ipc/parcel-watcher-process-failure'
|
||||
import type { OrcaRuntimeService } from '../../orca-runtime'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
// Why: git.diff, git.branchDiff and git.commitDiff all return a GitDiffResult, so capping only the
|
||||
// first would leave the other two able to kill a remote socket.
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
// Split from github.test.ts to keep it under its line cap.
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { afterEach, describe, expect, it, vi } from 'vitest'
|
||||
import { ORCHESTRATION_CONTRACT_VERSION } from '../../../../shared/protocol-version'
|
||||
import {
|
||||
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
import '../../../unused-default-rpc-methods.test-fixture'
|
||||
import { afterEach, describe, expect, it, vi } from 'vitest'
|
||||
import { ORCHESTRATION_CONTRACT_VERSION } from '../../../../../../shared/protocol-version'
|
||||
import { OrcaRuntimeService } from '../../../../orca-runtime'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../../../unused-default-rpc-methods.test-fixture'
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { ORCHESTRATION_CONTRACT_VERSION } from '../../../../../../shared/protocol-version'
|
||||
import type { RuntimeRpcResponse } from '../../../../../../shared/runtime-rpc-envelope'
|
||||
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
import '../../../unused-default-rpc-methods.test-fixture'
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import {
|
||||
ORCHESTRATION_CONTRACT_VERSION,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../../../unused-default-rpc-methods.test-fixture'
|
||||
import { mkdtempSync, rmSync } from 'node:fs'
|
||||
import { mkdtemp, rm, writeFile } from 'node:fs/promises'
|
||||
import { tmpdir } from 'node:os'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../../../unused-default-rpc-methods.test-fixture'
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import {
|
||||
ORCHESTRATION_CONTRACT_VERSION,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../../../unused-default-rpc-methods.test-fixture'
|
||||
import { afterEach, describe, expect, it, vi } from 'vitest'
|
||||
import { ORCHESTRATION_CONTRACT_VERSION } from '../../../../../../shared/protocol-version'
|
||||
import type { RuntimeTerminalSummary } from '../../../../../../shared/runtime-types'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../../../unused-default-rpc-methods.test-fixture'
|
||||
import { afterEach, describe, expect, it } from 'vitest'
|
||||
import type { RpcRequest } from '../../../core'
|
||||
import { ORCHESTRATION_METHODS } from '../../orchestration'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../../../unused-default-rpc-methods.test-fixture'
|
||||
import { afterEach, describe, expect, it, vi } from 'vitest'
|
||||
import type { RpcContext, RpcRequest } from '../../../core'
|
||||
import { ORCHESTRATION_METHODS } from '../../orchestration'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../../../unused-default-rpc-methods.test-fixture'
|
||||
import { afterEach, describe, expect, it, vi } from 'vitest'
|
||||
import type { RuntimeRpcResponse } from '../../../../../../shared/runtime-rpc-envelope'
|
||||
import {
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../../../unused-default-rpc-methods.test-fixture'
|
||||
import { mkdtempSync, rmSync } from 'node:fs'
|
||||
import { tmpdir } from 'node:os'
|
||||
import { join } from 'node:path'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../../../unused-default-rpc-methods.test-fixture'
|
||||
import { mkdtempSync, rmSync } from 'node:fs'
|
||||
import { tmpdir } from 'node:os'
|
||||
import { join } from 'node:path'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { OrcaRuntimeService } from '../../orca-runtime'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { STRUCTURED_AGENT_SESSION_RUNTIME_CAPABILITY } from '../../../../shared/protocol-version'
|
||||
import type { OrcaRuntimeService } from '../../orca-runtime'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import {
|
||||
CLAUDE_STRUCTURED_AGENT_SESSION_RUNTIME_CAPABILITY,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { BROWSER_CLIENT_HOST_RUNTIME_CAPABILITY } from '../../../../shared/protocol-version'
|
||||
import type { OrcaRuntimeService } from '../../orca-runtime'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import type { OrcaRuntimeService } from '../../orca-runtime'
|
||||
import { SESSION_TABS_RETIREMENT_PROOF_DELTA_RUNTIME_CAPABILITY } from '../../../../shared/protocol-version'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import type { OrcaRuntimeService } from '../../orca-runtime'
|
||||
import type { RuntimeMobileSessionTabsResult } from '../../../../shared/runtime-types'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import type { OrcaRuntimeService } from '../../orca-runtime'
|
||||
import { RuntimeSubscriptionRegistry } from '../../runtime-subscription-registry'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { mkdir, mkdtemp, rm, writeFile } from 'node:fs/promises'
|
||||
import { tmpdir } from 'node:os'
|
||||
import { dirname, join } from 'node:path'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { AGENT_JOURNAL_THREAD_SCOPE } from '../../../../shared/agent-session-journal-types'
|
||||
// A chat at rest, through the RPC surface a client actually calls: opening it starts nothing, what
|
||||
// it can answer without an agent it answers, and the first send is what starts one.
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
// `agentSession.hold` / `release` are kept answering for clients that still send them, and do
|
||||
// nothing else: a view never starts or keeps an agent.
|
||||
//
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
// The create route's pre-commit boundary: a failure before `attach` must reach the client as a
|
||||
// refusal it can classify, and a failure at or after `attach` must not.
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
// A transcript stream ends when its client says so: the host drops that subscriber, so nothing is
|
||||
// derived or sent for it any more, and a sibling stream of the same session keeps going.
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
/**
|
||||
* A chat tab's pointer to the conversation it shows, driven end to end: a real record store on disk,
|
||||
* the real structured host, the real runtime, and the real RPC handlers. Only the provider is faked.
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import type { OrcaRuntimeService } from '../../orca-runtime'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../../unused-default-rpc-methods.test-fixture'
|
||||
import { afterEach, describe, expect, it } from 'vitest'
|
||||
import type { OrcaRuntimeService } from '../../../orca-runtime'
|
||||
import { RpcDispatcher } from '../../dispatcher'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import type { OrcaRuntimeService } from '../../orca-runtime'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { OrcaRuntimeService } from '../../orca-runtime'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import '../unused-default-rpc-methods.test-fixture'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { RpcDispatcher } from '../dispatcher'
|
||||
import type { RpcRequest } from '../core'
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user