Commit Graph

2477 Commits

Author SHA1 Message Date
github-actions[bot] 21e6fc948b chore(ui): refresh fa control ui locale 2026-07-01 01:09:00 +00:00
github-actions[bot] db73ece2de chore(ui): refresh nl control ui locale 2026-07-01 01:08:55 +00:00
github-actions[bot] 0dcfbb09d8 chore(ui): refresh vi control ui locale 2026-07-01 01:08:41 +00:00
github-actions[bot] bb0af61d20 chore(ui): refresh th control ui locale 2026-07-01 01:08:35 +00:00
github-actions[bot] cb69ce7ba8 chore(ui): refresh pl control ui locale 2026-07-01 01:08:14 +00:00
github-actions[bot] 49edc0a8af chore(ui): refresh uk control ui locale 2026-07-01 01:08:05 +00:00
github-actions[bot] c1aeaf9287 chore(ui): refresh id control ui locale 2026-07-01 01:08:00 +00:00
github-actions[bot] 75bd44a94b chore(ui): refresh tr control ui locale 2026-07-01 01:07:52 +00:00
github-actions[bot] 614032676d chore(ui): refresh it control ui locale 2026-07-01 01:07:33 +00:00
github-actions[bot] 1520d09807 chore(ui): refresh ar control ui locale 2026-07-01 01:07:21 +00:00
github-actions[bot] 5b5c6237c2 chore(ui): refresh fr control ui locale 2026-07-01 01:07:09 +00:00
github-actions[bot] b4476ab72f chore(ui): refresh ko control ui locale 2026-07-01 01:07:04 +00:00
github-actions[bot] 6bdffa501b chore(ui): refresh ja-JP control ui locale 2026-07-01 01:06:54 +00:00
github-actions[bot] 006c2f7a2b chore(ui): refresh es control ui locale 2026-07-01 01:06:41 +00:00
github-actions[bot] 6b67ada87a chore(ui): refresh pt-BR control ui locale 2026-07-01 01:06:20 +00:00
github-actions[bot] ce9166d1cd chore(ui): refresh zh-CN control ui locale 2026-07-01 01:06:14 +00:00
github-actions[bot] a9cb866f62 chore(ui): refresh de control ui locale 2026-07-01 01:06:07 +00:00
github-actions[bot] 34badde1d9 chore(ui): refresh zh-TW control ui locale 2026-07-01 01:06:02 +00:00
Ayaan Zaidi 7006e6fcac fix(web): reconcile transient commentary history 2026-06-30 18:03:39 -07:00
Ayaan Zaidi 90847a6525 fix(web): distill WebChat commentary persistence 2026-06-30 18:03:39 -07:00
ragesaq 5ad8456771 fix(web): order keyed commentary by timestamp with tool cards
Keyed preamble commentary was appended after the whole tool loop, so it relied solely on the final visible-time sort for placement and lost the insertion-order tiebreaker against tool cards. Splice each keyed commentary segment into the items list before the first item with a strictly-later timestamp, so a preamble that arrived before a later tool renders above that tool while the run is live (not only after final materialization). Tools sharing the commentary timestamp that are already visible stay above it. Adds a buildChatItems regression covering a keyed preamble between two tools.
2026-06-30 18:03:39 -07:00
ragesaq 789e0f939b feat(web): make WebChat commentary persistence configurable
Add a per-viewer 'Keep commentary' toggle (UiSettings.chatPersistCommentary,
default true) that controls whether keyed Codex preamble/commentary blocks
stay after the final answer or clear with it.

- Persist (default): keyed commentary materializes as durable blocks, current
  behavior, existing proof unchanged.
- Transient (toggle off): commentary stays live during streaming but is never
  materialized, so it disappears as the final message arrives. This is the
  transient-only behavior from #92236, now user-selectable instead of a
  maintainer-level either/or policy choice.

