Skip to content

refactor(ui): simplify settings owners - #140225

Merged
steipete merged 1 commit into
mainfrom
codex/deslop-tool-overrides
Sep 6, 2026
Merged

steipete merged 1 commit into
mainfrom
codex/deslop-tool-overrides

Conversation

@steipete

@steipete steipete commented Sep 6, 2026 •

Copy link
Copy Markdown
Contributor

What Problem This Solves

Settings repeated page defaults, tool override updates, schema traversal/default construction and log styling. The Logs task also carried an unread field, and Profile supported a successful response without a profile even though the Gateway contract never produces one.

This maintainer-requested cleanup removes those duplicate and unsupported paths through existing owners.

Related: #139597

Why This Change Was Made

Derive page IDs and defaults from the section registry, use one single/bulk tool update with canonical normalization, and reuse the existing schema collector and one array-default loop. Keep section order, independent selections, Advanced boundaries, bookmarks, aliases, wildcard entries, callback counts, input immutability and schema constraints intact.

Profile now consumes the declared successful response and retains its real rejection/Refresh flow. Remove only the unsupported success fixtures, their dedicated CSS and unused English keys. Logs keeps its real quiet-polling state while dropping unread task transport, and shares identical badge/filter tones in its existing lazy stylesheet. The Connection capability test imports its helper directly from its owner.

Production is 115 lines smaller; tests grow by 203 lines after discounting moved selection cases. No new configuration, schema, protocol, dependency or public API removal.

User Impact

No intended change to supported behavior or appearance. Authorization, saving, lifecycle fencing, retries, avatar revisions, log-source recovery and accessibility remain covered.

Evidence

  • Original/candidate settings and tool characterization: 130 tests each, including mounted route-to-page selections and actual tool interactions.
  • Original schema/Profile preservation: 92 tests. The rebased candidate passes 342 tests across 23 files, including all 46 Logs/Connection cases and the new meeting-capture integration on main.
  • The unchanged Gateway user handler passes all 35 cases, confirming successful profile responses and rejected unresolved/error outcomes.
  • Original/candidate built Control UI Profile browser flows pass all three selected cases: normal rendering, single-flight failure/Refresh recovery and avatar revisions. Synthetic error and avatar captures were inspected; no live account or provider action is claimed.
  • Independent P0–P2 reviews cover all changed files and their owner/dependency contracts with no findings. All files pass formatting and whitespace checks.
  • Original and candidate Logs layout, auto-follow and isolated real-Gateway source/error/reconnect flows pass. All 24 badge/filter color samples per version match in light/dark mode; the captured Logs main panel is pixel-identical.
  • Full changed checks and the production Control UI build pass, including type, lint, style, i18n, dead-code and bundle-budget gates.

The attached synthetic captures show Logs before/after and preserved Profile error redaction. They contain no live user/account data.

Logs before consolidation

Logs after consolidation

Profile error before consolidation

Profile error after consolidation

@clawsweeper

clawsweeper Bot commented Sep 6, 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.

@openclaw-barnacle openclaw-barnacle Bot added app: web-ui App: web-ui size: L maintainer Maintainer-authored PR labels Sep 6, 2026
@clawsweeper clawsweeper Bot added P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Sep 6, 2026
@clawsweeper

clawsweeper Bot commented Sep 6, 2026 •

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed September 6, 2026, 12:05 PM ET / 16:05 UTC.

ClawSweeper review

What this changes

The PR consolidates Control UI settings defaults, tool updates, schema helpers, and log styling while removing an unsupported empty-profile response path.

Merge readiness

✅ Ready for maintainer review

This remains a useful, maintainer-requested cleanup that current main does not already contain. No introduced correctness or security defect was found.

Priority: P3
Reviewed head: ee8743fce0497325a1db1e8c3665d28e893c792b

Review scores

Measure Result What it means
Overall readiness 🐚 platinum hermit (4/6) A focused consolidation with useful preservation coverage and no actionable defect found; reported runtime proof was not rerun here.
Proof confidence 🐚 platinum hermit (4/6) Not applicable: The maintainer-authored cleanup is exempt from the external-contributor proof gate and does not materially change authority. Supplied evidence reports built-UI Profile recovery and real-Gateway Logs preservation; linked captures could not be fetched for independent inspection.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Not applicable Not applicable: The maintainer-authored cleanup is exempt from the external-contributor proof gate and does not materially change authority. Supplied evidence reports built-UI Profile recovery and real-Gateway Logs preservation; linked captures could not be fetched for independent inspection.
Evidence reviewed 7 items Introduced change boundary: Read the complete local merge-base-to-head diff across all 17 introduced paths. Changes are confined to Control UI source, styles, and tests; the unrelated base-branch changes are not attributed to this PR.
Profile success and recovery contract: The users.self handler returns a profile on success and rejects unresolved identities or storage errors. The storage reader throws when the profile is absent. Retained Profile tests cover rejection, redaction, single-flight Refresh recovery, and reconnect fencing.
Applicable UI compatibility policy: Fully read root AGENTS.md and ui/AGENTS.md. The UI explicitly ships with its Gateway and does not support older-Gateway compatibility fallbacks, supporting removal of the undeclared successful empty-profile fixture. No maintainer-notes directory was present.
Findings None None.
Security None None.

