Polish settings hierarchy, controls, and profile actions - #240
Conversation
Co-authored-by: Codex <noreply@openai.com> Signed-off-by: Arjun Mahanti <arjun@squareup.com>
Co-authored-by: Codex <noreply@openai.com> Signed-off-by: Arjun Mahanti <arjun@squareup.com>
Co-authored-by: Codex <noreply@openai.com> Signed-off-by: Arjun Mahanti <arjun@squareup.com>
wesbillman
left a comment
There was a problem hiding this comment.
Carl, an automated reviewer, commenting via Wes’s GitHub account.
Changes requested: one keyboard-focus regression across the conditional settings actions, detailed inline. Keep the intended conditional visibility; the fix is a guarded focus handoff, not restoring always-visible buttons.
- Source-only review of
ec5d979a391fb0feebd43264b640a248cbe82e16against119195ea331de33c8480bab180df0091ca8e9421, including settings state/persistence owners and shared-control consumers. No PR code was executed by this review. - Existing CI run 36065115172 passed on merge
e45bc9fof these pins: 3,318 unit tests, 600 browser cases, and 7 measurements. The changed count, presence-selector, and palette assertions preserve the intended boundaries; they do not verify focused-control retirement. Actual next-Tab behavior, native/packaged acceptance, and app-wide visual acceptance remain unverified; Windows validation was skipped. - Merge criteria: preserve focus for the retiring focused actions and cover those transitions; resolve the current merge conflicts and validate the resulting head. The existing CI result is not current-main readiness.
Signed-off-by: Codex <codex@openai.com>
wesbillman
left a comment
There was a problem hiding this comment.
Star Lord’s automated source review via Wes’s GitHub account.
One actionable P2 remains in Appearance’s focus handoff, detailed inline. The earlier Profile Save/Cancel finding is addressed at source level: cleanup transfers focus only when the retiring actions contain it, and the tests cover failed save/retry, implicit submission and unrelated external updates. The Appearance repair handles an enabled destination but misses the 200% boundary. Keep the intended conditional visibility; do not restore always-visible actions.
Reviewed head dc9f0756a0a0fc59c8549f2b08d7a8891ceedb0f against base/merge-base df7b7e7f45739f3e06e12d81623385701acdc51d. Reviewed the actual feature diff, settings owners/callers, shared controls and changed browser assertions; Mantis’s bounded focus/lifecycle review is reconciled. No other actionable source defects found in that scope. Source came from pinned Git objects, not dirty working-tree files.
Evidence and limits: no PR code, tests, builds or app workflows were executed by this review. React 19.2.8 and the pinned Base UI 1.8.0 / utils 0.4.0 ref and disabled-control implementations were inspected as source. A read-only current-head check snapshot verifies success for JavaScript, Rust/tool integration, all four browser shards, measurements, CI required, DCO, Semgrep and zizmor in/alongside run 36124838337; Windows native validation was skipped. This is check-status evidence, not an independent rerun or verification of the author’s detailed test counts. The 200% keyboard transition, native/packaged behavior and app-wide visual acceptance remain unverified at runtime.
This is a non-blocking COMMENT review, not approval or merge authorization; it does not dismiss the earlier review.
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
…s-240 Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
…s-240 Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
wesbillman
left a comment
There was a problem hiding this comment.
Star Lord’s automated source review via Wes’s GitHub account.
No remaining actionable findings in this follow-up source review. The previously reported 200% Reset defect is addressed: AppearanceSettings.tsx:27–41 records focus ownership during ref cleanup, then focuses Increase in a layout effect after the disabled state is updated. The conditional Reset visibility remains intact. The added source assertions cover maximum-scale reset, storage failure, focused/unfocused external resets and unmount.
The Profile integration uses the same post-commit handoff (ProfileSettings.tsx:52–69); Save uses the shared focusable loading state while publication is pending, and rejected publication retains the actions for retry. I also checked the affected callers/shared controls and the latest merge’s test-conflict resolutions. No new material defect was found in those changes. This is a follow-up on the prior findings and integration, not a fresh audit of unrelated code inherited from main.
Reviewed head 584395edd1eb6de7a1a6a5dc6cc963d5f5f87949 against base/merge-base f761867ed81f25604933620f9b4747a871a69c04, using byte-verified pinned Git objects; no dirty working-tree source inputs.
Validation limits: source-only; no PR code, tests, builds or app workflows were executed. One read-only current-head check snapshot reports JavaScript, Rust/tool integration, all four browser shards, measurements, CI required, DCO, Semgrep and zizmor successful in/alongside run 36176006481; Windows native validation was skipped. This is hosted status evidence, not an independent rerun or verification of the author’s test counts. Native/packaged acceptance, human smoke testing and app-wide visual acceptance remain unverified by this review.
Non-blocking COMMENT only: not approval, dismissal of the earlier review, or merge authorization.
…havior Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
…lution Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
wesbillman
left a comment
There was a problem hiding this comment.
Star Lord’s automated source review via Wes’s GitHub account.
No new actionable findings in this follow-up source review. The new avatar/settings integration preserves the previously repaired conditional-action behavior: Profile Save remains focusable while pending, failure keeps edits for retry, and the retiring focused actions hand off to Display name after the DOM update. Avatar editing gates Save/Cancel while the editor is open, and the viewer/community key in Settings retires the previous editor on selection changes. The 200% Appearance Reset repair is unchanged from the previously covered revision.
Reviewed head 5b0d22479124851103c8dfd16a0b38bb1cc1bab2 against base/merge-base 64be4c2adf21e9920d4a7666354ceab1d784dd44. Scope: changes since covered head 584395edd1eb6de7a1a6a5dc6cc963d5f5f87949 that intersect this feature, including ProfileSettings/Settings integration, relevant shared-control and avatar callers, and the changed unit/browser assertions. The inherited agent-delete assertion now has no diff against base. This is not a fresh audit of unrelated code inherited from main. Source was read from hash-verified pinned Git objects, with no dirty working-tree source inputs.
Validation limits: source-only; no PR code, tests, builds or app workflows were executed. The updated browser source retains the pending/failure/retry/success and keyboard-focus assertions and adds/removes no browser cases; this is source inspection, not runtime evidence. One current-head CI snapshot of run 36185267144 showed Browser measurements successful while JavaScript, Rust/tool integration and all six browser shards were still running; Windows native validation was skipped. DCO, Semgrep and zizmor were successful. CI completion, native/packaged behavior, human smoke testing and app-wide visual/accessibility acceptance remain unverified by this review. Author-reported local results were not independently rerun.
Non-blocking COMMENT only: not approval, dismissal of the earlier review, or merge authorization.



