fix(settings): keep LLM Profiles reachable while an ACP agent is active#1915
Open
VascoSch92 wants to merge 4 commits into
Open
fix(settings): keep LLM Profiles reachable while an ACP agent is active#1915VascoSch92 wants to merge 4 commits into
VascoSch92 wants to merge 4 commits into
Conversation
Onboarding with an ACP agent creates no LLM profile, and /settings/llm was gated behind `disabledByAcp`, so the page that manages the LLM profile *library* was unreachable — while creating an OpenHands agent profile requires an LLM profile. That left ACP-onboarded users with no UI path to configure an LLM or switch back to OpenHands. The LLM page is not the active agent's LLM, so it should never have been ACP-gated. Condenser and Verification stay gated.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
|
PR Artifacts Notice This PR contains a
|
VascoSch92
marked this pull request as ready for review
July 23, 2026 15:29
Contributor
✅ Mock-LLM Docker E2E Test Results60/60 passed Commit: Details
Posted by the Mock-LLM E2E workflow · results are deterministic (scripted LLM responses) |
Contributor
✅ Mock-LLM E2E Tests60/60 passed Commit: Details
Posted by the Mock-LLM E2E workflow · results are deterministic (scripted LLM responses) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
HUMAN:
Fixing UI-deadlock with onboarding for ACP.
AGENT:
Verified against a real locally-running stack, not just unit tests.
Stack —
OH_CANVAS_SAFE_BACKEND_PORT=28600 OH_CANVAS_SAFE_AUTOMATION_PORT=28601 OH_CANVAS_SAFE_VITE_PORT=28602 OH_CANVAS_SAFE_STATE_DIR=<tmp> npm run dev:static -- --skip-build --port 28603(agent-server 1.36.1 + automation + static frontend + ingress), driven with Playwright.Repro state — completed onboarding through the UI choosing ACP → Claude Code, which leaves exactly the state from the issue:
Before / after on that identical backend state (only
build/swapped between runs):aria-disabledtruenull(enabled)/settings/llmlands on/settings/agents/settings/llmEscape path, end to end through the UI — from the dead-locked state:
Suite —
npm run lint(typecheck + eslint + prettier) clean;npm test→ 512 files / 3950 tests passed;npm run buildsucceeded.Why
Onboarding with an ACP agent (e.g. Claude Code) leaves the app with no LLM profile, because
useApplyOnboardingAgentProfileonly saves an ACP agent profile — ACP owns its own LLM./settings/llmwas flaggeddisabledByAcp, so the settings loader redirected it to/settings/agentswhile an ACP profile was active. But that page manages the LLM profile library, not the active agent's LLM — and creating an OpenHands agent profile requires an existing LLM profile.The result is a cycle with no UI path out: creating an LLM profile needs a page ACP blocks, and leaving ACP needs an LLM profile.
This has now been reported twice. #1795 (2026-07-14) hit it on the
agent-canvas:1.4.0Docker image; #1913 (2026-07-23) is a fresh customer report of the same lockout with the same code-level analysis. Both land on the same first suggestion — #1795 phrases it as "Allow creating LLM profiles even while an ACP agent is active (the page is only configuring profiles, not the active agent)", which is exactly what this PR does.Summary
disabledByAcpfrom the/settings/llmnav item so the LLM profile library stays reachable (and un-greyed) while an ACP agent is active./settings/llmis not redirected under ACP.Issue Number
Closes #1913
Closes #1795
How to Test
npm ci && npm run buildnpm run dev:staticand open the printed URL.default — ACP (external subprocess), and LLM is now clickable in the left nav (Condenser / Verification stay greyed)./settings/llmdirectly — it renders instead of bouncing to/settings/agents.Video/Screenshots
Pre-fix —
/settings/llmredirected to the Agent page, LLM greyed out:Post-fix —
/settings/llmreachable with the same ACP profile active:Post-fix — an OpenHands agent profile can now be created:
Type
Notes
This is the minimal alternative both issues propose — it unblocks
/settings/llmonly, leaving the rest of the ACP gating in place.#1908 (for #1907) is the fuller cleanup: it removes
disabledByAcpandredirectIfAcpActive()entirely. The two overlap on this one nav flag, so whichever lands first should absorb the other. Landing this alone fixes the twice-reported lockout with a 3-line source change; landing #1908 makes this redundant.Related: #1907, #1908, #1888.
Evidence screenshots are committed under
.pr/1913/so they render inline here — happy to drop that commit before merge.🐳 Docker images for this PR
• GHCR package: https://github.com/OpenHands/agent-canvas/pkgs/container/agent-canvas
ghcr.io/openhands/agent-canvasghcr.io/openhands/agent-server:1.37.0-pythonopenhands-automation==1.2.05164ff257a1a6cc84061506af152908fb2085290Pull (multi-arch manifest)
# Multi-arch manifest — Docker automatically pulls the correct architecture docker pull ghcr.io/openhands/agent-canvas:sha-5164ff2Run
All tags pushed for this build
About Multi-Architecture Support
sha-5164ff2) is a multi-arch manifest supporting both amd64 and arm64sha-5164ff2-amd64) are also available if needed