How this fits together

The Control UI turns settings routes, configuration schemas, and Gateway responses into editors and status panels. These changes simplify how those panels select sections, update tool settings, and display profile and log results.

flowchart TD
  A[Settings routes] --> B[Section registry]
  B --> C[Settings editors]
  D[Configuration schemas] --> C
  C --> E[Tool override updates]
  F[Gateway responses] --> G[Profile and Logs panels]
Loading

Before merge

None.

Agent review details

Security

None.

PR surface

Source -115, Tests +203. Total +88 across 17 files.

View PR surface stats
Area Files Added Removed Net
Source 11 58 173 -115
Tests 6 344 141 +203
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 17 402 314 +88

Review metrics

None.

Technical review

Best possible solution:

Keep one owner for settings defaults and tool updates while preserving supported Profile recovery and Logs presentation.

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

Not applicable: this PR consolidates existing behavior rather than reporting a runtime defect; source inspection found no introduced failing path.

Is this the best way to solve the issue?

Yes. Reusing the existing registry and helpers removes duplication without changing supported defaults, saved settings, or the Gateway response contract.

AGENTS.md: found and applied where relevant.

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

Labels

Label justifications:

  • P3: This is a bounded internal cleanup with no intended change to supported user behavior.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🐚 platinum hermit and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Not applicable: The maintainer-authored cleanup is exempt from the external-contributor proof gate and does not materially change authority. Supplied evidence reports built-UI Profile recovery and real-Gateway Logs preservation; linked captures could not be fetched for independent inspection.

Evidence

What I checked:

  • Introduced change boundary: Read the complete local merge-base-to-head diff across all 17 introduced paths. Changes are confined to Control UI source, styles, and tests; the unrelated base-branch changes are not attributed to this PR. (ee8743fce049)
  • Profile success and recovery contract: The users.self handler returns a profile on success and rejects unresolved identities or storage errors. The storage reader throws when the profile is absent. Retained Profile tests cover rejection, redaction, single-flight Refresh recovery, and reconnect fencing. (src/gateway/server-methods/users.ts:84, ee8743fce049)
  • Applicable UI compatibility policy: Fully read root AGENTS.md and ui/AGENTS.md. The UI explicitly ships with its Gateway and does not support older-Gateway compatibility fallbacks, supporting removal of the undeclared successful empty-profile fixture. No maintainer-notes directory was present. (ui/AGENTS.md, ee8743fce049)
  • Behavior-preserving consolidation: Each registry's first section matches the previous page default. The shared tool normalizer performs the same name normalization and blank filtering; sets retain deduplication and wildcard entries. Schema traversal order changes only inside an order-independent boolean check, and array defaults retain their bounds and validation. (ui/src/pages/config/config-sections.ts:33, ee8743fce049)
  • Current-main necessity: Comparison with fetched main still shows the duplicated settings-default switch and optional-profile success handling that this PR removes. The provided merged related PR concerns agent execution and recovery, not this UI cleanup. No shipped implementation of this cleanup was established. (ui/src/pages/config/config-page.ts:145, 7e9a8414d30b)
  • Provided proof and review continuity: The supplied sourceRevision 9a53c24d0a9436330d0fe2faf15747ec3a0becb014c78e4d11fbfcf8d2d5c88e includes reported original/candidate browser preservation, real-Gateway Logs recovery, and four before/after captures. Attachment retrieval failed in this reviewer environment, so images were not independently inspected. The prior completed review lists no findings or published rank-up moves; its earlier source object was unavailable for comparison. No tests or builds were executed during this read-only review. (ee8743fce049)

Likely related people:

  • steipete: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)
  • Jacqueline Henriksen: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Workflow

  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

History

Review history (1 earlier review cycle)
  • reviewed 2026-09-06T15:39:41.393Z sha a0336c1 :: needs maintainer review before merge. :: none

Centralize settings defaults, tool overrides, schema traversal and array defaults. Remove the unsupported Profile success state and unread Logs task transport while preserving existing request, editing and recovery contracts.
@steipete
steipete force-pushed the codex/deslop-tool-overrides branch from a0336c1 to ee8743f Compare September 6, 2026 15:53
@steipete
steipete marked this pull request as ready for review September 6, 2026 15:59
@steipete
steipete merged commit fcea619 into main Sep 6, 2026
178 checks passed
@steipete
steipete deleted the codex/deslop-tool-overrides branch September 6, 2026 16:13
@steipete

steipete commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

Merged via squash.

github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Sep 7, 2026
Centralize settings defaults, tool overrides, schema traversal and array defaults. Remove the unsupported Profile success state and unread Logs task transport while preserving existing request, editing and recovery contracts.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app: web-ui App: web-ui maintainer Maintainer-authored PR P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: L 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