Skip to content

Streamline agent creation and library controls - #966

Merged
klopez4212 merged 19 commits into
mainfrom
kennylopez-agent-creation-library
Oct 14, 2026
Merged

klopez4212 merged 19 commits into
mainfrom
kennylopez-agent-creation-library

Conversation

@klopez4212

@klopez4212 klopez4212 commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Streamline agent creation with a name and avatar picker, provider sign-in dialogs, and compact model choices. The agent library uses matching cards and shared model controls.

Includes keyboard focus styling, avatar selection feedback, shared provider sign-in state, and access to Import and Browse during loading or errors.

The follow-up owner profile panel and its identity, memory, attention, and settings changes are being reviewed separately in #1083, stacked on this PR. They are not included in this PR's published code.

Validation at 13ed20a: synchronized with main through 9e51c0f. Required local push checks and hosted DCO passed; fresh hosted CI still fails WebKit journey shard 6 and the WebKit flake check (run 38593383586). Updating main did not resolve those failures.

@klopez4212
klopez4212 marked this pull request as ready for review October 13, 2026 17:09
@klopez4212
klopez4212 requested review from a team as code owners October 13, 2026 17:09
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-14T19:06:41.213738Z eb26bfa New commits
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6e9ccb4e70

ℹ️ 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".

Comment thread src/bundled/agents/AgentsPage.tsx Resolved
Comment thread src/bundled/agents/AgentsPage.tsx Resolved

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a6bb9dc0f5

ℹ️ 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".

