Skip to content

fix(console): a provisioning Namespace says so before Create - #2924

Merged
freeqaz merged 8 commits into
mainfrom
ux-fixes-128-provisioning
Oct 19, 2026
Merged

freeqaz merged 8 commits into
mainfrom
ux-fixes-128-provisioning

Conversation

@freeqaz

@freeqaz freeqaz commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

Finding 1990 (D649), seen live on oce-dogfood-b with a real provisioning Namespace:

  • the Agents page showed the "not ready" sentence as plain muted text, not a status block, above "No Agents yet / Create an Agent in this Namespace using an editable Configuration template.", with Create Agent still the filled primary and nothing tying it to the note;
  • after "Start without Preset", the Create form dropped the note and said "Dedicated Agents are provisioned and deployed when created.";
  • so the first refusal a person met was the Create Secret dialog's 409 after filling the form (UX plan A5 aimed for the Secret dialog never to be the first signal).

Change

Respecting #2867's narrowing, drafts stay allowed on a provisioning Namespace, and Create Agent stays enabled there. The page only says what will happen.

  • Warning status block: the not-ready note is a warning status block (UX plan C1; .status, data-tone="warning") on the Agents list, the Create Agent start page, the "Creating Agents is not available" panel of a blocked Namespace, and the Create form. It stays a polite role="status", since it is shown on load rather than in answer to an action.
  • Create Agent explains the wait: on any not-ready Namespace, Create Agent is described by the note (aria-describedby; before, only a blocked Namespace had this). On a provisioning Namespace the empty state reads "You can save an Agent draft here now. It can be deployed once this Namespace is ready." instead of the plain invitation.
  • The form keeps the note: the Create form shows the same note under ← Agents. On an Installation that provisions Dedicated Agents as they are created, the capability line reads "Dedicated Agents are provisioned and deployed when created, so this Namespace must be ready first." instead of the unqualified promise. A ready Namespace keeps the plain line.
  • Storybook: new Pages / Create Agent / Form, Namespace still provisioning. The existing Pages / Agents / Empty, Namespace still provisioning and Pages / Create Agent / Namespace still provisioning show the new block.

Presentation only: no API, authorization or gating change. A blocked Namespace (failed, deleting, or adopting an existing namespace) is gated as before; only its note's look changes.

Verification

Media (Storybook, committed in 15b0f88 and removed before squash)

Agents list, provisioning Namespace: before, plain muted text and the plain invitation; after, a warning status block, and the empty state says what will happen

1440 390
before agentsNamespaceProvisioning before 1440 agentsNamespaceProvisioning before 390
after agentsNamespaceProvisioning after 1440 agentsNamespaceProvisioning after 390

Create Agent start page: the note becomes a warning status block

1440 390
before createNamespaceProvisioning before 1440 createNamespaceProvisioning before 390
after createNamespaceProvisioning after 1440 createNamespaceProvisioning after 390

Create form after Start without Preset: before, no note; after, the note stays

1440 390
before createFormNamespaceProvisioning before 1440 createFormNamespaceProvisioning before 390
after createFormNamespaceProvisioning after 1440 createFormNamespaceProvisioning after 390

Story: new Pages / Create Agent / Form, Namespace still provisioning; existing Pages / Agents / Empty, Namespace still provisioning and Pages / Create Agent / Namespace still provisioning. Before shots are the same stories on main's list.mjs and create.mjs.

Recording: walkthrough (1280x800, webm): the provisioning Namespace's warning note on the Agents list, the start page and the Create form, with the wait named in the capability line. Committed in 1dddc81 and removed before squash.

Risks

Low. The copy changes on a not-ready Namespace only; ready Namespaces render as before. Finding 1990; UX plan A5 and C1.

