Skip to content

Merge pull request #7 from nestm-dev/agent/harness-orchestration #17

Merge pull request #7 from nestm-dev/agent/harness-orchestration

Merge pull request #7 from nestm-dev/agent/harness-orchestration #17

Triggered via push August 2, 2026 17:06
Status Success
Total duration 41s
Artifacts 1

ci.yml

on: push
Matrix: canary
Matrix: test
Fit to window
Zoom out
Zoom in

Annotations

11 errors and 17 warnings
tests/unit/harness-runner.test.ts > AiSdkHarnessRunner > finalizes disconnect and timeout exactly once: src/harness/ai-sdk-harness-compatibility.ts#L50
AiSdkHarnessError: @nestm/ai-sdk/harness requires ai@7.0.47 and @ai-sdk/harness@1.0.53; received ai@0.0.0-2d998b35-20260731001744, @ai-sdk/harness@1.0.53, and Harness expects ai@7.0.47. ❯ assertAiSdkHarnessCompatibility src/harness/ai-sdk-harness-compatibility.ts:50:9 ❯ new AiSdkHarnessRunner src/harness/ai-sdk-harness.runner.ts:76:3 ❯ createRunner tests/unit/harness-runner.test.ts:487:9 ❯ tests/unit/harness-runner.test.ts:212:31 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'VERSION_MISMATCH' }
tests/unit/harness-runner.test.ts > AiSdkHarnessRunner > resumes and destroys the exact session when stop unexpectedly returns durable continuation state: src/harness/ai-sdk-harness-compatibility.ts#L50
AiSdkHarnessError: @nestm/ai-sdk/harness requires ai@7.0.47 and @ai-sdk/harness@1.0.53; received ai@0.0.0-2d998b35-20260731001744, @ai-sdk/harness@1.0.53, and Harness expects ai@7.0.47. ❯ assertAiSdkHarnessCompatibility src/harness/ai-sdk-harness-compatibility.ts:50:9 ❯ new AiSdkHarnessRunner src/harness/ai-sdk-harness.runner.ts:76:3 ❯ createRunner tests/unit/harness-runner.test.ts:487:9 ❯ tests/unit/harness-runner.test.ts:192:21 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'VERSION_MISMATCH' }
tests/unit/harness-runner.test.ts > AiSdkHarnessRunner > destroys unsafe unfinished state found in a durable store: src/harness/ai-sdk-harness-compatibility.ts#L50
AiSdkHarnessError: @nestm/ai-sdk/harness requires ai@7.0.47 and @ai-sdk/harness@1.0.53; received ai@0.0.0-2d998b35-20260731001744, @ai-sdk/harness@1.0.53, and Harness expects ai@7.0.47. ❯ assertAiSdkHarnessCompatibility src/harness/ai-sdk-harness-compatibility.ts:50:9 ❯ new AiSdkHarnessRunner src/harness/ai-sdk-harness.runner.ts:76:3 ❯ createRunner tests/unit/harness-runner.test.ts:487:9 ❯ tests/unit/harness-runner.test.ts:170:4 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'VERSION_MISMATCH' }
tests/unit/harness-runner.test.ts > AiSdkHarnessRunner > treats an error finish reason as a durable failure: src/harness/ai-sdk-harness-compatibility.ts#L50
AiSdkHarnessError: @nestm/ai-sdk/harness requires ai@7.0.47 and @ai-sdk/harness@1.0.53; received ai@0.0.0-2d998b35-20260731001744, @ai-sdk/harness@1.0.53, and Harness expects ai@7.0.47. ❯ assertAiSdkHarnessCompatibility src/harness/ai-sdk-harness-compatibility.ts:50:9 ❯ new AiSdkHarnessRunner src/harness/ai-sdk-harness.runner.ts:76:3 ❯ createRunner tests/unit/harness-runner.test.ts:487:9 ❯ tests/unit/harness-runner.test.ts:140:21 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'VERSION_MISMATCH' }
tests/unit/harness-runner.test.ts > AiSdkHarnessRunner > destroys and deletes unfinished durable turns after failure: src/harness/ai-sdk-harness-compatibility.ts#L50
AiSdkHarnessError: @nestm/ai-sdk/harness requires ai@7.0.47 and @ai-sdk/harness@1.0.53; received ai@0.0.0-2d998b35-20260731001744, @ai-sdk/harness@1.0.53, and Harness expects ai@7.0.47. ❯ assertAiSdkHarnessCompatibility src/harness/ai-sdk-harness-compatibility.ts:50:9 ❯ new AiSdkHarnessRunner src/harness/ai-sdk-harness.runner.ts:76:3 ❯ createRunner tests/unit/harness-runner.test.ts:487:9 ❯ tests/unit/harness-runner.test.ts:116:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'VERSION_MISMATCH' }
tests/unit/harness-runner.test.ts > AiSdkHarnessRunner > stops successful durable turns and persists a safe resume checkpoint: src/harness/ai-sdk-harness-compatibility.ts#L50
AiSdkHarnessError: @nestm/ai-sdk/harness requires ai@7.0.47 and @ai-sdk/harness@1.0.53; received ai@0.0.0-2d998b35-20260731001744, @ai-sdk/harness@1.0.53, and Harness expects ai@7.0.47. ❯ assertAiSdkHarnessCompatibility src/harness/ai-sdk-harness-compatibility.ts:50:9 ❯ new AiSdkHarnessRunner src/harness/ai-sdk-harness.runner.ts:76:3 ❯ createRunner tests/unit/harness-runner.test.ts:487:9 ❯ tests/unit/harness-runner.test.ts:91:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'VERSION_MISMATCH' }
tests/unit/harness-runner.test.ts > AiSdkHarnessRunner > holds the lease through final CAS and releases it last: src/harness/ai-sdk-harness-compatibility.ts#L50
AiSdkHarnessError: @nestm/ai-sdk/harness requires ai@7.0.47 and @ai-sdk/harness@1.0.53; received ai@0.0.0-2d998b35-20260731001744, @ai-sdk/harness@1.0.53, and Harness expects ai@7.0.47. ❯ assertAiSdkHarnessCompatibility src/harness/ai-sdk-harness-compatibility.ts:50:9 ❯ new AiSdkHarnessRunner src/harness/ai-sdk-harness.runner.ts:76:3 ❯ tests/unit/harness-runner.test.ts:59:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'VERSION_MISMATCH' }
tests/unit/harness-module.test.ts > AiSdkHarnessModule > supports async factories: src/harness/ai-sdk-harness-compatibility.ts#L50
AiSdkHarnessError: @nestm/ai-sdk/harness requires ai@7.0.47 and @ai-sdk/harness@1.0.53; received ai@0.0.0-2d998b35-20260731001744, @ai-sdk/harness@1.0.53, and Harness expects ai@7.0.47. ❯ assertAiSdkHarnessCompatibility src/harness/ai-sdk-harness-compatibility.ts:50:9 ❯ new AiSdkHarnessRunner src/harness/ai-sdk-harness.runner.ts:76:3 ❯ InstanceWrapper.useFactory [as metatype] src/harness/ai-sdk-harness.module.ts:29:55 ❯ TestingInjector.instantiateClass node_modules/.pnpm/@nestjs+core@12.0.0-alpha.5_@nestjs+common@12.0.0-alpha.5_reflect-metadata@0.2.2_rxjs@7_876df4334456f83a1214ae589154491a/node_modules/@nestjs/core/injector/injector.js:436:55 ❯ callback node_modules/.pnpm/@nestjs+core@12.0.0-alpha.5_@nestjs+common@12.0.0-alpha.5_reflect-metadata@0.2.2_rxjs@7_876df4334456f83a1214ae589154491a/node_modules/@nestjs/core/injector/injector.js:68:45 ❯ TestingInjector.resolveConstructorParams node_modules/.pnpm/@nestjs+core@12.0.0-alpha.5_@nestjs+common@12.0.0-alpha.5_reflect-metadata@0.2.2_rxjs@7_876df4334456f83a1214ae589154491a/node_modules/@nestjs/core/injector/injector.js:181:24 ❯ TestingInjector.loadInstance node_modules/.pnpm/@nestjs+core@12.0.0-alpha.5_@nestjs+common@12.0.0-alpha.5_reflect-metadata@0.2.2_rxjs@7_876df4334456f83a1214ae589154491a/node_modules/@nestjs/core/injector/injector.js:74:13 ❯ TestingInjector.loadProvider node_modules/.pnpm/@nestjs+core@12.0.0-alpha.5_@nestjs+common@12.0.0-alpha.5_reflect-metadata@0.2.2_rxjs@7_876df4334456f83a1214ae589154491a/node_modules/@nestjs/core/injector/injector.js:108:9 ❯ node_modules/.pnpm/@nestjs+core@12.0.0-alpha.5_@nestjs+common@12.0.0-alpha.5_reflect-metadata@0.2.2_rxjs@7_876df4334456f83a1214ae589154491a/node_modules/@nestjs/core/injector/instance-loader.js:57:13 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'VERSION_MISMATCH' }
tests/unit/harness-module.test.ts > AiSdkHarnessModule > registers application-owned stores without replacing their identity: src/harness/ai-sdk-harness-compatibility.ts#L50
AiSdkHarnessError: @nestm/ai-sdk/harness requires ai@7.0.47 and @ai-sdk/harness@1.0.53; received ai@0.0.0-2d998b35-20260731001744, @ai-sdk/harness@1.0.53, and Harness expects ai@7.0.47. ❯ assertAiSdkHarnessCompatibility src/harness/ai-sdk-harness-compatibility.ts:50:9 ❯ new AiSdkHarnessRunner src/harness/ai-sdk-harness.runner.ts:76:3 ❯ InstanceWrapper.useFactory [as metatype] src/harness/ai-sdk-harness.module.ts:29:55 ❯ TestingInjector.instantiateClass node_modules/.pnpm/@nestjs+core@12.0.0-alpha.5_@nestjs+common@12.0.0-alpha.5_reflect-metadata@0.2.2_rxjs@7_876df4334456f83a1214ae589154491a/node_modules/@nestjs/core/injector/injector.js:436:55 ❯ callback node_modules/.pnpm/@nestjs+core@12.0.0-alpha.5_@nestjs+common@12.0.0-alpha.5_reflect-metadata@0.2.2_rxjs@7_876df4334456f83a1214ae589154491a/node_modules/@nestjs/core/injector/injector.js:68:45 ❯ TestingInjector.resolveConstructorParams node_modules/.pnpm/@nestjs+core@12.0.0-alpha.5_@nestjs+common@12.0.0-alpha.5_reflect-metadata@0.2.2_rxjs@7_876df4334456f83a1214ae589154491a/node_modules/@nestjs/core/injector/injector.js:181:24 ❯ TestingInjector.loadInstance node_modules/.pnpm/@nestjs+core@12.0.0-alpha.5_@nestjs+common@12.0.0-alpha.5_reflect-metadata@0.2.2_rxjs@7_876df4334456f83a1214ae589154491a/node_modules/@nestjs/core/injector/injector.js:74:13 ❯ TestingInjector.loadProvider node_modules/.pnpm/@nestjs+core@12.0.0-alpha.5_@nestjs+common@12.0.0-alpha.5_reflect-metadata@0.2.2_rxjs@7_876df4334456f83a1214ae589154491a/node_modules/@nestjs/core/injector/injector.js:108:9 ❯ node_modules/.pnpm/@nestjs+core@12.0.0-alpha.5_@nestjs+common@12.0.0-alpha.5_reflect-metadata@0.2.2_rxjs@7_876df4334456f83a1214ae589154491a/node_modules/@nestjs/core/injector/instance-loader.js:57:13 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'VERSION_MISMATCH' }
tests/unit/harness-compatibility.test.ts > Harness release-train compatibility > loads the exact supported AI SDK and Harness train: tests/unit/harness-compatibility.test.ts#L13
AssertionError: expected [Function: assertAiSdkHarnessCompatibility] to not throw an error but 'AiSdkHarnessError: @nestm/ai-sdk/harn…' was thrown - Expected: undefined + Received: "AiSdkHarnessError: @nestm/ai-sdk/harness requires ai@7.0.47 and @ai-sdk/harness@1.0.53; received ai@0.0.0-2d998b35-20260731001744, @ai-sdk/harness@1.0.53, and Harness expects ai@7.0.47." ❯ tests/unit/harness-compatibility.test.ts:13:47
Canary (harness-latest)
Process completed with exit code 1.
Canary (ai-snapshot)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: pnpm/action-setup@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Canary (harness-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: pnpm/action-setup@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test (24)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: pnpm/action-setup@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
check
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: pnpm/action-setup@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
typescript(no-unsafe-type-assertion): src/ai-sdk.defaults.ts#L113
Unsafe type assertion: type 'AiSdkDirectEmbeddingModel | undefined' is more narrow than the original type.
typescript(no-unnecessary-type-arguments): src/features/ai-sdk-feature.types.ts#L119
This is the default value for this type parameter, so it can be omitted.
typescript(no-unsafe-type-assertion): src/ai-sdk.defaults.ts#L111
Unsafe type assertion: type 'AiSdkDirectLanguageModel | undefined' is more narrow than the original type.
typescript(no-unsafe-type-assertion): src/features/ai-sdk-feature.providers.ts#L44
Unsafe type assertion: type 'ToolSet' is more narrow than the original type.
typescript(no-unsafe-type-assertion): src/decorators/ai-tool.decorator.ts#L74
Unsafe assertion from `any` detected: consider using type guards or a safer assertion.
typescript(no-unsafe-type-assertion): src/decorators/ai-tool.decorator.ts#L71
Unsafe assertion from `any` detected: consider using type guards or a safer assertion.
typescript(no-unnecessary-type-assertion): src/decorators/ai-tool.decorator.ts#L53
This assertion is unnecessary since the receiver accepts the original type of the expression.
typescript(no-unsafe-type-assertion): src/ai-sdk.defaults.ts#L93
Unsafe type assertion: type '(id: string) => unknown' is more narrow than the original type.
typescript(no-unsafe-type-assertion): src/features/ai-sdk-feature-discovery.service.ts#L23
Unsafe type assertion: type 'Partial<AiSdkFeatureMarker>' is more narrow than the original type.
unicorn(consistent-function-scoping): tests/unit/http-response.test.ts#L49
Function `acceptResult` does not capture any variables from its parent scope
build
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@v4, pnpm/action-setup@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test (22.12.0)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: pnpm/action-setup@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Canary (nest-next)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: pnpm/action-setup@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/

Artifacts

Produced during runtime
Name Size Digest
dist
73.9 KB
sha256:f5ac4f5d4a917aae106fedf5a9a7ade55b45aca72e2181f56ed49604a0792d77