Commit Graph

2011 Commits

Author SHA1 Message Date
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