Single gating point in materializeVisibleStreamState (skip itemId-keyed parts
when persistCommentary is false); threaded from settings through the chat
event handler. Adds desktop + mobile header toggles and an en.ts label
(locale bundles regenerated via ui:i18n:sync, English fallback).

Tests: reconciliation persist/transient coverage, final-event handler honors
the setting, settings round-trip + header button assertions updated.
2026-06-30 18:03:39 -07:00
ragesaq 8af9bf9264 fix(web): label preamble proof blocks
Co-authored-by: Chisel <chisel@psiclawops.dev>
2026-06-30 18:03:39 -07:00
ragesaq 0aba518bbe fix(web): render WebChat preamble progress
Render Control UI item and preamble progressText events as chat stream segments and preserve pre-final stream commentary before appending final assistant messages. Keyed preamble segments stay independent from accumulated stream snapshots, so distinct same-text commentary items render intact.

Co-authored-by: Chisel <chisel@psiclawops.dev>
2026-06-30 18:03:39 -07:00
Wynne668 ba3f68030b fix(cron): clear agentTurn thinking override by blanking the field (#96293)
* fix(cron): clear agentTurn thinking override when patched with null

Cron agentTurn patches could clear model/fallbacks/toolsAllow overrides by
sending an explicit null, but thinking had no clear path: the patch schema and
normalizer dropped thinking:null before it reached the merge logic, and the
payload merge only handled string values. Blanking the Thinking/Effort field in
the Cron Control UI therefore silently preserved the old value.

Add thinking:null support across the patch schema, exported type, normalizer,
and payload merge (mirroring model). The Control UI now sends an explicit clear
for model/thinking when an edited job blanks a previously stored override, and
the CLI gains --clear-thinking for parity with --clear-model.

* docs(cron): document --clear-thinking beside sibling clear flags
2026-06-30 17:43:22 -07:00
xingzhou 29371cfe1f fix #96840: [Bug]: Targetless message.send fails with 'Action send requires a target' in WebChat despite docs stating source-reply sink should handle it (#97167)
* fix(message): route WebChat sends to source sink

* fix(webchat): preserve message tool source replies

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-06-30 17:34:26 -07:00
Josh Avant 052dc59526 fix: /pair qr fails to show QR code in chat surfaces (#97933)
* fix(pair): render qr per chat surface

* test(plugin-sdk): update reply helper surface budget

* fix(pair): keep qr metadata internal
2026-06-29 18:17:21 -05:00
Harjoth Khara 355c43fe0c fix(ui): collapse failed internal tool calls when the turn still replied (#89683) (#90122)
A non-zero internal tool exit (Codex marks any non-zero exit as failed,
e.g. a no-match shell search) was promoted to a primary red "Tool error"
banner in Control UI even when the turn produced a clean assistant reply.
Compute a per-tool-group turnSucceeded signal at the chat projection
boundary and de-promote such non-terminal failures to a collapsed tool
summary; detail stays available on expand. Genuinely terminal tool
failures still surface.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 15:23:46 +03:00
programmingWTF 05cf497767 feat(control-ui): add right-click Reply in Dashboard webchat (#92654)
* fix(control-ui): right-click Reply icon, dismiss button, quote format, and queue ordering

* fix(control-ui): harden Dashboard webchat reply menu

* fix(control-ui): satisfy reply menu lint

---------

Co-authored-by: openclaw-clownfish[bot] <280122609+openclaw-clownfish[bot]@users.noreply.github.com>
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-28 23:37:32 -07:00
Vincent Koc f5482efbd7 UI: render half-block QR output in web chat (#93869)
Co-authored-by: MG <1900448+emg110@users.noreply.github.com>
2026-06-28 23:12:28 -07:00
Goutam Adwant 5715744ea0 fix(control-ui): apply seamColor bootstrap config (#93699) 2026-06-28 22:31:31 -07:00
吴杨帆 63fe5c7402 fix(ui): scroll to cron run history 2026-06-28 19:18:26 -07:00
Wynne668 32d117c68b fix(control-ui): persist Set Default agent through config save 2026-06-28 19:15:27 -07:00
evan-YM 4a4657a182 fix(ui): remove redundant selectedLabel rendering in Talk settings (#96915) (#96925)
The renderNativeTalkSelect function was rendering an extra .agent-chat__talk-select-label
span element for Voice and Sensitivity fields, causing misalignment with the Model field.

Changes:
- Remove selectedLabel parameter from renderNativeTalkSelect function signature
- Remove the conditional rendering of .agent-chat__talk-select-label span
- Clean up the selectedLabel argument in renderRealtimeTalkOptions

This ensures all three fields (Voice, Model, Sensitivity) have identical HTML structure
(label span + input/select), resulting in perfect visual alignment.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28 18:40:45 -07:00
Andy Ye 180a960ede fix(webchat): keep media loads pinned to bottom (#97575)
* fix(webchat): keep media loads pinned to bottom

* test(webchat): type message group mock options
2026-06-28 16:04:06 -07:00
Sam 3cabde7a4a fix(control-ui): honor verbose level for tool expansion (#74398)
* fix(control-ui): honor verbose level for tool expansion

* chore: drop release-owned changelog entry

---------

Co-authored-by: Sami Rusani <sr@samirusani>
2026-06-28 13:26:26 -07:00
ly-wang19 4a0cd56139 fix(ui): roll formatTokens over to "M" instead of rendering "1000k" (#96298)
* fix(ui): roll formatTokens over to "M" instead of rendering "1000k"

formatTokens picks the kilo branch on the raw value (< 1_000_000), then renders
Math.round(tokens/1000). For 999_500..999_999 that rounds to 1000, producing the
nonsensical "1000k" instead of rolling over to the M branch. Re-check the rounded
kilo value and fall through to "M" when it reaches 1000, matching the sibling
formatCompactTokenCount.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: retry — server-startup-session-migration timeout is main-branch flake, unrelated to formatTokens

---------

Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 10:45:12 -07:00
Josh Avant cee2aca409 Scope agent cron operations to the calling agent (#96883)
* Scope agent cron operations to caller

* Scope OpenClaw tools MCP cron by session

* Address cron scope review feedback

* Preserve unscoped cron update retargeting

* Move cron caller identity into gateway context

* Clarify Gateway restart guidance

* Add cron caller identity regression proof
2026-06-26 21:41:14 -05:00
ly-wang19 b7a9d3005c perf(ui): use sets for usage selection filters (#96945)
Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com>
2026-06-27 07:23:59 +08:00
github-actions[bot] b3eee03740 chore(ui): refresh fa control ui locale 2026-06-26 22:08:51 +00:00
github-actions[bot] 6109420e5c chore(ui): refresh nl control ui locale 2026-06-26 22:08:49 +00:00
github-actions[bot] 44e522cf6b chore(ui): refresh vi control ui locale 2026-06-26 22:08:46 +00:00
github-actions[bot] ab8cd3dac9 chore(ui): refresh th control ui locale 2026-06-26 22:08:17 +00:00
github-actions[bot] 816c2cf1f8 chore(ui): refresh pl control ui locale 2026-06-26 22:08:08 +00:00
github-actions[bot] 9cc10a8382 chore(ui): refresh id control ui locale 2026-06-26 22:08:02 +00:00
github-actions[bot] c6757d7a75 chore(ui): refresh uk control ui locale 2026-06-26 22:07:51 +00:00
github-actions[bot] a70e7ce24b chore(ui): refresh tr control ui locale 2026-06-26 22:07:28 +00:00
github-actions[bot] 6b98d179b6 chore(ui): refresh ar control ui locale 2026-06-26 22:07:23 +00:00
github-actions[bot] cb4e9e4118 chore(ui): refresh it control ui locale 2026-06-26 22:07:14 +00:00
github-actions[bot] 0023cc816a chore(ui): refresh fr control ui locale 2026-06-26 22:07:01 +00:00