Commit Graph

530 Commits

Author SHA1 Message Date
Vincent Koc 22e84c6ced fix(ui): show local provider identity after setup 2026-07-31 12:46:47 +08:00
Vincent Koc b3ce00b480 refactor(schema): share config validation runtime (#116622) 2026-07-31 12:40:48 +08:00
Vincent Koc 7bc216394a fix(ui): preserve mixed schema union values (#116602) 2026-07-31 11:15:21 +08:00
Vincent Koc 94b85cba5f feat(setup): improve local model onboarding 2026-07-31 08:53:13 +08:00
Vincent Koc e96b9d2cd0 improve(ui): verify llama.cpp model setup 2026-07-30 23:41:58 +08:00
Vincent Koc 183db47e97 fix(ui): preserve schema-backed settings edits (#116282)
* fix(ui): harden schema-backed settings controls

Co-authored-by: wangmiao0668000666 <wang.miao86@xydigit.com>

* test(ui): match config secret label in Chromium

* chore(ui): remove release-owned changelog entry

* test(agents): mock incremental registry persistence

---------

Co-authored-by: wangmiao0668000666 <wang.miao86@xydigit.com>
2026-07-30 23:08:53 +08:00
Vincent Koc ca1328dddb Merge pull request #116285 from openclaw/fix/control-ui-session-dedupe
* origin/fix/control-ui-session-dedupe:
  chore: leave release notes to release flow
  fix(ui): deduplicate gateway-native session hosts
2026-07-30 22:53:53 +08:00
Peter Steinberger 7fa95e2656 feat(ui): add composable skill references (#116330)
* feat(ui): add composable skill references

* fix(ui): align skill reference CI contracts

* fix(ui): scope skill references to WebChat
2026-07-30 04:07:02 -07:00
Vincent Koc bb68389a66 fix(ui): deduplicate gateway-native session hosts 2026-07-30 15:22:37 +08:00
Vincent Koc 12e5eb6a23 fix(ui): clarify model setup flows (#116086) 2026-07-30 09:47:57 +08:00
Vincent Koc 1065c1d697 fix(ui): identify source builds in settings footer (#116134)
* fix(ui): identify source builds in settings footer

* fix(release): classify all official Control UI builds
2026-07-30 08:58:34 +08:00
Vincent Koc dcae280db6 Merge remote-tracking branch 'origin/audit/macos-accessibility-followup' into audit/macos-accessibility-land-116026
* origin/audit/macos-accessibility-followup:
  fix(ui): dismiss picker after focus leaves widget
  fix(ui): keep picker trigger inside focus boundary
  test(ui): split terminal accessibility coverage
  test(ui): cover terminal picker pointer paths
  chore: leave accessibility notes to release prep
  fix(ui): type terminal shadow focus checks
  fix(ui): make terminal session picker keyboard accessible
2026-07-30 04:16:32 +08:00
Vincent Koc 702892e1c3 fix(ui): dismiss picker after focus leaves widget 2026-07-30 03:58:24 +08:00
Vincent Koc 2ad7427e16 fix(ui): keep picker trigger inside focus boundary 2026-07-30 03:27:24 +08:00
Vincent Koc 14e65ab6b3 test(ui): split terminal accessibility coverage 2026-07-30 02:54:10 +08:00
Vincent Koc 8d6dae1e81 test(ui): cover terminal picker pointer paths 2026-07-30 02:46:37 +08:00
Vincent Koc e677b8cbc8 fix(ui): type terminal shadow focus checks 2026-07-30 02:19:21 +08:00
Vincent Koc 1294df882a fix(ui): make terminal session picker keyboard accessible 2026-07-30 02:06:44 +08:00
Peter Steinberger ff72f287c3 fix(gateway): declare viewer presence explicitly instead of deriving it from subscriptions (#116001)
* fix(gateway): declare viewer presence explicitly instead of deriving it from subscriptions

* refactor(ui): isolate viewer presence lifecycle ownership

* chore(protocol): register viewer presence schema owner

* fix(ui): keep viewer presence cleared after detach

* chore: drop changelog edits from this PR

CHANGELOG.md is release-owned; release generation derives entries from merged
PRs. Release-note context stays in the PR body.
2026-07-29 13:56:54 -04:00
Vincent Koc 14ffd4393e feat(ui): add provider icons to coding catalogs (#115956) 2026-07-30 01:33:15 +08:00
Vincent Koc f083518506 Merge pull request #115942 from openclaw/fix/macos-keyboard-accessibility
fix(accessibility): restore web view navigation and layout-aware shortcuts

* commit 'fd28cd3becfded364107f236f526b08422f8ebab':
  fix(ui): support shortcuts on non-Latin keyboards
  fix(macos): enable keyboard navigation in web views
2026-07-29 23:29:56 +08:00
Peter Steinberger df3674f577 refactor(ui): unify tab navigation on the shared hub tabs (#115934)
* refactor(ui): unify tab navigation on shared hub tabs

* refactor(ui): move cron navigation to hub tabs

* test(ui): update agent overview tab locator
2026-07-29 11:24:44 -04:00
Vincent Koc fd28cd3bec fix(ui): support shortcuts on non-Latin keyboards 2026-07-29 23:09:22 +08:00
Peter Steinberger 68a3d28906 fix: keep content after HTML-backed disclosures visible (#115877)
* fix(chat): close disclosures in coalesced HTML

Keep model-authored details closers visible to the shared disclosure contract when CommonMark absorbs them into type-6 HTML blocks across the Control UI and native apps.

* refactor(apps): isolate disclosure unfolding

Keep the native disclosure segmenter below its lint complexity and type-size limits, and refresh the source-owned native i18n inventory after the move.

* fix(apps): align disclosure helper visibility

Keep the extracted same-file helper compatible with Swift access control while leaving its implementation types hidden outside the source file.

* fix(apps): align source replacement visibility

Keep the source replacement helper at the same file-private boundary as the extracted disclosure unfolding types.
2026-07-29 10:24:46 -04:00
Peter Steinberger 88c41f44de feat(ui): add MCP servers from composer connectors (#115921) 2026-07-29 10:23:52 -04:00
Vincent Koc 099b806a9b fix(ui): reduce embedded terminal font size 2026-07-29 22:22:17 +08:00
Peter Steinberger fde4658bf6 fix(ui): recover sessions and dashboards after prolonged outages (#115654)
* fix(ui): recover long-running sessions and dashboards

* fix(ui): expose browser-safe gateway timers

* refactor(ui): keep browser timer surface minimal

* refactor(gateway): extract pending request state

* fix(ci): refresh browser runtime and format baseline

* fix(ci): exclude generated plugin outputs from targeted lint

* fix(ui): bound long-running connection and pane lifecycles

* refactor(ui): split long-running lifecycle regression coverage

* fix(ui): bound long-running media and lint ownership

* fix(security): preserve explicit workspace disable denylist

* fix(ci): preserve plugin manifest fallback lint
2026-07-29 10:09:51 -04:00
Peter Steinberger 4624f681ad refactor(ui): give Memory the shared hub header with hoisted agent scope (#115884) 2026-07-29 08:48:05 -04:00
Peter Steinberger a49b553f08 feat(ui): add docs links to settings pages (#115874) 2026-07-29 08:11:41 -04:00
Peter Steinberger af70829cdf refactor(ui): move Agent Defaults entry from the sidebar into the Agents page (#115836)
* refactor(ui): move Agent Defaults entry from the sidebar into the Agents page

* fix(ui): keep Agent Defaults searchable
2026-07-29 06:30:40 -04:00
Peter Steinberger 662abec754 feat(gateway): push session PR indicators to subscribed clients (#115643)
* feat(gateway): push session PR indicators to subscribed clients

* test(gateway): fix PR indicator drift

* chore(protocol): allowlist PR-indicator event for native apps (Control UI surface)

* test: align PR indicator lifecycle coverage

* fix(ui): scope session PR store listeners to active watchers
2026-07-29 06:30:01 -04:00
Peter Steinberger f318df7a55 refactor(ui): dissolve the General settings page into Appearance (#115798)
* refactor(ui): dissolve the General settings page into Appearance

* test(ui): drop dissolved config route expectation

* test(ui): cover legacy General model redirect

* style(ui): format legacy redirect test
2026-07-29 05:49:20 -04:00
Vincent Koc cc6b766079 fix(ui): guide users through missing or broken AI setup (#115716)
* fix(ui): block chat until inference is configured

* fix(ui): gate new sessions on configured inference

* fix(ui): gate custodian before inference starts

* fix(ui): clarify custodian setup navigation

* fix(ui): explain missing AI provider setup

* fix(ui): distinguish unavailable configured AI

* fix(ui): align inference setup fixtures

* test(ui): default mock gateway to working inference

* test(ui): align startup send gate coverage

* test(ui): inherit inference in gateway fixtures

* test(ui): normalize deferred gateway agents

* test(ui): update model setup sidebar fixture
2026-07-29 16:48:48 +08:00
Vincent Koc 755eea5e97 fix(ui): localize remaining control surfaces (#115730)
* feat(ui): add localization keys for control surfaces

* fix(ui): localize relative time and durations

* fix(ui): localize update and recovery notices

* fix(ui): localize chat controls and command results

* fix(ui): localize memory management views

* fix(ui): localize shared tool surfaces

* fix(ui): localize settings and action notices

* chore(ui): tighten localization raw-copy baseline

* fix(ui): preserve localized status copy

* fix(ui): preserve compact sidebar time label

* fix(ui): preserve near-future sidebar direction

* test(ui): align screenshot localization assertion
2026-07-29 16:34:35 +08:00
Peter Steinberger a2c88e2a18 feat(ui): path-based agent and panel URLs on Settings > Agents (#115673)
* feat(ui): add agent panel path URLs

* test(ui): clarify unknown agent route fallback

* fix(ui): reject agent URL dot segments

* test(ui): clarify agent panel switch proof

* chore(ui): localize panel id table and refresh docs map

* test(ui): keep agent panel cases test-local

* chore(ui): keep agent route path type local
2026-07-29 04:12:46 -04:00
Peter Steinberger d885f9175d feat(ui): move settings save feedback into the sidebar footer (#115679)
* feat(ui): move settings save feedback to sidebar

* test(ui): support stateful config writes in mock gateway

* test(ui): add save indicator to memory sidebar test
2026-07-29 04:10:56 -04:00
Peter Steinberger 7018a36d04 feat(ui): memory settings polish — inline add-on toggles, phase explanations, embedding test (#115557)
* feat(ui): toggle memory add-ons inline on the Settings tab

* feat(ui): improve memory overview and settings controls

* fix(ui): restore rejected settings toggles

* fix(ui): surface memory add-on restart requirements

* fix(ui): reconcile restart notices by gateway process

* fix(ui): preserve pending restart notices

* fix(ui): order memory add-on catalog reloads

* fix(ui): reload add-ons through current gateway

* fix(ui): respect plugin mutation availability

* test(ui): type the plugins.list mock fallback for mutationAllowed
2026-07-29 03:40:52 -04:00
Peter Steinberger 33ca26807a feat(ui): add plugin Discover path URL (#115587) 2026-07-29 01:28:13 -04:00
Peter Steinberger 04eb57d299 feat(ui): add contextual Settings documentation links (#115560)
* feat(config): add contextual settings docs URLs

* feat(ui): add contextual settings guide links

* docs: add settings guide pages

* docs: refresh generated docs map

* docs: polish settings guide pages prose
2026-07-29 01:00:15 -04:00
Peter Steinberger 8ff566a24c fix(ui): clearly label beta releases in the update banner (#115518)
* fix(ui): identify beta channel in update banner

* fix(ui): preserve update-banner translation baseline
2026-07-29 00:19:31 -04:00
Peter Steinberger ac7154eeb4 fix(ui): give Memory settings path-based tab URLs (#115515)
* fix(ui): add path-based memory tab URLs

* chore: remove release-owned changelog entry
2026-07-29 00:12:09 -04:00
Patrick Erichsen 89bdb2d1c0 fix(ui): explain empty agent session groups (#115407)
* fix(ui): explain empty agent session groups

* fix(ui): align empty session group hint
2026-07-28 18:06:04 -05:00
Peter Steinberger 7a1aa4eb4f feat(ui): Talk settings page with catalog-driven realtime pickers (#115409)
* feat(talk): emit realtime models and voices in talk.catalog and mirror create-time readiness

* feat(ui): add curated Talk settings page with catalog-driven pickers

* docs(talk): correct stale claims and add one-page GPT-Live setup path

* fix(ui): refresh Talk catalog on config-hash advance and neutralize GPT-Live badge

* fix(ui): provider-aware Talk selection, atomic provider switch, focus refresh

* fix(ui): resolve Talk provider fallbacks via catalog and make Default a true reset

* fix(ui): provider-compatible transports and race-free Talk catalog loads

* fix(ui): never resolve an unknown explicit Talk provider to the active one

* docs(talk): note Android relay readiness caveat for browser-only models

* fix(ui): keep the relay transport when switching Talk provider to Auto

* fix(ui): align section-ownership test and drop unused export after rebase
2026-07-28 17:38:15 -04:00
Peter Steinberger d239a59d82 fix(ui): make Control UI ownership and permissions reliable (#115364)
* fix(ui): unify connection-owned gateway event dispatch

* fix(qa): keep hosted UI smoke evidence truthful

* fix(ui): make mobile navigation drawer an accessible modal

* refactor(ui): centralize settings search destinations

* fix(ui): own chat media resource lifecycles

* fix(ui): unify sidebar session scope ownership

* refactor(ui): remove obsolete navigation backdrop styles

* refactor(ui): isolate dashboard provider lease capabilities

* fix(ui): centralize gateway operator permissions

* style(ui): format gateway event regressions

* fix(ui): render live dashboard permissions immediately

* fix(ui): enforce approval grant authority

* fix(gateway): fence retired sockets after event gaps

* fix(ui): isolate sidebar gateway fixtures across shared workers

* test(ui): isolate singleton-sensitive browser suites

* fix(ui): retire stale catalog pagination on gateway reconnect

* fix(ui): restore drawer focus after native dialog dismissal

* fix(ui): seed drawer threads and preserve modal focus ownership

* fix(ui): isolate nested native drawer overlay lifecycle

* test(ui): prove isolated dashboard lease authorization

* fix(ui): bound settled managed image resources

* fix(ui): type native modal focus and shared test helper

* fix(ui): correct approval mock types and trim dead export

* fix(ui): keep settings section metadata private

* fix(qa): keep hosted coverage regression within lint limit

* refactor(ui): keep catalog presence in its session data owner

* fix(browser): regenerate bundled copilot runtime

* test(ui): split board lease authorization regressions

* fix(ui): snapshot gateway listener fanout without redundant spread

* fix(ui): bind chat media subscriptions to image lifetime

* fix(ui): extract overlay access lifecycle

* fix(ui): restore guarded media after Lit reconnection

* test(ui): localize board lease fixture title

* fix(ui): reuse system approval fixture labels

* test(ui): narrow managed media lifecycle source

* fix(ui): prevent retired board gateway clients from rolling back leases

* fix(ui): expose pairing to pairing-scoped operators

* fix(ui): preserve legacy device pairing access

* fix(ui): preserve responsive sidebar ownership

* fix(ui): preserve responsive navigation and prove media ownership

* fix(ui): retire revoked catalog and refresh pairing grants

* test(ui): align typed catalog fixtures with main
2026-07-28 16:42:05 -04:00
Peter Steinberger 5ae6e5fc58 fix(ui): order model picker by provider strength (#115380)
* fix(ui): improve model picker ordering

* fix(ui): preserve model picker provider width

* chore: leave model picker note to release flow

* fix(models): preserve unranked catalog order
2026-07-28 15:59:57 -04:00
Peter Steinberger 8574853375 feat(ui): make Memory settings a destination page with live overview and dreams (#115383)
* feat(ui): make Memory settings a destination page

* chore: drop changelog entry (release generation owns CHANGELOG.md)

* fix(ui): keep memory tab normalization private
2026-07-28 15:56:52 -04:00
Peter Steinberger 642befa179 feat(ui): swap three plain Lobsterdex palettes for balloon, ascii, and portal (#115308) 2026-07-28 14:28:02 -04:00
Peter Steinberger c41ca078a6 refactor(ui): adopt @lit/task across remaining page surfaces (#115274)
* refactor(ui): adopt @lit/task across remaining page surfaces

* refactor(ui): keep approval history pagination explicit

* fix(ui): preserve task refresh ordering
2026-07-28 12:44:34 -04:00
Peter Steinberger b2859cec4b feat(ui): finish the Lobsterdex at 42 with wild variants, squish fix, and blink variance (#115264) 2026-07-28 12:03:16 -04:00
Peter Steinberger 58a3679c49 fix(ui): keep reconnects, browser tabs, and localized search consistent (#115221)
* fix(ui): fence stale gateway and browser lifecycles

* test(ui): restore history after agent tool navigation
2026-07-28 11:24:02 -04:00