ui/dashboard #2

Open
evgeny wants to merge 325 commits from ui/dashboard into main

325 Commits

Author SHA1 Message Date
Val Alexander
13b820ac01 refactor(styles): improve CSS structure and readability across multiple files
Some checks failed
CI / docs-scope (pull_request) Has been cancelled
Install Smoke / docs-scope (pull_request) Has been cancelled
CI / changed-scope (pull_request) Has been cancelled
CI / build-artifacts (pull_request) Has been cancelled
CI / release-check (pull_request) Has been cancelled
CI / checks (pnpm canvas:a2ui:bundle && bunx vitest run --config vitest.unit.config.ts, bun, test) (pull_request) Has been cancelled
CI / checks (pnpm canvas:a2ui:bundle && pnpm test, node, test) (pull_request) Has been cancelled
CI / checks (pnpm protocol:check, node, protocol) (pull_request) Has been cancelled
CI / check (pull_request) Has been cancelled
CI / dead-code report (pnpm deadcode:report:ci:knip, knip) (pull_request) Has been cancelled
CI / dead-code report (pnpm deadcode:report:ci:ts-prune, ts-prune) (pull_request) Has been cancelled
CI / dead-code report (pnpm deadcode:report:ci:ts-unused, ts-unused-exports) (pull_request) Has been cancelled
CI / check-docs (pull_request) Has been cancelled
CI / secrets (pull_request) Has been cancelled
CI / checks-windows (pnpm canvas:a2ui:bundle && pnpm test, node, test) (pull_request) Has been cancelled
CI / checks-windows (pnpm lint, node, lint) (pull_request) Has been cancelled
CI / checks-windows (pnpm protocol:check, node, protocol) (pull_request) Has been cancelled
CI / macos (pull_request) Has been cancelled
CI / ios (pull_request) Has been cancelled
CI / android (./gradlew --no-daemon :app:assembleDebug, build) (pull_request) Has been cancelled
CI / android (./gradlew --no-daemon :app:testDebugUnitTest, test) (pull_request) Has been cancelled
Install Smoke / install-smoke (pull_request) Has been cancelled
Workflow Sanity / no-tabs (pull_request) Has been cancelled
Workflow Sanity / actionlint (pull_request) Has been cancelled
Labeler / label (pull_request_target) Has been cancelled
Labeler / backfill-pr-labels (pull_request_target) Has been cancelled
Labeler / label-issues (pull_request_target) Has been cancelled
- Standardized CSS variable values for consistency.
- Enhanced layout styles for sidebar navigation and responsiveness.
- Refactored callout styles for better gradient definitions.
- Improved transition properties for smoother UI interactions.
- Added new icons for sidebar functionality and external links.
- Updated HTML structure in app-render for better sidebar management.
2026-02-21 21:42:54 -06:00
Val Alexander
503f66e3ab refactor(login-gate): remove token input field and add Enter key functionality for password input 2026-02-21 21:33:08 -06:00
Val Alexander
7a6c6cf817 feat: enhance dashboard-lit with new features and UI improvements
- Updated .gitignore to include .ant-colony directory.
- Modified README.md to reflect changes in gateway authentication settings.
- Added a new favicon.svg for improved branding.
- Refactored app.ts to implement theme management and sidebar navigation.
- Introduced sidebar-nav component for better navigation structure.
- Added controllers for overview, presence, and sessions management.
- Enhanced navigation library with new tab definitions and titles.
- Improved overview-view to display gateway health and stats dynamically.
- Updated styles.css for better theming and responsive design.
2026-02-21 21:06:56 -06:00
Andrew Jeon
b5b5a88069 feat: add Korean language support for memory search query expansion (#18899)
* feat: add Korean stop words and tokenization for memory search

* fix: address review comments on Korean query expansion

* fix: lint errors - curly brace and toSorted

* fix(memory): improve Korean stop words and deduplicate

* Memory: tighten Korean query expansion filtering

* Docs/Changelog: credit Korean memory query expansion

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-02-21 21:05:38 -06:00
Vignesh Natarajan
b2bfea52c2 fix: pairing admin satisfies write (#23125) (thanks @vignesh07) 2026-02-21 21:05:38 -06:00
vignesh07
6924651612 fix(pairing): treat operator.admin as satisfying operator.write 2026-02-21 21:05:38 -06:00
vignesh07
f5b5e6f86b docs(changelog): credit nicole-luxe for mcporter QMD work 2026-02-21 21:05:38 -06:00
Vincent Koc
9594deb0dd docs(changelog): credit BlueBubbles DM history fix (#23095) 2026-02-21 21:05:38 -06:00
Ryan Haines
2bd443c108 Fix BlueBubbles DM history backfill bug (#20302)
* feat: implement DM history backfill for BlueBubbles

- Add fetchBlueBubblesHistory function to fetch message history from API
- Modify processMessage to fetch history for both groups and DMs
- Use dmHistoryLimit for DMs and historyLimit for groups
- Add InboundHistory field to finalizeInboundContext call

Fixes #20296

* style: format with oxfmt

* address review: in-memory history cache, resolveAccount try/catch, include is_from_me

- Wrap resolveAccount in try/catch instead of unreachable guard (it throws)
- Include is_from_me messages with 'me' sender label for full conversation context
- Add in-memory rolling history map (chatHistories) matching other channel patterns
- API backfill only on first message per chat, not every incoming message
- Remove unused buildInboundHistoryFromEntries import

* chore: remove unused buildInboundHistoryFromEntries helper

Dead code flagged by Greptile — mapping is done inline in
monitor-processing.ts.

* BlueBubbles: harden DM history backfill state handling

* BlueBubbles: add bounded exponential backoff and history payload guards

* BlueBubbles: evict merged history keys

* Update extensions/bluebubbles/src/monitor-processing.ts

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

---------

Co-authored-by: Ryan Mac Mini <ryanmacmini@ryans-mac-mini.tailf78f8b.ts.net>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-21 21:05:38 -06:00
Vignesh
524c1b88cc feat(memory): allow QMD searches via mcporter keep-alive (openclaw#19617) thanks @vignesh07
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini

Co-authored-by: vignesh07 <1436853+vignesh07@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-21 21:05:38 -06:00
Peter Steinberger
e9a74c2643 test(telegram): use mockClear in per-case bot setup loops 2026-02-21 21:02:23 -06:00
Peter Steinberger
653bd28f3a test(retry): table-drive retryAfter timer cases 2026-02-21 21:02:23 -06:00
Peter Steinberger
683e46ed41 test(telegram): replace redundant bot setup mock resets with clears 2026-02-21 21:02:23 -06:00
Peter Steinberger
4ecaece945 test(telegram): dedupe send fallback/media fixtures and trim reset overhead 2026-02-21 21:02:23 -06:00
Peter Steinberger
23e3ed8dba test(browser): table-drive scroll and click error rewrites 2026-02-21 21:02:22 -06:00
Peter Steinberger
2eb886ae11 test(web-fetch): dedupe blocked-url SSRF assertions 2026-02-21 21:02:22 -06:00
Peter Steinberger
739a78545c test(pi-tools): share safeBins e2e setup and teardown 2026-02-21 21:02:22 -06:00
Peter Steinberger
fd9f480720 test(onboard): table-drive custom api flag rejection cases 2026-02-21 21:02:22 -06:00
Peter Steinberger
2329737b45 test(doctor): tighten legacy migration e2e timeout budgets 2026-02-21 21:02:22 -06:00
Peter Steinberger
8efaddadf2 test(sandbox): table-drive dangerous docker config rejection cases 2026-02-21 21:02:22 -06:00
Peter Steinberger
2b23935e59 test(image-tool): share temp agent dirs and table-drive validation cases 2026-02-21 21:02:22 -06:00
Peter Steinberger
7de9a9dd75 refactor: unify discord listener slow-log flow and test helpers 2026-02-21 21:02:22 -06:00
Peter Steinberger
6397abefaa test(actions): table-drive discord presence mappings 2026-02-21 21:02:22 -06:00
Peter Steinberger
31907855fa test(actions): table-drive discord reaction and permission cases 2026-02-21 21:02:22 -06:00
Peter Steinberger
342d93b431 test(actions): table-drive slack and telegram action cases 2026-02-21 21:02:22 -06:00
Peter Steinberger
9cf0a81849 fix: await DiscordMessageListener handler for queued messages (#22396)
Co-authored-by: Irene <huangxiyan2311@gmail.com>
2026-02-21 21:02:22 -06:00
Peter Steinberger
e7fff3625c test(sandbox): share sandbox-root setup across path cases 2026-02-21 21:02:22 -06:00
Peter Steinberger
f529e70ee1 test: fix nodes camera case typing for CI 2026-02-21 21:02:22 -06:00
Peter Steinberger
a4259a0380 test(outbound): table-drive pre-aborted action cases 2026-02-21 21:02:22 -06:00
Peter Steinberger
9854495aac test: tighten web and cron cli timeout budgets 2026-02-21 21:02:22 -06:00
Peter Steinberger
9d27edc17a test(archive): share zip/tar fixture generation 2026-02-21 21:02:22 -06:00
Peter Steinberger
867d4474a8 test(logging): dedupe stream and state-dir env assertions 2026-02-21 21:02:22 -06:00
Peter Steinberger
bbe8870d48 test(ssrf): table-drive blocked hostname literal checks 2026-02-21 21:02:22 -06:00
Peter Steinberger
f167802e97 test(gateway): extract shared parse warning helper 2026-02-21 21:02:22 -06:00
Peter Steinberger
e412a4b9b6 fix: harden sandbox tmp media validation (#17892) (thanks @dashed) 2026-02-21 21:02:22 -06:00
Alberto Leal
90d72f9417 test(media): narrow result kind before sendResult assertion 2026-02-21 21:02:22 -06:00
Alberto Leal
5d777f7656 test(media): verify tmpdir media paths allowed through message action runner
Add integration test confirming that runMessageAction with a sandbox
root now accepts media paths under os.tmpdir() through the full
normalization pipeline (normalizeSandboxMediaList → resolveSandboxedMediaSource).
2026-02-21 21:02:22 -06:00
Alberto Leal
6c78848db5 fix(media): allow os.tmpdir() paths in sandbox media source validation
resolveSandboxedMediaSource() rejected all paths outside the sandbox
workspace root, including /tmp. This blocked sandboxed agents from
sending locally-generated temp files (e.g. images from Python scripts)
via messaging actions.

Add an os.tmpdir() prefix check before the strict sandbox containment
assertion, consistent with buildMediaLocalRoots() which already
includes os.tmpdir() in its default allowlist. Path traversal through
/tmp (e.g. /tmp/../etc/passwd) is prevented by path.resolve()
normalization before the prefix check.

Relates-to: #16382, #14174
2026-02-21 21:02:22 -06:00
Alberto Leal
0e5ab55d59 test: add unit tests for resolveSandboxedMediaSource
Add baseline test coverage for the previously untested
resolveSandboxedMediaSource() function, covering sandbox-relative
path resolution, rejection of paths outside the sandbox root,
path traversal prevention, file:// URL handling, HTTP URL
passthrough, and empty input edge cases.
2026-02-21 21:02:22 -06:00
Peter Steinberger
afb43e321a test(web): table-drive SSRF and voice input rejection cases 2026-02-21 21:02:22 -06:00
Peter Steinberger
674d715167 test(gateway): table-drive runtime config validation matrix 2026-02-21 21:02:22 -06:00
Peter Steinberger
1cb35a84d4 test(cli): table-drive repeated argv and byte-size checks 2026-02-21 21:02:22 -06:00
Peter Steinberger
7612a24e0b test(cron): dedupe webhook patch validation cases 2026-02-21 21:02:22 -06:00
Peter Steinberger
d12b1df04d test(fetch): table-drive sync throw cleanup coverage 2026-02-21 21:02:22 -06:00
Peter Steinberger
0715cab4db test(gateway): tighten e2e timeout budget 2026-02-21 21:02:21 -06:00
Peter Steinberger
539ce93186 test(cli): table-drive camera url failure cases 2026-02-21 21:02:21 -06:00
Peter Steinberger
5809cfea43 test(sandbox): table-drive bind and network validation cases 2026-02-21 21:02:21 -06:00
Peter Steinberger
5e4e2210e4 test(targets): table-drive slack and discord parse cases 2026-02-21 21:02:21 -06:00
Peter Steinberger
e25fa9212a test: dedupe repeated validation and throw assertions 2026-02-21 21:02:21 -06:00
Peter Steinberger
2672f3d7b0 test(actions): table-drive telegram and signal mappings 2026-02-21 21:02:21 -06:00
Peter Steinberger
76b76c4779 test(telegram): table-drive channel override and id helper cases 2026-02-21 21:02:21 -06:00
Peter Steinberger
0d797c2333 test(config): avoid duplicate include resolution in throw assertions 2026-02-21 21:02:21 -06:00
Peter Steinberger
db3d63b02f test(gateway): tighten health e2e timeout ceilings 2026-02-21 21:02:21 -06:00
Peter Steinberger
f492c3e8d3 test(actions): table-drive discord forwarding cases 2026-02-21 21:02:21 -06:00
Peter Steinberger
53ac52e484 fix: harden config prototype-key guards (#22968) (thanks @Clawborn) 2026-02-21 21:02:21 -06:00
Clawborn
a9ade3c34f Fix prototype pollution in applyMergePatch via blocked key filter
applyMergePatch in merge-patch.ts iterates Object.entries(patch) without
filtering dangerous keys. When a caller passes a JSON-parsed object with
a "__proto__" key, the loop assigns result["__proto__"] = value, which
replaces the prototype of result and pollutes Object.prototype for the
entire process.

Add a BLOCKED_KEYS set ({"__proto__", "constructor", "prototype"}) and
skip those keys during iteration, matching the guard already present in
deepMerge (includes.ts) via isBlockedObjectKey.

Adds four tests covering __proto__, constructor, prototype, and nested
__proto__ injection.

Co-authored-by: Clawborn <tianrun.yang103@gmail.com>
2026-02-21 21:02:21 -06:00
Peter Steinberger
636aec6566 fix: restore CI checks after #23012 (thanks @druide67) 2026-02-21 21:02:21 -06:00
Peter Steinberger
1d6a4a7610 fix(test): guard optional forum topic options 2026-02-21 21:02:21 -06:00
Peter Steinberger
a71d9f0269 fix(test): repair readonly case table typing 2026-02-21 21:02:21 -06:00
Peter Steinberger
1957a8b712 fix(test): resolve outbound envelope case typing 2026-02-21 21:02:21 -06:00
Peter Steinberger
895664d1bc refactor(test): stabilize case tables and readonly helper inputs 2026-02-21 21:02:21 -06:00
Jean-Marc
0f0655822f feat(channels): add Synology Chat native channel (#23012)
* feat(channels): add Synology Chat native channel

Webhook-based integration with Synology NAS Chat (DSM 7+).
Supports outgoing webhooks, incoming messages, multi-account,
DM policies, rate limiting, and input sanitization.

- HMAC-based constant-time token validation
- Configurable SSL verification (allowInsecureSsl) for self-signed NAS certs
- 54 unit tests across 5 test suites
- Follows the same ChannelPlugin pattern as LINE/Discord/Telegram

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat(synology-chat): add pairing, warnings, messaging, agent hints

- Enable media capability (file_url already supported by client)
- Add pairing.notifyApproval to message approved users
- Add security.collectWarnings for missing token/URL, insecure SSL, open DM policy
- Add messaging.normalizeTarget and targetResolver for user ID resolution
- Add directory stubs (self, listPeers, listGroups)
- Add agentPrompt.messageToolHints with Synology Chat formatting guide
- 63 tests (up from 54), all passing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 21:02:21 -06:00
Peter Steinberger
45d3904daa test(security): simplify repeated audit finding assertions 2026-02-21 21:02:21 -06:00
Peter Steinberger
25d0571eec test(telegram): table-drive sticker and forum-topic cases 2026-02-21 21:02:21 -06:00
Peter Steinberger
dcc8d81bc7 test(browser): tighten relay test watchdog timeouts 2026-02-21 21:02:21 -06:00
Peter Steinberger
6e3abd4b0c test(telegram): dedupe shared reply/chat-not-found cases 2026-02-21 21:02:21 -06:00
Marcus Widing
8738498e0c fix(gateway): restore localhost Control UI pairing when allowInsecureAuth is set (#22996)
* fix(gateway): allow localhost Control UI without device identity when allowInsecureAuth is set

* fix(gateway): pass isLocalClient to evaluateMissingDeviceIdentity

* test: add regression tests for localhost Control UI pairing

* fix(gateway): require pairing for legacy metadata upgrades

* test(gateway): fix legacy metadata e2e ws typing

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-02-21 21:02:21 -06:00
Peter Steinberger
68879d56b7 fix: clear stale remote discovery endpoints (#21618) (thanks @bmendonca3) 2026-02-21 21:02:20 -06:00
Peter Steinberger
3e30a71d23 test: tighten canvas host websocket watchdog timeouts 2026-02-21 21:02:20 -06:00
Peter Steinberger
d756e6ba28 test: table-drive status reactions and session key cases 2026-02-21 21:02:20 -06:00
Peter Steinberger
9628f886d8 test: table-drive internal hook type-guard cases 2026-02-21 21:02:20 -06:00
Peter Steinberger
8d6f7bbe73 test: dedupe channel/web cases and tighten gateway e2e waits 2026-02-21 21:02:20 -06:00
Peter Steinberger
30f4710832 test: table-drive utils and channel-match cases 2026-02-21 21:02:20 -06:00
Peter Steinberger
807ffcb9a8 test(telegram): table-drive pairing DM scenarios 2026-02-21 21:02:20 -06:00
Peter Steinberger
e222b51cf6 test: matrix owner and timezone system-prompt cases 2026-02-21 21:02:20 -06:00
Peter Steinberger
592dd04829 test: dedupe command gating coverage tables 2026-02-21 21:02:20 -06:00
Peter Steinberger
6c4b98dac6 test(gateway): normalize canvas ws watchdog timeouts 2026-02-21 21:02:20 -06:00
Peter Steinberger
824f3061c7 test(ui): matrix chat indicator rendering cases 2026-02-21 21:02:20 -06:00
Peter Steinberger
8f6d143f4d test(ui): collapse session key/display name fixtures 2026-02-21 21:02:20 -06:00
Peter Steinberger
1990459567 test(gateway): tighten e2e timeouts and dedupe invoke checks 2026-02-21 21:02:20 -06:00
Peter Steinberger
7ee6ead8eb test(ui): consolidate navigation/scroll/format matrices 2026-02-21 21:02:20 -06:00
Peter Steinberger
d21939172a fix: enforce strict allowlist across pairing stores (#23017) 2026-02-21 21:02:20 -06:00
Brian Mendonca
d87de9bd51 Security/macos: enforce wss for non-loopback direct gateway 2026-02-21 21:02:20 -06:00
Brian Mendonca
fac74e0989 fix(security): fail closed on unauthenticated discovery routing 2026-02-21 21:02:20 -06:00
Brian Mendonca
6401988286 test: fix rebase-introduced tsgo regressions 2026-02-21 21:02:20 -06:00
Brian Mendonca
d3bda4a754 test: stabilize internal hook error assertions 2026-02-21 21:02:20 -06:00
Brian Mendonca
b5dc6d7a44 test: make brew fallback assertion windows-safe 2026-02-21 21:02:19 -06:00
Brian Mendonca
c267fa245a test: avoid asserting auth.json absence for invalid profile creds 2026-02-21 21:02:19 -06:00
Brian Mendonca
7edfedee66 test: guard inline keyboard fixture against undefined input 2026-02-21 21:02:19 -06:00
Brian Mendonca
f232675dbd test: fix latest tsgo inference regressions in test suites 2026-02-21 21:02:19 -06:00
Brian Mendonca
c7d647ad4a test: stabilize model catalog and auth-sync assertions across runtimes 2026-02-21 21:02:19 -06:00
Brian Mendonca
a6e613024f test: normalize outbound payload fixture typing 2026-02-21 21:02:19 -06:00
Brian Mendonca
5cbcf08897 test: finish readonly fixture compatibility for CI check 2026-02-21 21:02:19 -06:00
Brian Mendonca
6440b1bd17 test: fix readonly typing regressions in check baseline 2026-02-21 21:02:19 -06:00
Gustavo Madeira Santana
da6f31c062 chore(tsgo/format): fix CI errors 2026-02-21 21:02:19 -06:00
bmendonca3
322b220925 Security/Gateway: harden Control UI static path containment (#21203)
* Security/Gateway: harden Control UI static path containment

* gateway: block control-ui symlink escapes

* CI: retrigger flaky node test lane

---------

Co-authored-by: Brian Mendonca <brianmendonca@Brians-MacBook-Air.local>
2026-02-21 21:02:19 -06:00
Peter Steinberger
5446bda80a fix(ssrf): block special-use ipv4 ranges 2026-02-21 21:02:19 -06:00
Gustavo Madeira Santana
c63ee0a1d4 refactor(logging): migrate non-agent internal console calls to subsystem logger (#22964)
Merged via /review-pr -> /prepare-pr -> /merge-pr.

Prepared head SHA: b4a5b12422
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-02-21 21:02:19 -06:00
Peter Steinberger
c1e6cbf9ca refactor(gateway): streamline control-ui secure file serving 2026-02-21 21:02:19 -06:00
Peter Steinberger
a2222a01b6 test: streamline config, audit, and qmd coverage 2026-02-21 21:02:19 -06:00
Peter Steinberger
0617548b64 test: dedupe telegram formatting and send cases 2026-02-21 21:02:19 -06:00
Peter Steinberger
43f961ac7b test: consolidate infra approval and heartbeat test matrices 2026-02-21 21:02:19 -06:00
Gustavo Madeira Santana
aea7d3d92c chore(tests): properly check logging in tests 2026-02-21 21:02:19 -06:00
Peter Steinberger
949ad19e51 docs(changelog): add control-ui symlink hardening entry 2026-02-21 21:02:19 -06:00
Peter Steinberger
aded9f8a09 fix(security): enforce msteams redirect allowlist checks 2026-02-21 21:02:19 -06:00
Peter Steinberger
e859156b90 refactor: unify exec shell parser parity and gateway websocket test helpers 2026-02-21 21:02:19 -06:00
Harry Cui Kepler
08c5b89b95 refactor(agents): migrate console.warn/error/info to subsystem logger (#22906)
Merged via /review-pr -> /prepare-pr -> /merge-pr.

Prepared head SHA: a806c4cb27
Co-authored-by: Kepler2024 <166882517+Kepler2024@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-02-21 21:02:18 -06:00
Peter Steinberger
6ee1989e57 docs(agents): note ghsa severity cvss patch constraint 2026-02-21 21:02:18 -06:00
Peter Steinberger
b9cf756893 fix(security): harden control-ui static path resolution 2026-02-21 21:02:18 -06:00
Peter Steinberger
58f06a4608 fix(macos): unify exec allowlist validation pipeline 2026-02-21 21:02:18 -06:00
Peter Steinberger
b71450ad0d refactor(msteams,bluebubbles): dedupe inbound media download helpers 2026-02-21 21:02:18 -06:00
Peter Steinberger
1e1274f7f2 fix: enforce inbound media max-bytes during remote fetch 2026-02-21 21:02:18 -06:00
Peter Steinberger
2999c4db5c fix(macos): enforce path-only exec allowlist patterns 2026-02-21 21:02:18 -06:00
Peter Steinberger
37e7068bd8 docs(changelog): clarify quoted substitution fix for macOS allowlist 2026-02-21 21:02:18 -06:00
Peter Steinberger
892388d790 fix(macos): block quoted shell substitution in allowlist checks 2026-02-21 21:02:18 -06:00
Peter Steinberger
941eb1e0e2 test: group remaining suite cleanups 2026-02-21 21:02:18 -06:00
Peter Steinberger
b320fafd0c test: tighten plugin e2e matrix coverage 2026-02-21 21:02:18 -06:00
Peter Steinberger
1ec52d6432 test: optimize gateway infra memory and security coverage 2026-02-21 21:02:18 -06:00
Peter Steinberger
949e06c5e5 test: dedupe channel and transport adapters 2026-02-21 21:02:18 -06:00
Peter Steinberger
b15b993332 test: streamline auto-reply and tts suites 2026-02-21 21:02:18 -06:00
Peter Steinberger
0e63ad6b85 test: consolidate agent command and config scenarios 2026-02-21 21:02:18 -06:00
Peter Steinberger
e7f155a09b refactor(cli): share outbound send dependency mapping 2026-02-21 21:02:18 -06:00
Peter Steinberger
bfb04cfcd9 refactor(cli): dedupe system gateway action handling 2026-02-21 21:02:18 -06:00
Peter Steinberger
a7de644a07 refactor(cli): share update global command runner adapter 2026-02-21 21:02:18 -06:00
Peter Steinberger
71d7ea9ae4 refactor(cli): extract shared command-removal and timeout action helpers 2026-02-21 21:02:18 -06:00
Peter Steinberger
8f469e824f test(cli): expand agent registrar coverage 2026-02-21 21:02:18 -06:00
Peter Steinberger
bea757dcd5 test(cli): add message registrar wiring coverage 2026-02-21 21:02:18 -06:00
Peter Steinberger
cf44289ba1 test(cli): add onboard registrar coverage for daemon flag precedence 2026-02-21 21:02:18 -06:00
Peter Steinberger
9cbf533b75 test(cli): add setup registrar coverage for wizard dispatch 2026-02-21 21:02:18 -06:00
Peter Steinberger
f31369b096 test(cli): add configure registrar coverage 2026-02-21 21:02:18 -06:00
Peter Steinberger
e5b7a48653 test(cli): add build-program wiring coverage 2026-02-21 21:02:18 -06:00
Peter Steinberger
3559cb3ecd test(cli): add program help coverage for root output and version fast-path 2026-02-21 21:02:18 -06:00
Peter Steinberger
e521e719aa test(cli): add preaction hook coverage for banner/config/plugin gating 2026-02-21 21:02:18 -06:00
Peter Steinberger
cd1896f96c test(cli): add program context unit coverage 2026-02-21 21:02:18 -06:00
Peter Steinberger
7b3e5950f1 test(cli): add program helper parser coverage 2026-02-21 21:02:18 -06:00
Peter Steinberger
1859eef961 test(cli): add action-reparse coverage for fallback argv resolution 2026-02-21 21:02:18 -06:00
Peter Steinberger
df48651c63 test(cli): add status/health/sessions registrar coverage 2026-02-21 21:02:18 -06:00
Peter Steinberger
9126f44fb2 fix(cli): honor dashboard no-open and expand maintenance coverage 2026-02-21 21:02:18 -06:00
Peter Steinberger
46fccf0592 test(cli): dedupe config-guard harness and cover invalid-config gates 2026-02-21 21:02:18 -06:00
Peter Steinberger
e854366b68 test(cli): expand command-registry grouped and subcommand coverage 2026-02-21 21:02:18 -06:00
Peter Steinberger
d9d448187c test(cli): extend command option inheritance edge coverage 2026-02-21 21:02:17 -06:00
Peter Steinberger
0b2b04f4a0 test(cli): dedupe inspect runner and cover snapshot/screenshot mode defaults 2026-02-21 21:02:17 -06:00
Peter Steinberger
ee7c189a51 test(cli): dedupe browser state command runner and cover input validation 2026-02-21 21:02:17 -06:00
Peter Steinberger
963492164c test(cli): dedupe route assertions and cover missing-flag guards 2026-02-21 21:02:17 -06:00
Peter Steinberger
af97539b1f test(cron): dedupe delivery-target whatsapp stubs and cover sessionKey fallback 2026-02-21 21:02:17 -06:00
Peter Steinberger
c11e012099 test(channels): dedupe whatsapp heartbeat fixtures and cover recipient sources 2026-02-21 21:02:17 -06:00
Peter Steinberger
450ac9a3b6 test(web): dedupe inbound cfg fixtures and cover reply/from formatting 2026-02-21 21:02:17 -06:00
Peter Steinberger
973dddea10 test(cli): dedupe memory runtime spies and cover json/search fallback flows 2026-02-21 21:02:17 -06:00
Peter Steinberger
31e1897ad6 test(media): dedupe server fixture helpers and cover 404/id validation 2026-02-21 21:02:17 -06:00
Peter Steinberger
ec6981ac3c test(web): dedupe mention assertions and cover diagnostics helpers 2026-02-21 21:02:17 -06:00
Peter Steinberger
840455137c test(browser): dedupe chrome mocks and cover SIGKILL escalation 2026-02-21 21:02:17 -06:00
Peter Steinberger
d3220399a7 test(cli): dedupe acp program setup and cover token-file errors 2026-02-21 21:02:17 -06:00
Peter Steinberger
5bd28aa2b9 test(version): dedupe fixture setup and cover invalid URL/version metadata 2026-02-21 21:02:17 -06:00
Peter Steinberger
5f84de2c75 test(cli): dedupe camera temp fixtures and cover clip url error paths 2026-02-21 21:02:17 -06:00
Peter Steinberger
2d6eb69678 test(browser): dedupe path fixture calls and cover root resolvers 2026-02-21 21:02:17 -06:00
Peter Steinberger
4acb31d43a test(infra): dedupe install-source fixtures and cover npm pack parsing 2026-02-21 21:02:17 -06:00
Peter Steinberger
3a6c4ad1ef test(infra): dedupe gateway-lock setup and cover guard paths 2026-02-21 21:02:17 -06:00
Peter Steinberger
483b775328 test(pairing): dedupe fixture writers and expand store coverage 2026-02-21 21:02:17 -06:00
Peter Steinberger
bbeb2c8d39 test(line): dedupe event fixtures and cover room postback routing 2026-02-21 21:02:17 -06:00
Peter Steinberger
d253099b44 test(config): dedupe io fixture wiring and cover legacy config-path override 2026-02-21 21:02:17 -06:00
Peter Steinberger
0faf57bf5e test(infra): dedupe archive case setup and cover packed-root multi-dir failure 2026-02-21 21:02:17 -06:00
Peter Steinberger
f74db35f9d test(agents): dedupe skill helper fixtures and cover empty-body rendering 2026-02-21 21:02:17 -06:00
Peter Steinberger
bbebee01ae test(infra): dedupe store temp fixtures and cover json5 voicewake sanitization 2026-02-21 21:02:17 -06:00
Peter Steinberger
8b74aca3fb test(agents): dedupe agent-path fixtures and cover env override precedence 2026-02-21 21:02:17 -06:00
Peter Steinberger
3a691fad8c test(browser): dedupe invalid-path assertions and cover blank path rejection 2026-02-21 21:02:17 -06:00
Peter Steinberger
56fe7d91c8 test(memory): dedupe temp-dir lifecycle hooks and cover overlapping path dedupe 2026-02-21 21:02:17 -06:00
Peter Steinberger
c6f4fb6b2f test(scripts): dedupe a2ui temp fixture and cover skip-missing env path 2026-02-21 21:02:17 -06:00
Peter Steinberger
2aa9d1bc4f test(web): dedupe logout fixture setup and cover non-legacy oauth removal 2026-02-21 21:02:17 -06:00
Peter Steinberger
c85685a52c test(cli): dedupe camera fetch stubs and cover empty-body download rejection 2026-02-21 21:02:17 -06:00
Peter Steinberger
f52416fc6e test(core): dedupe temp dirs in utils tests and cover lid lookup error fallback 2026-02-21 21:02:17 -06:00
Peter Steinberger
e7187c977b test(infra): dedupe brew fixtures and cover explicit brew file precedence 2026-02-21 21:02:17 -06:00
Peter Steinberger
44fc1be7f5 test(infra): dedupe dotenv fixture setup and cover fallback-only load 2026-02-21 21:02:17 -06:00
Peter Steinberger
5de05f64a2 test(daemon): dedupe schtasks install fixture and cover empty env omission 2026-02-21 21:02:17 -06:00
Peter Steinberger
f0c92ddde0 test(cron): dedupe run-log temp fixtures and cover invalid line filtering 2026-02-21 21:02:17 -06:00
Peter Steinberger
fe9b1c7c57 test(config): dedupe temp roots and cover legacy state-dir fallback 2026-02-21 21:02:17 -06:00
Peter Steinberger
d154dca766 test(commands): dedupe signal install extract fixture and cover zip extract 2026-02-21 21:02:17 -06:00
Peter Steinberger
f7e1c685b0 test(gateway): dedupe control-ui fixture setup and cover query asset 404 2026-02-21 21:02:17 -06:00
Peter Steinberger
c83da1999b test(agents): dedupe exec preflight fixtures and cover quoted-path skip 2026-02-21 21:02:17 -06:00
Peter Steinberger
bb0ea10316 test(gateway): dedupe boot workspace setup and cover boot failures 2026-02-21 21:02:17 -06:00
Peter Steinberger
80b669fa52 test(commands): dedupe auth-sync fixture and cover invalid profile handling 2026-02-21 21:02:17 -06:00
Peter Steinberger
f55056f6cd test(agents): dedupe workspace template temp roots and cover fallback resolution 2026-02-21 21:02:16 -06:00
Peter Steinberger
9bc93bd881 test(reply): reuse compaction fixture setup and cover numeric fallback defaults 2026-02-21 21:02:16 -06:00
Peter Steinberger
9a11f6bde0 test(infra): dedupe heartbeat ghost reminder temp/mocks setup 2026-02-21 21:02:16 -06:00
Peter Steinberger
f2a01cba44 test(browser): dedupe fixture lifecycle and cover directory-path rejection 2026-02-21 21:02:16 -06:00
Peter Steinberger
e7bae9a8ec test(web): dedupe temp dir setup in web auto-reply utils tests 2026-02-21 21:02:16 -06:00
Val Alexander
eb8c1f5321 feat: enhance overview dashboard with new components and functionality
- Introduced `command-palette`, `bottom-tabs`, and various overview components to improve user navigation and interaction.
- Implemented attention items and event log display for better monitoring of system status.
- Enhanced the overview layout with new cards for usage statistics, session details, and quick actions.
- Added functionality for handling keyboard shortcuts and improved event logging.
- Updated state management to support new dashboard features, including stream mode and log handling.
2026-02-21 20:59:59 -06:00
Val Alexander
2caee511bd feat: introduce new dashboard components and enhance layout
- Added `attention-center`, `bottom-tabs`, `command-palette`, `connection-badge`, `cron-summary-card`, `dashboard-header`, `event-log`, `log-tail`, `quick-actions`, and `quick-note-stream` components to improve user interaction and functionality.
- Enhanced the main content area with tab change handling and navigation events.
- Updated styles for various components, including improved padding, margins, and responsiveness.
- Introduced new icons and visual elements for better user experience across the dashboard.
2026-02-21 20:09:53 -06:00
Val Alexander
c8989f31e3 fix: prefer OPENCLAW_GATEWAY_PASSWORD env over disk config 2026-02-21 19:02:38 -06:00
Val Alexander
d8de5432f6 style: refine agent chat component styles for improved UX
- Adjusted padding, margins, and font sizes for better layout and readability.
- Introduced a new glow effect in the welcome section to enhance visual appeal.
- Updated badge and starter card styles for consistency and improved interaction.
- Enhanced responsiveness and dynamic color integration across various elements.
2026-02-21 18:42:21 -06:00
Val Alexander
f2c5a27812 feat: enhance agent chat styling with dynamic color
- Integrated dynamic agent color into the chat view, improving visual representation.
- Updated the agent avatar size for better visibility and aesthetics.
- Added a glow effect to the welcome section for enhanced user experience.
2026-02-21 18:40:28 -06:00
Val Alexander
d5ee2ef21a dashboard-lit: redesign chat starters as quick-send cards 2026-02-21 18:37:31 -06:00
Val Alexander
c36214d2a9 refactor: update chat starter functionality and structure
- Replaced the previous duty prompts with a new structure for quick-send starter cards, enhancing user interaction.
- Each starter card now includes a label, prompt, and icon for better clarity and engagement.
- Removed the outline expansion state as it is no longer needed with the new starter card implementation.
- Updated related methods to utilize the new starter card format, improving the overall chat experience.
2026-02-21 18:36:17 -06:00
Val Alexander
94156c7eed feat: enhance chat functionality and styling
- Added a new `resetSession` function to manage chat sessions effectively.
- Implemented a new button for starting a new chat, which resets the current session and clears chat history.
- Introduced a compact context button for improved user experience.
- Updated styles for chat components, including a new input divider for better layout.
- Enhanced CSS for various elements, improving responsiveness and visual consistency.
2026-02-21 18:34:16 -06:00
Val Alexander
5a5444992f fix: disable animations in reduced-motion, align input/button heights 2026-02-21 18:26:22 -06:00
Val Alexander
348bb797b6 feat: add agent management components and enhance chat interface
- Introduced new components for agent management, including `agent-panel`, `agent-dropdown-switcher`, and `agent-profile-provider`.
- Implemented `agent-avatar` for displaying agent profiles with color coding.
- Enhanced chat interface with `chat-bubble` for improved message display and interaction.
- Added new utility functions for managing agent profiles and sessions.
- Updated styles for better responsiveness and user experience across components.
2026-02-21 18:25:33 -06:00
Val Alexander
1349b67997 feat: enhance session management and overview display
- Introduced a new sessions list in the overview view, displaying active sessions with updated styles.
- Updated session summary type to include additional fields such as `kind`, `label`, and `displayName`.
- Modified the `loadSessions` function to accept new options for session retrieval.
- Improved responsiveness and layout of session rows with hover effects and better information display.
- Adjusted tick interval display format for improved readability.
2026-02-21 15:57:32 -06:00
Val Alexander
49d1e3fdc3 feat: integrate markdown rendering and slash commands in chat interface
- Added support for markdown rendering in chat messages using `@create-markdown/preview`.
- Implemented slash command functionality, allowing users to trigger commands with a '/' prefix.
- Enhanced chat input to handle file attachments and image pasting.
- Updated sidebar navigation to display the current agent version dynamically.
- Introduced new styles for chat components and improved responsiveness for mobile views.
- Added utility functions for managing agents and attachments in the chat context.
2026-02-21 15:39:14 -06:00
Val Alexander
7ece3b7e51 fix: prevent compaction "prompt too long" errors (#22921)
* includes: prompt overhead in compaction safeguard calculation.

Subtracts SUMMARIZATION_OVERHEAD_TOKENS from maxChunkTokens in both the main summarization path and the dropped-messages summarization path.

This ensures the chunk budget leaves room for the prompt overhead that generateSummary wraps around each chunk.

* adds: budget for overhead tokens to use an effectiveMax instead of maxTokens naïvely.

- Added `SUMMARIZATION_OVERHEAD_TOKENS = 4096` — a budget for the tokens that `generateSummary` adds on top of the serialized conversation (system prompt, `<conversation>` tags, summarization instructions, `<previous-summary>` block, and reasoning: "high" thinking budget).
- `chunkMessagesByMaxTokens` now divides `maxTokens` by `SAFETY_MARGIN` (1.2) before comparing against estimated token counts. Previously, the safety margin was only used in `computeAdaptiveChunkRatio` and `isOversizedForSummary` but not in the actual chunking loop — so chunks could be built that fit the estimated budget but exceeded the real budget once the API tokenized them properly.
2026-02-21 14:43:41 -06:00
Onur Solmaz
189886d16e docs: add Onur Solmaz to contributors (#22890) 2026-02-21 14:43:41 -06:00
Peter Steinberger
695f59c550 test: avoid template-literal temp path in runner fixture 2026-02-21 14:43:41 -06:00
Peter Steinberger
c044ec5b15 fix(test): skip test-utils files in temp path guard 2026-02-21 14:43:41 -06:00
Peter Steinberger
f00303a730 fix(ci): stabilize install smoke in docker 2026-02-21 14:43:41 -06:00
Peter Steinberger
801f614ff5 fix(ci): sync plugin versions and harden install smoke 2026-02-21 14:43:41 -06:00
Peter Steinberger
0cbc7f3999 test(media): dedupe auto-e2e temp/env setup and cover no-binary path 2026-02-21 14:43:41 -06:00
Peter Steinberger
08649d6027 test(cli): dedupe temp dirs in camera tests and cover non-ok url responses 2026-02-21 14:43:41 -06:00
Peter Steinberger
31a4edae3b test(cli): dedupe acp secret file setup and cover password flag collisions 2026-02-21 14:43:41 -06:00
Peter Steinberger
d6d63f8095 test(media): dedupe temp roots and cover directory attachment rejection 2026-02-21 14:43:41 -06:00
Peter Steinberger
a64d49787e refactor(test): dedupe temp media fixture setup in apply e2e 2026-02-21 14:43:41 -06:00
Peter Steinberger
76c95e1bc9 refactor(test): share temp workspace helper in compact skill path tests 2026-02-21 14:43:41 -06:00
Peter Steinberger
b062a61e85 refactor(test): dedupe temp dir lifecycle in agents skills directory e2e 2026-02-21 14:43:41 -06:00
Peter Steinberger
93bdbde81d refactor(test): dedupe temp dirs and skill writer in snapshot e2e 2026-02-21 14:43:41 -06:00
Peter Steinberger
490de55f5a refactor(test): dedupe temp workspace setup in skills load entries e2e 2026-02-21 14:43:41 -06:00
Peter Steinberger
adac2d6604 refactor(test): dedupe temp root setup in identity avatar e2e 2026-02-21 14:43:41 -06:00
Peter Steinberger
c98214b9ea refactor(test): dedupe temp session path setup in file repair e2e 2026-02-21 14:43:40 -06:00
Peter Steinberger
3de4e0d80f test(agents): add coverage for shared skill writer helper 2026-02-21 14:43:40 -06:00
Peter Steinberger
1caa6e8cbb refactor(test): reuse shared skill writer in skills e2e 2026-02-21 14:43:40 -06:00
Peter Steinberger
d13949048b refactor(test): reuse shared skill writer in sandbox and bundled tests 2026-02-21 14:43:40 -06:00
Peter Steinberger
515c29aeaa refactor(test): drop redundant env snapshots in skill download suites 2026-02-21 14:43:40 -06:00
Peter Steinberger
b1faad596a refactor(test): centralize temp workspace env handling for skill install tests 2026-02-21 14:43:40 -06:00
Peter Steinberger
adad4fa2ee refactor(test): share temp workspace helper for skill download suites 2026-02-21 14:43:40 -06:00
Peter Steinberger
c21a9faa81 refactor(test): share temp command dir helper in shell utils e2e 2026-02-21 14:43:40 -06:00
Peter Steinberger
7d794dcb35 refactor(test): snapshot gateway auth env in security audit tests 2026-02-21 14:43:40 -06:00
Peter Steinberger
ee77b1359e refactor(test): snapshot daemon cli env in coverage e2e 2026-02-21 14:43:40 -06:00
Peter Steinberger
3341633d60 refactor(test): snapshot shell/path env in bash tools e2e 2026-02-21 14:43:40 -06:00
Peter Steinberger
e998d87446 refactor(test): dedupe env override assertions in skills e2e 2026-02-21 14:43:40 -06:00
Peter Steinberger
8050012b9e refactor(test): use env helper for web auto-reply timezone test 2026-02-21 14:43:40 -06:00
Peter Steinberger
8e34e005fa refactor(test): snapshot env in shell utils e2e 2026-02-21 14:43:40 -06:00
Peter Steinberger
61b43ceec4 refactor(test): snapshot bundled hooks env in loader tests 2026-02-21 14:43:40 -06:00
Peter Steinberger
89813c877f refactor(test): snapshot deprecated auth profile env in e2e 2026-02-21 14:43:40 -06:00
Peter Steinberger
3d182b7304 refactor(test): reuse env helper in workspace skill sync gating 2026-02-21 14:43:40 -06:00
Peter Steinberger
16d6b695d7 refactor(test): reuse env helper in workspace skill status tests 2026-02-21 14:43:40 -06:00
Peter Steinberger
f22d331b5c refactor(test): use env helper in workspace skills prompt gating 2026-02-21 14:43:40 -06:00
Peter Steinberger
ee592f86ef refactor(test): snapshot PATH env in bash tools exec path e2e 2026-02-21 14:43:40 -06:00
Peter Steinberger
c9db468f16 test(agents): cover bundled skills env override and dedupe setup 2026-02-21 14:43:40 -06:00
Peter Steinberger
35cc5333bf refactor(test): snapshot tar.bz2 skills install env 2026-02-21 14:43:40 -06:00
Peter Steinberger
33d25ab6c9 refactor(test): snapshot skills install state dir env 2026-02-21 14:43:40 -06:00
Peter Steinberger
8291008c88 refactor(test): snapshot telegram action env in e2e suite 2026-02-21 14:43:40 -06:00
Peter Steinberger
43632d8385 test(commands): stabilize message e2e env and gateway mock 2026-02-21 14:43:40 -06:00
Peter Steinberger
0bb2d8629d refactor(test): snapshot tailscale test env per case 2026-02-21 14:43:40 -06:00
Peter Steinberger
59facd663e test(tui): cover gateway auth fallbacks and dedupe env setup 2026-02-21 14:43:40 -06:00
Peter Steinberger
48d1b7d653 refactor(test): reuse env helper in gateway status e2e 2026-02-21 14:43:40 -06:00
Peter Steinberger
011f2760f3 refactor(test): replace manual PATH restore with env helpers 2026-02-21 14:43:40 -06:00
Peter Steinberger
8f93b9d950 refactor(test): share media audio fixture across runner tests 2026-02-21 14:43:40 -06:00
Peter Steinberger
d7b83666ca refactor(test): dedupe env setup in envelope and config tests 2026-02-21 14:43:40 -06:00
Peter Steinberger
30baf2fe7e refactor(test): use env helper for telegram TZ override 2026-02-21 14:43:40 -06:00
Peter Steinberger
a3b25f4dfa refactor(test): replace ad-hoc env restore blocks with helpers 2026-02-21 14:43:40 -06:00
Peter Steinberger
aedd2a7566 refactor(test): dedupe telegram token env handling in tests 2026-02-21 14:43:40 -06:00
Peter Steinberger
4f633ba625 refactor(test): collapse gateway e2e env snapshots 2026-02-21 14:43:40 -06:00
Peter Steinberger
3f85a95c4e refactor(test): snapshot onboarding gateway env via helper 2026-02-21 14:43:39 -06:00
Peter Steinberger
e729d7e6af refactor(test): reuse env helper in update cli tests 2026-02-21 14:43:39 -06:00
Peter Steinberger
e5694669d6 refactor(test): reuse env helper in onboarding provider auth e2e 2026-02-21 14:43:39 -06:00
Peter Steinberger
3b3660c14d refactor(test): streamline env setup in auth and gateway e2e 2026-02-21 14:43:39 -06:00
Peter Steinberger
469e25a6fe refactor(test): simplify env setup in safe bins and skills status 2026-02-21 14:43:39 -06:00
Peter Steinberger
466347d217 refactor(test): reuse env helper in gateway tool e2e 2026-02-21 14:43:39 -06:00
Peter Steinberger
277b295257 refactor(test): dedupe provider env setup in model config tests 2026-02-21 14:43:39 -06:00
Peter Steinberger
be163baf6d refactor(test): use env helper in agent paths e2e 2026-02-21 14:43:39 -06:00
Peter Steinberger
12d1155de5 refactor(test): standardize env helpers across suites 2026-02-21 14:43:39 -06:00
Peter Steinberger
ac7d0fb14d refactor(test): simplify env scoping in exec and usage tests 2026-02-21 14:43:39 -06:00
Peter Steinberger
fd0e35d10c refactor(test): reuse env helper in models auth sync 2026-02-21 14:43:39 -06:00
Peter Steinberger
30d4b27acd refactor(test): use env snapshots in setup hooks 2026-02-21 14:43:39 -06:00
Peter Steinberger
f1c1f752ec refactor(test): dedupe env setup across suites 2026-02-21 14:43:39 -06:00
Peter Steinberger
1f896f140f docs(changelog): keep 2026.2.22 split from 2026.2.21 2026-02-21 14:43:39 -06:00
Sean McLellan
51d9e669f6 fix: flatten nested anyOf/oneOf in Gemini schema cleaning (openclaw#22825) thanks @Oceanswave
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini

Co-authored-by: Oceanswave <760674+Oceanswave@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-21 14:43:39 -06:00
Peter Steinberger
fa57778856 fix(gateway): strip inline directive tags from displayed text 2026-02-21 14:43:39 -06:00
Peter Steinberger
16e3685145 refactor(bluebubbles): share dm/group access policy checks 2026-02-21 14:43:39 -06:00
Peter Steinberger
aa748eb2f6 docs(changelog): split 2026.2.21 release entries 2026-02-21 14:43:39 -06:00
Peter Steinberger
87f400a491 refactor(discord): split allowlist resolution flow 2026-02-21 14:43:39 -06:00
Peter Steinberger
cf5fb7d4db fix(security): harden shell env fallback 2026-02-21 14:43:39 -06:00
Peter Steinberger
6ef642ed3a docs: document thread-bound subagent sessions and remove plan 2026-02-21 14:43:39 -06:00
Peter Steinberger
1dca39c7ce refactor(security): remove unused empty allowlist mode 2026-02-21 14:43:39 -06:00
Peter Steinberger
752e21ccf6 refactor(security): make empty allowlist behavior explicit 2026-02-21 14:43:39 -06:00
Peter Steinberger
7f344a7299 refactor(security): centralize path guard helpers 2026-02-21 14:43:38 -06:00
Peter Steinberger
0d7aff2ba5 fix(config): add shared streaming resolver module 2026-02-21 14:43:38 -06:00
Peter Steinberger
9fb7ef4048 refactor(config): unify streaming config across channels 2026-02-21 14:43:38 -06:00
Peter Steinberger
b258d4f482 fix(discord): canonicalize resolved allowlists to ids 2026-02-21 14:43:38 -06:00
Nimrod Gutman
3bb5cd0003 fix: update changelog for ios talk tts prefetch (#22833) (thanks @ngutman) 2026-02-21 14:43:38 -06:00
Nimrod Gutman
461450e150 fix(ios): suppress expected speech cancellation errors 2026-02-21 14:43:38 -06:00
Nimrod Gutman
5e9326a185 fix(ios): prefetch talk tts segments 2026-02-21 14:43:38 -06:00
Peter Steinberger
f79de37d97 fix(security): fail closed parsed chat allowlist 2026-02-21 14:43:38 -06:00
Simone Macario
b3bf4c1d20 fix(cron): persist delivered flag in job state to surface delivery failures (openclaw#19174) thanks @simonemacario
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini

Co-authored-by: simonemacario <2116609+simonemacario@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-21 14:43:38 -06:00
Peter Steinberger
fa2beb0821 refactor(gateway): extract connect and role policy logic 2026-02-21 14:43:38 -06:00
Peter Steinberger
fd9266ce5e fix(security): warn on Discord name-based allowlists in audit 2026-02-21 14:43:38 -06:00
Peter Steinberger
b10a53cf82 fix(security): block zip symlink escape in archive extraction 2026-02-21 14:43:38 -06:00
Peter Steinberger
97d8c378fd fix(gateway): block node role when device identity is missing 2026-02-21 14:43:38 -06:00
Peter Steinberger
e40482920f refactor: simplify relay runtime state 2026-02-21 14:43:38 -06:00
Peter Steinberger
03a94a7f55 fix(macos): consolidate exec approval evaluation 2026-02-21 14:43:38 -06:00
Peter Steinberger
0a2be60747 fix: hide synthetic untrusted metadata in chat history 2026-02-21 14:43:38 -06:00
Peter Steinberger
c78ffd29ec fix: harden extension relay auth token flow 2026-02-21 14:43:38 -06:00
Peter Steinberger
fa665d7ed7 refactor: tighten safe-bin policy model and docs parity 2026-02-21 14:43:38 -06:00
Peter Steinberger
edababb970 docs: clarify non-default scope for safeBins sort fix 2026-02-21 14:43:38 -06:00
Peter Steinberger
c2456f6303 fix(security): harden macos rawCommand allowlist resolution 2026-02-21 14:43:38 -06:00
niceysam
139aa813c9 fix: remove false-positive billing error rewrite on normal assistant text (openclaw#17834) thanks @niceysam
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini

Co-authored-by: niceysam <256747835+niceysam@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-21 14:43:38 -06:00
Peter Steinberger
bff13918cc fix: block safeBins sort --compress-program bypass 2026-02-21 14:43:38 -06:00
Peter Steinberger
a549900412 chore: prep 2026.2.22 unreleased and publish new npm plugins 2026-02-21 14:43:38 -06:00
Thorfinn
f27ad102f2 fix: correct MiniMax M2.5 pricing (was ~50x too high) (openclaw#22755) thanks @miloudbelarebia
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini

Co-authored-by: miloudbelarebia <136994453+miloudbelarebia@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-21 14:43:38 -06:00
Peter Steinberger
3b1126a71d fix: gate doctor oauth-dir repair by channel config 2026-02-21 14:43:38 -06:00
Peter Steinberger
ac6ff5a5e0 fix: verify gateway restart health after daemon restart 2026-02-21 14:43:38 -06:00
Peter Steinberger
9672d52046 chore: update appcast for 2026.2.21 mac release 2026-02-21 14:43:37 -06:00
Peter Steinberger
b544625056 fix: ignore prerelease suffixes in release-check plugin version checks 2026-02-21 14:43:37 -06:00
Peter Steinberger
43154b30f9 fix: harden update restart service convergence 2026-02-21 14:43:37 -06:00
Val Alexander
9142abdb46 feat: enhance chat view and theme management functionality
- Introduced theme options for improved user experience in the dashboard.
- Refactored theme toggle to dynamically reorder buttons based on the active theme.
- Enhanced chat view with improved state management for messages and sessions.
- Added new icons for better visual representation in the chat interface.
- Updated styles for chat components to improve layout and responsiveness.
2026-02-21 14:39:20 -06:00
Val Alexander
3528d9fb61 feat: update connection status button styles and enhance theme toggle functionality
- Refactored connection status button classes for improved clarity and consistency.
- Adjusted styles for connection status buttons, including padding and height.
- Enhanced theme toggle button with responsive behavior for hover and focus states.
- Implemented transitions for button visibility and layout adjustments in collapsed state.
2026-02-21 14:02:14 -06:00
Val Alexander
55bd5f7075 feat: implement connection status UI enhancements
- Added a new connection status component with interactive features for displaying connection health.
- Introduced styles for connection status buttons, menus, and animations in styles.css.
- Updated OverviewView to conditionally render the connection section based on connection status.
- Improved user experience with click handling for connection actions and menu visibility.
2026-02-21 13:54:33 -06:00
Val Alexander
f032812a74 feat: refactor dashboard app to use connection-status component
- Removed direct gateway connection handling from app.ts.
- Introduced a new connection-status component to encapsulate connection health display.
- Updated app rendering logic to utilize the new component for improved modularity and readability.
2026-02-21 13:41:12 -06:00
Val Alexander
333fe57334 feat: implement liquid glass design tokens and enhance theming in styles.css
- Introduced new CSS variables for liquid glass design, including blur, saturation, radius, and animation durations.
- Updated existing theme variables for 'docsTheme', 'landingTheme', and 'light' to align with the new design tokens.
- Enhanced sidebar and app shell styles for improved responsiveness and visual consistency.
- Added support for reduced motion preferences in animations.
2026-02-21 13:33:24 -06:00
Val Alexander
3b842a786b feat: enhance dashboard-lit with new features and UI improvements
- Updated .gitignore to include .ant-colony directory.
- Modified README.md to reflect changes in gateway authentication settings.
- Added a new favicon.svg for improved branding.
- Refactored app.ts to implement theme management and sidebar navigation.
- Introduced sidebar-nav component for better navigation structure.
- Added controllers for overview, presence, and sessions management.
- Enhanced navigation library with new tab definitions and titles.
- Improved overview-view to display gateway health and stats dynamically.
- Updated styles.css for better theming and responsive design.
2026-02-21 13:08:35 -06:00
Val Alexander
557be4c292 feat: update pre-commit configuration and enhance UI styling
- Added local pre-commit configuration file to .gitignore for better management.
- Removed the existing .pre-commit-config.yaml file as it is now managed locally.
- Updated AGENTS.md to reflect changes in pre-commit hook installation instructions.
- Enhanced CSS styles in dashboard-lit for improved theming and UI consistency, including new glassmorphism effects and responsive design adjustments.
- Introduced icon components for better visual representation in the OverviewView.
2026-02-21 11:53:46 -06:00
Val Alexander
a3a527f991 feat: add sensitive content check to CI and pre-commit hooks
- Integrated a new Node.js script to check for sensitive content in changed files, including private IPs and gateway secrets.
- Updated CI workflow to include the setup of Node.js and the execution of the sensitive content check.
- Enhanced pre-commit hook to validate staged files against sensitive content rules.
2026-02-21 11:21:53 -06:00
Val Alexander
003fda4c48 feat: integrate device identity management and enhance gateway connection handling
- Added '@noble/ed25519' dependency for device identity signing.
- Implemented device identity generation and storage in the GatewayClient.
- Enhanced GatewayProvider to track reconnect failures and provide manual retry options.
- Updated OverviewView to display connection status and error messages related to device identity and secure context requirements.
- Improved README with security hardening instructions for the Control UI.
2026-02-21 11:21:39 -06:00
Val Alexander
5bb3322f44 feat: enhance gateway connection handling and UI updates
- Updated README with connection panel instructions for gateway URL and shared secret.
- Refactored GatewayProvider to manage gateway URL and shared secret more effectively.
- Added reconnect functionality to GatewayState for improved client management.
- Enhanced OverviewView and ChatView to support user input for gateway URL and shared secret, including error handling for password mismatches.
2026-02-21 10:54:04 -06:00
Val Alexander
3e87c6b5e5 Dashboard Lit: add initial app with routing and gateway client 2026-02-21 10:30:27 -06:00
Vincent Koc
b3f3acd357 docs: revert automated heading consistency edits (#22743) 2026-02-21 10:30:27 -06:00
Peter Steinberger
e9de97c8b8 test: tolerate transient zai and minimax live-model failures 2026-02-21 10:30:27 -06:00
Vincent Koc
dc8c8ec224 CI: remove docs spellcheck step (#22738) 2026-02-21 10:30:27 -06:00
Peter Steinberger
3cdd49dd01 fix: stabilize swift protocol generation and flaky tests 2026-02-21 10:30:27 -06:00
Peter Steinberger
960c9d09a2 test: stabilize docker e2e suites for pairing and model updates 2026-02-21 10:30:27 -06:00
Peter Steinberger
ca00ac1eb4 fix(macos): harden exec allowlist shell-chain checks 2026-02-21 10:30:27 -06:00
Onur
d61630182c feat: thread-bound subagents on Discord (#21805)
* docs: thread-bound subagents plan

* docs: add exact thread-bound subagent implementation touchpoints

* Docs: prioritize auto thread-bound subagent flow

* Docs: add ACP harness thread-binding extensions

* Discord: add thread-bound session routing and auto-bind spawn flow

* Subagents: add focus commands and ACP/session binding lifecycle hooks

* Tests: cover thread bindings, focus commands, and ACP unbind hooks

* Docs: add plugin-hook appendix for thread-bound subagents

* Plugins: add subagent lifecycle hook events

* Core: emit subagent lifecycle hooks and decouple Discord bindings

* Discord: handle subagent bind lifecycle via plugin hooks

* Subagents: unify completion finalizer and split registry modules

* Add subagent lifecycle events module

* Hooks: fix subagent ended context key

* Discord: share thread bindings across ESM and Jiti

* Subagents: add persistent sessions_spawn mode for thread-bound sessions

* Subagents: clarify thread intro and persistent completion copy

* test(subagents): stabilize sessions_spawn lifecycle cleanup assertions

* Discord: add thread-bound session TTL with auto-unfocus

* Subagents: fail session spawns when thread bind fails

* Subagents: cover thread session failure cleanup paths

* Session: add thread binding TTL config and /session ttl controls

* Tests: align discord reaction expectations

* Agent: persist sessionFile for keyed subagent sessions

* Discord: normalize imports after conflict resolution

* Sessions: centralize sessionFile resolve/persist helper

* Discord: harden thread-bound subagent session routing

* Rebase: resolve upstream/main conflicts

* Subagents: move thread binding into hooks and split bindings modules

* Docs: add channel-agnostic subagent routing hook plan

* Agents: decouple subagent routing from Discord

* Discord: refactor thread-bound subagent flows

* Subagents: prevent duplicate end hooks and orphaned failed sessions

* Refactor: split subagent command and provider phases

* Subagents: honor hook delivery target overrides

* Discord: add thread binding kill switches and refresh plan doc

* Discord: fix thread bind channel resolution

* Routing: centralize account id normalization

* Discord: clean up thread bindings on startup failures

* Discord: add startup cleanup regression tests

* Docs: add long-term thread-bound subagent architecture

* Docs: split session binding plan and dedupe thread-bound doc

* Subagents: add channel-agnostic session binding routing

* Subagents: stabilize announce completion routing tests

* Subagents: cover multi-bound completion routing

* Subagents: suppress lifecycle hooks on failed thread bind

* tests: fix discord provider mock typing regressions

* docs/protocol: sync slash command aliases and delete param models

* fix: add changelog entry for Discord thread-bound subagents (#21805) (thanks @onutc)

---------

Co-authored-by: Shadow <hi@shadowing.dev>
2026-02-21 10:30:27 -06:00
Peter Steinberger
8448ff40cd test: add byteplus coding-plan live test 2026-02-21 10:30:27 -06:00
Peter Steinberger
e7c7142014 fix(agents): raise dynamic retry cap budget 2026-02-21 10:30:26 -06:00
Peter Steinberger
57374beb63 fix(telegram): guard duplicate bot token accounts 2026-02-21 10:30:26 -06:00
Peter Steinberger
d3f5bdae89 fix: stabilize docker live model and doctor-switch tests 2026-02-21 10:30:26 -06:00
Peter Steinberger
4caf695365 fix(agents): cap embedded runner retry loop 2026-02-21 10:30:26 -06:00
Val Alexander
cf45f877ed - Removed the @openclaw/dashboard-next package and its associated files.
- Updated dependencies in `pnpm-lock.yaml` to reflect the new package structure.
- Cleaned up configuration and environment files related to the previous dashboard implementation.
2026-02-21 09:56:41 -06:00
Val Alexander
152dda7108 feat(dashboard): introduce dashboard-next package with WebSocket client and UI components
- Added a new package `@openclaw/dashboard-next` for the Next.js dashboard.
- Implemented WebSocket client functionality in `@openclaw/dashboard-gateway-client`.
- Created UI components for chat and overview pages.
- Included configuration files and environment setup for local development.
- Updated `.gitignore` to exclude build artifacts for the new package.
2026-02-21 09:24:50 -06:00