Commit Graph

1174 Commits

Author SHA1 Message Date
Val Alexander
e5a5ea1072 fix(ui): make control prompts real modals
Introduce a native dialog-backed Control UI modal primitive and migrate the exec approval, gateway URL confirmation, and dreaming restart confirmation prompts to it.

The modal primitive provides aria-modal semantics, shadow-root-local labels/descriptions, focus trapping, safe initial focus, Escape cancellation, and focus restoration while preserving the existing prompt content and decision semantics.

Validation:
- pnpm lint --threads=8
- pnpm --dir ui test src/ui/components/modal-dialog.test.ts src/ui/views/exec-approval.test.ts src/ui/navigation.browser.test.ts
- pnpm test:ui
- pnpm exec oxfmt --check --threads=1 ui/src/ui/components/modal-dialog.ts ui/src/styles/config-quick.test.ts
- git diff --check

CI note: checks-node-core-support-boundary is failing in test/scripts/docker-build-helper.test.ts on an unrelated package-acceptance assertion; the failing files are identical to origin/main and outside this UI-only PR.
2026-04-29 05:46:50 -05:00
Yao
af548bb07d fix(ui): persist default agent via agents list flag
Fix the Control UI Set Default action to persist agents.list[].default instead of the unsupported agents.defaultId config key.\n\nCloses #65565.\n\nThanks @luyao618.
2026-04-29 03:03:12 -07:00
luzhidong
1c17fd5edf feat(ui): add mobile cron session filter
Add the existing desktop cron-session visibility toggle to the mobile chat settings dropdown, reusing the shared session filtering state and cron filter icon path.

Also add focused browser render coverage for the mobile dropdown so the cron filter button, hidden-count title, active/pressed state, and click behavior are covered.

Validated:
- pnpm exec oxfmt --check --threads=1 ui/src/ui/app-render.helpers.browser.test.ts
- pnpm test ui/src/ui/app-render.helpers.browser.test.ts ui/src/ui/app-render.helpers.node.test.ts
- pnpm lint --threads=8

