Gustavo Madeira Santana
c75275f109
Update: harden control UI asset handling in update flow ( #10146 )
...
* Update: harden control UI asset handling in update flow
* fix: harden update doctor entrypoint guard (#10146 ) (thanks @gumadeiras)
2026-02-06 01:14:00 -05:00
Tak Hoffman
8a352c8f9d
Web UI: add token usage dashboard ( #10072 )
...
* feat(ui): Token Usage dashboard with session analytics
Adds a comprehensive Token Usage view to the dashboard:
Backend:
- Extended session-cost-usage.ts with per-session daily breakdown
- Added date range filtering (startMs/endMs) to API endpoints
- New sessions.usage, sessions.usage.timeseries, sessions.usage.logs endpoints
- Cost breakdown by token type (input/output/cache read/write)
Frontend:
- Two-column layout: Daily chart + breakdown | Sessions list
- Interactive daily bar chart with click-to-filter and shift-click range select
- Session detail panel with usage timeline, conversation logs, context weight
- Filter chips for active day/session selections
- Toggle between tokens/cost view modes (default: cost)
- Responsive design for smaller screens
UX improvements:
- 21-day default date range
- Debounced date input (400ms)
- Session list shows filtered totals when days selected
- Context weight breakdown shows skills, tools, files contribution
* fix(ui): restore gatewayUrl validation and syncUrlWithSessionKey signature
- Restore normalizeGatewayUrl() to validate ws:/wss: protocol
- Restore isTopLevelWindow() guard for iframe security
- Revert syncUrlWithSessionKey signature (host param was unused)
* feat(ui): Token Usage dashboard with session analytics
Adds a comprehensive Token Usage view to the dashboard:
Backend:
- Extended session-cost-usage.ts with per-session daily breakdown
- Added date range filtering (startMs/endMs) to API endpoints
- New sessions.usage, sessions.usage.timeseries, sessions.usage.logs endpoints
- Cost breakdown by token type (input/output/cache read/write)
Frontend:
- Two-column layout: Daily chart + breakdown | Sessions list
- Interactive daily bar chart with click-to-filter and shift-click range select
- Session detail panel with usage timeline, conversation logs, context weight
- Filter chips for active day/session selections
- Toggle between tokens/cost view modes (default: cost)
- Responsive design for smaller screens
UX improvements:
- 21-day default date range
- Debounced date input (400ms)
- Session list shows filtered totals when days selected
- Context weight breakdown shows skills, tools, files contribution
* fix: usage dashboard data + cost handling (#8462 ) (thanks @mcinteerj)
* Usage: enrich metrics dashboard
* Usage: add latency + model trends
* Gateway: improve usage log parsing
* UI: add usage query helpers
* UI: client-side usage filter + debounce
* Build: harden write-cli-compat timing
* UI: add conversation log filters
* UI: fix usage dashboard lint + state
* Web UI: default usage dates to local day
* Protocol: sync session usage params (#8462 ) (thanks @mcinteerj, @TakHoffman)
---------
Co-authored-by: Jake McInteer <mcinteerj@gmail.com>
2026-02-05 22:35:46 -06:00
Gustavo Madeira Santana
4629054403
chore: apply local workspace updates ( #9911 )
...
* chore: apply local workspace updates
* fix: resolve prep findings after rebase (#9898 ) (thanks @gumadeiras)
* refactor: centralize model allowlist normalization (#9898 ) (thanks @gumadeiras)
* fix: guard model allowlist initialization (#9911 )
* docs: update changelog scope for #9911
* docs: remove model names from changelog entry (#9911 )
* fix: satisfy type-aware lint in model allowlist (#9911 )
2026-02-05 16:54:44 -05:00
Josh Palmer
4fc4c5256a
🤖 Feishu: expand channel support
...
What:
- add post parsing, doc link extraction, routing, replies, reactions, typing, and user lookup
- fix media download/send flows and make doc fetches domain-aware
- update Feishu docs and clawtributor credits
Why:
- raise Feishu parity with other channels and avoid dropped group messages
- keep replies threaded while supporting Lark domains
- document new configuration and credit the contributor
Tests:
- pnpm build
- pnpm check
- pnpm test (gateway suite timed out; reran pnpm vitest run --config vitest.gateway.config.ts)
Co-authored-by: 九灵云 <server@jiulingyun.cn>
2026-02-05 12:29:04 -08:00
Shakker
dae0e2b325
scripts: update test-shell-completion to use shared helpers
...
- Use `checkShellCompletionStatus` and `ensureCompletionCacheExists` from doctor-completion
- Display "Uses slow pattern" status in output
- Simulate doctor/update/onboard behavior for all completion scenarios
- Remove duplicated utility functions
2026-02-04 19:51:06 +00:00
Shakker
42c690632d
feat: add shell completion test script for installation verification
2026-02-04 19:51:06 +00:00
Peter Steinberger
9c5941ba46
fix: add legacy daemon-cli shim for updates
2026-02-03 18:04:48 -08:00
Peter Steinberger
f1cbe7db1d
chore: add mac dSYM zip to release artifacts
2026-02-03 17:15:02 -08:00
Peter Steinberger
539a15e63f
chore: prep 2026.2.2 docs/release checks
2026-02-03 16:38:42 -08:00
Josh Palmer
a3ec2d0734
Docs: update zh-CN translations and pipeline
...
What:
- update zh-CN glossary, TM, and translator prompt
- regenerate zh-CN docs and apply targeted fixes
- add zh-CN AGENTS pipeline guidance
Why:
- address terminology/spacing feedback from #6995
Tests:
- pnpm build && pnpm check && pnpm test
2026-02-03 13:23:00 -08:00
cpojer
be4f7ef361
fix: Fix Mac app build step.
2026-02-03 22:14:11 +09:00
cpojer
6b83d82e82
chore: clean up git hooks and actually install them again.
2026-02-03 22:08:24 +09:00
cpojer
6fb2d3d7d7
feat: remove slop.
2026-02-03 22:04:17 +09:00
cpojer
a03d852d65
chore: Migrate to tsdown, speed up JS bundling by ~10x (thanks @hyf0).
...
The previous migration to tsdown was reverted because it caused a ~20x slowdown when running OpenClaw from the repo. @hyf0 investigated and found that simply renaming the `dist` folder also caused the same slowdown. It turns out the Plugin script loader has a bunch of voodoo vibe logic to determine if it should load files from source and compile them, or if it should load them from dist. When building with tsdown, the filesystem layout is different (bundled), and so some files weren't in the right location, and the Plugin script loader decided to compile source files from scratch using Jiti.
The new implementation uses tsdown to embed `NODE_ENV: 'production'`, which we now use to determine if we are running OpenClaw from a "production environmen" (ie. from dist). This removes the slop in favor of a deterministic toggle, and doesn't rely on directory names or similar.
There is some code reaching into `dist` to load specific modules, primarily in the voice-call extension, which I simplified into loading an "officially" exported `extensionAPI.js` file. With tsdown, entry points need to be explicitly configured, so we should be able to avoid sloppy code reaching into internals from now on. This might break some existing users, but if it does, it's because they were using "private" APIs.
2026-02-03 20:18:16 +09:00
Shakker
9950440cf6
Install: cache completion scripts on install/update
2026-02-03 08:43:25 +00:00
Josh Palmer
2b1f68c928
Docs i18n: tune zh-CN prompt + glossary
...
What: enforce zh-CN tone (你/你的), Skills/local loopback/Tailscale terms, Gateway网关
Why: keep future translation output consistent with issue feedback
Tests: not run (prompt/glossary change)
2026-02-02 16:38:25 +01:00
Josh Palmer
e70984745b
Docs i18n: harden doc-mode pipeline
2026-02-02 16:38:25 +01:00
Peter Steinberger
f9fae2c439
fix: stabilize docker e2e flows
2026-02-02 13:11:55 +00:00
cpojer
935a0e5708
chore: Enable `typescript/no-explicit-any` rule.
2026-02-02 16:18:09 +09:00
Seb Slight
b9910ab037
Docs: fix Moonshot sync markers ( #6789 )
...
* Docs: fix Moonshot sync markers
* Docs: use MDX comment markers for Moonshot sync
* Docs: use markdown comment markers for Moonshot sync
* Docs: hide Moonshot sync markers in MDX
2026-02-02 03:38:14 +01:00
Josh Palmer
0e0e395b9e
Docs: add zh-CN entrypoint translations ( #6300 )
...
* Docs: add zh-CN entrypoint translations
* Docs: harden docs-i18n parsing
2026-02-01 15:22:05 +01:00
cpojer
f06dd8df06
chore: Enable "experimentalSortImports" in Oxfmt and reformat all imorts.
2026-02-01 10:03:47 +09:00
cpojer
1838ab019b
chore: Enable linting in `scripts`.
2026-01-31 21:29:14 +09:00
cpojer
76b5208b11
chore: Also format `scripts` and `skills`.
2026-01-31 21:21:25 +09:00
cpojer
dae00fe184
fix: Update `CONTRIBUTING.md` + adjust `watch-node.mjs` again to be faster with `tsc`.
2026-01-31 19:36:07 +09:00
cpojer
76361ae3ab
revert: Switch back to `tsc` for compiling.
2026-01-31 18:31:49 +09:00
Peter Steinberger
e25fedf932
fix: retry gateway watch after dist rebuild
2026-01-31 09:18:33 +00:00
cpojer
68ba1afb34
fix: Fix `scripts/watch-node.mjs` and use `tsdown --watch`.
2026-01-31 17:55:49 +09:00
cpojer
4b7406719c
fix: Update a few more `entry.js` to `entry.mjs` paths.
2026-01-31 17:45:00 +09:00
cpojer
762652279b
Switch from TypeScript to TypeScript Go. Use `pnpm tsgo` for Typechecks.
2026-01-31 15:33:15 +09:00
cpojer
67945e8d62
chore: Switch from TypeScript to build with `tsdown`, speeds up `pnpm build` by 5-10x.
2026-01-31 15:25:37 +09:00
Shakker
b1d25ed0dd
feat: automated completion setup in postinstall and onboarding
2026-01-31 05:18:27 +00:00
Peter Steinberger
fd00d5688a
chore: update openclaw naming
2026-01-30 21:03:11 +01:00
Peter Steinberger
9a7160786a
refactor: rename to openclaw
2026-01-30 03:16:21 +01:00
Peter Steinberger
7eb57b691c
chore: prep 2026.1.27-beta.1 release
2026-01-28 01:35:58 +01:00
Pooya Parsa
4a1b6bc008
update refs
2026-01-27 13:50:46 -08:00
Shadow
f7a0b0934d
Branding: update bot.molt bundle IDs + launchd labels
2026-01-27 14:46:50 -06:00
Shadow
cc72498b46
Mac: finish Moltbot rename
2026-01-27 14:12:17 -06:00
Peter Steinberger
640c8d1554
fix: ignore windows vitest worker crashes
2026-01-27 17:37:21 +00:00
Peter Steinberger
4a9c921168
fix: use threads pool for windows ci tests
2026-01-27 17:02:01 +00:00
Peter Steinberger
cf334d3b7d
fix: shard windows ci test runs
2026-01-27 16:39:28 +00:00
Peter Steinberger
240232aed1
fix: run windows ci tests serially
2026-01-27 16:13:02 +00:00
Peter Steinberger
3817e0ce2c
fix: bundle a2ui before tests
2026-01-27 15:38:31 +00:00
Peter Steinberger
e4518d2271
fix: allow docker builds to skip missing a2ui assets
2026-01-27 15:16:20 +00:00
Peter Steinberger
0594ccf92a
fix: skip a2ui bundling when sources are excluded
2026-01-27 15:01:57 +00:00
Peter Steinberger
3015e11fd7
fix: stabilize install smoke against clawdbot installer
2026-01-27 14:58:01 +00:00
Peter Steinberger
6d16a658e5
refactor: rename clawdbot to moltbot with legacy compat
2026-01-27 12:21:02 +00:00
Peter Steinberger
83460df96f
chore: update molt.bot domains
2026-01-27 12:21:01 +00:00
Gustavo Madeira Santana
2044b3ca8d
Build: restore A2UI scaffold assets ( #2455 ) (thanks @0oAstro)
...
Co-authored-by: 0oAstro <0oAstro@users.noreply.github.com>
2026-01-26 23:08:25 -05:00
Gustavo Madeira Santana
c2a4863b15
Build: stop tracking bundled artifacts ( #2455 ) (thanks @0oAstro)
...
Co-authored-by: 0oAstro <0oAstro@users.noreply.github.com>
2026-01-26 23:08:25 -05:00
Peter Steinberger
fba7afaa12
chore(scripts): update claude auth status hints
2026-01-26 19:05:00 +00:00
Shadow
e040f6338a
Docs: update clawtributors list
2026-01-25 22:38:04 -06:00
Shadow
b25fcaef0f
CI: parse labeler without deps
2026-01-25 20:38:44 -06:00
Shadow
6b6284c69c
CI: add PR labeler + label sync
2026-01-25 20:37:31 -06:00
Peter Steinberger
71eb6d5dd0
fix(imessage): normalize messaging targets ( #1708 )
...
Co-authored-by: Aaron Ng <1653630+aaronn@users.noreply.github.com>
2026-01-25 13:43:32 +00:00
plum-dawg
c96ffa7186
feat: Add Line plugin ( #1630 )
...
* feat: add LINE plugin (#1630 ) (thanks @plum-dawg)
* feat: complete LINE plugin (#1630 ) (thanks @plum-dawg)
* chore: drop line plugin node_modules (#1630 ) (thanks @plum-dawg)
* test: mock /context report in commands test (#1630 ) (thanks @plum-dawg)
* test: limit macOS CI workers to avoid OOM (#1630 ) (thanks @plum-dawg)
* test: reduce macOS CI vitest workers (#1630 ) (thanks @plum-dawg)
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-25 12:22:36 +00:00
Peter Steinberger
50f233d16d
chore: stabilize prek hooks runner selection ( #1720 ) (thanks @dguido)
2026-01-25 10:55:28 +00:00
Dan Guido
48aea87028
feat: add prek pre-commit hooks and dependabot ( #1720 )
...
* feat: add prek pre-commit hooks and dependabot
Pre-commit hooks (via prek):
- Basic hygiene: trailing-whitespace, end-of-file-fixer, check-yaml, check-added-large-files, check-merge-conflict
- Security: detect-secrets, zizmor (GitHub Actions audit)
- Linting: shellcheck, actionlint, oxlint, swiftlint
- Formatting: oxfmt, swiftformat
Dependabot:
- npm and GitHub Actions ecosystems
- Grouped updates (production/development/actions)
- 7-day cooldown for supply chain protection
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add prek install instruction to AGENTS.md
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 10:53:23 +00:00
Rohan Nagpal
06a7e1e8ce
Telegram: threaded conversation support ( #1597 )
...
* Telegram: isolate dm topic sessions
* Tests: cap vitest workers
* Tests: cap Vitest workers on CI macOS
* Tests: avoid timer-based pi-ai stream mock
* Tests: increase embedded runner timeout
* fix: harden telegram dm thread handling (#1597 ) (thanks @rohannagpal)
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-25 04:48:51 +00:00
Peter Steinberger
6d79c6cd26
fix: clean docker onboarding warnings + preserve agentId casing
2026-01-24 19:07:01 +00:00
Luke
be1cdc9370
fix(agents): treat provider request-aborted as timeout for fallback ( #1576 )
...
* fix(agents): treat request-aborted as timeout for fallback
* test(e2e): add provider timeout fallback
2026-01-24 11:27:24 +00:00
Peter Steinberger
4a9123d415
chore: suppress remaining deprecation warnings
2026-01-24 11:16:46 +00:00
Peter Steinberger
8b7b7e154f
chore: speed up tests and update opencode models
2026-01-23 11:36:32 +00:00
Peter Steinberger
bb9bddebb4
fix: stabilize ci tests
2026-01-23 09:52:22 +00:00
Peter Steinberger
3de5ea818d
ci: speed up install smoke on PRs
2026-01-23 09:05:15 +00:00
Peter Steinberger
86e0916fa3
fix: allow windows spawn in test parallel
2026-01-23 07:52:04 +00:00
Peter Steinberger
45ce07a098
test: split vitest into unit and gateway
2026-01-23 07:34:57 +00:00
Peter Steinberger
2c10c601a8
test: harden docker onboarding waits
2026-01-23 05:10:59 +00:00
Tak hoffman
b65916e0d1
CLI: fix Windows gateway startup
2026-01-23 04:47:01 +00:00
Peter Steinberger
7c336588ea
chore: drop tty from install e2e docker
2026-01-22 23:09:28 +00:00
Peter Steinberger
573354f5e4
chore(dev): default restart-mac to attach-only
2026-01-22 23:08:56 +00:00
Peter Steinberger
8a20f44228
fix: improve gateway ssh auth handling
2026-01-22 06:54:08 +00:00
Peter Steinberger
50049fd220
chore(macos): drop time-sensitive notification entitlement toggle
2026-01-22 04:50:03 +00:00
Peter Steinberger
ff3d8cab2b
feat: preflight update runner before rebase
2026-01-22 04:19:33 +00:00
Peter Steinberger
2e1514095d
fix: package Textual resources for mac app
2026-01-22 02:34:27 +00:00
Clawd
429a2d7849
fix(mac): default to universal binary for distribution builds
...
Closes #1393
The distribution script (package-mac-dist.sh) now defaults BUILD_ARCHS to 'all',
producing universal binaries that run natively on both Apple Silicon and Intel Macs.
Previously, the script inherited the host architecture default from package-mac-app.sh,
which meant release builds done on ARM Macs only included ARM binaries.
2026-01-22 00:29:27 +00:00
Peter Steinberger
6c0a01dc90
fix: bundle mac model catalog
2026-01-21 19:58:19 +00:00
Peter Steinberger
fb47f1cbeb
chore: rename clawlog references
2026-01-21 05:53:32 +00:00
Peter Steinberger
58b131919f
feat: use tsgo for dev/watch builds
2026-01-21 04:06:09 +00:00
Peter Steinberger
aec622fe63
chore: remove fresh dist log
2026-01-21 03:13:50 +00:00
Peter Steinberger
dfbf6ac263
feat: enforce device-bound connect challenge
2026-01-20 13:04:19 +00:00
Peter Steinberger
c9e3c14f9c
fix: finalize exec fish fallback ( #1297 ) (thanks @ysqander)
2026-01-20 11:25:49 +00:00
Peter Steinberger
9c2c4b1138
fix(auth): dedupe codex-cli profiles
...
Co-authored-by: Oliver Drobnik <oliver@cocoanetics.com>
2026-01-20 09:38:56 +00:00
Shadow
39dfdccf6c
CLI: skip runner rebuilds when dist is fresh ( #1231 )
...
Co-authored-by: mukhtharcm <mukhtharcm@users.noreply.github.com>
2026-01-19 13:12:33 -06:00
Peter Steinberger
111aeb2c4f
fix: cover sync ui spawn on Windows ( #1212 ) (thanks @longmaba)
2026-01-19 05:42:42 +00:00
Long
23c2c638b7
fix(ui): enable shell mode for spawn on Windows
2026-01-19 05:41:38 +00:00
Peter Steinberger
a9fc2ca0ef
fix: add git hook setup and stable config hash sorting
2026-01-19 02:02:17 +00:00
Peter Steinberger
86950d3474
fix: guard docs:list when docs dir missing
2026-01-18 22:53:39 +00:00
Peter Steinberger
9b9e8d4ae8
chore: block node_modules commits
2026-01-18 22:28:59 +00:00
Peter Steinberger
769b286cf2
fix: make docs list node-safe
2026-01-18 19:37:13 +00:00
Peter Steinberger
5f21bf735a
chore: switch repo scripts to node
2026-01-18 18:46:18 +00:00
Peter Steinberger
ee380e9ab9
fix: run cli scripts via node build runner
2026-01-18 18:43:39 +00:00
Peter Steinberger
60efe8ed7b
fix: restore bun runners for dev scripts
2026-01-18 18:00:48 +00:00
Peter Steinberger
332a20d9cc
fix: update gateway watch runner
2026-01-18 17:55:50 +00:00
Peter Steinberger
0b350d78d5
fix: harden macOS signing flow
2026-01-18 16:28:39 +00:00
Peter Steinberger
c6e7e1821b
test: tolerate tool summary payloads in install e2e
2026-01-18 08:33:45 +00:00
Peter Steinberger
889db137b8
test: add beta tag install option for docker installer
2026-01-18 08:30:00 +00:00
Peter Steinberger
e5cca6e432
chore: switch Peekaboo to SPM
2026-01-18 07:47:31 +00:00
Peter Steinberger
e0e8f11f70
fix: bundle Textual resources in macOS app
2026-01-18 01:15:19 +00:00
Peter Steinberger
8ec4af4641
fix(status): show 2 usage windows in /status ( #1101 )
...
Thanks @rhjoh.
Co-authored-by: Rhys Johnston <rhys.johnston00@gmail.com>
2026-01-17 18:46:41 +00:00