On a Namespace that is not ready, the status note is a warning status
block (still a polite status) on the Agents list, the Create Agent start
page and now the Create form too. Create Agent stays enabled on a
provisioning Namespace, since drafts are still accepted (#2867), but it
points at the note, and the empty state says a draft can be saved now
and deployed once the Namespace is ready. On an Installation that
provisions Dedicated Agents, the form says one can be created once the
Namespace is ready instead of promising it deploys when created
(finding 1990).
@freeqaz
freeqaz requested a review from a team as a code owner October 19, 2026 09:29
@clawsweeper

clawsweeper Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@clawsweeper clawsweeper Bot added clawsweeper:intake:bug Preliminary submission classification; full source review pending. clawsweeper:intake:needs-repro Preliminary submission classification; full source review pending. P2 Normal priority bug or improvement with limited blast radius. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed clawsweeper:intake:bug Preliminary submission classification; full source review pending. clawsweeper:intake:needs-repro Preliminary submission classification; full source review pending. labels Oct 19, 2026
@clawsweeper

clawsweeper Bot commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge.

What this changes

This PR makes Namespace readiness warnings visible throughout Agent creation and explains when deployment must wait.

Example: A user selects the provisioning default Namespace and chooses Start without Preset.

  • Before: The form drops the Namespace warning and promises that Dedicated Agents deploy when created.
  • After: The form retains the warning and explains that the Namespace must be ready before Dedicated provisioning.

Review scores

Measure Result What it means
Overall readiness 🦐 gold shrimp (3/6) A useful, focused patch with meaningful browser coverage and inspected visual evidence; the repository's native UI attachment requirement remains open.
Proof confidence 🦐 gold shrimp (3/6) Real behavior proof is not required for maintainer- or bot-authored pull requests.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Product

Kind: Bug fix · Worth it: Yes · Fix scope: Complete
User problem: Users entering Agent creation in a provisioning Namespace lose the readiness warning and receive a deployment promise the Namespace cannot yet satisfy.
Reason: The maintainer-authored change corrects contradictory guidance while respecting the prior explicit decision to keep drafts available.

Merge readiness

✅ Ready for maintainer review

Keep this PR open: it addresses misleading Namespace readiness guidance still present on main, preserves supported draft creation, and introduces no identified code defect.

Priority: P2
Reviewed head: 10cd5d1e39db4ba8390be8a248c75f6e6ff64cc3

Before merge

None.

Findings

None.

Tests

  • Missing end-to-end proof: The supplied browser regression results were not rerun during this read-only review; native screenshot and walkthrough attachments remain required by repository policy.
Agent review details

How this fits together

The OCC console renders Namespace status and Installation capabilities into Agent creation guidance; existing API owners continue to authorize and admit writes.

flowchart TB
  N[Namespace status] --> G[Existing readiness guidance]
  G --> L[Agents list]
  G --> S[Create start page]
  G --> F[Create form]
  C[Installation capabilities] --> F
  F --> A[Existing authorized API operations]
Loading

Technical review

Best possible solution:

Keep Namespace readiness guidance visible throughout Agent creation while preserving supported draft saves and existing API gates.

Do we have a high-confidence way to reproduce the issue?

Yes: current-main form construction drops the existing warning and its capability text promises immediate Dedicated deployment; the supplied before screenshots corroborate the list guidance problem.

Is this the best way to solve the issue?

The focused presentation repair fits the existing namespaceCreation owner, preserves intentional draft support, and leaves admission and authorization unchanged.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against cf2cc2ec3c77.

Provenance checked

  • Namespace readiness guidance and draft availability keeps the original intent (e9b1356: Explain Namespace readiness before credential refusal while allowing API-supported drafts and blocking only unsupported fresh creation.)
  • Conditional note rendering keeps the original intent (8bb8fab: Avoid replaceChildren rendering a null child as literal text in ready Namespaces.)
  • Execution capability summary keeps the original intent (97cfa47: Keep capability summaries consistent with unavailable execution modes without silently changing the selected mode.)

Testing

Proof path: in-process harness.

Security

None.

Evidence

What I checked:

Likely related people:

  • Free Wortley: Raw commit e9b1356 adds apps/controller/src/console/agents/create.mjs:369 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: e9b1356c4f76; files: apps/controller/src/console/agents/create.mjs)
  • kevinlin-openai: Raw commit eb1a015 adds apps/controller/src/console/agents/create.mjs:221 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: medium; commits: eb1a01544b10; files: apps/controller/src/console/agents/create.mjs)

Review metrics

Metric Value Why it matters
Change distribution Production +28/-6; browser tests +52/-8; Storybook +10/-0 The small presentation change extends existing workflow coverage without adding a new runtime subsystem.

Labels

Label changes:

  • add P2: Misleading readiness guidance causes avoidable confusion before credential entry, while supported draft creation remains available.
  • add rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦐 gold shrimp and patch quality is 🐚 platinum hermit.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.

Label justifications:

  • P2: Misleading readiness guidance causes avoidable confusion before credential entry, while supported draft creation remains available.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦐 gold shrimp and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.

Rating scale

6/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.

Workflow

ClawSweeper edits this one comment on every review. Comment @clawsweeper re-review for a fresh review only. Repair and merge execution lanes are retired.

Reviewed October 19, 2026, 5:52 AM ET / 09:52 UTC.

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

Labels

P2 Normal priority bug or improvement with limited blast radius. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant