Skip to content

feat(ai-builder): Surface thread provenance on Instance AI traces (no-changelog) - #36909

Open
JoseBra wants to merge 2 commits into
masterfrom
feat-eval-trace-case-identity
Open

feat(ai-builder): Surface thread provenance on Instance AI traces (no-changelog)#36909
JoseBra wants to merge 2 commits into
masterfrom
feat-eval-trace-case-identity

Conversation

@JoseBra

@JoseBra JoseBra commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Summary

A thread already records where it was opened from: source (required, from INSTANCE_AI_THREAD_SOURCES) plus the opener's own sourceContext bag, both persisted in the thread's metadata by ensureThread. Neither ever reached the trace.

This stamps them on: thread_source, and each sourceContext entry as source_context.<key>.

So a LangSmith project can now answer "which entry point produced this run?" — canvas vs template vs node-error vs evals — which it could not before. Today's callers make that concrete: {templateId, templateName}, {agentId}, {workflowId, executionId}, and from the eval harness {evalCase, evalIteration}.

Why now

The LangTracer eval harness is enabling builder tracing on its eval containers. Every build in that project is the same handful of test cases run over and over, and a trace carries only a bare-UUID thread_id — so the conversations are indistinguishable and no export can group them. sourceContext is the existing hook for exactly this.

Design

One rule is load-bearing: the source_context. prefix. buildBaseMetadata spreads caller metadata last, so an unprefixed user_id in a sourceContext would replace the real one. There is a test for that specifically.

Nothing else is bounded here — sourceContext is size-capped where it enters the API, and sanitizeTraceValue handles values downstream. (An earlier revision also capped key count and filtered to scalars; both were dropped as redundant, and the cap silently dropped valid entries under the documented limit.)

Stamped on all three trace paths — message turn, orchestrator resume, approval resume. This is load-bearing: a build finishes on a resume beat, so stamping only the message turn would leave the spans containing the actual work unattributable.

Reading the provenance is best-effort — a failed metadata read costs the trace a label, never the run.

Harness side

fileSlug/iteration ride BuildArgsbuildWorkflowensureThread. BuildArgs gets a pin test for the same reason the credentialFixture comment gives: wrap() erases the callback's parameter type, so a dropped field still type-checks.

Verification

  • Unit tests for the mapping: entry point, flattening, the prefix collision guard, empty cases.
  • Service tests pin the wiring on the approval-resume path, plus that a failed provenance read still resumes.
  • Both new guards verified to bite: removing the fields from the tracedBuild call, and removing the stamp from the resume path, each turn their test red; restoring turns it green.
  • packages/@n8n/instance-ai: tsc clean, full evaluations + tracing suites pass. packages/cli: tsc clean, instance-ai service suite 166 pass.
  • Note: one hand-written mock of @n8n/instance-ai in the cli service tests needed the new export added — without it the function is undefined and ...undefined spreads to nothing, which reads as a passing test with silently empty metadata.

🤖 Generated with Claude Code

…-changelog)

A thread already records where it was opened from — `source` (required, from
INSTANCE_AI_THREAD_SOURCES) plus the opener's own `sourceContext` bag, both
persisted in the thread's metadata by `ensureThread`. Neither ever reached the
trace, so a LangSmith project cannot answer "which entry point produced this
run?" — and, for the offline eval harness, cannot tell one build from the
hundreds of near-identical ones a suite produces.

Stamps both onto the trace: `thread_source`, and each `sourceContext` entry as
`source_context.<key>`. Two rules make an arbitrary caller bag safe to merge:

- PREFIXED, because `buildBaseMetadata` spreads caller metadata LAST — an
  unprefixed `user_id` in a sourceContext would replace the real one.
- FLAT AND SCALAR, because LangSmith filters match a metadata KEY, not a path
  into a JSON document; a nested object is unfilterable, so dropping it beats
  shipping something that cannot be queried. Entry count is bounded too.

Stamped on all three trace paths — the message turn, the orchestrator resume,
and the approval resume. That matters: a build finishes on a RESUME beat, so
stamping only the message turn would leave the spans that contain the actual
work unattributable.

The harness now sends the case slug and iteration, so a traced eval run can be
grouped by case: `fileSlug`/`iteration` ride BuildArgs to `ensureThread` as
sourceContext. BuildArgs is pinned by a test for the reason the credentialFixture
comment gives — `wrap()` erases the callback's parameter type, so a dropped field
still type-checks.

