镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Unify owned agent profile panels - #1083

Merged
klopez4212 merged 46 commits into
mainfrom
kennylopez-agent-profile-stacked
Oct 14, 2026
Merged

klopez4212 merged 46 commits into
mainfrom
kennylopez-agent-profile-stacked

Conversation

@klopez4212

@klopez4212 klopez4212 commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Opening an owned agent from the library or a chat now shows the same profile panel, with Identity, Memory, Attention, and Settings together. The agent-creation work in #966 has merged; this PR targets main and includes those upstream changes.

The profile supports inline name editing, avatar editing with explicit Save changes and Cancel, provider setup dialogs, and retained drafts with save controls. Provider, Model, and Thinking share one settings container with dividers and compact dropdowns. The preference-row Select variant owns its control corners; ordinary inline and compact Selects retain their capsule shape. The inherited default appears at the top as “Model name · Default,” retaining its catalog description; the closed control shows only the model name. When a saved explicit pin equals that default, its separate model option remains selected so inheritance is not falsely implied. Selecting “· Default” explicitly clears the pin; otherwise the default model is not repeated. Device-wide provider controls now live at the top of Settings → Agents under AI defaults. The library overflow menu is removed; Teams remains available through its tab. Thinking shows the resolved level in the closed control and · Default in its menu; Claude uses Automatic when its catalog does not report a default level.

Memory disclosures use the shared Accordion. The whole header row expands the content, the chevron is decorative, and one container encloses the header and body with a divider. Expansion and collapse animate, with immediate reduced-motion and keyboard behavior. Complete listings have no refresh button; failed and partial reads retain recovery. A partial listing offers Retry loading memories while keeping successfully loaded entries visible. Memories load when opened, rather than continuously refreshing in the background.

The Agents profile uses the shared draggable splitter, including keyboard resizing and double-click reset. The library grid reflows down to one column and scales avatars with the available width.

Intentional interaction design: agent-name fields in both Create agent and inline profile-name editing remain borderless when entered by pointer or autofocus. The caret indicates editing; a full-width field border is intentionally omitted. Keyboard navigation retains a visible focus border. Please preserve this distinction rather than restoring a border for pointer/autofocus entry.

Intentional instructions-field design: creation and profile instructions use a single outlined textarea over the surrounding background, without a gray inset fill or a second container. Focus strengthens the same perimeter. Please preserve this appearance rather than restoring the inset fill or nested border. The redundant “DMs always share one conversation” helper text is removed.

