cpojer
97c8f4999e
chore: Fix types in tests 27/N.
2026-02-17 14:31:55 +09:00
Peter Steinberger
19f53543d2
refactor(utils): share chunkItems helper
2026-02-16 01:52:30 +00:00
Peter Steinberger
32221e194a
refactor(probe): share withTimeout
2026-02-16 00:39:11 +00:00
Peter Steinberger
55fd88e967
perf(test): consolidate utils parsing helpers
2026-02-16 00:18:27 +00:00
Peter Steinberger
d82c5ea9d1
refactor(utils): share safe json stringify
2026-02-14 15:39:46 +00:00
Peter Steinberger
e1e05e57cb
refactor(utils): share shell argv tokenizer
2026-02-14 15:39:46 +00:00
Peter Steinberger
81361755b7
refactor(reactions): share reaction level resolver
2026-02-14 15:39:45 +00:00
Peter Steinberger
7d3e5788e8
fix: stop enforcing <final> for ollama ( #16191 ) (thanks @Glucksberg)
2026-02-14 14:21:34 +01:00
Glucksberg
74193ff754
fix(ollama): remove Ollama from isReasoningTagProvider ( #2279 )
...
Ollama's OpenAI-compatible endpoint handles reasoning natively via the
`reasoning` field in streaming chunks. Treating Ollama as a
reasoning-tag provider incorrectly forces <think>/<final> tag
enforcement, which causes stripBlockTags() to discard all output
(since Ollama models don't emit <final> tags), resulting in
'(no output)' for every Ollama model.
This fix removes 'ollama' from the isReasoningTagProvider() check,
allowing Ollama models to work correctly through the standard
content/reasoning field separation.
2026-02-14 14:21:34 +01:00
Marcus Castro
7ec60d6449
fix: use relayAbort helper for addEventListener to preserve AbortError reason
2026-02-13 18:13:18 +01:00
Marcus Castro
d9c582627c
perf: use .abort.bind() instead of arrow closures to prevent memory leaks ( #7174 )
2026-02-13 18:13:18 +01:00
quotentiroler
a26670a2fb
refactor: consolidate fetchWithTimeout into shared utility
2026-02-09 20:34:56 -08:00
Peter Steinberger
42a07791c4
fix(auth): strip line breaks from pasted keys
2026-02-09 11:26:27 -06:00
max
eb3e9c649b
chore: fix vitest standalone configs and update package description ( #11865 )
...
* chore: fix vitest standalone configs and update package description
- vitest.live.config.ts and vitest.e2e.config.ts now extend root config
- Inherits testTimeout (120s), resolve.alias, pool, setupFiles, excludes
- ui/vitest.node.config.ts gets explicit 120s timeout
- package.json description updated for multi-channel AI gateway
- Removed unused src/utils/time-format.ts
* chore: filter inherited excludes in live/e2e vitest configs
* refactor: dedupe GroupPolicy/DmPolicy in extensions
Import from openclaw/plugin-sdk instead of re-declaring identical types.
2026-02-08 05:24:50 -08:00
max
a1123dd9be
Centralize date/time formatting utilities ( #11831 )
2026-02-08 04:53:31 -08: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
Benjamin Jesuiter
3e82cbd55b
Memory: parse quoted qmd command
2026-02-02 23:45:05 -08:00
cpojer
f06dd8df06
chore: Enable "experimentalSortImports" in Oxfmt and reformat all imorts.
2026-02-01 10:03:47 +09:00
cpojer
5ceff756e1
chore: Enable "curly" rule to avoid single-statement if confusion/errors.
2026-01-31 16:19:20 +09:00
Ayaan Zaidi
310eed825e
fix: preserve delivery thread fallback ( #4911 ) (thanks @yevhen)
2026-01-31 09:31:40 +05:30
Yevhen Bobrov
a642ca4ea8
Fix telegram threadId in deliveryContext
2026-01-31 09:31:40 +05:30
Peter Steinberger
9a7160786a
refactor: rename to openclaw
2026-01-30 03:16:21 +01:00
Peter Steinberger
6d16a658e5
refactor: rename clawdbot to moltbot with legacy compat
2026-01-27 12:21:02 +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
iHildy
b76cd6695d
feat: add beta googlechat channel
2026-01-24 23:30:45 +00:00
Peter Steinberger
279f799388
fix: harden Mattermost plugin gating ( #1428 ) (thanks @damoahdominic)
2026-01-23 01:23:23 +00:00
Dominic Damoah
91278d8b4e
Merge branch 'main' into feat/mattermost-channel
2026-01-22 03:11:53 -05:00
Peter Steinberger
388d302472
fix: carry reply tags across streamed chunks
2026-01-22 08:01:34 +00:00
Dominic Damoah
bf6df6d6b7
feat: add Mattermost channel support
...
Add Mattermost as a supported messaging channel with bot API and WebSocket integration. Includes channel state tracking (tint, summary, details), multi-account support, and delivery target routing. Update documentation and tests to include Mattermost alongside existing channels.
2026-01-21 18:40:56 -05:00
Peter Steinberger
e447233533
chore: sync protocol outputs
2026-01-21 00:19:53 +00:00
Peter Steinberger
02ca148583
fix: preserve subagent thread routing ( #1241 )
...
Thanks @gnarco.
Co-authored-by: gnarco <gnarco@users.noreply.github.com >
2026-01-20 17:22:07 +00:00
CJ Winslow
a28c271488
TUI: optimize fuzzy filtering and consolidate time formatting
...
- Extract formatRelativeTime to shared utility for reuse across components
- Optimize FilterableSelectList with pre-lowercased searchTextLower field (avoids toLowerCase on every keystroke)
- Implement custom fuzzy matching with space-separated token support and word boundary scoring
- Use matchesKey utility for consistent keybinding handling (arrows, vim j/k, ctrl+p/n)
- Fix searchable-select-list to support vim keybindings consistently
- Fix system-prompt runtimeInfo null check with nullish coalescing operator
2026-01-20 16:37:08 +00:00
Peter Steinberger
d5c8172197
fix: optimize routed CLI path ( #1195 ) (thanks @gumadeiras)
2026-01-18 23:28:09 +00:00
Gustavo Madeira Santana
acb523de86
CLI: streamline startup paths and env parsing
...
Add shared parseBooleanValue()/isTruthyEnvValue() and apply across CLI, gateway, memory, and live-test flags for consistent env handling.
Introduce route-first fast paths, lazy subcommand registration, and deferred plugin loading to reduce CLI startup overhead.
Centralize config validation via ensureConfigReady() and add config caching/deferred shell env fallback for fewer IO passes.
Harden logger initialization/imports and add focused tests for argv, boolean parsing, frontmatter, and CLI subcommands.
2026-01-18 23:10:39 +00:00
Peter Steinberger
31e8ecca10
fix: format verbose tool output by channel
2026-01-17 10:17:57 +00:00
Peter Steinberger
7cebe7a506
style: run oxfmt
2026-01-17 08:00:05 +00:00
Peter Steinberger
eb8a0510e0
refactor: unify queue drop handling
2026-01-17 06:38:33 +00:00
Peter Steinberger
c7ae5100fa
refactor: share queue helpers
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com >
2026-01-17 06:02:27 +00:00
Peter Steinberger
285ed8bac3
fix: sync delivery routing context
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com >
2026-01-17 06:02:27 +00:00
Peter Steinberger
e59d8c5436
style: oxfmt format
2026-01-17 05:48:56 +00:00
Peter Steinberger
49ecbd8fea
test: expand accountId routing coverage
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com >
2026-01-17 04:33:24 +00:00
Peter Steinberger
4f37f66264
refactor: normalize delivery context
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com >
2026-01-17 04:24:59 +00:00
Peter Steinberger
9f4b7a1683
fix: normalize subagent announce delivery origin
...
Co-authored-by: Adam Holt <mail@adamholt.co.nz >
2026-01-17 04:03:28 +00:00
Peter Steinberger
a82217a5f3
chore: format + regenerate protocol
2026-01-17 03:40:49 +00:00
Peter Steinberger
0291105913
fix: thread accountId through subagent announce delivery
...
Co-authored-by: Adam Holt <adam91holt@users.noreply.github.com >
2026-01-17 02:45:18 +00:00
Peter Steinberger
d9f9e93dee
feat!: move msteams to plugin
2026-01-16 02:59:43 +00:00
Peter Steinberger
5c52dbf661
style: oxfmt fixes ( #925 ) (thanks @grp06)
2026-01-15 03:22:54 +00:00
Peter Steinberger
2b4a68e276
feat: load channel plugins
2026-01-15 02:42:44 +00:00
Peter Steinberger
c379191f80
chore: migrate to oxlint and oxfmt
...
Co-authored-by: Christoph Nakazawa <christoph.pojer@gmail.com >
2026-01-14 15:02:19 +00:00
Peter Steinberger
90342a4f3a
refactor!: rename chat providers to channels
2026-01-13 08:40:39 +00:00