Reading the provenance is best-effort: a failed metadata read costs the trace a
label, never the run.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@n8n-assistant n8n-assistant Bot added cla-signed core Enhancement outside /nodes-base and /editor-ui n8n team Authored by the n8n team labels Aug 24, 2026
@n8n-assistant

n8n-assistant Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

PR review overview

Based on ownership of the 10 changed files in this PR:

Ownership Files owned Share Source code Test files Misc
@n8n-io/instance-ai 10 100% +101 / -3 +115 / -4 +0 / -0
Total 10 100% +101 / -3 +115 / -4 +0 / -0

@codecov

codecov Bot commented Aug 24, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.85714% with 1 line in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
...cli/src/modules/instance-ai/instance-ai.service.ts 83.33% 0 Missing and 1 partial ⚠️

📢 Thoughts on this report? Let us know!

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 10 files

Architecture diagram
sequenceDiagram
    participant Harness as Eval Harness (Orchestrator)
    participant Client as N8n API Client
    participant AI as InstanceAiService
    participant Mem as MemoryService / DB
    participant Trace as LangSmith / Tracing

    Note over Harness,Trace: Phase 1: Thread Provisioning (Eval Harness)

    Harness->>Client: NEW: ensureThread(threadId, projectId, sourceContext)
    Note right of Harness: sourceContext contains evalCase & evalIteration
    Client->>Mem: POST /threads (persists source + sourceContext)

    Note over Harness,Trace: Phase 2: Run Execution or Resume (Server-Side)

    alt Message Turn
        AI->>AI: executeRun()
    else Orchestrator/Approval Resume
        AI->>AI: resumeSuspendedRun()
    end

    AI->>Mem: NEW: getThreadMetadata(userId, threadId)
    
    alt Read Successful
        Mem-->>AI: { source, sourceContext: { ... } }
        AI->>AI: NEW: threadProvenanceMetadata()
        Note right of AI: Maps to 'thread_source' and 'source_context.*'<br/>Filters: Scalars only, Max 20 keys
    else Read Fails (Best Effort)
        Mem-->>AI: Error (DB down/missing)
        AI->>AI: NEW: Catch error & return empty metadata
    end

    AI->>Trace: NEW: createTraceContext(..., metadata: provenance)
    
    alt Success Path
        Trace-->>AI: traceId
        Note over AI,Trace: Trace now filterable by entry point or eval case
    else Unhappy Path (Tracing)
        Trace-->>AI: Error
        Note over AI: AI run continues (provenance is non-blocking)
    end

    AI-->>Harness: Return Run Result
Loading

Reply with feedback, questions, or to request a fix.

Fix all with cubic | Re-trigger cubic

Comment thread packages/@n8n/instance-ai/src/tracing/thread-provenance.ts Outdated
@github-actions

Copy link
Copy Markdown
Contributor

Instance AI Workflow Eval

Important

This eval does not re-run on new commits. To test your latest push, re-run it against the PR head:

gh workflow run ci-instance-ai-evals.yml -f pr=36909

…or use the Run workflow button and set pr = 36909.

Tip

🟢 All 25 units green over 3 runs (clean).

Gate: pass@k = 100% (every unit passes at least once across k runs) — 100.0% pass (75/75 trials over 25 units · k=3)

pass@3 100.0% · pass^3 100.0% · LangSmith experiment

Per-test-case results (8)
Workflow Status pass@3 pass^3
airtable-split-to-slack 3/3 100% 100%
notification-router 3/3 100% 100%
refuses-deprecated-chat-model 3/3 100% 100%
rest-api-data-pipeline 3/3 100% 100%
revises-plan-after-rejection 3/3 100% 100%
telegram-chatbot-memory-session 3/3 100% 100%
weather-alert 3/3 100% 100%
workflow-data-table 3/3 100% 100%

Workflow checks

Scored over 24 successful build(s). N/A = check did not apply to that workflow. Error = check could not be measured (e.g. judge timeout).

