The automation card now lists the user's linked instances and checks what a link needs.
The Assistant copies the workflow to the chosen link, turns it on there when asked, and keeps it here.
The card and the result show where the workflow runs and what needs attention.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The workflow menu shows "Move to {name}" for each linked instance.
The dialog checks what moves, shows the problems, and moves the saved workflow.
A message then shows the state of the copy and the credentials to set up.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Chat history now matches a waiting tool call by its id and its tool, so a repeated id keeps the card after the turn and after a reload.
An earlier call that never got a result shows as cancelled. The editor reads the card outcome from its own tool.
Add e2e tests for the Simple and Power modes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Coding tool steps now name their file or command and show how they ended. The preview panel shows a clear state when the sandbox cannot show a preview.
The MCP consent screen fits the n8n logo and shows the tools list in a scrollable popover. The agents tests no longer depend on slow cold imports.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The first message of an Assistant chat stores a run target: this computer or a linked cloud instance.
Power mode shows a picker in the empty view, and the thread header shows the chosen instance.
A lost link makes the chat local and shows a one-time notice to the owner.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Add an importable workflow and three agent configs that take a Linear ticket through plan, approval, implement, verify, critic, minimise and draft PR.
Add a README for import and live-run gaps, and unit tests that validate the pack and its gate scripts.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
An answered automation card stays in the chat and shows one line with the outcome and a link to the workflow.
The line reads the propose_automation tool result when it arrives, and the tool step shows a summary of that result.
The chat keeps the answers of this session, so a history refresh does not remove the answered card.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The owner of an Assistant chat can share it with its team project from the chat header.
Teammates read the chat, answer the cards that the shared-chat rules allow and see who answered each card.
Only the owner can send messages, so a teammate sees a notice in place of the composer.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Add a "Linked instances" settings page. Users can link a cloud n8n, check its connection, change its token and unlink it.
The form checks the name, URL and token before it sends them. The token is not kept in any frontend store.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Add preflight, push and pull routes that move one workflow to or from a linked
n8n instance as a workflow package. Each move is audited, and a push can publish
the copy there and turn off the workflow here.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
In Simple mode, the sidebar shows the chats first and puts the other pages in a Workspace section.
The + menu shows only files, computer, browser and "New workflow". New chats start in the last-used team project.
With experience modes on, sign-in and sign-up open the app root, which leads to the Assistant.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The chat shows a card for propose_automation: the trigger, the steps, where the workflow runs and who can see it.
Each button sends the choice as a capability decision. Capability cards do not offer "Always allow".
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The owner of an Assistant chat can share it with the chat's team project. Project members read the
shared chat and answer its cards within the scopes of each card rule. Only the owner sends messages,
and turns of a shared chat run without the owner's personal integrations.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Coding sandbox scripts now run on Node.js. Setup downloads with curl, wget or Node.js, whichever is available.
Status shows setup, app and check that stopped or ran before a sandbox restart as stopped or restarted, not as running.
The check stops after a time limit that the user can set (default 10 minutes, 30 for n8n). Base branches omit origin/HEAD.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The service reads work signals from the chat history and adds a repeatable-work section to the thread context.
The make-automatic skill tells the Assistant how to offer automation from this section.
The agents runtime keeps the MCP error flag of a tool result on the stored block.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Add routes to list, link, check, change and unlink linked instances for the signed-in user.
Store a default project on each link and pick it from the projects that the linked instance lists.
Move the shared request schemas and summary types to @n8n/api-types.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
On the n8n sandbox service, the coding agent preview now opens a signed n8n URL.
n8n proxies that URL to the app port in the sandbox and checks the user's access.
Daytona previews keep their current behaviour.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The sidebar now groups chats by state in Power mode and shows the workflows that the Assistant built.
Push events and tab focus reload the chat list and the automations, and focus stays in the list.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
UserService.updateSettings now reads and writes the settings in one locked transaction, so overlapping updates of different keys keep both changes.
The user settings schema now keeps mcpJsonNudge and instanceAi, and drops invalid values without failing the users list.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Add the propose_automation capability. The Assistant and MCP clients can offer
to keep a workflow and turn it on. The card shows the schedule that n8n reads
from the Schedule Trigger, where the workflow should run and who can see it.
The user decides; the server checks every answer against the offered options
and the admin permissions.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
CAPABILITY_TOOLS_BY_SCOPE and its lists are now read-only and frozen, so a late write fails.
The parse_schedule capability now lives in the instance-ai module that registers it.
New tests check that each capability is listed the same way for the registry, consent and OAuth grants.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
MCP clients can export one workflow as an n8n package and import it into a project.
A second import of the same package updates the same copy. The tools check scopes, size limits and workflow access.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The mutation tool now runs Stryker in a sandbox mirror and never changes the working tree.
A vitest-compat runner fixes the test name filter so that mutants run their tests under Vitest 5.
The --test-command flag runs a package-specific test command with the Stryker command runner.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The chat splits each agent output into text and tool-call segments, so live and reloaded history show cards in the order the agent produced them.
The composer keeps the focus across a send, and Tab leaves the composer unless a suggestion is shown.
Chat times follow the locale clock, and the offer cards and the Assistant badge use one rebrand recipe.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Move the sidebar Chats section into AssistantChatsSection. Each row wraps its menu item in a div.
With experience modes on, each recent chat shows a state: waiting for you, working, failed or ready to review.
The editor keeps the time that the user last viewed each chat in this browser.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Add an Interface switch to the sidebar footer, to personal settings and to the command bar.
The switch saves the Simple or Power mode for each user. It shows only while experience modes are on.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The rebrand removes the subtle button variant. The coding agent panel and workspace now use outline, as the rebrand does for its own callers.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Merges the draft rebrand (PR #40342, branch n8n-rebrand-2026-feedback) so that new PoC UI uses the new design.
Keeps this branch's removal of four legacy Assistant debug components that the rebrand restyled.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The workflow header shows a "Made with n8n Assistant" badge when the Assistant built the workflow. The badge links to the chat when the viewer can open it. Otherwise it is plain text.
The badge is hidden when the Assistant is not available to the viewer and at a header content width of 640px or less. The badge shrinks to its icon before the workflow name shrinks.
Differences from the spec: the session cache keeps only found records, and the header change has more than 3 lines because it adds these layout rules.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Show a "Make it automatic" offer in the thread after a workflow from the thread runs successfully.
The offer sends a prefilled request to the Assistant, gives way to the fix-with-AI offer, and stays dismissed per workflow.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The remote client keeps the token in a private field, builds its transports once and closes them on close().
probe() uses one deadline for all requests. callTool() reports a connect failure as unreachable or unauthorised.
At connect, a 404 still gives mcp-disabled and a 403 still gives unauthorised, as in listToolNames.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
GET /instance-ai/threads now adds state, needsInput and lastActivityAt to the first 50 threads of a page.
ThreadFactsService.getFacts takes the session rows and reads the facts with one checkpoint query and one execution query.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Add N8N_EXPERIENCE_MODES_ENABLED and N8N_EXPERIENCE_DEFAULT_MODE and send them in the Assistant module settings.
Let each user save an experience mode through PATCH /rest/me/settings and return it in the user settings.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
TOOLS_BY_SCOPE now includes the capability tools, so the consent screen lists them and OAuth grants filter them like built-in tools.
The instance-ai module registers parse_schedule in its init(), and the registry rejects a capability that its scope list does not name.
The replay policy moves to services/capabilities/replay-policy.ts.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The docs now match the migrations on this branch. The Postgres schema docs still need a regeneration.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The opt-in linked-instances module stores each user's links to other n8n instances.
It checks the address and probes the instance before it stores a link, and it encrypts the token at rest.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The instance-ai module now loads the workflow provenance entity, and api-types exports the provenance response types.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
When the Assistant keeps a workflow, n8n stores the chat thread and the user that started it.
Users can list the workflows that the Assistant built for them and read the record of one workflow.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The migration that moves Assistant threads to the Agents runtime now also drops instance_ai_observational_memory.
That table is unused and has a foreign key to instance_ai_threads, so the threads table could not be dropped cleanly.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
`pnpm test:future-poc` starts "This computer" and "Cloud" from the local build,
runs the specs in tests/e2e/future-poc with a scripted model and a fake sandbox
service, then stops both instances and removes their folders.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Add a pure function that recommends this computer or a linked cloud target.
Local-only nodes keep the workflow local. Always-on triggers select the first online cloud target.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
A capability can show the Assistant approval card before it acts. The tool runs only
after approval, with values that the card offered, and obeys the admin permission modes.
The confirm API gets one capabilityDecision answer kind for all capability cards.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The schedule parser now accepts a comma before "on", reads "every week day" as weekdays, ignores phrases next to skipped weeks and does not take a time from an earlier sentence.
The barrels export describeScheduleTrigger by name. A scheme-less "user:pw@host" now gives has-credentials.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The client probes a linked n8n instance, lists its MCP tools and calls one tool.
It sends the access token only in the Authorization header to that origin, through a transport that always applies the SSRF policy.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Each capability for the 'assistant' surface is now a tool of the n8n Assistant.
The tool uses the same definition as the MCP server and runs as the acting user.
Each call emits mcp-tool-called with the client name 'n8n-assistant'.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Add a pure rule that gives each Assistant thread one of five states.
Add a comparator that sorts the thread list by state, then newest activity first.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Define an AI capability once as an MCP tool and keep it in a registry. The MCP
server offers each capability with the 'mcp' surface when the grant holds its
scope. parse_schedule turns a phrase into a schedule trigger, cron and description.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Add a pure scorer that rates conversation signals from 0 to 1.
It uses schedule phrases, intent phrases, repeated successful tool calls and one-off runs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
The server answers POST /v1/messages from an ordered rule script, as JSON or as SSE.
It binds to 127.0.0.1 and records each request, so tests can drive the Assistant with no API key.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh
Add parseSchedulePhrase. It finds a schedule phrase in a message and returns
a trigger, an en-GB description and the matched text. Add scheduleToCron. It
gives a fixed 5-field cron for each trigger.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018gK4jZbBjL8toMAnrfJ4mh