/>
)}
</Dialog>
)}
{creating && (
<AgentCreateDialog

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Return focus after closing agent creation

When a keyboard user chooses “Create a new agent,” the focused opener is the transient menu item, which disappears as the dialog opens. AgentCreateDialog is mounted without a finalFocus target pointing to newAgentButton—unlike the import/marketplace dialog—so cancelling or closing creation can leave focus on the document body rather than the durable “New agent” trigger. Pass that trigger through the shared dialog finalFocus contract, as required by the menu-to-dialog focus rule in DESIGN.md.

AGENTS.md reference: AGENTS.md:L46-L50

Useful? React with 👍 / 👎.

agents={service}
agent={agent}
onRemoved={onRemoved}
trigger={menu}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Restore focus to the card menu after delete cancellation

When deletion is opened from the card overflow, the focused opener is the temporary “Delete agent” menu item. The new trigger callback only opens AgentDelete; its confirmation dialog has no finalFocus reference to the surviving “Actions for …” button, so Cancel, Close, or Escape can strand keyboard focus after the menu item has unmounted. Extend this trigger contract to retain the overflow-button ref and return focus through the shared dialog contract required by DESIGN.md.

AGENTS.md reference: AGENTS.md:L46-L50

Useful? React with 👍 / 👎.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6104e4c65f

ℹ️ 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".

Comment thread src/features/agents/ModelPicker.tsx Resolved
Comment thread src/bundled/claude-code/tabs.tsx Outdated
useEffect(() => {
void setup.check();
}, [setup]);
if (!state.status || state.checking)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep focus anchored while Claude sign-in is replaced

When the Claude sign-in dialog is open and the login process completes, ClaudeSetup.run() starts the follow-up check, causing this branch to replace ClaudeSignIn immediately with the status text and then the model picker. That unmounts both the focused nested dialog and its opener, leaving keyboard focus on the document rather than a durable control. Keep the dialog mounted through the check and explicitly hand focus to the resulting model picker when it closes, as required by DESIGN.md’s modal focus-restoration contract.

AGENTS.md reference: AGENTS.md:L46-L50

Useful? React with 👍 / 👎.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2713264498

ℹ️ 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".

Comment on lines +116 to +117
height="stable-tall"
chromeSpacing="padded"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Avoid consuming unapproved proposed dialog variants

This feature immediately consumes stable-tall and chromeSpacing="padded" even though the same commit explicitly documents both as proposed and expands the shared Dialog owner to support them. Repository policy forbids silently promoting proposed guidance for a local treatment; keep creation on an adopted dialog composition, or obtain scope approval and promote the shared recipe before using these variants.

AGENTS.md reference: AGENTS.md:L42-L45

Useful? React with 👍 / 👎.

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Changes requested at 27132644 (base main, merge-base fb9cad1a). Carl, an automated reviewer, commenting via Wes's GitHub account.

Since 722e2c65, the branch has a merge from main, which keeps main's conversation and transcript flows, plus three browser-test stabilization commits (voice notes, message overlays). The agent-flow findings below apply to the current head.

Merge criteria

  • Blocker: model discovery must not start a CLI process per library card (inline on AgentsPage.tsx).
  • Mediums: Claude and Codex sign-in owned once per type, a visible focus state on the name field, correct selection semantics for the agents grid, and Import and Browse reachable when the snapshot isn't ready.
  • Lows and the product check on custom model IDs are non-blocking.

For Wes, not defects: two app-wide visual changes ride along with this agents PR. Every compact Select moves from capsule to control-radius corners (Select.tsx:115), and every dialog gets overscroll-behavior: none (overlays.css).

Validation gaps: this review is from source and lifecycle tracing only. Light, dark, narrow, and enlarged-text layouts were not rendered (the PR body lists these as pending too). One more CSS risk is unconfirmed: at narrow widths the dropzone focus ring may be clipped by .imageEditor's overflow: auto. CI on 27132644 was still running when this review was posted. Its result on 722e2c65 was green.

Comment thread src/bundled/agents/AgentsPage.tsx Resolved
Comment thread src/bundled/claude-code/tabs.tsx Resolved
Comment thread src/bundled/codex/tabs.tsx Resolved
Comment thread src/bundled/agents/AgentsPage.tsx Resolved
Comment thread src/features/agents/ModelPicker.tsx Resolved
Comment thread src/shared/design-system/DESIGN.md Resolved
Comment thread src/shared/design-system/ui/Select.tsx Resolved

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2f2483689d

ℹ️ 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".

Comment thread src/bundled/claude-code/tabs.tsx Outdated
Comment on lines +156 to +157
if (state.status.state !== "ready" || state.running)
return <ClaudeSignIn setup={setup} disabled={props.disabled} />;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Show recovery for Claude setup errors

When checkClaude returns an error state—for example, when the executable exists but claude --version fails—this condition routes to ClaudeSignIn, where missing is false and the UI misleadingly offers only “Sign in” while discarding status.message. In the creation flow there is no alternate recovery control, so another login attempt cannot repair or explain the failed check; render the error and a “Check again” action, and reserve sign-in for signed-out. This conflicts with DESIGN.md’s states guidance to keep failed-loading feedback and retry beside the failed operation.

AGENTS.md reference: AGENTS.md:L46-L50

Useful? React with 👍 / 👎.

Comment thread src/bundled/claude-code/tabs.tsx Resolved
klopez4212 and others added 10 commits October 13, 2026 17:09
Co-authored-by: Codex <[email protected]>
Signed-off-by: klopez4212 <[email protected]>
Co-authored-by: Codex <[email protected]>
Signed-off-by: klopez4212 <[email protected]>
Co-authored-by: Codex <[email protected]>
Signed-off-by: klopez4212 <[email protected]>
@klopez4212
klopez4212 force-pushed the kennylopez-agent-creation-library branch from 2f24836 to ce59a31 Compare October 13, 2026 21:20

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ce59a31d4e

ℹ️ 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".

Comment thread src/bundled/claude-code/claude.ts Resolved
service={service}
type={type}
onBuild={() => onBuild(agent.pubkey)}
onRemoved={() => onSelect()}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve the selected card when deleting another agent

When agent A is selected in the master/detail view and the user deletes agent B from B’s overflow menu, this unconditional callback calls browse() without a key and closes A’s still-valid detail panel. Only clear the selection when the removed pubkey is the selected one; otherwise retain the current card and panel, as required by the collection recipe’s selection-preservation contract.

AGENTS.md reference: AGENTS.md:L22-L25

Useful? React with 👍 / 👎.

Reconcile managed provider installations with the approved creation controls. Share Codex setup for login, preserve Claude model discovery across unchanged background checks, and require safe-mode-capable Claude releases.

Co-authored-by: Codex <[email protected]>
Signed-off-by: klopez4212 <[email protected]>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3af03d856c

ℹ️ 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".

Comment on lines 108 to 111
const TABS = [
{ value: "yours", label: "Your agents", panelId: "agents-yours" },
{ value: "import", label: "Import", panelId: "agents-import" },
{ value: "browse", label: "Browse", panelId: "agents-browse" },
{ value: "teams", label: "Your teams", panelId: "agents-teams" },
] as const;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Hide team editing when native agents are unavailable

In the browser host, snapshot.status is unavailable, but this unconditional tab still exposes Your teams and its New team form. Submitting that form calls AgentsService.saveTeam(), which rejects whenever native is absent with “Agents run only in the desktop app,” so the newly exposed workflow can never succeed; existing teams can even expose a destructive Delete action because removeTeam() lacks the same guard. Hide or disable team management in the unavailable state while retaining the independently available Import/Marketplace actions, consistent with DESIGN.md’s states rule that setup actions are offered only when available.

AGENTS.md reference: AGENTS.md:L46-L50

Useful? React with 👍 / 👎.

Keep recording-specific voice metadata and stable per-upload IDs while preserving main's fallback media type and settled-upload browser checks.

Co-authored-by: Codex <[email protected]>
Signed-off-by: klopez4212 <[email protected]>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4505e30709

ℹ️ 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".

Comment thread src/bundled/claude-code/setup.ts Outdated
}

async check() {
async check(refreshModels = true) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve Claude's catalog during routine health checks

When at least one Claude model control is mounted, opening More → Provider settings invokes provider.check(), which reaches this method without an argument. Because refreshModels now defaults to true, even an unchanged readiness check empties the cached models and resets modelsLoaded; useSetupCatalog then starts another Claude discovery process and disables every mounted picker. Reopening the submenu repeatedly causes unnecessary subprocess churn, so routine health checks should preserve the catalog and reserve invalidation for completed install or sign-in operations.

Useful? React with 👍 / 👎.

Comment on lines +363 to +364
if (signedOut)
return <CodexSignIn login={login} disabled={props.disabled} />;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Transfer focus after successful Codex sign-in

When a keyboard user activates Sign in from a Codex creation or library control and login succeeds, the provider clears SIGN_IN_ERROR, so this branch unmounts the focused CodexSignIn button and replaces it with the model picker without moving focus. Focus therefore falls back to the document body; keep the control mounted through the transition or explicitly focus the resulting model trigger, consistent with the design guide's focus-restoration contract.

AGENTS.md reference: AGENTS.md:L46-L50

Useful? React with 👍 / 👎.

@klopez4212 klopez4212 changed the title Refine agent creation and library Unify agent creation and owner profiles Oct 14, 2026
@klopez4212 klopez4212 changed the title Unify agent creation and owner profiles Streamline agent creation and library controls Oct 14, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 13ed20a43b

ℹ️ 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".

Comment on lines +120 to +122
{props.inlinePicker &&
props.imageOnly &&
!preview ? null : props.triggerStyle === "dotted-squircle" ? (

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Focus the URL field when upload is unavailable

When agent creation is opened while the relay is disconnected, community is undefined, so choosing Use image removes this trigger and leaves the image editor's first button—the upload dropzone—disabled. AgentCreateHeader still tries to focus that first button after the previous collection button unmounts, which strands keyboard focus even though the Picture URL field remains usable. Keep a focusable trigger mounted or explicitly focus the first enabled control, such as the URL input.

AGENTS.md reference: AGENTS.md:L46-L50

Useful? React with 👍 / 👎.

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Changes requested at 13ed20a4 (base main, merge-base 9e51c0fe). Carl, an automated reviewer, commenting via Wes's GitHub account.

Previous findings (27132644): all 11 threads hold up in source at this head. That covers the shared catalog, single-owner sign-in for both types, the name-field focus, grid semantics, Import/Browse reachability, the cleanup items, and the custom-ID product decision. The earlier blocker is resolved.

New merge criteria (inline):

  • Medium: the Cancel button on the Codex card throws and never cancels the login.
  • Medium: a failed Claude sign-in or install closes its own dialog, so the failure is never shown.
  • Medium: hovering "Provider settings" starts a new Claude model-discovery process every time.
  • Lows (non-blocking): the disabled title field styling, the "Unavailable model" label on cards, and grid arrow-key semantics.

Validation: I confirmed each medium with a throwaway Vitest case at 13ed20a4, then reverted it. Rendered layouts were not checked. Hosted CI was still running when this was posted.

Comment thread src/bundled/codex/tabs.tsx Resolved
Comment thread src/bundled/claude-code/tabs.tsx Resolved
Comment thread src/bundled/claude-code/setup.ts Resolved
}
/* A title field: the value set as a page title, with no field around it. */
.buzz-input[data-appearance="title"] {
.buzz-input:where([data-appearance="title"]) {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Low: lowering this selector to (0,1,0) fixed focus, but now .buzz-input:disabled (0,2,0, line 103) wins over background: transparent. While an agent is being created, the name field shows the grey --affordance-disabled box with zero inline padding. At the base, the title rule won through source order.

Fix: add a scoped :disabled override for the title appearance that keeps background: transparent.

});
const selected = items.find((model) => model.id === value) ?? fallback;
const choices = allowCustomModel ? [...items, CUSTOM_MODEL_ACTION] : items;
const choices =

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Low: CreateModelChoices never passes allowCustomModel. A library card for an agent whose model was set to a custom ID in Settings (still supported, per the earlier product decision) therefore lists that model as "Unavailable model" (line 148), although the agent is using it.

Fix: pass allowCustomModel through for the description only, or use neutral copy such as "Custom model" when the value isn't in the catalog. Keep the finite list.

/>
// biome-ignore lint/a11y/useSemanticElements: Layout grid rows group cards without table layout.
// biome-ignore lint/a11y/useFocusableInteractive: Roving focus belongs to the gridcell, not its row wrapper.
<div role="row" className="contents" key={agent.pubkey}>

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Low: each agent is its own one-cell row, so assistive tech announces an N×1 grid. ArrowLeft/Right move between rows, and ArrowUp/Down jump by columns() (lines 697-700), so ArrowDown skips agents relative to the announced structure.

Fix: group the rows by visual row, or make Up/Down move one row. Non-blocking.

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 No blockers at d8e68817. Carl, an automated reviewer, commenting via Wes's GitHub account.

d8e68817 resolves all three mediums from my last review:

  • Codex Cancel: it is now an arrow callback, and the new test asserts the login process is killed.
  • Claude setup dialog: it stays mounted through the post-step check, because only a missing status shows the placeholder. Failed install and sign-in output stay in the open dialog (new it.each).
  • Repeated provider checks: check() now defaults to no model refresh, and only Check again forces one. Repeated checks keep one shared probe (new test). The remaining setup.check() callers are the initial checks, provider.check (the hover path) and perform (check(asked)). All of them now keep models unless the status changes.

The three earlier lows (the disabled title-field background, the "Unavailable model" label on cards, and the grid arrow-key semantics) are unchanged and remain non-blocking.

Validation: vitest run for src/bundled/{claude-code,codex,agents} and src/features/agents passes at d8e68817: 54 files, 642 tests.

Merge gate: hosted CI on this head shows Browser journeys (webkit, 6/9) and Flake check (webkit, 1/1) failing, which fails CI required. A GitHub API rate limit kept me from classifying those failures.

This is a comment, not an approval. My earlier changes-requested review stays on record until Wes approves or dismisses it.

@klopez4212
klopez4212 force-pushed the kennylopez-agent-creation-library branch from d8e6881 to 20ef04c Compare October 14, 2026 17:55
@klopez4212
klopez4212 force-pushed the kennylopez-agent-creation-library branch from 20ef04c to 9434107 Compare October 14, 2026 18:14

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ee2f795705

ℹ️ 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".

Comment on lines +361 to +364
const signedOut = error === SIGN_IN_ERROR;
const retry = () => void provider.check();
if (signedOut)
return <CodexSignIn login={login} disabled={props.disabled} />;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Expose installation from the Codex model control

When Buzz's managed Codex binary is missing, provider.check() sets error to NOT_INSTALLED, but this branch special-cases only SIGN_IN_ERROR; the creation dialog therefore offers only “Try again,” which repeats the same check and cannot install Codex. Because the modal blocks access to the page-level Provider settings menu, users must abandon creation to recover. Handle NOT_INSTALLED here by exposing the setup install action, consistent with the design guide's requirement to keep recovery beside the failed operation.

AGENTS.md reference: AGENTS.md:L46-L50

Useful? React with 👍 / 👎.

Comment on lines +24 to 25
.card:is([role="option"], [role="gridcell"]) {
cursor: pointer;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Restore hover feedback on selectable agent cards

Pointer users now get only a cursor change when hovering a selectable card: the previous .card[role="option"]:hover fill was removed while the cards moved to role="gridcell", and no gridcell hover treatment replaces it. This leaves the card's primary click target visually indistinguishable from its resting state, contrary to DESIGN.md's collection/state rules that hover, selection, and focus remain distinct; restore an appropriate card hover state without changing selected-card feedback.

AGENTS.md reference: AGENTS.md:L46-L50

Useful? React with 👍 / 👎.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: eb26bfa2fd

ℹ️ 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".

loading={state.modelsChecking}
error={state.modelsError}
retry={() => void setup.loadModels(true)}
onChange={(model) => onChange({ ...current, model })}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Clear unsupported effort when changing Claude models

When an existing Claude agent has an effort supported only by its current model—for example, xhigh on Sonnet—and the new library-card picker switches it to Haiku, this callback preserves the old current.effort. The settings picker explicitly clears levels absent from effortsFor, while the runtime passes every nonempty saved effort to the Claude process, so this shortcut can save an invalid model/effort pair and break subsequent runs. Apply the same effort normalization used by the settings picker before saving the compact choice.

Useful? React with 👍 / 👎.

@klopez4212
klopez4212 merged commit 734dc0e into main Oct 14, 2026
61 of 63 checks passed
@klopez4212
klopez4212 deleted the kennylopez-agent-creation-library branch October 14, 2026 19:22
johnmatthewtennant added a commit that referenced this pull request Oct 14, 2026
…lation

* origin/main:
  Streamline agent creation and library controls (#966)
  fix(agents): say that a timer's interval change starts after its next run (#953)
  feat(messages): add copy action to message code blocks (#1045)
  fix(codex): start the shared app-server before the first mention (#1057)
  fix(sessions): restore placement retry in retained conversations (#1099)

Signed-off-by: John Tennant <[email protected]>
wesbillman added a commit that referenced this pull request Oct 14, 2026
Take main's video-speed setup from #966, which repairs the same reading
intent race this branch fixed in 1841e39.

Co-authored-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
Signed-off-by: Wes <[email protected]>
salman1993 added a commit that referenced this pull request Oct 14, 2026
main's New agent dialog (#966) replaced the type menu with one compact
Model field per type, also shown on library cards. Pi's field lists its
provider's models, starting on Pi's default, with a Provider… button that
opens the existing provider dialog: provider, API key, model and Test
connection. CreateModelChoices gains an optional trailing action for it.
The menu, its open-state store and its trigger label are gone.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Signed-off-by: Salman Mohammed <[email protected]>
salman1993 added a commit that referenced this pull request Oct 14, 2026
main's #966 replaced CreateModelMenu and createModelLabel with a
compact CreateModel field. goose now offers its provider's models there,
with a Provider… button for its provider dialog, as Pi does.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Signed-off-by: Salman Mohammed <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants