Commit Graph

4831 Commits

Author SHA1 Message Date
Peter Steinberger 4d9588dfed fix: restore Fish completion after global CLI options (#115222)
* fix(cli): restore Fish completions after root options

* test(ui): restore shared history after agent tool clicks

* test(ui): wait for terminal availability before toggling

* test(ui): wait for Settings takeover before asserting sidebar
2026-07-28 12:19:20 -04:00
Peter Steinberger 13f20055f0 refactor(ui): split Profile (identity) from Usage (statistics) (#115245)
* refactor(ui): profile owns identity; usage owns statistics

* fix(ui): rerender profile on connection transitions

* chore(ui): drop usage exports orphaned by the profile split

* chore(ui): localize usage TTL constant in gateway source replacement test
2026-07-28 12:09:50 -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
Vincent Koc 498a7fec28 test(ui): catch untranslated accessibility labels 2026-07-28 23:47:14 +08:00
Vincent Koc c7c9cf6a56 fix(ui): localize chat action labels 2026-07-28 23:47:14 +08:00
Vincent Koc 984990e28b fix(ui): localize chat status indicators 2026-07-28 23:47:14 +08:00
Vincent Koc 4e8c2c5248 fix(ui): sync document locale metadata 2026-07-28 23:46:25 +08:00
Vincent Koc cbe19ed3be fix(scripts): materialize PR worktrees before gates (#115120)
* fix(scripts): materialize PR worktrees before gates

* test(agents): stabilize failed local service fixture

* test(ui): isolate config route location
2026-07-28 15:38:17 +00:00
scotthuang 35b7d3f933 improve(ui): reduce duplicate chat startup work (#114743)
* improve(ui): reduce duplicate chat startup work

* test(ui): fix chat startup test types

* fix(ui): preserve per-pane startup retry windows

* fix(ui): reject stale chat startup results after reconnect

* test(ui): stabilize persisted split startup proof

* test(ui): wait explicitly for catalog startup

* test(ui): isolate tool anchor navigation state

---------

Co-authored-by: scotthuang <scotthuang@tencent.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-28 23:30:13 +08: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
scotthuang 35f035806b fix(ui): avoid duplicate session refreshes during startup (#114764)
* fix(ui): avoid duplicate startup session refreshes

* fix(ui): remove redundant hydration return

* test(ui): prove session hydration reconnect ownership

* test(ui): align reconnect proof with single hydration

* test(ui): wait explicitly for catalog startup

* test(ui): isolate tool anchor navigation state

---------

Co-authored-by: scotthuang <scotthuang@tencent.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-28 23:15:07 +08:00
Peter Steinberger b3fc995e73 fix(ui): stop modal autofocus steal after the open animation (#115168)
* fix(ui): stop modal autofocus steal after the open animation

* test(ui-e2e): give expect.poll a CI-realistic deadline
2026-07-28 10:39:34 -04:00
Peter Steinberger dca5b66ddd test(ui): share pauseVirtualClock e2e helper and de-flake marquee hover-delay asserts (#115203) 2026-07-28 09:59:02 -04:00
Peter Steinberger fda8391fd9 fix: keep shared web and TUI chats synchronized under load (#115191)
* fix: keep shared web and TUI chats synchronized under load

* test: satisfy strict shared-chat ordering types
2026-07-28 09:39:22 -04:00
Peter Steinberger 455e728533 refactor(ui): consolidate model configuration onto the Models page (#115108)
* refactor(ui): consolidate model defaults onto the Models page

* docs(ui): note busy-gate equivalence on the Models page controls

* fix(ui): render model behavior controls while providers load

* fix(ui): redirect the legacy General model scroll target to Models

* fix(ui): surface config autosave and apply workflow on the Models page
2026-07-28 09:31:09 -04:00
Peter Steinberger 8944331f28 fix(ui): stop Workboard draft fields reverting during edits (#115141)
* fix(ui): preserve Workboard draft edits

* chore: leave release notes to release automation

* test(ui): wait for settings takeover controls
2026-07-28 09:00:24 -04:00
Peter Steinberger 2cdd1246ed feat(ui): grow the Lobsterdex to 37 palettes with a golden mythic, deep links, and shiny dates (#115179)
* feat(ui): grow the Lobsterdex to 37 palettes with a golden mythic, deep links, and shiny dates

* fix(ui): keep wave-2 lobster overlays module-local
2026-07-28 08:59:51 -04:00
Peter Steinberger 4eab19a25d fix(ui): stop route aliases from hijacking base-path inference on settings deep links (#115186) 2026-07-28 08:51:26 -04:00
Peter Steinberger f8283ef15b test(ui): pause fake clock before send so working-timer e2e assertions are deterministic (#115187) 2026-07-28 08:49:57 -04:00
Peter Steinberger 0cb56ace62 fix(ui): harden browser, session, permissions, and media lifecycles (#115110)
* fix(ui): harden browser, session, and gateway lifecycles

* fix(ui): satisfy browser lifecycle and control UI CI gates

* fix(ui): satisfy type-aware browser and cron lint

* fix(ci): isolate model and UI test workloads

* fix(ui): reject superseded browser and session page races

* fix(ui): settle superseded background-tab refreshes

* fix(ui): reconcile committed navigation and terminal pages

* fix(ui): preserve canonical cron permission contracts
2026-07-28 05:48:35 -07:00
Peter Steinberger 053384fa01 refactor(ui): adopt @lit/task for async data lifecycle (#115131)
* refactor(ui): adopt @lit/task for async data lifecycle

- migrate chat diff/discussion, new-session discovery, and MCP app setup reads
- migrate usage, plugins, transcript/checkpoint, worktree, memory-import, and model-setup reads
- delete read-lane request counters, abort-controller epochs, and current-request predicates while retaining mutation epochs and keyed caches

* chore(ui): drop dead plugin search helper (knip)

* chore(deps): allowlist @lit/task as root UI-workspace dependency in knip

* fix(ui): preserve usage refresh lifecycle

* test(ui): source workboard fixture copy from en locale (raw-copy gate)

* test(ui): read workboard fixture copy via t() (typed locale access)

* style: format test-support imports
2026-07-28 08:37:47 -04:00
Peter Steinberger 2c5aff01f6 fix(ui): isolate board mock mode between test files (#115173) 2026-07-28 08:24:57 -04:00
Peter Steinberger 699315e7d7 feat(ui): redesign Ask OpenClaw — mascot, shared surface, dockable panel (#115123)
* refactor(ui): share custodian chat surface

* feat(ui): add dockable custodian panel

* refactor(ui): drop write-only panel-close latch from custodian store

* feat(ui): demo custodian in mock gateway

* chore(ui): update raw-copy baseline for custodian strings

* fix(ui): clean custodian surface/page/mock lint debris
2026-07-28 08:05:38 -04:00
Peter Steinberger 2a94aa57eb fix(ui): hide Cron mutations from read-only operators (#115091)
* fix(ui): hide cron mutations from read-only operators

* chore: leave release notes to release automation
2026-07-28 07:03:19 -04:00
Peter Steinberger 7f37900bca perf(ui): flip sessions instantly and drop redundant switch RPCs (#115129)
* perf(ui): flip sessions instantly and drop redundant switch RPCs

* chore: revert changelog edit (release generation owns CHANGELOG.md)

* test(ui): adapt ported switch e2e tests to split-suite helpers

* chore(ui): un-export internal CachedShortSession type (knip)
2026-07-28 06:25:25 -04:00
Peter Steinberger 18556423da fix(cron): allow no-timeout scheduled jobs in Control UI (#115090) 2026-07-28 05:46:17 -04:00
Peter Steinberger 2025c3d1b8 feat(system-agent): give Ask OpenClaw ambient page context (#114943)
* feat(ui): add custodian page context

* fix(system-agent): keep planner input free of the pending-proposal marker

* fix(system-agent): preserve context-free call shape

* refactor(system-agent): isolate page context boundaries

* fix(gateway): canonicalize UI context

* fix(gateway): enforce ASCII page context
2026-07-28 05:30:44 -04:00
Vincent Koc 4d105ebdd0 refactor(ui): share board provider helpers (#115082) 2026-07-28 16:49:12 +08:00
Vincent Koc 9d5bec8487 fix(deps): remediate tar and Hono advisories (#115029) 2026-07-28 16:48:04 +08:00
Peter Steinberger 4b05d83035 fix: generated images do not appear in native chat (#115042)
* fix(chat): render managed images in native clients

Co-authored-by: Francesco Giannicola <francescogiannicola1@gmail.com>

* chore: keep release changelog owned

* refactor(macos): split managed image loading

* test(apple): prove managed image header policy

* test(native): stabilize managed image proof

* test(apple): satisfy strict concurrency checks

---------

Co-authored-by: Francesco Giannicola <francescogiannicola1@gmail.com>
2026-07-28 04:39:53 -04:00
Peter Steinberger fdc1ca073c fix: keep shared web and TUI chats in sync (#115066) 2026-07-28 04:38:12 -04:00
Vincent Koc 958dc13f03 chore(ui): align locales with final catalog 2026-07-28 10:28:33 +02:00
Vincent Koc e0b8ea3464 Merge pull request #115065 from fix/control-ui-locale-refresh-20260728
* commit '2d10e337908d3f3140f59c77fcf8682410534e0c':
  chore(ui): align locales with current catalog
  fix(i18n): polish generated locale labels
  fix(i18n): restore control UI locale terminology
  chore(ui): refresh control ui locales
2026-07-28 10:28:32 +02:00
Peter Steinberger 3f209cf1b7 perf(ui): keep chat render state alive across session switches (#115059)
* perf(ui): keep chat render state alive across session switches

Retain bounded per-session chat items and virtualizer measurements, avoid redundant tool-card walks, and reduce markdown cache churn during rapid switching.

User-visible behavior: switching back to a session now restores its prior reading position while end-anchored sessions continue following the latest message.

* chore(ui): drop dead resetChatThreadPresentationState barrel re-export
2026-07-28 04:27:07 -04:00
Peter Steinberger b6f8641c28 refactor(ui): consolidate gateway host/status onto the Gateway settings page (#114971)
* refactor(ui): move gateway host panel and connection status to the Gateway page

* test(ui): update e2e expectations for the Gateway settings page move
2026-07-28 04:24:29 -04:00
Vincent Koc 2d10e33790 chore(ui): align locales with current catalog 2026-07-28 10:00:53 +02:00
Vincent Koc 719950edd2 fix(i18n): polish generated locale labels 2026-07-28 10:00:53 +02:00
Vincent Koc 1c9fa8f514 fix(i18n): restore control UI locale terminology 2026-07-28 10:00:52 +02:00
github-actions[bot] 6fd32035de chore(ui): refresh control ui locales 2026-07-28 10:00:52 +02:00
Peter Steinberger 5a8939d88e refactor(ui): restructure Communications settings (Messages/Talk/Voice) (#114948)
* refactor(ui): communications settings own messages/talk/voice; channels config lives on Channels page

* test(ui): update route subtitle expectations for communications/infrastructure
2026-07-28 03:48:42 -04:00
Vincent Koc c738887f05 fix(ui): clarify chat startup status labels (#115044) 2026-07-28 15:47:50 +08:00
Peter Steinberger 0771486cc1 fix(ui): mirror optimistic session-settings patches into the sessions capability snapshot (#115009)
Chat kept optimistic thinking-level and fast-mode row patches only in the
host copy of the session list. Any mid-flight capability publish (for
example the loading flip at the start of the post-patch list refresh)
replaced that copy wholesale and reverted the patched row until the
refreshed canonical list landed. The reasoning slider visibly snapped
back to the inherited default during that window and keyboard commits
landing inside it were swallowed, which is the race behind the flaky
chat-composer-redesign thinking-slider e2e assertion on CI.

patchSessionRow now mirrors the optimistic fields into the published
capability snapshot via a new SessionCapability.patchRowLocal, matching
how model overrides already live capability-side, so intermediate
publishes carry the patch and the revert window is gone.
2026-07-28 03:27:51 -04:00
Peter Steinberger 81478b564e fix(ui): prevent duplicate Workboard widget loads and card moves (#114972)
* fix(ui): coalesce concurrent Workboard widget updates

* fix(ui): remove stale Workboard refresh guard
2026-07-28 03:18:26 -04:00
Peter Steinberger c903ca8158 feat(agents): default code mode to per-model auto activation (#114906) 2026-07-28 03:00:22 -04:00
Peter Steinberger 54309a832a feat(ui): expand the Lobsterdex with 14 palettes, lore tooltips, and a collection page (#114959)
* feat(ui): expand the Lobsterdex with 14 palettes, lore tooltips, and a collection page

* fix(ui): keep Lobsterdex view types internal
2026-07-28 02:22:00 -04:00
Peter Steinberger a5d70238d7 fix(ui): keep settled autosave status quiet (#114957) 2026-07-28 01:59:24 -04:00
Shakker deeebed136 fix: allow clearing unavailable worktree choice (#114947) 2026-07-28 06:47:30 +01:00
Shakker 2c71b3bebf test: protect cloud worktree rediscovery state 2026-07-28 06:47:30 +01:00
Peter Steinberger add9205d1a fix(ui): explain every channel setting and link its docs (#114844)
* feat(config): give shared channel settings help text

* fix(ui): space the settings tiers and stop repeating help on list items

* feat(ui): link each channel detail to its docs page

* test(ui): mirror production channel hints in the mock dev server

* docs: note the shared channel help inheritance for plugin authors

* fix(config): let a channel suppress shared help with an empty string

* chore(config): regenerate bundled channel metadata for the new WhatsApp hints

* fix(ci): check bundled channel metadata locally

* chore(release): keep changelog release-owned

* chore(release): keep changelog release-owned

* fix(ui): keep shared channel help contract-neutral
2026-07-28 05:25:58 +00:00
Peter Steinberger a4d60af42b fix: sharpen working-claw silhouette into a toothed pincer (#114939) 2026-07-28 01:18:36 -04:00