Polish settings hierarchy, controls, and profile actions
Settings used inconsistent headings and row spacing, always showed profile actions, and expanded shortcut rows when capture began. This change introduces shared Header/InlineHeader layouts, lighter light-mode fields and hover fills, and a small Input size. Profile actions now appear only for edits, right-aligned as Cancel then Save; the account menu retains the shell avatar's presence badge.
Notifications retains main's shared PreferenceRow, category order and dependent disabled states, with a compact permission banner whose actions wrap on narrow screens. Appearance aligns Text size with Color mode, removes redundant help text, and shows Reset only away from 100%. Plugin and shortcut rows use reduced horizontal padding. New shared components have maintained design-viewer examples and usage documentation. Dark-mode palette values are unchanged.
Takeover and integration
Pushed head 5b0d224 includes main 64be4c2 (latest fetched at delivery). Existing author history is preserved; no force-push. The refresh retains main’s avatar editor and confirmed profile publishing alongside the PR’s conditional actions and keyboard-focus behavior.
Three inherited unit failures were independently reproduced on clean main 0908663. Commit 2e4b513 repairs only their tests: PluginImport's current warning copy, ProfileAgentIdentity's subject-owned kind-10100 capabilities read, and MessageRow's incomplete session.messages fixture. Latest main #242 independently repaired these three tests too. The final integration uses its MessageRow fixture and retains the stronger warning/capabilities assertions without duplicates. Both ProfileButton test sets are retained with the new accountActions fixture. No unrelated production changes or hook bypasses.
Latest main refresh and validation
ProfileAgentArchive.test.tsxnow has no diff against main. No agent production code changed.Earlier takeover validation (historical heads)
Required hosted CI still needs a successful run at the final head; the old head's green run is not final-head evidence. Native/package acceptance, Windows validation and a complete app-wide visual audit remain deferred. Original screenshots remain local, not GitHub attachments.
Remaining merge gates / human smoke test
The owner has marked this PR ready; that state was preserved. No agent approval or merge was performed, and no human smoke test is claimed complete. Required final-head CI and human/code-owner re-review must complete; the existing changes-requested review still stands.
Takeover notes by Carl, an automated reviewer, commenting via Wes’s GitHub account.