Thanks @luzhidong.
2026-04-29 04:38:50 -05:00
Peter Steinberger
8d58ad4c15 fix(gateway): retry startup handshakes before surfacing failures 2026-04-29 10:25:53 +01:00
Peter Steinberger
14e8a2d00b chore: remove unused internal dead code 2026-04-29 09:34:40 +01:00
openclaw-clownfish[bot]
61b0cd3781 fix(ui): keep control UI select values stable on load (#74000)
Co-authored-by: openclaw-clownfish[bot] <280122609+openclaw-clownfish[bot]@users.noreply.github.com>
2026-04-29 01:26:30 -07:00
konanok
bd5afadc5c fix(ui): use precise hourly message counts for Peak Error Hours (#49396)
Merged via squash.

Prepared head SHA: fbbf43b84a
Co-authored-by: konanok <30515586+konanok@users.noreply.github.com>
Co-authored-by: hxy91819 <8814856+hxy91819@users.noreply.github.com>
Reviewed-by: @hxy91819
2026-04-29 15:22:42 +08:00
tmimmanuel
0bbbc99980 fix(ui): preserve queued chat messages across session switches (#73679)
Fixes #73621.

Preserve queued Control UI chat messages across in-UI session switches by saving the active queue per session before reset and restoring it when switching back. Route the overview session selector through the shared switchChatSession helper so it follows the same queue lifecycle.

Validation:
- OPENCLAW_VITEST_MAX_WORKERS=1 pnpm test ui/src/ui/app-render.helpers.node.test.ts
- pnpm tsgo:test:ui
- pnpm exec oxfmt --check --threads=1 ui/src/ui/app-render.helpers.node.test.ts ui/src/ui/app-render.helpers.ts ui/src/ui/app-render.ts ui/src/ui/app-view-state.ts ui/src/ui/app.ts
2026-04-29 01:57:04 -05:00
Peter Steinberger
8d78451e8b fix: clarify session runtime metadata 2026-04-29 06:07:30 +01:00
Peter Steinberger
e5dc0e6d15 fix: expose agent runtime status metadata 2026-04-29 05:02:04 +01:00
Vincent Koc
e53c45ba94 ci: shard control ui codeql quality
Adds a narrow CodeQL Critical Quality shard for the Control UI/control-plane surface and fixes the custom-theme font-family ReDoS finding discovered by the new shard.
2026-04-28 20:24:19 -07:00
Peter Steinberger
c399fb750b fix(ui): handle Google Live binary talk frames 2026-04-28 20:57:46 +01:00
Peter Steinberger
885806d5ca fix(gateway): stop stale device token reconnect loops 2026-04-28 11:38:18 +01:00
Vincent Koc
1912e309f7 fix(ui): confirm button-triggered new session resets (#73361) 2026-04-28 02:10:33 -07:00
Vincent Koc
02908db62b fix(ui): clear webchat pending state only for completed active run (#73368) 2026-04-28 01:47:00 -07:00
Peter Steinberger
b22926601f fix(ui): keep chat attachment payloads out of state 2026-04-28 08:27:53 +01:00
Peter Steinberger
870d993eb8 fix(ui): request configured model list 2026-04-28 05:21:08 +01:00
Vincent Koc
cff991c88d fix(ui): stabilize WebChat final reload reconciliation (#72325)
* fix(ui): stabilize WebChat final reload reconciliation

* fix(clownfish): address review for ghcrawl-165991-agentic-merge (1)

* fix(ui): keep plain control-token text visible
2026-04-27 12:52:39 -07:00
Peter Steinberger
f6b2ba4a10 fix(control-ui): coalesce duplicate chat submits 2026-04-27 20:45:28 +01:00
Peter Steinberger
8cddb6ce7d fix(webchat): drop stale optimistic assistant tails 2026-04-27 20:45:28 +01:00
Vincent Koc
3cb460873d fix(ui): stabilize agent model selection on switch (#72328)
* fix(ui): stabilize agent model selection on switch

* docs(changelog): credit projectclownfish fixes
2026-04-27 12:06:02 -07:00
Vincent Koc
d9bef3fe7c fix(ui): discard stale config state on explicit reload (#72624)
* fix(ui): discard stale config state on explicit reload

* fix(clownfish): address review for ghcrawl-156594-autonomous-smoke (1)

* fix(clownfish): address review for ghcrawl-156594-autonomous-smoke (1)

* test(ui): align channel config host state
2026-04-27 11:10:38 -07:00
Val Alexander
e3ad82d86d fix(control-ui): polish tweakcn theme imports
Summary:
- Improve Control UI tweakcn theme import parsing and labeling.
- Apply imported theme names consistently across appearance controls.
- Document tweakcn share link and slug import flows.

Verification:
- pnpm test ui/src/ui/custom-theme.test.ts ui/src/ui/views/config.browser.test.ts ui/src/ui/views/config-quick.test.ts ui/src/ui/app-settings.test.ts ui/src/ui/storage.node.test.ts
- pnpm check:changed
- pnpm --dir ui build
2026-04-27 12:24:14 -05:00
Val Alexander
1cf68b9243 fix(control-ui): keep google talk off webrtc
Keep Google Live Talk browser sessions on the supported WebSocket/gateway-relay paths instead of falling back to browser WebRTC, remove stale browser-native voice controls that bypass Talk/TTS provider settings, and harden the Google Live URL plus realtime relay resource controls.

Verification:
- pnpm test ui/src/ui/realtime-talk.test.ts ui/src/ui/realtime-talk-google-live.test.ts src/gateway/talk-realtime-relay.test.ts src/gateway/server-methods/talk.test.ts
- pnpm check:changed
2026-04-27 10:35:34 -05:00
Peter Steinberger
016a0b4de9 fix(gateway): avoid echoing rotated device tokens 2026-04-27 15:10:05 +01:00
Peter Steinberger
4336a7f3a9 refactor(plugin-sdk): narrow config runtime imports 2026-04-27 14:58:32 +01:00
Peter Steinberger
93bbbe5e37 feat: add browser realtime talk transports 2026-04-27 14:22:32 +01:00
github-actions[bot]
bef28fcf1a chore(ui): refresh th control ui locale 2026-04-27 12:13:31 +00:00
github-actions[bot]
ef87620c5b chore(ui): refresh id control ui locale 2026-04-27 12:12:56 +00:00
github-actions[bot]
973fbcd65b chore(ui): refresh pl control ui locale 2026-04-27 12:12:51 +00:00
github-actions[bot]
a3ef1938b6 chore(ui): refresh uk control ui locale 2026-04-27 12:12:39 +00:00
github-actions[bot]
6c0d9b1642 chore(ui): refresh tr control ui locale 2026-04-27 12:12:32 +00:00
github-actions[bot]
e7d3cfa7ca chore(ui): refresh fr control ui locale 2026-04-27 12:11:55 +00:00
github-actions[bot]
3769a93752 chore(ui): refresh ko control ui locale 2026-04-27 12:11:51 +00:00
github-actions[bot]
1633e38a77 chore(ui): refresh ja-JP control ui locale 2026-04-27 12:11:46 +00:00
github-actions[bot]
1a466d5a44 chore(ui): refresh es control ui locale 2026-04-27 12:11:42 +00:00
github-actions[bot]
1ad36486b8 chore(ui): refresh zh-CN control ui locale 2026-04-27 12:11:01 +00:00
github-actions[bot]
3352f8a569 chore(ui): refresh zh-TW control ui locale 2026-04-27 12:10:55 +00:00
github-actions[bot]
61633b5ca7 chore(ui): refresh pt-BR control ui locale 2026-04-27 12:10:52 +00:00
github-actions[bot]
450eae0ecf chore(ui): refresh de control ui locale 2026-04-27 12:10:48 +00:00
Peter Steinberger
c6ebd99a46 fix(control-ui): surface lazy panel load failures 2026-04-27 13:09:02 +01:00
Val Alexander
27a4bba90a fix(ui): render cron markdown summaries
## Summary
- render cron job prompts and run summaries through the sanitized markdown pipeline in the Control UI
- keep system-event cron payloads plain and prevent markdown link clicks from triggering row selection
- handle failed runs with missing or empty summaries without duplicating or hiding the error text

## Verification
- pnpm test ui/src/ui/views/cron.test.ts
- pnpm test src/plugins/doctor-contract-registry.test.ts src/plugins/setup-registry.test.ts
- pnpm check:changed
- GitHub CI green on 251f01a3b0
2026-04-27 06:53:51 -05:00
Peter Steinberger
047c03cc88 fix(gateway): drop stale webchat handshakes 2026-04-27 12:51:17 +01:00
Peter Steinberger
74fb6be716 fix(ui): scope agent identity to active session
Co-authored-by: Sahil Satralkar <62758655+sahilsatralkar@users.noreply.github.com>
2026-04-27 12:45:00 +01:00
martingarramon
4f50921e0f fix(gateway/schema): require hello-ok auth
Fixes #68160.

Drops stale optionality from the hello-ok auth schema and keeps generated Swift models, macOS fixtures, browser client types, protocol docs, and merged-base test boundaries aligned.
2026-04-27 06:40:36 -05:00
Peter Steinberger
dca9fa471f fix(ui): preserve session assistant identity 2026-04-27 12:20:36 +01:00
清秋
8200d878a3 fix(ui): harden webchat input history behavior
Harden WebChat input history handling so draft, navigation, and render-state behavior stay consistent across the chat UI.

Validated locally on the rebased PR head 742a5f22f1:
- CI=true OPENCLAW_LOCAL_CHECK=0 pnpm check:changed
- CI=true OPENCLAW_LOCAL_CHECK=0 pnpm test:changed

Closes #38702.
2026-04-27 06:08:55 -05:00
Peter Steinberger
8e14f5c749 fix(agents): drop malformed reasoning before orphan close tags 2026-04-27 12:06:37 +01:00
Peter Steinberger
9bc703213b fix(control-ui): preserve loopback client version labels 2026-04-27 11:56:58 +01:00
Val Alexander
14a27e11f7 feat(ui): show raw config pending changes
Adds a raw config pending-changes diff panel in Control UI raw mode, with JSON5 parsing, sensitive-value redaction until explicit reveal, bounded diff work, and tests for redaction/reveal and stale reveal-state reset.

Also aligns provider manifest contract coverage for google-vertex and Qwen aliases to unblock the rebased CI matrix.

Supersedes stale PRs #48621 and #46654. PR #48621 had gone stale without maintainer follow-up, so this maintainer-authored PR carries the implementation forward transparently while preserving changelog credit for the original contributor and @BunsDev.
2026-04-27 04:42:10 -05:00