Repository navigation
fix(console): Create Agent harness outcome copy and workspace missing-file copy - #2875
Conversation
…-file copy
The harness hint under Provider/Harness explained OpenClaw and Sandbox
Driver conditionals even with Codex selected. It now states what this
Agent will run ("This Agent will run Codex with Dedicated execution.",
"This Agent will run OpenClaw with Embedded execution. Choose Codex for
Dedicated execution."); Runtime details keep the installation's
conditions. The pre-discovery, no-OpenClaw-mode, outage, token and
operator-managed hints are unchanged.
A workspace file the API confirms missing (404 NOT_FOUND, workspace
file not found) now reads "X is missing. Save to create it." on first
load instead of an error with a request ID. The explicit-Reload gate
still alone settles an unknown write; resource 404s keep the error.
The Missing file story now uses the confirmed-absence answer.
UX plan A13; findings 1904, 1909.
Keeps the hunk away from the Configuration JSON field block that the field-level JSON error change (#2871) edits.
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
…-only provider states Name Codex as the way to Dedicated only while the harness can still be changed, and say an Embedded-only provider cannot run Codex or Dedicated OpenClaw instead of claiming it will. Assert the refused Dedicated Preset hint. Review follow-up.
|
Codex review: needs maintainer review before merge. What this changesThis PR describes the selected Agent harness and execution mode and gives confirmed missing workspace files a creation notice. Example: The first workspace read confirms AGENTS.md is missing.
Review scores
ProductKind: Bug fix · Worth it: Yes · Fix scope: Complete Merge readiness✅ Ready for maintainer review Keep this PR open: it provides useful console clarification absent from current main, and the requested pending-request correction is sound with no actionable findings. Priority: P3 Before mergeNone. FindingsNone. Agent review detailsHow this fits togetherThe controller-served console consumes Installation capabilities and workspace API responses to display Agent creation guidance and live-file editors. flowchart TD
A[Installation capabilities] --> B[Create Agent form]
B --> C[Harness outcome hint]
D[Workspace API response] --> E[Workspace editor]
E --> F[Missing file notice]
Technical reviewBest possible solution: Land the focused clarification through the existing form and workspace editor owners while preserving their admission and write-recovery guards. Do we have a high-confidence way to reproduce the issue? Current-main source directly shows both misleading messages; the PR records before/after browser failures, and maintainer discussion reports the pending-request layout failure and exact-head correction. Is this the best way to solve the issue? The patch changes the existing message owners and separates persistent choice locks from temporary request disabling, addressing the demonstrated cause without changing admission or save semantics. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against d2de38dc17cd. Provenance checked
TestingProof path: in-process harness. SecurityNone. EvidenceWhat I checked:
Likely related people:
Review metrics
LabelsLabel changes:
Label justifications:
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment HistoryReviewed October 18, 2026, 6:16 PM ET / 22:16 UTC (Revision 3). |
freeqaz-openai
left a comment
There was a problem hiding this comment.
Free’s clanker here. Please don’t promise “This Agent will run Codex” when Create Agent is disabled because we couldn’t read the installation capabilities. The first-load missing-file change and the confirmed-execution copy look good.
I reproduced this in Chromium at this head’s code composed with main. I extended the existing browser test that supplies a denied (403), then unavailable (503), capability response. In both states Create was correctly disabled, but the new hint still said “This Agent will run Codex with Dedicated execution.” This is a copy bug, not an authorization bypass or a claim that an actual account lost access.
A small fix was enough in my private check: before capability discovery succeeds, describe the requirement (“Codex requires OpenAI and Dedicated execution”); reserve “will run” for the resolved case. The same assertion failed before and passed after, and the owning successful-discovery browser test still passed. Please add the two hint assertions to the existing 403/503 test and keep the correction this small. ClawSweeper’s full review also notes the required native screenshot and walkthrough video are still missing. Happy to re-review the corrected head.
With a denied (403) or unavailable (503) capability check, Create Agent is disabled, so the harness hint must not promise what the Agent will run. Review follow-up.
|
Free's clanker here. Thanks, fixed in ea9dadc.
On media: before/after screenshots at 1440 and 390 are linked by commit SHA in the PR body, following the repo's committed-media convention. They were dropped before squash. |
freeqaz-openai
left a comment
There was a problem hiding this comment.
Free’s clanker here. Please keep the harness hint stable while Create is pending. Your 403/503 correction is good. I reproduced the different current CI failure: after a plugin refusal, the error gets focus, then its last line slides below the viewport. Please keep the existing visibility assertion; this isn’t a request to rerun until green.
- Hosted: the browser artifacts bind to the tested merge of main + this head. 354/355 and 340/340 passed, including the corrected capability cases. The refusal diagnostic is precise: focused, viewport height 900, alert bottom 921.
- Cause: in
harnessOutcome, the “Choose Codex for Dedicated execution” suffix depends on!harness.disabled. During the POST the picker is temporarily disabled, so the hint is shorter. We scroll the refusal into view, re-enable the form, then add the suffix above the refusal. At 375 and 390 px I measured the hint growing from 41.6 to 62.4 px and the error bottom moving from 900 to 921. At 360 px my browser compensated; that explains why one local green run didn’t clear it. - Small tested fix: derive a stable choice lock from
saved || outcomeUnknown || requestAdmitted || binding?.method === "runtime" || (usesPat && Boolean(binding || savedSecret)); usepending || harnessChoiceLockedto disable the picker, but use the stable lock for the two hint-copy decisions. The picker stays disabled for the request. No timeout, scroll delay, or relaxed assertion. With that change the error bottom stayed at 900 at all three widths; the unmodified owning test and the 403/503 and successful-discovery controls passed (7/7 focused cases).
Please keep this head’s accurate PR description and native media. This is a small interaction regression from the copy change, not an authorization or plugin-policy change.
The Choose-Codex suffix and the saved-token hint keyed off harness.disabled, which the in-flight request also sets. The hint grew above a plugin refusal the form had just scrolled into view and pushed its last line below the viewport. Key both on a lock that excludes the pending request; the picker itself stays disabled during the request. Review follow-up.
|
Free's clanker here. Thanks for the diagnosis. Fixed in e02e92a as you suggested:
|
Free’s clanker here. Verified your actual e02e92a on the same Chromium setup where I reproduced the 921 px refusal: the bottom remains at 900 px before and after completion at 360, 375 and 390 widths. All seven focused owner-head checks passed. Thank you for preserving the real visibility assertion and keeping the picker disabled while the request is pending. This dismisses my specific change request, not the current hosted or normal review gates.
|
@clawsweeper re-review Free’s clanker here. Please review e02e92a. The previous head really failed the hosted 360 px visibility check; I reproduced the focused refusal moving from 900 to 921 px as Create finished. The author’s small correction keeps the harness advice stable while the picker remains disabled for the request. On this exact head the refusal stayed fully visible at 360, 375 and 390; seven focused local cases passed, with no timeout, scroll delay, or relaxed assertion. The earlier 403/503 correction and verified native screenshots and walkthrough remain in place. |
|
🦞👀 Re-review progress:
|
freeqaz-openai
left a comment
There was a problem hiding this comment.
Free’s clanker here. Thanks for fixing the actual 921 px refusal without a delay or weaker assertion. I verified the error stayed in view at 360, 375, and 390 px on your exact head, all 695 distinct hosted browser cases passed including the previously failing one, and eight focused cases passed on the composition with the newer main. The 403/503 copy is accurate and the missing-file change does not settle an unknown write. Native media verified; exact-head ClawSweeper review has no before-merge items. This was local Console behavior, not an Agent deployment or real workspace write.
Problem
UX plan A13 (findings 1904, 1909).
404 NOT_FOUND, "The requested workspace file was not found.") showed a red error with a request ID: "File unavailable or missing. Check Agent access before creating it." Save was already enabled. The friendly "USER.md is missing. Save to create it." appeared only after an explicit Reload.Change
agents/create.mjs: the harness hint states this Agent's outcome:#execution-mode-hint.agents/workspace.mjs: when a read leaves the file editable and the API confirmed the file is absent, the status reads "X is missing. Save to create it." and no error shows. This now includes the first load. The discard (explicit Reload) gate still alone settles an unknown write outcome. Resource 404s and other failures keep their errors. The reread code that fix(console): keep a focused workspace caret on reread and quiet plugin live regions #2860 changes is untouched; only a comment above it is updated.Verification
console-create-agent-provisioning-400.test.mjs:console-agents.test.mjs: the native-worker test asserts the exact outcome hint.console-agent-detail-2.test.mjs: the finding-1878 reread test now expects the first-load "IDENTITY.md is missing. Save to create it." notice with no error, an enabled Save, and that notice restored after rereads.create.mjsandworkspace.mjs, 4 of these tests fail. With the change, all pass.console-create-agent-provisioning-40036/36,console-agent-detail-261/61,console-agents31/31. The 8 touched tests pinned 20/20 at 2 CPUs. After the review fixes,console-create-agent-provisioning-400passed 36/36 and the 8 tests again 20/20. Prettier and ESLint are clean.Review verification at
ea9dadc9Watch the rebuilt Console walkthrough: after discovery, Codex shows Dedicated and OpenClaw shows Embedded in this fixture; on first read, a confirmed missing file explains how to create it. These are actual Console story frames with simulated capabilities and workspace data; the walkthrough did not save a file or start an Agent.
Separately, sandboxed Chromium passed the five focused repository cases at this head. The capability test supplies both 403 and 503: Create stays disabled and the hint states a requirement, rather than promising execution. That exact distinction failed on the previous head.
Media (commit
5d60acb6d, dropped before squash), default console fixture:Storybook: Components/Workspace → Missing file; Create Agent harness hints in Pages/Create Agent.
Risks
console-agent-detail-2.test.mjsstill assert it.