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