Close test gaps for memory-source-server-routing #2205
ci.yml
on: push
Matrix: unit-tests
Lint
39s
Typecheck
46s
Secret Scan (gitleaks)
11s
Server Unit Tests
1m 13s
Unit Tests (macOS)
3m 51s
Unit Tests (Windows)
1m 22s
Unit Tests (Windows ConPTY)
1m 53s
Server DB Integration Tests
1m 7s
Preview Dist Smoke
39s
Embedding Integration Tests
1m 2s
Repo Provider Integration Tests
0s
Coverage Report
0s
Android Release Build
0s
Publish to npm
0s
Annotations
11 errors, 24 warnings, and 2 notices
|
Web Tests (Unit)
Process completed with exit code 1.
|
|
Unit Tests (Node 24)
Process completed with exit code 1.
|
|
test/shared/timeline-protocol-magic-string.test.ts > timeline protocol magic strings > keeps shared timeline protocol literals centralized outside compatibility fixtures:
test/shared/timeline-protocol-magic-string.test.ts#L186
AssertionError: Timeline protocol literals must come from shared/timeline-protocol.ts or shared/timeline-history-errors.ts.
Move implementation code to shared constant imports, or add a narrowly named compatibility test/fixture exemption.
src/daemon/memory-get-sources-orchestrator.ts:54:31 projection_unavailable
src/daemon/memory-get-sources-orchestrator.ts:155:39 projection_unavailable
test/daemon/memory-get-sources-orchestrator.test.ts:218:34 projection_unavailable: expected [ …(3) ] to deeply equal []
- Expected
+ Received
- Array []
+ Array [
+ "src/daemon/memory-get-sources-orchestrator.ts:54:31 projection_unavailable",
+ "src/daemon/memory-get-sources-orchestrator.ts:155:39 projection_unavailable",
+ "test/daemon/memory-get-sources-orchestrator.test.ts:218:34 projection_unavailable",
+ ]
❯ test/shared/timeline-protocol-magic-string.test.ts:186:19
|
|
test/shared/fs-read-error-codes.test.ts > fs-read shared error constants > keeps fs-read production consumers importing shared wire error values instead of redefining them:
test/shared/fs-read-error-codes.test.ts#L146
AssertionError: src/daemon/command-handler.ts should use FS_READ_ERROR_CODES for internal_error: expected '/**\n * Handle commands from the web …' not to contain '\'internal_error\''
- Expected
+ Received
- 'internal_error'
+ /**
+ * Handle commands from the web UI and inbound chat messages via ServerLink.
+ * Commands arrive as JSON objects with a `type` field.
+ */
+ import { startProject, stopProject, teardownProject, getTransportRuntime, launchTransportSession, isProviderSessionBound, persistSessionRecord, relaunchSessionWithSettings, stopTransportRuntimeSession, type ProjectConfig } from '../agent/session-manager.js';
+ import { isTransportAgent } from '../agent/detect.js';
+ import { sendKeys, sendKeysDelayedEnter, sendRawInput, resizeSession, sendKey, getPaneStartCommand } from '../agent/tmux.js';
+ import { listSessions, getSession, upsertSession, removeSession, type SessionRecord } from '../store/session-store.js';
+ import { routeMessage, type InboundMessage, type RouterContext } from '../router/message-router.js';
+ import { terminalStreamer, type StreamSubscriber } from './terminal-streamer.js';
+ import type { ServerLink } from './server-link.js';
+ import { timelineEmitter } from './timeline-emitter.js';
+ import { TimelinePreferredReadError, timelineStore } from './timeline-store.js';
+ import {
+ recordFsWorkerMetric,
+ recordTimelineBudgetShape,
+ recordTransportListModelsStaleCompletion,
+ traceCommandAsync,
+ traceSync,
+ traceWebCommandReceived,
+ } from './latency-tracer.js';
+ import { getDefaultTimelineHistoryWorkerPool, shouldUseTimelineHistoryWorkerPool, TimelineHistoryPoolError } from './timeline-history-pool.js';
+ import { FsListPoolError, getDefaultFsListWorkerPool, shouldUseFsListWorkerPool } from './fs-list-pool.js';
+ import { scanFsListSnapshot } from './fs-list-worker.js';
+ import { FsGitStatusPoolError, getDefaultFsGitStatusWorkerPool, shouldUseFsGitStatusWorkerPool, __resetFsGitStatusWorkerPoolForTests } from './fs-git-status-pool.js';
+ import { scanFsGitStatusSnapshot } from './fs-git-status-worker.js';
+ import { shapeTimelineDetailValueForTransport, shapeTimelineEventsForTransport } from './timeline-response-shaper.js';
+ import { getDefaultTimelineDetailStore } from './timeline-detail-store.js';
+ import { TIMELINE_HISTORY_CONTENT_TYPES, TIMELINE_HISTORY_STATE_TYPES, type MemoryContextTimelinePayload, type TimelineEvent } from '../shared/timeline/types.js';
+ import { emitSessionInlineError } from './session-error.js';
+ import { enqueueResend, getResendEntries, clearResend } from './transport-resend-queue.js';
+ import {
+ startSubSession,
+ stopSubSession,
+ rebuildSubSessions,
+ detectShells,
+ readSubSessionResponse,
+ subSessionName,
+ type SubSessionRecord,
+ } from './subsession-manager.js';
+ import { sendSubSessionSync } from './subsession-sync.js';
+ import logger from '../util/logger.js';
+ import { getDefaultAckOutbox } from './ack-outbox.js';
+ import { COMMAND_ACK_ERROR_DUPLICATE_COMMAND_ID, MSG_COMMAND_ACK } from '../../shared/ack-protocol.js';
+ import { TIMELINE_PAYLOAD_BUDGET_BYTES } from '../../shared/timeline-payload-budget.js';
+ import { TIMELINE_DETAIL_ERROR_REASONS, TIMELINE_HISTORY_ERROR_REASONS, TIMELINE_REQUEST_ERROR_REASONS, type TimelineRequestErrorReason } from '../../shared/timeline-history-errors.js';
+ import {
+ TIMELINE_CURSOR_DIRECTIONS,
+ TIMELINE_MESSAGES,
+ TIMELINE_RESPONSE_SOURCES,
+ TIMELINE_RESPONSE_STATUS,
+ type TimelinePayloadMetadata,
+ type TimelineResponseSource,
+ type TimelineResponseStatus,
+ } from '../../shared/timeline-protocol.js';
+ import { homedir } from 'os';
+ import { lstat as fsLstat, open as fsOpen, readdir as fsReaddir, realpath as fsRealpath, readFile as fsReadFileRaw, stat as fsStat, unlink as fsUnlink, writeFile as fsWriteFile } from 'node:fs/promises';
+ import * as nodePath from 'node:path';
+ import { exec as execCb, execFile as execFileCb } from 'node:child_process';
+ import { promisify } from 'node:util';
+ const execAsync = promisify(execCb);
+ const execFileA
|
|
Unit Tests (Node 22)
The strategy configuration was canceled because "unit-tests._24" failed
|
|
Unit Tests (Node 22)
The operation was canceled.
|
|
test/shared/timeline-protocol-magic-string.test.ts > timeline protocol magic strings > keeps shared timeline protocol literals centralized outside compatibility fixtures:
test/shared/timeline-protocol-magic-string.test.ts#L186
AssertionError: Timeline protocol literals must come from shared/timeline-protocol.ts or shared/timeline-history-errors.ts.
Move implementation code to shared constant imports, or add a narrowly named compatibility test/fixture exemption.
src/daemon/memory-get-sources-orchestrator.ts:54:31 projection_unavailable
src/daemon/memory-get-sources-orchestrator.ts:155:39 projection_unavailable
test/daemon/memory-get-sources-orchestrator.test.ts:218:34 projection_unavailable: expected [ …(3) ] to deeply equal []
- Expected
+ Received
- Array []
+ Array [
+ "src/daemon/memory-get-sources-orchestrator.ts:54:31 projection_unavailable",
+ "src/daemon/memory-get-sources-orchestrator.ts:155:39 projection_unavailable",
+ "test/daemon/memory-get-sources-orchestrator.test.ts:218:34 projection_unavailable",
+ ]
❯ test/shared/timeline-protocol-magic-string.test.ts:186:19
|
|
test/shared/fs-read-error-codes.test.ts > fs-read shared error constants > keeps fs-read production consumers importing shared wire error values instead of redefining them:
test/shared/fs-read-error-codes.test.ts#L146
AssertionError: src/daemon/command-handler.ts should use FS_READ_ERROR_CODES for internal_error: expected '/**\n * Handle commands from the web …' not to contain '\'internal_error\''
- Expected
+ Received
- 'internal_error'
+ /**
+ * Handle commands from the web UI and inbound chat messages via ServerLink.
+ * Commands arrive as JSON objects with a `type` field.
+ */
+ import { startProject, stopProject, teardownProject, getTransportRuntime, launchTransportSession, isProviderSessionBound, persistSessionRecord, relaunchSessionWithSettings, stopTransportRuntimeSession, type ProjectConfig } from '../agent/session-manager.js';
+ import { isTransportAgent } from '../agent/detect.js';
+ import { sendKeys, sendKeysDelayedEnter, sendRawInput, resizeSession, sendKey, getPaneStartCommand } from '../agent/tmux.js';
+ import { listSessions, getSession, upsertSession, removeSession, type SessionRecord } from '../store/session-store.js';
+ import { routeMessage, type InboundMessage, type RouterContext } from '../router/message-router.js';
+ import { terminalStreamer, type StreamSubscriber } from './terminal-streamer.js';
+ import type { ServerLink } from './server-link.js';
+ import { timelineEmitter } from './timeline-emitter.js';
+ import { TimelinePreferredReadError, timelineStore } from './timeline-store.js';
+ import {
+ recordFsWorkerMetric,
+ recordTimelineBudgetShape,
+ recordTransportListModelsStaleCompletion,
+ traceCommandAsync,
+ traceSync,
+ traceWebCommandReceived,
+ } from './latency-tracer.js';
+ import { getDefaultTimelineHistoryWorkerPool, shouldUseTimelineHistoryWorkerPool, TimelineHistoryPoolError } from './timeline-history-pool.js';
+ import { FsListPoolError, getDefaultFsListWorkerPool, shouldUseFsListWorkerPool } from './fs-list-pool.js';
+ import { scanFsListSnapshot } from './fs-list-worker.js';
+ import { FsGitStatusPoolError, getDefaultFsGitStatusWorkerPool, shouldUseFsGitStatusWorkerPool, __resetFsGitStatusWorkerPoolForTests } from './fs-git-status-pool.js';
+ import { scanFsGitStatusSnapshot } from './fs-git-status-worker.js';
+ import { shapeTimelineDetailValueForTransport, shapeTimelineEventsForTransport } from './timeline-response-shaper.js';
+ import { getDefaultTimelineDetailStore } from './timeline-detail-store.js';
+ import { TIMELINE_HISTORY_CONTENT_TYPES, TIMELINE_HISTORY_STATE_TYPES, type MemoryContextTimelinePayload, type TimelineEvent } from '../shared/timeline/types.js';
+ import { emitSessionInlineError } from './session-error.js';
+ import { enqueueResend, getResendEntries, clearResend } from './transport-resend-queue.js';
+ import {
+ startSubSession,
+ stopSubSession,
+ rebuildSubSessions,
+ detectShells,
+ readSubSessionResponse,
+ subSessionName,
+ type SubSessionRecord,
+ } from './subsession-manager.js';
+ import { sendSubSessionSync } from './subsession-sync.js';
+ import logger from '../util/logger.js';
+ import { getDefaultAckOutbox } from './ack-outbox.js';
+ import { COMMAND_ACK_ERROR_DUPLICATE_COMMAND_ID, MSG_COMMAND_ACK } from '../../shared/ack-protocol.js';
+ import { TIMELINE_PAYLOAD_BUDGET_BYTES } from '../../shared/timeline-payload-budget.js';
+ import { TIMELINE_DETAIL_ERROR_REASONS, TIMELINE_HISTORY_ERROR_REASONS, TIMELINE_REQUEST_ERROR_REASONS, type TimelineRequestErrorReason } from '../../shared/timeline-history-errors.js';
+ import {
+ TIMELINE_CURSOR_DIRECTIONS,
+ TIMELINE_MESSAGES,
+ TIMELINE_RESPONSE_SOURCES,
+ TIMELINE_RESPONSE_STATUS,
+ type TimelinePayloadMetadata,
+ type TimelineResponseSource,
+ type TimelineResponseStatus,
+ } from '../../shared/timeline-protocol.js';
+ import { homedir } from 'os';
+ import { lstat as fsLstat, open as fsOpen, readdir as fsReaddir, realpath as fsRealpath, readFile as fsReadFileRaw, stat as fsStat, unlink as fsUnlink, writeFile as fsWriteFile } from 'node:fs/promises';
+ import * as nodePath from 'node:path';
+ import { exec as execCb, execFile as execFileCb } from 'node:child_process';
+ import { promisify } from 'node:util';
+ const execAsync = promisify(execCb);
+ const execFileA
|
|
Unit Tests (macOS)
Process completed with exit code 1.
|
|
test/shared/timeline-protocol-magic-string.test.ts > timeline protocol magic strings > keeps shared timeline protocol literals centralized outside compatibility fixtures:
test/shared/timeline-protocol-magic-string.test.ts#L186
AssertionError: Timeline protocol literals must come from shared/timeline-protocol.ts or shared/timeline-history-errors.ts.
Move implementation code to shared constant imports, or add a narrowly named compatibility test/fixture exemption.
src/daemon/memory-get-sources-orchestrator.ts:54:31 projection_unavailable
src/daemon/memory-get-sources-orchestrator.ts:155:39 projection_unavailable
test/daemon/memory-get-sources-orchestrator.test.ts:218:34 projection_unavailable: expected [ …(3) ] to deeply equal []
- Expected
+ Received
- Array []
+ Array [
+ "src/daemon/memory-get-sources-orchestrator.ts:54:31 projection_unavailable",
+ "src/daemon/memory-get-sources-orchestrator.ts:155:39 projection_unavailable",
+ "test/daemon/memory-get-sources-orchestrator.test.ts:218:34 projection_unavailable",
+ ]
❯ test/shared/timeline-protocol-magic-string.test.ts:186:19
|
|
test/shared/fs-read-error-codes.test.ts > fs-read shared error constants > keeps fs-read production consumers importing shared wire error values instead of redefining them:
test/shared/fs-read-error-codes.test.ts#L146
AssertionError: src/daemon/command-handler.ts should use FS_READ_ERROR_CODES for internal_error: expected '/**\n * Handle commands from the web …' not to contain '\'internal_error\''
- Expected
+ Received
- 'internal_error'
+ /**
+ * Handle commands from the web UI and inbound chat messages via ServerLink.
+ * Commands arrive as JSON objects with a `type` field.
+ */
+ import { startProject, stopProject, teardownProject, getTransportRuntime, launchTransportSession, isProviderSessionBound, persistSessionRecord, relaunchSessionWithSettings, stopTransportRuntimeSession, type ProjectConfig } from '../agent/session-manager.js';
+ import { isTransportAgent } from '../agent/detect.js';
+ import { sendKeys, sendKeysDelayedEnter, sendRawInput, resizeSession, sendKey, getPaneStartCommand } from '../agent/tmux.js';
+ import { listSessions, getSession, upsertSession, removeSession, type SessionRecord } from '../store/session-store.js';
+ import { routeMessage, type InboundMessage, type RouterContext } from '../router/message-router.js';
+ import { terminalStreamer, type StreamSubscriber } from './terminal-streamer.js';
+ import type { ServerLink } from './server-link.js';
+ import { timelineEmitter } from './timeline-emitter.js';
+ import { TimelinePreferredReadError, timelineStore } from './timeline-store.js';
+ import {
+ recordFsWorkerMetric,
+ recordTimelineBudgetShape,
+ recordTransportListModelsStaleCompletion,
+ traceCommandAsync,
+ traceSync,
+ traceWebCommandReceived,
+ } from './latency-tracer.js';
+ import { getDefaultTimelineHistoryWorkerPool, shouldUseTimelineHistoryWorkerPool, TimelineHistoryPoolError } from './timeline-history-pool.js';
+ import { FsListPoolError, getDefaultFsListWorkerPool, shouldUseFsListWorkerPool } from './fs-list-pool.js';
+ import { scanFsListSnapshot } from './fs-list-worker.js';
+ import { FsGitStatusPoolError, getDefaultFsGitStatusWorkerPool, shouldUseFsGitStatusWorkerPool, __resetFsGitStatusWorkerPoolForTests } from './fs-git-status-pool.js';
+ import { scanFsGitStatusSnapshot } from './fs-git-status-worker.js';
+ import { shapeTimelineDetailValueForTransport, shapeTimelineEventsForTransport } from './timeline-response-shaper.js';
+ import { getDefaultTimelineDetailStore } from './timeline-detail-store.js';
+ import { TIMELINE_HISTORY_CONTENT_TYPES, TIMELINE_HISTORY_STATE_TYPES, type MemoryContextTimelinePayload, type TimelineEvent } from '../shared/timeline/types.js';
+ import { emitSessionInlineError } from './session-error.js';
+ import { enqueueResend, getResendEntries, clearResend } from './transport-resend-queue.js';
+ import {
+ startSubSession,
+ stopSubSession,
+ rebuildSubSessions,
+ detectShells,
+ readSubSessionResponse,
+ subSessionName,
+ type SubSessionRecord,
+ } from './subsession-manager.js';
+ import { sendSubSessionSync } from './subsession-sync.js';
+ import logger from '../util/logger.js';
+ import { getDefaultAckOutbox } from './ack-outbox.js';
+ import { COMMAND_ACK_ERROR_DUPLICATE_COMMAND_ID, MSG_COMMAND_ACK } from '../../shared/ack-protocol.js';
+ import { TIMELINE_PAYLOAD_BUDGET_BYTES } from '../../shared/timeline-payload-budget.js';
+ import { TIMELINE_DETAIL_ERROR_REASONS, TIMELINE_HISTORY_ERROR_REASONS, TIMELINE_REQUEST_ERROR_REASONS, type TimelineRequestErrorReason } from '../../shared/timeline-history-errors.js';
+ import {
+ TIMELINE_CURSOR_DIRECTIONS,
+ TIMELINE_MESSAGES,
+ TIMELINE_RESPONSE_SOURCES,
+ TIMELINE_RESPONSE_STATUS,
+ type TimelinePayloadMetadata,
+ type TimelineResponseSource,
+ type TimelineResponseStatus,
+ } from '../../shared/timeline-protocol.js';
+ import { homedir } from 'os';
+ import { lstat as fsLstat, open as fsOpen, readdir as fsReaddir, realpath as fsRealpath, readFile as fsReadFileRaw, stat as fsStat, unlink as fsUnlink, writeFile as fsWriteFile } from 'node:fs/promises';
+ import * as nodePath from 'node:path';
+ import { exec as execCb, execFile as execFileCb } from 'node:child_process';
+ import { promisify } from 'node:util';
+ const execAsync = promisify(execCb);
+ const execFileA
|
|
Secret Scan (gitleaks)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, gitleaks/gitleaks-action@v2. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Lint
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Lint:
src/context/summary-compressor.ts#L240
'isRetryableError' is defined but never used
|
|
Lint:
src/context/skill-registry.ts#L24
'EMPTY_SNAPSHOT' is assigned a value but never used
|
|
Lint:
src/agent/runtime-context-bootstrap.ts#L22
'STARTUP_PROJECT_MEMORY_HEADER' is defined but never used
|
|
Lint:
src/agent/providers/qwen.ts#L95
'_contextMessagePreamble' is assigned a value but never used
|
|
Lint:
src/agent/providers/qwen.ts#L95
'_contextSystemText' is assigned a value but never used
|
|
Lint:
src/agent/providers/qwen.ts#L94
'_memoryRecall' is assigned a value but never used
|
|
Lint:
src/agent/providers/qwen.ts#L94
'_startupMemory' is assigned a value but never used
|
|
Lint:
src/agent/providers/qwen.ts#L94
'_messagePreamble' is assigned a value but never used
|
|
Lint:
src/agent/providers/qwen.ts#L94
'_systemText' is assigned a value but never used
|
|
Lint:
src/agent/gemini-runtime-config.ts#L16
'err' is defined but never used
|
|
Preview Dist Smoke
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Typecheck
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Embedding Integration Tests
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Web Tests (Components)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Server DB Integration Tests
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Web Tests (Unit)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Server Unit Tests
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Unit Tests (Windows)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Unit Tests (Windows ConPTY)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Unit Tests (Node 24)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Unit Tests (Node 22)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Unit Tests (macOS)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Unit Tests (Windows)
NOTICE: windows-latest requests are being redirected to windows-2025-vs2026 by June 15, 2026
|
|
Unit Tests (Windows ConPTY)
NOTICE: windows-latest requests are being redirected to windows-2025-vs2026 by June 15, 2026
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
gitleaks-results.sarif
|
367 Bytes |
sha256:c14c4f2f901d1108dec5955ae2a1f775fd7655e65c6499d2f5634484f9682b3b
|
|