mirror of
https://github.com/stablyai/orca.git
synced 2026-10-07 16:02:29 +00:00
* ci: run cross-version wire suites when agent sends or orchestration change The selector skipped the cross-version wire job for #24901, which changed the shared agent-send path, the structured send envelope builders, and orchestration RPC code. Route the send payload/fingerprint builders, src/main/runtime/orchestration/, and the orchestration RPC methods to the job, and pin each rule in a test. * ci: run cross-version wire suites only for code they execute The agent-session suites now build their send through the shared outbox builder and check it against the release host's schema and fingerprint, so the send builder and outbox are selected exactly. Load-only orchestration rules are dropped; the dispatcher-path files every suite request runs through are selected instead. * ci: run the release's own send admission, cover queued sends and the RPC reply builder * test(cross-version): a wrong send fingerprint must be refused, so an agreed one is not vacuous
40 lines
2.0 KiB
JavaScript
40 lines
2.0 KiB
JavaScript
import { describe, expect, it } from 'vitest'
|
|
import { classifyPrJobs } from './pr-code-change-scope.mjs'
|
|
|
|
// #24901 changed the send builders and orchestration code, and this job skipped. It runs only for
|
|
// code a suite executes: loading a module the dispatcher registers is not coverage.
|
|
describe('cross-version wire routing for the send path', () => {
|
|
it.each([
|
|
'src/shared/agent-session-wire-refusals.ts',
|
|
'src/shared/structured-agent-session-mutation.ts',
|
|
'src/shared/structured-agent-session-send-mutation.ts',
|
|
'src/shared/structured-agent-session-outbox.ts',
|
|
'src/main/runtime/rpc/core.ts',
|
|
'src/main/runtime/rpc/errors.ts',
|
|
'src/main/runtime/rpc/rpc-streaming-dispatcher.ts',
|
|
'src/main/runtime/rpc/orchestration-contract-fence.ts',
|
|
'src/main/runtime/rpc/orchestration-session-caller.ts',
|
|
'src/main/runtime/rpc/orchestration-legacy-compatibility.ts',
|
|
'src/main/runtime/rpc/orchestration-mutation-executor.ts',
|
|
'src/shared/orchestration-rpc-contract.ts',
|
|
'src/main/runtime/orchestration/db/schema/migrate.ts'
|
|
])('runs the cross-version suites when %s changes', (file) => {
|
|
expect(classifyPrJobs([file])).toMatchObject({ should_run: true, 'cross-version-wire': true })
|
|
})
|
|
|
|
it.each([
|
|
'src/shared/structured-agent-session-outbox-admission.ts',
|
|
'src/shared/structured-agent-session-outbox-delivery.ts',
|
|
'src/shared/structured-agent-session-outbox-stop-withdrawal.ts',
|
|
'src/shared/structured-agent-session-composer.ts',
|
|
'src/shared/structured-agent-session-reducer.ts',
|
|
'src/main/runtime/orchestration/send-agent-turn.ts',
|
|
'src/main/runtime/orchestration/orchestration-caller-identity.ts',
|
|
'src/main/runtime/rpc/orchestration-legacy-mail.ts',
|
|
'src/main/runtime/rpc/methods/orchestration.ts',
|
|
'src/main/runtime/rpc/methods/orchestration/runs/dispatch-methods.ts'
|
|
])('leaves them off for %s, which no cross-version suite executes', (file) => {
|
|
expect(classifyPrJobs([file])).toMatchObject({ should_run: true, 'cross-version-wire': false })
|
|
})
|
|
})
|