Skip to content

feat(control-ui): auto-set document.title to current agent name (#80942)#80944

Closed
SymbolStar wants to merge 7 commits into
openclaw:mainfrom
SymbolStar:fix/issue-80942-doc-title
Closed

feat(control-ui): auto-set document.title to current agent name (#80942)#80944
SymbolStar wants to merge 7 commits into
openclaw:mainfrom
SymbolStar:fix/issue-80942-doc-title

Conversation

@SymbolStar

Copy link
Copy Markdown
Contributor

Auto-set Control UI document.title to the active agent's name so multi-agent operators can disambiguate Control UI tabs.

Closes #80942.

Coexistence with PR #51067

Coexists with PR #51067 (gateway.controlUi.title static config); when both land, the static config title should take precedence. A TODO referencing #51067 is left in app-lifecycle.ts so the wiring can be added once that surface is on main.

Implementation

  • ui/index.html: change static <title> from OpenClaw Control to just OpenClaw (the suffix is now appended dynamically).
  • ui/src/ui/app-lifecycle.ts:
    • New syncDocumentTitleFromHost(host) helper.
    • Title formula: ${assistantName || assistantAgentId || "Control"} · OpenClaw.
    • handleUpdated() calls it whenever assistantName or assistantAgentId is in the changed-properties map, so the tab title updates within the same render cycle as the agent identity.
    • SSR/test-safe: bails out when document is undefined.
    • Idempotent: only writes when the new title differs.

Tests

ui/src/ui/app-lifecycle.doc-title.test.ts (vitest, jsdom):

  • fallback chain (assistantNameassistantAgentId"Control"),
  • handleUpdated triggers a title write for assistantName change,
  • handleUpdated triggers a title write for assistantAgentId change,
  • handleUpdated does not rewrite the title when only unrelated state (e.g. logsEntries) changed.

Out of scope (deliberately skipped, per issue's "optional polish" list)

  • Streaming prefix while a chat stream is in progress — can be a follow-up.
  • Identity emoji prefix — host state doesn't currently expose assistantEmoji; adding new state plumbing is out of scope here.

CHANGELOG entry added under UnreleasedFeatures.

@SymbolStar

Copy link
Copy Markdown
Contributor Author

@steipete could you take a look when you have a moment? Small Control UI quality-of-life change for multi-agent setups; composes with your PR #51067 (no conflicts expected, TODO note left for the precedence wiring).

@openclaw-barnacle openclaw-barnacle Bot added app: web-ui App: web-ui size: S triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels May 12, 2026
@clawsweeper

clawsweeper Bot commented May 12, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge.

Latest ClawSweeper review: 2026-05-22 01:01 UTC / May 21, 2026, 9:01 PM ET.

Workflow note: Future ClawSweeper reviews update this same comment in place.

How this review workflow works
  • 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.

Summary
The PR adds Control UI document.title synchronization from the active assistant name or agent id, a persisted Appearance toggle, storage/view-state plumbing, tests, i18n baseline updates, and a changelog entry.

Reproducibility: not applicable. this is a feature request, not a bug report. Source inspection confirms the current baseline is the static OpenClaw Control title, and the screenshot proof shows the requested after-fix title behavior.

PR rating
Overall: 🐚 platinum hermit
Proof: 🐚 platinum hermit ✨ media proof bonus
Patch quality: 🐚 platinum hermit
Summary: Good normal PR quality: the patch is focused and tested with sufficient visual proof, with the remaining uncertainty centered on maintainer title-policy choice rather than a concrete code defect.

Rank-up moves:

  • none
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

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.

Real behavior proof
Sufficient (screenshot): The inspected screenshot directly shows after-fix visible behavior for multiple Control UI entries titled with distinct agent names in a real macOS switcher view.

Risk before merge

  • This changes the default browser-tab title for existing Control UI users from the static OpenClaw Control to a per-agent title unless they use the new static opt-out setting.
  • The related static-title configuration PR remains open and conflicting; if both features land, maintainers still need to ensure configured static titles take precedence as intended.

Maintainer options:

  1. Accept Dynamic Titles By Default
    Maintain the PR's current default of per-agent browser titles and treat the static toggle as the compatibility escape hatch.
  2. Make Dynamic Titles Opt-In
    Change the default to the existing static title and let users enable per-agent titles from Appearance if maintainers want upgrade behavior to stay visually unchanged.
  3. Coordinate With Static Title Config
    Hold or revise this PR together with the static gateway.controlUi.title PR so the final precedence rule is implemented once instead of split across follow-ups.

Next step before merge
No repair lane: there is no discrete code defect for automation to fix, and the remaining action is maintainer review of the default title behavior plus static-title precedence.

Security
Cleared: No concrete security or supply-chain concern found; the diff writes document.title via text assignment from existing identity state and adds local UI setting/test/changelog plumbing without new dependencies, permissions, network calls, or secret handling.

Review details

Best possible solution:

Land the focused UI title-sync path only after maintainers accept the default behavior and either document or coordinate the precedence plan with the static gateway.controlUi.title work.

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

Not applicable: this is a feature request, not a bug report. Source inspection confirms the current baseline is the static OpenClaw Control title, and the screenshot proof shows the requested after-fix title behavior.

Is this the best way to solve the issue?

Unclear as a product decision: the patch is a plausible narrow implementation, but maintainers must accept dynamic titles as the default and settle how this composes with the open static-title configuration PR.

Label changes:

  • add merge-risk: 🚨 compatibility: The PR intentionally changes the default browser title seen by existing Control UI users and needs a maintainer decision on static-title precedence.
  • add proof: sufficient: Contributor real behavior proof is sufficient. The inspected screenshot directly shows after-fix visible behavior for multiple Control UI entries titled with distinct agent names in a real macOS switcher view.
  • add proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence. The inspected screenshot directly shows after-fix visible behavior for multiple Control UI entries titled with distinct agent names in a real macOS switcher view.
  • add rating: 🐚 platinum hermit: Current PR rating is 🐚 platinum hermit because proof is 🐚 platinum hermit, patch quality is 🐚 platinum hermit, and Good normal PR quality: the patch is focused and tested with sufficient visual proof, with the remaining uncertainty centered on maintainer title-policy choice rather than a concrete code defect.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (screenshot): The inspected screenshot directly shows after-fix visible behavior for multiple Control UI entries titled with distinct agent names in a real macOS switcher view.
  • remove rating: 🌊 off-meta tidepool: Current PR rating is rating: 🐚 platinum hermit, so this older rating label is no longer current.

Label justifications:

  • P3: This is a low-risk Control UI ergonomics feature with focused scope and limited blast radius.
  • merge-risk: 🚨 compatibility: The PR intentionally changes the default browser title seen by existing Control UI users and needs a maintainer decision on static-title precedence.
  • rating: 🐚 platinum hermit: Current PR rating is 🐚 platinum hermit because proof is 🐚 platinum hermit, patch quality is 🐚 platinum hermit, and Good normal PR quality: the patch is focused and tested with sufficient visual proof, with the remaining uncertainty centered on maintainer title-policy choice rather than a concrete code defect.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (screenshot): The inspected screenshot directly shows after-fix visible behavior for multiple Control UI entries titled with distinct agent names in a real macOS switcher view.
  • proof: sufficient: Contributor real behavior proof is sufficient. The inspected screenshot directly shows after-fix visible behavior for multiple Control UI entries titled with distinct agent names in a real macOS switcher view.
  • proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence. The inspected screenshot directly shows after-fix visible behavior for multiple Control UI entries titled with distinct agent names in a real macOS switcher view.

What I checked:

  • Current main title is static: Current main still serves the Control UI with the fixed HTML title OpenClaw Control. (ui/index.html:6, 4faeb378ee49)
  • Current main has no lifecycle title sync: handleUpdated() on current main handles chat and logs scrolling only; the current UI path has no document.title writer for agent identity changes. (ui/src/ui/app-lifecycle.ts:145, 4faeb378ee49)
  • Existing identity source is available: The Control UI already loads agent.identity.get and stores assistantName plus assistantAgentId, which are the data sources used by the PR. (ui/src/ui/controllers/assistant-identity.ts:44, 4faeb378ee49)
  • PR implements runtime title sync: At PR head, syncDocumentTitleFromHost() writes ${name} · OpenClaw, falls back through assistant name, agent id, and Control, and restores the static title when the new toggle is disabled. (ui/src/ui/app-lifecycle.ts:154, 6c03a051d7d0)
  • PR adds user opt-out setting: The PR adds an Appearance Browser tab segmented control and persists documentTitleSyncEnabled, defaulting to enabled while preserving a static-title opt-out. (ui/src/ui/views/config-quick.ts:675, 6c03a051d7d0)
  • PR covers fallback and toggle behavior: The added jsdom test covers name/id/control fallback, title updates on identity and settings changes, unrelated updates, and the disabled static-title path. (ui/src/ui/app-lifecycle.doc-title.test.ts:44, 6c03a051d7d0)

Likely related people:

  • BunsDev: Recent merged history repeatedly touches the same UiSettings, Quick Settings, assistant identity, and appearance-control surfaces this PR extends. (role: recent Control UI settings and Quick Settings contributor; confidence: high; commits: 52370c59980b, 256377c029f6, 14249827928e; files: ui/src/ui/views/config-quick.ts, ui/src/ui/storage.ts, ui/src/ui/app-render.ts)
  • steipete: Recent history includes Control UI lifecycle/responsiveness work and assistant identity preservation used by the requested title fallback path. (role: adjacent Control UI lifecycle and identity contributor; confidence: high; commits: 826786b114a4, dca9fa471f67, 84ec0c27bf75; files: ui/src/ui/app-lifecycle.ts, ui/src/ui/controllers/assistant-identity.ts, ui/src/ui/views/config-quick.ts)
  • jeffjhunter: Recent merged Quick Settings work added the Browser enabled and Tool profile controls near the Appearance-area UI pattern this PR follows. (role: adjacent Quick Settings contributor; confidence: medium; commits: 3247b091d6ff; files: ui/src/ui/views/config-quick.ts)

Codex review notes: model gpt-5.5, reasoning high; reviewed against 4faeb378ee49.

…rt static <title>; fix check-lint

- Revert ui/index.html <title> to 'OpenClaw Control' so smoke checks
  (scripts/e2e/parallels/macos-smoke.ts and
  scripts/openclaw-cross-os-release-checks.ts) pass without modification.
  The runtime hook in app-lifecycle.ts overrides it after mount when the
  toggle is enabled.

- Add Appearance > Browser tab toggle (Agent name / Static). Default:
  Agent name (preserves the per-agent title sync from the original PR).
  Persists via the existing UiSettings localStorage store as
  documentTitleSyncEnabled.

- syncDocumentTitleFromHost now reads host.settings.documentTitleSyncEnabled;
  when off, restores the static 'OpenClaw Control' title.

- Replace 'TODO(openclaw#51067)' comment with a non-TODO note to satisfy the
  no-warning-comments oxlint rule that failed check-lint.
@SymbolStar

Copy link
Copy Markdown
Contributor Author

Pushed follow-up commit 8c22fd7 covering the three asks:

  1. Reverted ui/index.html <title> back to OpenClaw Control — keeps both smoke checks (scripts/e2e/parallels/macos-smoke.ts line 970 and scripts/openclaw-cross-os-release-checks.ts lines 3175/3184) green without touching them. The runtime hook in app-lifecycle.ts overrides document.title after mount, so the live tab still shows the agent name when the toggle is on.

  2. Fixed the failing check-lint — root cause was a single TODO(#51067) comment in app-lifecycle.ts tripping oxlint's no-warning-comments rule (Found 0 warnings and 1 error). Reworded to a non-TODO note. No full-repo prettier; only the touched files.

  3. Added Appearance toggle for document.title sync — under Quick Settings → Appearance, new Browser tab row with two pills: Agent name (default, preserves PR behavior) and Static (keeps the static OpenClaw Control tab title). Persisted as documentTitleSyncEnabled in the existing UiSettings localStorage store, alongside theme / borderRadius. syncDocumentTitleFromHost now respects the flag and restores the static title when off. Tests extended to cover both toggle states.

Diff: 9 files, +104 / -4. CHANGELOG Unreleased entry updated to mention the toggle.

Holding off on re-pinging ClawSweeper until CI is green.

…cycleHost.settings

- LifecycleHost.settings: include token? so it satisfies ControlUiBootstrapState
  (loadControlUiBootstrapConfig was failing typecheck).
- storage.node.test / overview.render.test / config-quick.test: add the new
  required documentTitleSyncEnabled (and setter) field to UiSettings/QuickSettingsProps
  fixtures, plus the persisted toEqual blocks.

Resolves check-prod-types, check-test-types, checks-node-core(-runtime-media-ui)
failures introduced by the new required UiSettings field.
@SymbolStar

Copy link
Copy Markdown
Contributor Author

CI triage on previous run (8c22fd7):

Real bugs (fixed in 7040ab5):

  • check-prod-types: app-lifecycle.ts:70LifecycleHost not assignable to ControlUiBootstrapState because our added settings field omitted token. Widened type to { documentTitleSyncEnabled?: boolean; token?: string | null }.
  • check-test-types / checks-node-core-runtime-media-ui / checks-node-core: the new required UiSettings.documentTitleSyncEnabled was missing from existing test fixtures. Added it (and the matching setDocumentTitleSyncEnabled setter) in storage.node.test.ts, views/overview.render.test.ts, views/config-quick.test.ts.

Noise / not actionable:

  • Real behavior proof: bot meta-check, no code-level signal.

Diff: 4 files, +20/-1 (test fixtures + one type widening). No dist/ touched, no full-repo prettier.

@SymbolStar

Copy link
Copy Markdown
Contributor Author

Real browser proof — five Control UI tabs disambiguated by agent name in the macOS Cmd-switcher (Milk / Scott / Milly / Judy / Miki), each rendered as · OpenClawper this PR'ssyncDocumentTitleFromHost`:

Control UI tab switcher with per-agent titles

Captured against an out-of-tree mirror of this exact patch (zero-build local override with the same name/agentId fallback chain and the same documentTitleSyncEnabled semantics — toggle Off restores the static OpenClaw Control title verbatim). The mirror is published as the agent-tab-title ClawHub skill for users who want the behavior before this lands.

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented May 14, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

build-artifacts (root cause of cascading build-smoke/check/check-additional/checks-node-core
skips): control-ui i18n raw-copy baseline drift. The new Appearance toggle in
config-quick.ts introduced 5 raw user-facing strings (3 html-text, 2 html-attribute
title) that were not registered in ui/src/i18n/.i18n/raw-copy-baseline.json. Added
the 5 entries in sorted (path,kind,name,text) order so `pnpm ui:i18n:check` passes.

check-test-types: ui/src/ui/app-settings.test.ts SettingsHost fixture was missing
the new `documentTitleSyncEnabled: boolean` field on UiSettings, causing TS2345 at
8 call sites. Added the field to the SettingsHost type alias and to the createHost
factory literal (defaulting to true to match initial UI state).
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 14, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 14, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 14, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 14, 2026
SymbolStar added 2 commits May 14, 2026 16:08
…itle

# Conflicts:
#	CHANGELOG.md
#	ui/src/ui/app-render.ts
#	ui/src/ui/app-settings.test.ts
#	ui/src/ui/app-view-state.ts
#	ui/src/ui/app.ts
#	ui/src/ui/storage.node.test.ts
#	ui/src/ui/storage.ts
#	ui/src/ui/views/config-quick.test.ts
#	ui/src/ui/views/config-quick.ts
After merging origin/main (which itself widened UiSettings with textScale and
touched many test fixtures), two additional test fixtures still hit
TS2345/TS2741 because they construct SettingsHost-shaped literals locally:

- ui/src/ui/app-render.helpers.node.test.ts createSettings(): missing the new
  documentTitleSyncEnabled field on UiSettings.
- src/ui-app-settings.agents-files-refresh.test.ts createHost(): same missing
  field on the inline settings literal cast to refreshActiveTab's host param.

Default to true (matches the initial Control UI behavior the feature ships
with). Pure additive fixture fix, no behavior change.
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 14, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 14, 2026
@SymbolStar

Copy link
Copy Markdown
Contributor Author

Rebased onto current main via merge (rebase produced too many cross-commit conflicts on overlapping UI files; merge gave a single clean conflict pass).

Conflict resolution summary:

  • CHANGELOG.md: kept both — added our ### Features block above the upstream ### Changes block under the same Unreleased heading.
  • ui/src/i18n/.i18n/raw-copy-baseline.json: auto-merged cleanly; our 5 Browser-tab strings landed alongside the upstream additions (no further edits).
  • ui/src/ui/storage.ts, ui/src/ui/storage.node.test.ts, ui/src/ui/app-render.ts, ui/src/ui/app-view-state.ts, ui/src/ui/app.ts, ui/src/ui/app-settings.test.ts, ui/src/ui/views/config-quick.ts, ui/src/ui/views/config-quick.test.ts: kept both sides — main added a textScale UiSettings field and a Text-size segmented control next to ours; our documentTitleSyncEnabled field and Browser-tab segmented control sit alongside it. Re-stitched a </div></div><div class="qs-row"> separator between the Browser-tab and Text-size rows in config-quick.ts, and reformed the setDocumentTitleSyncEnabled / setTextScale method boundaries in app.ts.
  • One follow-up commit added documentTitleSyncEnabled: true to two more SettingsHost-shaped fixtures the merge surfaced (ui/src/ui/app-render.helpers.node.test.ts, src/ui-app-settings.agents-files-refresh.test.ts).

ui/index.html static <title> left as upstream's OpenClaw Control (unchanged). No CHANGELOG body rewrites, no full-file Prettier passes.

Final head: a18526b3edec09bf08753746b4cf5c16f9ae7834

CI: all required lanes green (build-artifacts, build-smoke, check, check-additional, check-test-types, checks-node-core, etc.). Only Real behavior proof lane is red, which is the meta lane gated on the triage: needs-real-behavior-proof label, not a CI code failure.

@SymbolStar

Copy link
Copy Markdown
Contributor Author

@steipete friendly nudge when you have a moment 🙏

Quick status:

  • ClawSweeper re-review came back needs-human ("Real behavior proof: Sufficient") — screenshot evidence was accepted.
  • All CI lanes green; just rebased on latest main (head: a18526b3ed).
  • This coexists with your feat(gateway): add configurable Control UI title #51067 (static title config) — kept the TODO marker so the static path can layer on top without conflict.

Mind taking a look when you get a chance?

cc @clawsweeper — verdict has flipped to needs-human, could you drop the leftover triage: needs-real-behavior-proof label?

…itle

# Conflicts:
#	ui/src/i18n/.i18n/raw-copy-baseline.json
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 20, 2026
@SymbolStar

Copy link
Copy Markdown
Contributor Author

Merged latest origin/main into branch (merge again because file fan-out is huge). Resolved 1 trivial conflict in ui/src/i18n/.i18n/raw-copy-baseline.json — kept the doc-title baseline entries ("Browser enabled" / "Browser tab"). Head: 6c03a051d7. mergeable is now MERGEABLE; CI is re-running on the new head (previous "Real behavior proof" FAILUREs are from old runs before this push).

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. 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. P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. labels May 20, 2026
@clawsweeper

clawsweeper Bot commented May 20, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper PR egg

✨ Hatched: 🥚 common Velvet Review Wisp

Hatch command

Comment @clawsweeper hatch when this PR is hatchable.

Hatchability rules:

  • Merged PRs are hatchable.
  • Open PRs are hatchable when they are status: 👀 ready for maintainer look, status: 🚀 automerge armed, or labeled clawsweeper:automerge.
  • Closed unmerged PRs are hatchable only when one of those hatchable labels is still present in the durable record.

Rarity: 🥚 common.
Trait: watches the merge queue.
Image traits: location review cove; accessory proof snapshot camera; palette pearl, teal, and neon green; mood watchful; pose stepping out of a freshly hatched shell; shell brushed metal shell; lighting bright celebratory glints; background tiny artifact crates.
Share on X: post this hatch
Copy: My PR egg hatched a 🥚 common Velvet Review Wisp in ClawSweeper.

What is this egg doing here?
  • Eggs appear after the PR passes real-behavior proof. It is here for vibes, not verdicts: it does not change labels, ratings, merge decisions, or automation.
  • The shell reacts to review momentum: open follow-up work warms it up, re-review makes it wobble, and a clean final review lets it hatch.
  • Hatchability usually comes from sufficient real-behavior proof, no blocking P0/P1/P2 findings, no security attention needed, and clean correctness. A merged PR is already final, so merge makes the egg hatchable independently.
  • The hatch is seeded from this repository and PR number, so the same PR keeps the same creature; the reviewed head SHA can only change safe visual details.
  • Rarity is just collectible sparkle: 🥚 common, 🌱 uncommon, 💎 rare, ✨ glimmer, and 🌈 legendary.

@giodl73-repo giodl73-repo removed the triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. label May 21, 2026
@openclaw-barnacle openclaw-barnacle Bot added the triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. label May 21, 2026
@clawsweeper clawsweeper Bot added rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. 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. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. and removed proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. 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. rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. labels May 21, 2026
@SymbolStar

Copy link
Copy Markdown
Contributor Author

Closing per author cleanup — this PR has been waiting on review for 14+ days. Happy to reopen if a maintainer wants to pick it up; otherwise the fix can be re-proposed if the underlying issue resurfaces.

@SymbolStar SymbolStar closed this Jun 14, 2026
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 merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: M status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Control UI — auto-set document.title to current agent name for multi-agent workflows

2 participants