Dimension Check Kind Pass Fail N/A Error Pass rate
parameter_correctness correct_node_operations llm 21 3 0 0 88%
intent_match fulfills_user_request llm 20 4 0 0 83%
All workflow checks (2 failing of 35 checks)
Dimension Check Kind Pass Fail N/A Error Pass rate
structure has_nodes deterministic 24 0 0 0 100%
structure has_start_node deterministic 24 0 0 0 100%
structure has_trigger deterministic 24 0 0 0 100%
structure no_disabled_nodes deterministic 24 0 0 0 100%
connection_topology all_nodes_connected deterministic 24 0 0 0 100%
connection_topology error_routes_consistent deterministic 24 0 0 0 100%
connection_topology handles_multiple_items llm 24 0 0 0 100%
connection_topology no_unreachable_nodes deterministic 24 0 0 0 100%
connection_topology switch_fallback_output_enabled deterministic 3 0 21 0 100%
parameter_correctness correct_node_operations llm 21 3 0 0 88%
parameter_correctness expressions_reference_existing_nodes deterministic 6 0 18 0 100%
parameter_correctness google_sheets_rlc_default_mode deterministic 3 0 21 0 100%
parameter_correctness http_generic_auth_type_matches_prompt deterministic 0 0 24 0
parameter_correctness item_flow_independent_source_execute_once deterministic 0 0 24 0
parameter_correctness item_flow_paired_item_references deterministic 0 0 24 0
parameter_correctness no_empty_set_nodes deterministic 1 0 23 0 100%
parameter_correctness no_invalid_from_ai deterministic 0 0 24 0
parameter_correctness valid_data_flow llm 24 0 0 0 100%
parameter_correctness valid_field_references deterministic 21 0 3 0 100%
parameter_correctness valid_node_config deterministic 24 0 0 0 100%
intent_match fulfills_user_request llm 20 4 0 0 83%
communication response_describes_changes_accurately llm 24 0 0 0 100%
ai_nodes agent_has_dynamic_prompt deterministic 6 0 18 0 100%
ai_nodes agent_has_language_model deterministic 6 0 18 0 100%
ai_nodes memory_properly_connected deterministic 5 0 19 0 100%
ai_nodes memory_session_key_expression deterministic 5 0 19 0 100%
ai_nodes tools_have_parameters deterministic 0 0 24 0
ai_nodes vector_store_has_embeddings deterministic 0 0 24 0
nodes_craftsmanship code_node_no_http_requests deterministic 4 0 20 0 100%
nodes_craftsmanship descriptive_node_names llm 24 0 0 0 100%
nodes_craftsmanship no_unnecessary_code_nodes llm 24 0 0 0 100%
efficiency no_excessive_build_failures deterministic 24 0 0 0 100%
security inbound_trigger_auth_defaults deterministic 6 0 18 0 100%
security no_hardcoded_credentials deterministic 1 0 23 0 100%
security secrets_use_credentials_not_parameters deterministic 9 0 15 0 100%

@github-actions

github-actions Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Instance AI Discovery Eval ✅

Branch: feat-eval-trace-case-identity · Commit: d211451aa66c4d0f1e685d074a81dff297783f55

Eval output

> @n8n/instance-ai@1.21.0 eval:discovery /home/runner/_work/n8n/n8n/packages/@n8n/instance-ai
> tsx evaluations/discovery/cli.ts --trials 3 --fail-on-zero-pass

Running 17 discovery scenario(s) × 3 trial(s) (model: anthropic/claude-sonnet-4-6, concurrency: 3).

