Peter Steinberger
957af7bc84
fix: restore release ci after rebase
2026-05-27 10:40:59 +01:00
Peter Steinberger
bdb33c1850
fix: restore release ci checks
2026-05-27 10:40:58 +01:00
Peter Steinberger
ebe09be500
ci(ui): refresh raw copy baseline
2026-05-27 07:14:57 +01:00
Pablo Guardiola
0c867eef75
feat: expose plugin approval action metadata
...
Expose plugin approval action metadata so plugins can describe richer approval actions across gateway, SDK, channel, and UI surfaces.
2026-05-26 22:46:09 -07:00
Jesse Merhi
42f0822bfa
fix(exec): hide unavailable durable approval actions ( #86359 )
...
* fix(macos): align ask always approval actions
* fix(macos): harden approval prompt decisions
* fix(ui): satisfy approval action lint
* fix(infra): settle jsonl sockets on close
* fix(ui): explain unavailable durable approvals
* test(macos): document legacy approval fallback
2026-05-27 14:58:11 +10:00
Andy Tien
8246e91e92
fix(ui): show config open failure feedback ( #87108 )
...
Fixes #87020 .
Summary:
- Surface config.openFile failures in the Control UI instead of silently doing nothing.
- Return actionable gateway errors for headless opener failures, including the config path.
- Add gateway and UI controller regression coverage for the failed-open path.
Verification:
- node scripts/run-vitest.mjs run --config test/vitest/vitest.gateway-methods.config.ts src/gateway/server-methods/config.test.ts --reporter=dot
- node scripts/run-vitest.mjs run --config test/vitest/vitest.ui.config.ts ui/src/ui/controllers/config.test.ts --reporter=dot
- pnpm check:changed via Blacksmith Testbox tbx_01ksktydqx6mk3n20yevcbkwtn
- autoreview --mode local
Thanks @Linux2010.
Co-authored-by: Linux2010 <35169750+Linux2010@users.noreply.github.com >
2026-05-27 05:45:45 +01:00
Jesse Merhi
5297eebe88
Fix stale approval prompts in Control UI ( #86270 )
...
* fix(ui): clear stale approval prompts
* fix(ui): keep approval prompt state current
* test: update approval controller mocks
* fix(ui): keep escape denying approvals
* refactor(ui): keep approval decisions in app
2026-05-27 13:38:52 +10:00
Eric Milgram, PhD
678a0ee944
fix(config): render transform-backed config schema inputs ( #67328 )
...
Generate the public config JSON Schema from accepted input shapes so transform-backed fields remain renderable in the Control UI. Keep transform output schemas representable with explicit string pipes, align analyzer metadata handling, and cover the generated schema plus browser-safe UI render shapes.
Co-authored-by: Altay <altay@hey.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-05-27 00:36:13 +01:00
Brian Potter
068d88c142
fix(ui): eliminate double scrollbar on Logs view
...
Keep the Logs page from rendering competing outer page and inner log-stream scrollbars. The Logs route now opts into an explicit content class for desktop fill-height layout, while mobile keeps the single-page scroll behavior with the capped log panel.
Also adds regression coverage for the route class and CSS ownership selectors.
Co-authored-by: Brian potter <brian@potterdigital.com >
2026-05-27 00:14:48 +01:00
Peter Steinberger
17051894d0
fix(ui): ignore stale running session rows
2026-05-26 22:29:46 +01:00
Chengjie Wang
950007dd9c
fix(ui): show failed tool results as errors ( #85786 )
...
Merged via squash.
Prepared head SHA: c0c4fb5917
Co-authored-by: chengjiew <75600865+chengjiew@users.noreply.github.com >
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com >
Reviewed-by: @altaywtf
2026-05-27 00:27:57 +03:00
Marvinthebored
42ba297b0a
fix(control-ui): guard stale overview usage refresh
...
Guard loadUsage in the Control UI overview secondary refresh so stale overview loads do not start the expensive usage.cost RPC after the user has navigated away. Active overview usage loading is preserved.
Fixes #86392 .
Thanks @Marvinthebored for the report, live gateway proof, and patch.
Verification:
- CI=1 OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS=120000 fnm exec --using v24.15.0 -- node scripts/run-vitest.mjs run ui/src/ui/app-settings.refresh-active-tab.node.test.ts --reporter=dot --pool=forks --no-file-parallelism
- GitHub PR checks green on d52d8d10da , including Real behavior proof and checks-node-core-ui.
Co-authored-by: Marvinthebored <262704729+Marvinthebored@users.noreply.github.com >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-05-26 14:54:38 +01:00
clawsweeper[bot]
c9d0464ed1
fix(control-ui): support raw edits from editable config ( #86726 )
...
Summary:
- Merged fix(control-ui): support raw edits from editable config after ClawSweeper review.
Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(control-ui): support raw edits from editable config
Validation:
- ClawSweeper review passed for head befbe16362 .
- Required merge gates passed before the squash merge.
Prepared head SHA: befbe16362
Review: https://github.com/openclaw/openclaw/pull/86726#issuecomment-4539541885
Co-authored-by: BlackFrameAI <122847831+BlackFrameAI@users.noreply.github.com >
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com >
2026-05-26 02:58:20 +00:00
Peter Steinberger
592f192bf0
chore: remove unused tracked assets
2026-05-26 02:21:58 +01:00
Peter Steinberger
010a79b5d8
fix(ui): refresh raw copy i18n baseline
2026-05-26 02:17:54 +01:00
Peter Steinberger
c59635ae97
fix: avoid compaction checkpoint transcript copies ( #86666 )
2026-05-26 00:59:20 +01:00
Bryan Tegomoh
fc2d2d595c
fix(ui): keep local file markdown links inert
2026-05-26 00:04:32 +01:00
Vincent Koc
4424dafe64
fix(ui): harden control e2e browser setup
2026-05-25 23:19:55 +02:00
Peter Steinberger
77d9ac30bb
refactor: reuse shared coercion helpers ( #86419 )
...
* refactor: share talk event metric extraction
* refactor: reuse shared coercion helpers
* refactor: reuse shared primitive guards
* refactor: reuse shared record guard
* refactor: reuse shared primitive helpers
* refactor: reuse shared string guards
* refactor: reuse shared non-empty string guard
* refactor: share plugin primitive coercion helpers
* refactor: reuse plugin coercion helpers
* refactor: reuse plugin coercion helpers in more plugins
* refactor: reuse channel coercion helpers
* refactor: reuse monitor coercion helpers
* refactor: reuse provider coercion helpers
* refactor: reuse core coercion helpers
* refactor: reuse runtime coercion helpers
* refactor: reuse helper coercion in codex paths
* refactor: reuse helper coercion in runtime paths
* refactor: reuse codex app-server coercion helpers
* refactor: reuse codex record helpers
* refactor: reuse migration and qa record helpers
* refactor: reuse feishu and core helper guards
* refactor: reuse browser and policy coercion helpers
* refactor: reuse memory wiki record helper
* refactor: share boolean coercion helpers
* refactor: reuse finite number coercion
* refactor: reuse trimmed string list helpers
* refactor: reuse string list normalization
* refactor: reuse remaining string list helpers
* refactor: reuse string entry normalizer
* refactor: share sorted string helpers
* refactor: share string list normalization
* test: preserve command registry browser imports
* refactor: reuse trimmed list helpers
* refactor: reuse string dedupe helpers
* refactor: reuse local dedupe helpers
* refactor: reuse more string dedupe helpers
* refactor: reuse command string dedupe helpers
* refactor: dedupe memory path lists with helper
* refactor: expose string dedupe helpers to plugins
* refactor: reuse core string dedupe helpers
* refactor: reuse shared unique value helpers
* refactor: reuse unique helpers in agent utilities
* refactor: reuse unique helpers in config plumbing
* refactor: reuse unique helpers in extensions
* refactor: reuse unique helpers in core utilities
* refactor: reuse unique helpers in qa plugins
* refactor: reuse unique helpers in memory plugins
* refactor: reuse unique helpers in channel plugins
* refactor: reuse unique helpers in core tails
* refactor: reuse unique helper in comfy workflow
* refactor: reuse unique helpers in test utilities
* refactor: expose unique value helper to plugins
* refactor: reuse unique helpers for numeric lists
* refactor: replace index dedupe filters
* refactor: reuse string entry normalization
* refactor: reuse string normalization in plugin helpers
* refactor: reuse string normalization in extension helpers
* refactor: reuse string normalization in channel parsers
* refactor: reuse string normalization in memory search
* refactor: reuse string normalization in provider parsers
* refactor: reuse string normalization in qa helpers
* refactor: reuse string normalization in infra parsers
* refactor: reuse string normalization in messaging parsers
* refactor: reuse string normalization in core parsers
* refactor: reuse string normalization in extension parsers
* refactor: reuse string normalization in remaining parsers
* refactor: reuse string normalization in final parser spots
* refactor: reuse string normalization in qa media helpers
* refactor: reuse normalization in provider and media lists
* refactor: reuse normalization for remaining set filters
* refactor: reuse normalization in policy allowlists
* refactor: reuse normalization in session and owner lists
* refactor: centralize primitive string lists
* refactor: reuse lowercase entry helpers
* refactor: reuse sorted string helpers
* refactor: reuse unique trimmed helpers
* refactor: reuse string normalization helpers
* refactor: reuse catalog string helpers
* refactor: reuse remaining string helpers
* refactor: simplify remaining list normalization
* refactor: reuse codex auth order normalization
* chore: refresh plugin sdk api baseline
* fix: make shared string sorting deterministic
* chore: refresh plugin sdk api baseline
* fix: align host env security ordering
2026-05-25 21:20:41 +01:00
Anup Sharma
276ba1090e
fix(ui): preserve user code block rendering ( #85942 )
2026-05-25 16:16:04 +01:00
Vincent Koc
968c87d798
fix(ui): move control ui chunking helper out of runtime source
2026-05-25 14:31:38 +02:00
Vincent Koc
dc26069a71
fix(build): keep control ui chunking out of deadcode
2026-05-25 14:24:15 +02:00
Vincent Koc
0bb9b421f3
fix(build): support Windows UI builds
2026-05-25 13:06:56 +02:00
Sergiusz
70c7d6f588
fix(ui): scope chat session picker to active agent ( #85965 )
...
* fix(ui): scope chat session picker to active agent
* fix(ui): preserve picker search result bounds
* fix(ui): keep chat picker pagination scoped
* test(ui): mock session subscription sync in chat view test
2026-05-25 20:58:30 +10:00
Peter Steinberger
bbc1772f4d
build: enable modern TypeScript module syntax
...
* build: enable modern TypeScript flags
* build: drop erasable TypeScript syntax flag
* build: keep legacy class field semantics
2026-05-25 10:10:12 +01:00
Val Alexander
ab910f88ad
fix: make compaction reinjection opt-in
...
Summary:
- Make post-compaction AGENTS.md reinjection explicit opt-in for configured sections.
- Carry the run workspace into compaction-safeguard AGENTS.md reads.
- Improve collapsed Control UI tool rows while preserving raw expanded tool details.
Verification:
- CI green on PR head 96101664f0 .
- pnpm exec oxfmt --check --threads=1 <changed files>
- OPENCLAW_OXLINT_SKIP_PREPARE=1 node scripts/run-oxlint.mjs <changed ts/mjs files>
- node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.core.test.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/core-test.tsbuildinfo
- git diff --check origin/main...HEAD && git diff --check
- node scripts/run-vitest.mjs src/agents/pi-hooks/compaction-safeguard.test.ts src/agents/pi-embedded-runner/extensions.test.ts -t "workspace"
- node scripts/run-vitest.mjs src/auto-reply/reply/agent-runner.misc.runreplyagent.test.ts -t "reads opted-in post-compaction context"
- node scripts/run-vitest.mjs test/scripts/test-projects.test.ts -t "allows explicit split Vitest config targets"
- node scripts/run-vitest.mjs ui/src/ui/chat/tool-cards.test.ts ui/src/ui/chat/tool-cards.node.test.ts ui/src/ui/chat/grouped-render.test.ts ui/src/styles/chat/tool-cards.test.ts
- AUTOREVIEW_AUTO_TESTS=0 .agents/skills/autoreview/scripts/autoreview --mode branch
Fixes #45488 .
Fixes #45649 .
Supersedes #67090 .
2026-05-25 00:59:59 -05:00
Val Alexander
3dd0e8ed6a
feat(ui): add ephemeral Activity tab
...
Fixes #12831 .
Adds a Control UI Activity tab at `/activity` under the Control nav group. The tab derives browser-local, memory-only activity entries from the existing `session.tool` / tool-event delivery path and stores only sanitized summaries, hidden-argument counts, and redacted/truncated output previews.
Includes filtering, tool selection, clear, expand/collapse, keyboard-native disclosure rows, auto-follow scrolling, navigation/i18n/docs/changelog coverage, and focused regression tests. Follow-up tracks #54577 , #37816 , and #47386 remain distinct and open.
Verification:
- `pnpm ui:i18n:sync`
- `git diff --check`
- Focused Vitest coverage for Activity, gateway/tool stream, chat item rendering, navigation, and gateway agent events
- Desktop/mobile browser smoke for sanitized Activity rendering and header de-duplication
- Testbox `pnpm check:changed`: `tbx_01ksen33c79b8rywayf6cxww4r`
Thanks @BunsDev.
2026-05-25 00:45:23 -05:00
Val Alexander
119a01c829
fix(webchat): stabilize live transcript run state
...
Stabilize WebChat transcript/run-state truth for Codex and selected-session observers.
Summary:
- Mirror Codex inbound prompts at turn start without duplicating suppressed persisted prompts.
- Deliver hidden external-channel live chat/tool/agent updates only to exact selected-session subscribers.
- Repair Control UI selected-session subscription state, alias-aware run adoption, and accumulated stream dedupe.
- Add focused Codex, gateway/session-event, and Control UI regression coverage.
Verification:
- Current-head CI: 101 green, 0 pending; stale canceled entries are superseded automation from prior force-pushed heads.
- Local focused Vitest shards passed: Codex app-server 2 files / 233 tests, gateway/session 4 files / 116 tests, UI 7 files / 238 tests.
- `node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.core.test.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/core-test.tsbuildinfo`
- `node --import tsx scripts/check-no-extension-test-core-imports.ts`
- `git diff --check origin/main..HEAD`
Closes #83528 .
Closes #82611 .
Refs #83949 .
2026-05-24 23:07:29 -05:00
Vincent Koc
8bf4f7d4a8
fix(ui): split control ui runtime chunks
2026-05-24 22:20:33 +02:00
David
55f994a8d0
fix(memory-wiki): show vault totals in palace summary ( #85824 )
...
* fix(memory-wiki): show vault totals in palace summary
* fix(memory-wiki): avoid zero-page legacy question label
---------
Co-authored-by: nxmxbbd <32288+nxmxbbd@users.noreply.github.com >
2026-05-24 05:11:12 +01:00
Enjou
3b3b2cca9c
fix(ui): handle empty strings with minLength constraint in config save ( #85850 )
...
* fix(ui): handle empty strings with minLength constraint in config save
Fixes #85831
When saving config in Control UI, required string fields with minLength
constraint (e.g., z.string().min(1)) were sent as empty strings instead
of being unset. This prevented schema defaults from applying.
Solution: coerce empty strings with minLength > 0 to undefined, allowing
schema defaults to take effect during validation.
Added 5 unit tests covering edge cases.
* fix(types): add minLength and maxLength to JsonSchema type
2026-05-24 04:15:21 +01:00
Shakker
5534cad6fc
test: cover control ui source reply final retention
2026-05-24 03:37:43 +01:00
Shakker
5e2857477b
fix: keep source reply finals live in control ui
2026-05-24 03:37:43 +01:00
Neerav Makwana
c614b59f03
fix(ui): delay WebChat done indicator until reply renders
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-24 02:36:07 +01:00
Peter Steinberger
13c0b1952e
feat(ui): control active realtime talk runs
...
Co-authored-by: Colin <colin@solvely.net >
2026-05-24 02:35:04 +01:00
clawsweeper[bot]
1a60c19743
fix(ui): preserve source config for Control UI saves ( #85879 )
...
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
2026-05-24 02:23:09 +01:00
Jason O'Neal
cf70bdcceb
fix(webchat): scope attachment button input
2026-05-23 23:59:48 +01:00
sallyom
266f38b261
fix(control-ui): restore light select arrows
...
Signed-off-by: sallyom <somalley@redhat.com >
2026-05-23 15:43:42 -04:00
Linux2010
ae79e6e5ec
fix(web-ui): improve light theme visibility for select arrows and bubble hover
...
Problem:
- Select dropdown arrow uses hardcoded #888 SVG stroke, barely visible on
light backgrounds
- Chat bubble hover border uses 28% accent blend, too subtle in light theme
for meaningful visual feedback
Fix:
- Darken dropdown arrow SVG to #444 in light theme (.cfg-select)
- Increase chat-bubble:hover accent blend from 28% to 48% in light theme
- Add subtle box-shadow on bubble hover for clearer feedback
Fixes : #85713
2026-05-23 15:43:42 -04:00
brokemac79
f4b92f5e6c
fix(agents): simplify subagent completion handoff
...
Simplify native subagent completion handoff and remove manual subagent control surfaces.
Co-authored-by: brokemac79 <martin_cleary@yahoo.co.uk >
2026-05-23 13:50:08 +01:00
github-actions[bot]
33df3be6ca
chore(ui): refresh fa control ui locale
2026-05-23 05:41:25 +00:00
github-actions[bot]
908464bbe8
chore(ui): refresh nl control ui locale
2026-05-23 05:41:17 +00:00
github-actions[bot]
62b75f44e0
chore(ui): refresh vi control ui locale
2026-05-23 05:41:05 +00:00
github-actions[bot]
fc4ba31958
chore(ui): refresh th control ui locale
2026-05-23 05:40:51 +00:00
github-actions[bot]
5b1bdd1af8
chore(ui): refresh id control ui locale
2026-05-23 05:40:46 +00:00
github-actions[bot]
534d4b142e
chore(ui): refresh pl control ui locale
2026-05-23 05:40:42 +00:00
github-actions[bot]
055c3bd6a5
chore(ui): refresh uk control ui locale
2026-05-23 05:40:21 +00:00
github-actions[bot]
89c5a68951
chore(ui): refresh ar control ui locale
2026-05-23 05:40:11 +00:00
github-actions[bot]
44ca805650
chore(ui): refresh it control ui locale
2026-05-23 05:40:09 +00:00
github-actions[bot]
933b53bf55
chore(ui): refresh tr control ui locale
2026-05-23 05:40:07 +00:00