Validation: the final UI batch passed 68 focused model/provider tests, 45 settings/library integration tests, and the instructions tests during iteration. After rebasing onto main (including #1062), the resulting tree was verified against the previous PR plus main. All eight agent-library and surface-interaction cases passed in Chromium and WebKit, covering layout, focus, outlined instructions in light/dark themes, and invalid-field borders. Existing browser cases were extended rather than adding duplicate journeys. Full formatting passed. The CI failures at the previous head were traced to AgentCard formatting and focus-selector specificity overriding invalid-field borders; both are fixed and verified locally. Required local push checks passed at 5078949: TypeScript and the full related unit-test selection, design-system checks, and the repository’s remaining push gates. Hosted CI and required reviewer/code-owner approval remain pending. Native acceptance and a full rendered design sweep have not been repeated.

Blocking-review follow-up: visited non-split agent panels retain drafts and failed-save state across tab switches, without eagerly loading unopened panels. The hosted Builderlab editor regression passed along with the library tests (33 focused tests). Partial-memory recovery and scoped Select-shape regressions passed (19 tests), plus all eight agent-library/surface-interaction cases in Chromium and WebKit. Optional and non-blocking review suggestions remain outside this batch.

Model inheritance blocker: fixed at 9efe036. All 14 model-picker tests pass, including a matching explicit pin, changes to the device default, and explicitly clearing the pin. Required TypeScript/related unit tests and design-system push checks pass. Hosted CI for this head and reviewer approval remain pending. No additional browser cases were added; this state/selection contract is covered through the real shared Select in the component tests.

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

chatgpt-codex-connector Bot commented Oct 14, 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-14T23:32:06.211211Z 8938a6c 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: eadec29921

ℹ️ 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/AgentTabs.tsx Resolved
@klopez4212
klopez4212 force-pushed the kennylopez-agent-profile-stacked branch from eadec29 to 2740830 Compare October 14, 2026 16:19

@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: 2740830cdb

ℹ️ 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/profiles/ProfilePanel.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: 004f99c0c9

ℹ️ 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/AttentionPanel.tsx Resolved

@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.

🤖 Carl, an automated reviewer, commenting via Wes’s GitHub account.

Changes requested. The profile consolidation is the right direction. It currently loses user edits in three places, changes a shared design-system recipe app-wide, and drops two existing behaviors.

Confirmed existing threads (blocking):

  • Split settings drafts are discarded across tabs: #1083 (comment). Base UI panels unmount by default (keepMounted=false), so Identity and Settings are separate SettingsTab instances. An edit on one tab is silently lost when you switch to the other and save there.
  • View activity opens Identity for owned agents: #1083 (comment)
  • Remove avatar is no longer reachable in edit mode: #1083 (comment)

Confirmed, should fix: Add interest focus restoration (#1083 (comment)) and SettingsGroup repainting (#1083 (comment)).

New inline findings: four blocking (shared field-trigger restyle, missing name-field focus, Escape discarding an avatar pick, Memory refresh removed), one non-blocking, two optional.

Validation gaps

  • WebKit at 004f99c0: both agent-library.spec.mjs tests fail on Browser journeys (webkit, 6/9), and the WebKit flake check fails the card-selection test 3 of 3 times. Two messages.spec.mjs WebKit failures in 8/9 aren't attributed to this PR.
  • No test covers the activity entry point for owned agents (AgentsPage.test.tsx:1294-1329 covers only profileTarget, and the browser spec never renders the chat ProfilePanel). The split-tab draft path and Memory refresh after load aren't covered either.
  • This review is static. No light/dark rendering, narrow width or enlarged-text pass was done.

Exit criteria: fix the 7 blocking items above with regression tests for split-tab drafts, activity routing and Memory refresh, get WebKit agent-library green, then retarget to main after #966 merges and recheck the diff.

Comment thread src/features/agents/MemoryPanel.tsx Resolved
@@ -68,6 +73,8 @@
white-space: nowrap;
}
.actions {
--interaction-fill: var(--interaction-selected);

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.

🤖 Non-blocking: hover and pressed feedback is gone on these actions.

Rebinding --interaction-fill to selected and --interaction-hover to pressed here (and in AgentsPage.module.css:165-166 for .identityActions) collapses the states. In dark mode, selected and pressed both resolve to neutral-5 (tokens.css:645,654). The card's Message button and the profile actions trigger then look identical at rest, on hover, while pressed and with the menu open. In light mode, hover and pressed are the same. This is local repainting of shared control states, which root AGENTS.md asks features not to do. Prefer a shared button variant if the resting fill needs to differ.

@@ -14,7 +14,7 @@ type IconButtonSize =
| "xs"
| "toolbar"
| "large";
type IconButtonShape = "control" | "round" | "row-end";
type IconButtonShape = "control" | "round" | "row-end" | "squircle";

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.

🤖 Optional: the new squircle IconButton shape has no production caller.

Only the specimen uses it. The registry describes it as the "prominent avatar edit action", but AvatarEditor.tsx:209 still uses shape="round". It also has a specificity bug: the prominent :active/[aria-expanded] rule (0,4,0) beats the squircle's (0,3,0) background: transparent, so pressing it, or opening it as a menu trigger, paints an unmasked rectangle behind the squircle. Suggest dropping it until there is a caller.

{type.title}
</span>
}
actions={<div ref={setFooter} className="contents" />}

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.

🤖 Optional: this always renders an actions slot. Only Codex portals into it, so Claude Code and BuilderLab provider dialogs get an empty <footer> that adds a space-4 gap of dead space at the bottom. Render the slot only when the provider supplies actions.

@klopez4212
klopez4212 force-pushed the kennylopez-agent-creation-library branch 2 times, most recently 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: 7882d2f7b0

ℹ️ 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/AgentTabs.tsx Resolved
Comment thread README.md Resolved
Base automatically changed from kennylopez-agent-creation-library to main October 14, 2026 19:22

@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: c9a5d2dbf2

ℹ️ 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/AgentDetails.tsx Resolved
disabled: boolean;
}) {
const footer = useContext(AgentSaveFooter);
if (disabled && !saving) return null;

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 the focused Save action mounted after success

When a keyboard user submits a successful Codex or Claude settings change, the service publishes the updated config before the save promise completes; once saving returns to false, this branch removes the currently focused portal button because the draft is clean. Focus consequently falls back to the page body, whereas the replaced buttons deliberately stayed focusable while disabled. Retain the disabled action until focus has moved to a stable target, or explicitly hand focus off before hiding it.

AGENTS.md reference: AGENTS.md:L46-L51

Useful? React with 👍 / 👎.

Comment on lines +78 to +81
const back =
avatarActive &&
(!initialAvatarPicker || (avatarCanGoBack && !pictureChanged))
? () => avatarNavigation.current?.back()

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 a pointer path back to avatar collections

In Change avatar, after a pointer user opens a pack and selects an avatar, pictureChanged becomes true and this condition removes the Back button while leaving the user inside that pack. Escape still returns to collections via the separate avatarCanGoBack branch, but pointer users can only cancel, lose the draft, and reopen the picker to choose another collection. Keep Back available when the pack view can go back; returning to collections need not discard the selected draft.

AGENTS.md reference: AGENTS.md:L46-L51

Useful? React with 👍 / 👎.

klopez4212 and others added 15 commits October 14, 2026 15:51
Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
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 <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
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 <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
…tion-library

Signed-off-by: klopez4212 <klopez4212@gmail.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
…tion-library

Signed-off-by: klopez4212 <klopez4212@gmail.com>
klopez4212 and others added 9 commits October 14, 2026 15:54
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Preserve the unified profile and current UI refinements alongside upstream fixes.

Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Move provider controls into Settings, deduplicate default models, and remove the nested instructions field boundary.

Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Use the surrounding background for agent instructions, remove redundant DM helper text, and keep focused invalid fields red.

Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
@klopez4212
klopez4212 force-pushed the kennylopez-agent-profile-stacked branch from c9a5d2d to 8318c0a Compare October 14, 2026 20:04
Keep visited non-split panels mounted without eagerly loading unopened tabs. Cover hosted instructions and failed-save state across Identity and Settings navigation.

Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>

@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.

🤖 Carl, an automated reviewer, commenting via Wes’s GitHub account.

Changes requested at 8318c0ad. Most of the last round is fixed: split-settings drafts, activity routing, avatar removal, Escape on a picked avatar, Add interest focus, SettingsGroup repainting, the shared field-trigger recipe, name-field keyboard focus, and the invalid-border specificity bug. Three blockers remain.

Blocking

  • Non-split panels still unmount on a tab switch. An unsaved BuilderLab Instructions draft resets after Settings → Instructions; a local probe reproduced it, and it breaks DESIGN.md:99-101: #1083 (comment)
  • Partial Memory listings have no recovery path: #1083 (comment)
  • Select trigger shape changes app-wide (inline below).

Should fix

  • After a successful save, the focused Save button unmounts and focus falls to body (a probe confirmed it): #1083 (comment)
  • Pointer users lose Back after picking an avatar inside a pack: #1083 (comment). AgentsPage.test.tsx:1319-1321 currently asserts that Back is absent.
  • The settings Accordion aria-label overrides the visible title (inline below).

Non-blocking, still open: the card action state roles: #1083 (comment)

Optional: forms.css:422 has specificity (0,3,1), so it would beat the invalid stroke on a keyboard-focused title or heading input (none can be invalid today; wrap it in :where()). In dark mode the outlined instructions' resting border is about 1.07:1 against the creation dialog. AgentInstructions keeps an unused creation prop. The squircle IconButton still has no production caller.

Validation gaps: CI for 8318c0ad is still running. At c9a5d2db CI failed on AgentCard formatting and the surface-interactions invalid-border assertion; both are fixed in source. The draft and focus probes ran locally at c9a5d2db, and the affected files are unchanged at 8318c0ad. Rendering was checked only for the dark creation dialog in Chromium; no narrow-width or enlarged-text pass.

Exit criteria: fix the three blockers, with regression tests for non-split draft retention across tabs and partial-listing retry, and get CI green on the final head.

Comment thread src/shared/design-system/ui/Select.tsx Resolved
<BaseAccordion.Trigger className="buzz-accordion-trigger text-body">
<BaseAccordion.Trigger
className="buzz-accordion-trigger text-body"
aria-label={variant === "settings" ? item.value : undefined}

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.

🤖 Should fix (a11y): this replaces the trigger's visible title with its value key.

For variant="settings", the accessible name becomes item.value. That happens to match in Memory, where the value is the slug, but the specimen already breaks it (value: "memory", title “Core memory”). That fails label-in-name (WCAG 2.5.3) for any future caller whose key differs from its title. The label isn't needed either: the trigger's text content already names it, and Memory's timestamp is aria-hidden.

Fix: remove the aria-label.

@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: 8318c0ade1

ℹ️ 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/agents/AgentDetails.tsx Resolved
Retain loaded memories during partial-list retries and limit control-shaped selects to preference rows.

Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>

@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: 796284c6cf

ℹ️ 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/AgentTabs.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: 50789496d3

ℹ️ 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/AgentTabs.tsx Resolved
Comment thread src/bundled/agents/AgentTabs.tsx Resolved

@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.

🤖 Carl, an automated reviewer, commenting via Wes’s GitHub account.

Changes requested at 50789496. All three blockers from the 8318c0ad review are fixed:

  • Non-split drafts survive tab switches, with an Instructions draft and failed-save regression test.
  • Partial Memory listings now offer "Retry loading memories", with a test that holds the retry and checks recovery.
  • Select shape is scoped to preference, with a test asserting capsule for inline and compact.

The retention fix introduced one new blocker: visited Memory panels never re-read and keep a memory-view slot (inline below). Mongo independently confirmed it.

Still open from the last review (the files are unchanged since 8318c0ad): Save focus falls to body after a successful save, pointer users lose Back after picking an avatar, and the settings Accordion aria-label overrides its visible title. All three are should-fix, not blocking. The card action state roles item remains non-blocking.

Validation: CI is green at 50789496 (32 passed, 1 skipped). This re-review covered only the 8318c0ad..50789496 delta and was source-only, with nothing rendered.

Exit criteria: stop retaining Memory (or retain only draft-owning panels), add a leave-and-return Memory test, and keep CI green.

Comment thread src/bundled/agents/AgentTabs.tsx Resolved
Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>

@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.

🤖 Carl, an automated reviewer, commenting via Wes’s GitHub account.

Changes requested at d08c0fc1. The stale-Memory blocker from the 50789496 review is fixed. Memory is excluded from tab retention, and the new AgentTabs.test.tsx checks that leaving Memory frees its view slot and that returning reads fresh data. Editable panels still keep their drafts.

Blocking: an explicit model override that equals the device default is shown as inherited (Codex's earlier finding, confirmed with Mongo): #1083 (comment)

Still open, should fix (files unchanged since 8318c0ad):

The card action state roles item remains non-blocking.

Validation: CI is green at d08c0fc1 (32 passed, 1 skipped). Source-only re-review of 50789496..d08c0fc1 plus the ModelPicker finding; nothing rendered.

Exit criteria: keep the inherited and explicit model states distinct, with an updated test, and keep CI green.

Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>

@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: 9efe036402

ℹ️ 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
Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>

@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: 6b42fa5fb2

ℹ️ 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 +52 to +55
!connection.session.agentChoices
.snapshot()
.identities.some((agent) => agent.managed && agent.pubkey === pubkey)
) {

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 Disable Message when hosted agents fail admission

When a finished hosted agent is opened from the library, AgentDetails renders this Message action as enabled, but hosted agents are absent from the local identity list and therefore appear in session.agentChoices with managed: false (choices.ts:116-128). This predicate consequently rejects every attempt with “not ready to message,” making the visible action deterministically unusable for hosted agents. Include the same eligibility check in the button's availability or pass an explicit authorization policy for owned hosted agents.

AGENTS.md reference: AGENTS.md:L87-L90

Useful? React with 👍 / 👎.

Comment on lines +252 to +256
<PreferenceRow
title={label}
subtitle={description}
disabled={disabled}
trailing={control}

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 Associate preference-select help and errors with the control

When a preference Select has help or an error—currently the Claude model selector does after catalog loading fails—passing control as an opaque trailing node prevents PreferenceRow from supplying its aria-describedby relationship, while the separate error paragraph also never marks or describes the combobox. A screen-reader user revisiting the field therefore cannot discover its help or failure state after the one-time live alert. Use the row's trailing render callback and include the error in the described state, as required by src/shared/design-system/DESIGN.md:126-134.

AGENTS.md reference: AGENTS.md:L229-L233

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.

🤖 Carl, an automated reviewer, commenting via Wes’s GitHub account.

No blockers at 6b42fa5f. The Memory retention blocker from 50789496 is fixed. agent:memory is excluded from retention, so it unmounts, releases its view slot and reads fresh data on return. The new AgentTabs regression uses the real memory service to verify the second read and slot release. The other two commits also look correct: the Your teams draft retention has a test, and the ModelPicker pinned-vs-inherited distinction is in place.

Non-blocking: a narrower Memory retention path through the hidden aside (inline below).

Still open, should-fix (files unchanged): Save focus falls to body after a successful save, pointer users lose Back after picking an avatar, and the settings Accordion aria-label overrides its visible title. The card action state roles item remains non-blocking.

Validation: CI is green at 6b42fa5f (32 passed, 1 skipped). This re-review covered only the 50789496..6b42fa5f delta and was source-only, with nothing rendered.

</div>
</FullPageSurface>
{panel && selected && (
<aside className={styles.side} hidden={tab !== "yours"}>

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.

🤖 Non-blocking: keeping the profile mounted under hidden while Your teams is open also keeps Memory mounted, if Memory was the active section when the user switched. In that case, coming back shows the same listing without a fresh read, and it holds one memory-view slot while hidden. That's the same staleness d08c0fc1 fixed inside the profile, through a narrower path. One option is to keep the draft retention and release Memory when the aside is hidden (for example, pass a hidden/inactive flag into AgentTabs and treat Memory as unselected).

Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: klopez4212 <klopez4212@gmail.com>

@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: 8938a6cdd7

ℹ️ 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/app/App.tsx
<p role="status">Opening destination…</p>
) : settings ? (
<Settings
agents={services.agents}

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 Obtain approval before editing the foundation startup file

This new wiring modifies App.tsx, which is explicitly marked FOUNDATION, but neither the reviewed commit message nor the supplied context records the required human authorization. Obtain and document that guidance before landing this edit, or move the dependency wiring to a non-foundation owner.

AGENTS.md reference: AGENTS.md:L14-L15

Useful? React with 👍 / 👎.

@klopez4212
klopez4212 merged commit 9f21b24 into main Oct 14, 2026
33 checks passed
@klopez4212
klopez4212 deleted the kennylopez-agent-profile-stacked branch October 14, 2026 23:57
johnmatthewtennant added a commit that referenced this pull request Oct 15, 2026
…-drag

* origin/main: (34 commits)
  fix(channels): resolve template agents from ready inventory (#922)
  [buzz-app] Fit uploaded videos to the relay's 4K envelope and name video rejections (#1129)
  feat(github): reveal the PR comment a link points at (#947)
  fix(messages): stop WebKit freeze from muted composer video previews (#1143)
  test(browser): fix route-unroute and virtua-hold webkit flakes (#1149)
  test(browser): let dnd-kit see its first resize before text shrinks (#1150)
  fix(previews): keep a hovered preview through scroll anchoring (#1138)
  Unify owned agent profile panels (#1083)
  feat(agents): import old Buzz teams from the Teams tab (#985)
  Mark Me chats as personal in the session description for remote agents (#1058)
  feat(messages): optional way to open buzz message links in a thread tab (#1113)
  Distinguish thread originals and tighten conversation spacing (#929)
  fix(buzz-mcp): page channel reads past the relay limit (#1131)
  fix(inbox): show a session's top-level timeline as one conversation (#1094)
  feat: reorder sidebar groups by dragging their headers (#1118)
  fix(avatars): request the cached relay thumbnail at every avatar site (#1054)
  fix(messages): soften quote styling and tighten spacing (#1098)
  fix(emoji): shrink and raise inline custom emoji (#1097)
  fix: follow host theme in media review chrome (#1117)
  Highlight an already-open thread tab when reopening it (#1050)
  ...

Signed-off-by: John Tennant <jtennant@block.xyz>
Co-authored-by: Claude Worker <f425b86c3b780d43f8d9cf1802429d04dd985bf92eac44fca9468b5ad3887c5e@buzz.block.builderlab.xyz>

# Conflicts:
#	src/features/channel-navigation/ChannelSidebarDnd.tsx
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