feat!: release n8n-as-code v2 with n8n-manager runtime#363
feat!: release n8n-as-code v2 with n8n-manager runtime#363EtienneLescot wants to merge 44 commits intonextfrom
Conversation
Update the n8n manager facade to accept optional `instanceId` and `instanceName`. This allows the manager to use a managed local lifecycle manager when in `managed-local-docker` mode, enabling better support for multiple or specific n8n instances. - `manager-adapter`: Update `N8nFacadeSetupInput` and `createN8nManagerFacade` to handle instance metadata and use `createManagedLocalLifecycleManager` when appropriate. - `vscode-extension`: Pass instance identification details during reconciliation and from the configuration webview.
Implements logic in both the CLI and VS Code extension to automatically detect and use the local development CLI command when generating AI context files. This ensures that `AGENTS.md` is generated using the correct local build when running in a development environment or when workspace-specific dev configurations are present. - `cli`: Added `inferLocalDevCliCommand` to detect the local `dist/index.js` entrypoint. - `vscode-extension`: Added `resolveAiContextCliCommandOverride` to provide the local CLI path during extension development.
Documentation Validation✅ Documentation validation passed! The documentation changes look good. Once merged, the documentation will be automatically deployed to GitHub Pages. Workflow: Documentation #25065243198 |
Documentation Validation✅ Documentation validation passed! The documentation changes look good. Once merged, the documentation will be automatically deployed to GitHub Pages. Workflow: Documentation #25066342757 |
Separates the responsibilities of `n8n-manager` (global instance, auth, and project state) from `n8nac` (local workspace overrides and workflow operations). - Removes legacy `init`, `switch`, and `instance` commands from `n8nac` CLI. - Introduces `n8nac workspace` commands for local configuration. - Updates documentation and AI agent instructions to reflect the two-CLI architecture. - Refactors `ConfigService` and `manager-adapter` to use `N8nRuntimeOrchestrator` for preparing effective context. - Updates OpenClaw plugin actions to use the new `manager_*` and `workspace_*` command mapping. - Updates VS Code extension to use the prepared context flow.
Documentation Validation✅ Documentation validation passed! The documentation changes look good. Once merged, the documentation will be automatically deployed to GitHub Pages. Workflow: Documentation #25119538878 |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fcbf708b7a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "@n8n-as-code/n8n-credentials-manager": "file:../../../n8n-manager/packages/credentials-manager", | ||
| "@n8n-as-code/n8n-manager-core": "file:../../../n8n-manager/packages/core", |
There was a problem hiding this comment.
Replace external file deps with resolvable package references
This package now declares dependencies as file:../../../n8n-manager/..., which points outside this repository; the same pattern is also introduced in packages/cli/package.json. In a clean checkout (including CI for this repo), install cannot resolve those paths unless a sibling n8n-manager repo exists at that exact relative location, so npm install can fail before build/test. Use workspace-local packages inside this repo or published versions to keep installs reproducible.
Useful? React with 👍 / 👎.
| const listResult = await runN8nManager(["projects", "list"], { | ||
| cwd: workspaceDir, |
There was a problem hiding this comment.
Request machine output before parsing project lists as JSON
The setup flow parses n8n-manager projects list output with JSON.parse, but the command is invoked without a JSON output flag. If the CLI returns human-readable/table output (or any non-JSON text), setup throws a parsing exception and aborts instead of producing a controlled setup error. Pass a JSON-mode flag (if supported) and guard parse failures so openclaw n8nac:setup remains robust.
Useful? React with 👍 / 👎.
…ar when in project context
Documentation Validation✅ Documentation validation passed! The documentation changes look good. Once merged, the documentation will be automatically deployed to GitHub Pages. Workflow: Documentation #25128071197 |
I'm on vacation right now, will take a look on monday ;) Greetings |
Update `packages/cli` and `packages/manager-adapter` to use versioned dependencies instead of local file paths for core packages. This decouples the packages from the local monorepo structure.
Documentation Validation✅ Documentation validation passed! The documentation changes look good. Once merged, the documentation will be automatically deployed to GitHub Pages. Workflow: Documentation #25153871335 |
Documentation Validation✅ Documentation validation passed! The documentation changes look good. Once merged, the documentation will be automatically deployed to GitHub Pages. Workflow: Documentation #25159602358 |
Refactor the labels in the configuration webview to be more descriptive and user-friendly, specifically for the n8n instance type and tunnel selection options.
Documentation Validation✅ Documentation validation passed! The documentation changes look good. Once merged, the documentation will be automatically deployed to GitHub Pages. Workflow: Documentation #25160204528 |
Implement start, stop, and restart capabilities for n8n instances via the configuration webview. This includes: - Added `startInstance`, `stopInstance`, and `restartInstance` methods to the `N8nManagerFacade`. - Enhanced the VS Code webview with status badges (Started, Stopped, Starting, Unhealthy, etc.) and instance metadata. - Added runtime management actions to the webview with progress notifications. - Improved instance deletion to ensure cleanup of managed local Docker processes. - Updated the configuration controller to enable auto-start for prepared contexts. - Refactored webview UI to include better error reporting and external URL opening.
Integrate runtime warning visibility into the configuration webview and improve how public URLs are resolved for instances. - Update `N8nManagerFacade` to include tunnel status warnings when in `managed-local-docker` mode with an active tunnel. - Add support for displaying the first runtime warning as a status badge in the webview UI. - Refactor URL resolution logic to prioritize `authBridgeOpenUrl` and respect `publicUrlEnabled` settings to prevent displaying local host URLs when public access is intended.
Documentation Validation✅ Documentation validation passed! The documentation changes look good. Once merged, the documentation will be automatically deployed to GitHub Pages. Workflow: Documentation #25165852537 |
Update the manager adapter and extension services to use `apiBaseUrl` when available, falling back to `host` only if the former is undefined. This ensures that connection logic, proxy services, and UI components correctly utilize the resolved API endpoint. - Update `N8nManagerFacade` to use `apiBaseUrl` for the credential client - Adjust `openWorkflowBoard` to use the resolved API base URL for proxying - Update `N8nConfigurationController` to include `apiBaseUrl` and `publicBaseUrl` in snapshots - Pass `apiBaseUrl` and `publicBaseUrl` to the configuration webview
Documentation Validation✅ Documentation validation passed! The documentation changes look good. Once merged, the documentation will be automatically deployed to GitHub Pages. Workflow: Documentation #25166537663 |
Introduces a mechanism to manually trigger a reconciliation of instance access settings, specifically for public URLs, via the configuration webview. - Add `resolveInstanceAccess` to `N8nManagerFacade` to allow querying resolved access snapshots. - Implement `refreshPublicUrl` message handler in `ConfigurationWebview` to trigger instance access reconciliation. - Add a "Refresh" inline action button to the configuration webview UI when a public URL is pending. - Update webview data mapping to use the new `access` snapshot for displaying URLs, auth bridges, and runtime warnings.
Documentation Validation✅ Documentation validation passed! The documentation changes look good. Once merged, the documentation will be automatically deployed to GitHub Pages. Workflow: Documentation #25168410018 |
- Simplify 'managed-local-docker' label to 'Managed instance' in the webview HTML template - Add `refreshPublicUrl` flag to the webview state object during initialization
Documentation Validation✅ Documentation validation passed! The documentation changes look good. Once merged, the documentation will be automatically deployed to GitHub Pages. Workflow: Documentation #25171766058 |
Release decision
This PR should be treated as the n8n-as-code v2.0.0 line, not as a v1 minor refactor.
Since the latest main release (
v1.8.1), the branch changes the runtime ownership model for the whole n8n-as-code ecosystem. The major product change is n8n-as-code v2 adoptingn8n-manageras a strong runtime dependency and backend source of truth for instances, auth, managed local runtime, tunnels, projects, credentials infrastructure, and workflow presentation. n8n-as-code surfaces now act as facades over that manager-backed context.Breaking changes
n8n-managerfor runtime state instead of owning runtime configuration inside each facade.n8nac-config.jsoninstance libraries are no longer the source of truth for runtime state.n8nac init,n8nac switch, andn8nac instanceflows are removed/replaced byn8n-managerplusn8nac workspacecommands.n8n-managerinstead of facade-local logic.n8n-manager ...for runtime state andn8nac ...for workflow/workspace operations.Package alignment
All release-managed n8n-as-code packages should move onto the v2 line together for this release: CLI (
n8nac), VS Code extension (n8n-as-code), skills, transformer, MCP, and OpenClaw plugin. This keeps the ecosystem version story simple for the breaking manager-backed runtime model.Architectural scope
@n8n-as-code/manager-adapteras the facade bridge between n8n-as-code surfaces and n8n-manager backend logic.ConfigServiceinto a thin adapter over n8n-manager global configuration and workspace v3 overrides.CLI, plugins, and config behavior
n8nac workspace status --jsonandworkspace get --jsonso agents/plugins can inspect backend-resolved sync context without reading raw config internals.AGENTS.mdcommand resolution so local dev commands are used where appropriate.VS Code facade
Credentials and ontology
Documentation and dev ergonomics
npxpaths.Release Please
A follow-up release-alignment commit is included so Release Please can classify the affected packages as v2.0.0 instead of producing mixed package versions.
Validation
npm testinn8n-manager: 38 passed, 0 failed.npm testinn8n-as-code: transformer 74 passed, skills 97 passed, CLI 154 passed, OpenClaw 26 passed, VS Code unit 31 passed, CLI live integration 10 passed.npm test --workspace=@n8n-as-code/n8nac(26 passed),npm test --workspace=packages/skills(97 passed),npm run test:unit --workspace=n8nac(154 passed), andnpm run build --workspace=@n8n-as-code/n8nac.