▸ config-evals-skill-loading ... (node:5184) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Failed to clean up agent run tool results {
  runId: 'run_153ab130-e071-44a0-91de-e320eb44c917',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_5cf925b7-c983-496b-881c-12e5307d0476',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_7503b369-e1a2-4b6d-9abe-ba86a339e2a5',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
✓ 3/3 passed (100%)
▸ data-table-natural-list-skill-loading ... Failed to clean up agent run tool results {
  runId: 'run_2bdf9001-2665-4261-a96d-d8771c6aca7a',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_5fedc4b5-5549-403b-a7dd-918d49b2dd88',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_bc1eb6b5-e6c6-4112-aeb3-19c76dcad9ad',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
✓ 3/3 passed (100%)
▸ data-table-skill-loading ... Failed to clean up agent run tool results {
  runId: 'run_f2069e04-9ee1-4d0f-af87-91f44f720475',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_94b10b01-fb9e-40d4-8cc1-d71700ea0f72',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_c96257c8-007a-439f-938b-40373495e474',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
✓ 3/3 passed (100%)
▸ data-table-workflow-skill-loading ... Failed to clean up agent run tool results {
  runId: 'run_78e39169-5c48-4c12-97af-c3620340dec7',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_83d73792-24bb-4aae-9bc3-592fd3c6ef0e',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_8f780211-922e-4811-a382-a81e501c1cd6',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
✓ 3/3 passed (100%)
▸ google-oauth-credential-setup ... Failed to clean up agent run tool results {
  runId: 'run_2c9c98ce-fda7-456c-a0f1-204d294c45f5',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_a2b16ace-4fb9-4d00-a27c-9c26f484401a',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_3f38e851-384e-4733-aaef-accfff986696',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
✓ 3/3 passed (100%)
▸ http-node-config-no-browser ... Failed to clean up agent run tool results {
  runId: 'run_d3c5ca5b-640c-496d-a0f5-cdbb20bca984',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_f539a3ca-5bb7-4e04-b1c5-57edd490892b',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_586dad90-37dd-4d46-ac54-060971596c6f',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
✓ 3/3 passed (100%)
▸ mcp-broken-connection-reconnect ... Failed to clean up agent run tool results {
  runId: 'run_58e85f80-8512-45af-9186-5d19afbf22a8',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_ac987cde-fc63-4132-a490-ca157ee9bf08',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_445f58ff-1787-446c-8c26-5977380ee623',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
✓ 3/3 passed (100%)
▸ mcp-connect-unconnected-service ... Failed to clean up agent run tool results {
  runId: 'run_31baca5d-5282-4902-9fc9-3ba98a87895f',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_72c7f3ad-17ed-4f5a-8f59-267d7dfa1a82',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_8bbd4da0-4538-462b-a370-005c3da35081',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
✓ 3/3 passed (100%)
▸ mcp-declined-tool-call-no-reconnect ... Failed to clean up agent run tool results {
  runId: 'run_44c2b500-57f1-4b6e-9e7c-9ade646cfc01',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_1f0327dd-f6cf-4f6f-a98c-0bf97705d655',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_47eabc1d-ec72-4259-98ac-d67020fe09fd',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
✓ 3/3 passed (100%)
▸ mcp-no-registry-match ... Failed to clean up agent run tool results {
  runId: 'run_85c67cd9-407b-4ba6-a5ca-8b1794ee5a4f',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_cc4b9194-270b-4419-9619-e24126636243',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_601b7b52-21d8-4d4a-b7ab-3d325154d78c',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
✓ 3/3 passed (100%)
▸ mcp-not-offered-for-workflow-build ... Failed to clean up agent run tool results {
  runId: 'run_66205a5c-0c4a-42e9-99de-987a07dc5b02',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_6fa3d674-10fc-4fec-8c5c-8dcb42236f01',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_b40adc1e-77a5-4b44-8805-5022e023878b',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
✓ 3/3 passed (100%)
▸ mcp-uses-connected-server-tools ... Failed to clean up agent run tool results {
  runId: 'run_1ebb8fb0-af9e-413d-bc1c-b187307052e0',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_4e2c128e-ccd6-431b-801a-8c36d292d8b0',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_dcff85fb-4456-48ab-9174-74fd3d837495',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
✓ 3/3 passed (100%)
▸ oauth-with-computer-use-disabled ... Failed to clean up agent run tool results {
  runId: 'run_49da4b83-7d77-4ec5-b95e-fbca89e8e619',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_e30aa2c5-1247-461a-9b3e-38ef342a9a87',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_882dd60e-b645-454f-bd52-d495fe0b7113',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
✓ 3/3 passed (100%)
▸ screenshot-dashboard ... Failed to clean up agent run tool results {
  runId: 'run_14e84a1a-b646-4926-b53c-8e65553ff850',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_60cb248f-9611-4eb9-a6f6-d51027bfbf3f',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_c7031ce2-2962-47a0-a506-b73e0f815e57',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
✓ 3/3 passed (100%)
▸ slack-oauth-credential-setup ... Failed to clean up agent run tool results {
  runId: 'run_98c5dc42-1930-4db8-b595-ba9a65c00084',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_fa2398de-9ede-4795-8533-c06cfbaff721',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_d15b4f23-89d9-4789-b7f8-698bd35150ac',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
✓ 3/3 passed (100%)
▸ workflow-builder-no-agent-builder-leak ... Failed to clean up agent run tool results {
  runId: 'run_d704183a-d5d3-457e-a1b7-beced32e3d1e',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_c52352b3-d039-4988-a6cd-97dc55f96b5a',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_9834ccd1-b87a-40c2-839d-795e1921ef33',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
✓ 3/3 passed (100%)
▸ workflow-builder-no-credential-ask ... Failed to clean up agent run tool results {
  runId: 'run_4bfeda76-8095-485e-a850-c5c5f0d13bb1',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_f344b9e1-ed96-41dd-90d4-ec7446b493da',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
Failed to clean up agent run tool results {
  runId: 'run_77a6ff0a-316a-4159-8e14-6292cc7ecb75',
  error: Error: Stub workspace exposes only CORE_WORKSPACE_TOOL_NAMES
      at InMemoryWorkspaceFilesystem.unreachable (/home/runner/_work/n8n/n8n/packages/@n8n/instance-ai/evaluations/harness/stub-workspace.ts:30:30)
      at <anonymous> (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:67:26)
      at raceWithAbort (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/sdk/abort.ts:54:30)
      at removeToolResultRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/workspace/tool-result-storage.ts:65:21)
      at AgentRuntime.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1127:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Object.cleanupRun (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:708:28)
      at async StreamSink.finishComplete (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/stream-sink.ts:357:3)
      at async AgentRuntime.runAgentLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:967:10)
      at async Object.runLoop (/home/runner/_work/n8n/n8n/packages/@n8n/agents/src/runtime/loop/agent-runtime.ts:1020:5)
}
✓ 3/3 passed (100%)

=== Summary ===
Scenarios: 17/17 above threshold (67%)
Trials: 51/51 passed (100%)
Total time: 1434.4s

…ts keep

65 lines for a two-field projection, and half of it defended against inputs the
API boundary already bounds:

- The 20-key cap silently dropped valid entries under the documented 2 KB
  limit, which is worse than not capping (review finding). `sourceContext` is
  size-capped where it enters; nothing more is needed here.
- The scalar-only filter was justified by LangSmith filterability, not
  correctness, and every real caller already sends ids —
  `{templateId, templateName}`, `{agentId}`, `{workflowId, executionId}`.
  `sanitizeTraceValue` handles anything else downstream.
- THREAD_SOURCE_KEY / SOURCE_CONTEXT_PREFIX were exported and used nowhere.

What remains is the one rule that is load-bearing: the `source_context.`
prefix, because `buildBaseMetadata` spreads caller metadata LAST and a bare
`user_id` in a sourceContext would replace the real one. Its test stays.

32 lines, 4 tests.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 2 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="packages/@n8n/instance-ai/src/tracing/thread-provenance.ts">

<violation number="1" location="packages/@n8n/instance-ai/src/tracing/thread-provenance.ts:28">
P2: When a caller supplies an object or array in `sourceContext`, this forwards it as one trace value. `toTelemetryAttributeValue` converts non-scalar values to JSON strings, so `source_context.<key>` is not filterable as the provenance feature promises; keep only scalar values or flatten them before emission.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Fix all with cubic | Re-trigger cubic

if (typeof source === 'string' && source) out.thread_source = source;
if (typeof sourceContext === 'object' && sourceContext !== null) {
for (const [key, value] of Object.entries(sourceContext)) {
out[`source_context.${key}`] = value;

@cubic-dev-ai cubic-dev-ai Bot Aug 24, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: When a caller supplies an object or array in sourceContext, this forwards it as one trace value. toTelemetryAttributeValue converts non-scalar values to JSON strings, so source_context.<key> is not filterable as the provenance feature promises; keep only scalar values or flatten them before emission.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At packages/@n8n/instance-ai/src/tracing/thread-provenance.ts, line 28:

<comment>When a caller supplies an object or array in `sourceContext`, this forwards it as one trace value. `toTelemetryAttributeValue` converts non-scalar values to JSON strings, so `source_context.<key>` is not filterable as the provenance feature promises; keep only scalar values or flatten them before emission.</comment>

<file context>
@@ -1,65 +1,32 @@
-			if (!isScalar(value)) continue;
-			out[`${SOURCE_CONTEXT_PREFIX}${key}`] = value;
-			taken++;
+			out[`source_context.${key}`] = value;
 		}
 	}
</file context>
Suggested change
out[`source_context.${key}`] = value;
\t\t\tif (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n\t\t\t\tout[`source_context.${key}`] = value;\n\t\t\t}
Fix with cubic

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed core Enhancement outside /nodes-base and /editor-ui n8n team Authored by the n8n team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants