Gustavo Madeira Santana
04a1ed5e53
chore: make changelog mandatory in PR skills
2026-02-12 18:08:02 -05:00
Shadow
3b6bd202da
Scripts: add issue labeler state + PR support
2026-02-12 15:28:12 -06:00
Gustavo Madeira Santana
49188caf94
chore(pr-skills): suppress output for successful commands (pnpm install/build/test/etc) to lower context usage
2026-02-12 15:10:23 -05:00
Gustavo Madeira Santana
1123357c62
chore: refining review PR additional prompts
2026-02-12 14:55:07 -05:00
Peter Steinberger
069670388e
perf(test): speed up test runs and harden temp cleanup
2026-02-12 17:59:52 +00:00
Peter Steinberger
8fce7dc9b6
perf(test): add vitest slowest report artifact
2026-02-12 17:16:42 +00:00
Peter Steinberger
9f507112b5
perf(test): speed up vitest by skipping plugins + LLM slug
2026-02-12 17:15:43 +00:00
Karim Naguib
7a0591ef87
fix(whatsapp): allow media-only sends and normalize leading blank payloads ( #14408 )
...
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-11 23:21:21 -06:00
Tak Hoffman
c28cbac512
CI: add PR size autolabel workflow ( #14410 )
2026-02-11 21:12:27 -06:00
cpojer
c2178e2522
chore: Cleanup useless CI job.
2026-02-12 09:37:45 +09:00
Gustavo Madeira Santana
940ce424c8
chore: make review mode switching idempotent
2026-02-11 14:09:16 -05:00
Gustavo Madeira Santana
72fbfaa755
chore: making PR review chores deterministic + less token hungry
2026-02-11 13:21:00 -05:00
Daniel Olshansky
31f616d45b
feat: `ClawDock` - shell docker helpers for OpenClaw development ( #12817 )
...
Discussion: https://github.com/openclaw/openclaw/discussions/13528
## Checklist
- [x] **Mark as AI-assisted in the PR title or description** - Implemented by 🤖 , reviewed by 👨💻
- [x] **Note the degree of testing** - fully tested and I use it myself
- [x] **Include prompts or session logs if possible (super helpful!)** - I can try doing a "resume" on a few sessions, but don't think it'll provide value. Lmk if this is a blocker.
- [x] **Confirm you understand what the code does** - It's simple :)
## Summary of changes
- **ClawDock** - Shell helpers replace verbose `docker-compose` commands with simple `clawdock-*` shortcuts
- **Zero-config setup** - First run auto-detects the OpenClaw project directory from common paths and saves the config for future use
- **No extra dependencies** - Just bash
- **Built-in auth & device pairing helpers** - `clawdock-fix-token`, `clawdock-dashboard`, etc to handle gateay setup, streamline web UI, etc...
- **Updated Docker docs** - Installation docs now include the optional ClawDock helper setup for users who want simplified container management
## Example Usage
```bash
$ clawdock-help
🦞 ClawDock - Docker Helpers for OpenClaw
⚡ Basic Operations
clawdock-start Start the gateway
clawdock-stop Stop the gateway
clawdock-restart Restart the gateway
clawdock-status Check container status
clawdock-logs View live logs (follows)
🐚 Container Access
clawdock-shell Shell into container (openclaw alias ready)
clawdock-cli Run CLI commands (e.g., clawdock-cli status)
clawdock-exec <cmd> Execute command in gateway container
🌐 Web UI & Devices
clawdock-dashboard Open web UI in browser (auto-guides you)
clawdock-devices List device pairings (auto-guides you)
clawdock-approve <id> Approve device pairing (with examples)
⚙️ Setup & Configuration
clawdock-fix-token Configure gateway token (run once)
🔧 Maintenance
clawdock-rebuild Rebuild Docker image
clawdock-clean ⚠️ Remove containers & volumes (nuclear)
🛠️ Utilities
clawdock-health Run health check
clawdock-token Show gateway auth token
clawdock-cd Jump to openclaw project directory
clawdock-config Open config directory (~/.openclaw)
clawdock-workspace Open workspace directory
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 First Time Setup
1. clawdock-start # Start the gateway
2. clawdock-fix-token # Configure token
3. clawdock-dashboard # Open web UI
4. clawdock-devices # If pairing needed
5. clawdock-approve <id> # Approve pairing
💬 WhatsApp Setup
clawdock-shell
> openclaw channels login --channel whatsapp
> openclaw status
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 All commands guide you through next steps!
📚 Docs: https://docs.openclaw.ai
```\n\nCo-authored-by: Gustavo Madeira Santana <gumadeiras@gmail.com>
2026-02-10 16:04:41 -05:00
Shadow
71fd054711
Revert "fix(credits): deduplicate contributors by GitHub username and display name"
...
This reverts commit d2f5d45f08 .
2026-02-10 10:25:51 -06:00
Shadow
614befd15d
Revert "credits: categorize direct changes, exclude bots, fix MDX ( #13322 )"
...
This reverts commit 8666d9f837 .
2026-02-10 10:25:48 -06:00
max
8666d9f837
credits: categorize direct changes, exclude bots, fix MDX ( #13322 )
2026-02-10 02:27:48 -08:00
max
d2f5d45f08
fix(credits): deduplicate contributors by GitHub username and display name
...
* Scripts: add sync-credits.py to populate maintainers/contributors from git/GitHub
* fix(credits): deduplicate contributors by GitHub username and display name
2026-02-10 02:04:29 -08:00
Tak Hoffman
72f89b1f53
Docker: include A2UI sources for bundle ( #13114 )
...
* Docker: include A2UI sources for bundle
* Build: fail bundling when sources missing and no prebuilt A2UI bundle
2026-02-09 22:44:59 -06:00
quotentiroler
5c62e4d51b
Improve code analyzer for independent packages, CI: only run release-check on push to main
2026-02-09 19:57:13 -08:00
max
c4d9b6eadb
fix: docs broken links and improve link checker ( #13056 )
...
* docs: fix broken links checker and add CI docs
- Replace buggy mint broken-links with existing docs:check-links script
- Fix zh-CN/vps.md broken links (/railway /install/railway)
- Add docs/ci.md explaining CI pipeline
- Add Experiments group to docs.json navigation
* improve docs checker
2026-02-09 18:45:06 -08:00
quotentiroler
b40a7771e5
ci: imprpove warning for size check
2026-02-09 14:30:36 -08:00
quotentiroler
1074d13e4e
Improve flagging in code analyzer
2026-02-09 13:41:36 -08:00
quotentiroler
1fad19008e
fix: improve code-size gate output and duplicate detection, fix Windows path in source-display
2026-02-09 13:18:51 -08:00
quotentiroler
de8eb2b29c
feat(ci): also flag already-large files that grew larger
2026-02-09 11:51:51 -08:00
max
50b3d32d3c
CI: add code-size check for files crossing LOC threshold ( #12810 )
...
* CI: add code-size check for files crossing LOC threshold
* feat(ci): add duplicate function detection to CI code-size check
The --compare-to mode now also detects new duplicate function names
introduced by a PR. Uses git diff to scope checks to changed files
only, keeping CI fast.
* fix(ci): address review feedback for code-size check
- Validate git ref upfront; exit 2 if ref doesn't exist
- Distinguish 'file missing at ref' from genuine git errors
- Explicitly fetch base branch ref in CI workflow
- Raise threshold from 700 to 1000 lines
* fix(ci): exclude Swabble, skills, .pi from code analysis
* update gitignore for pycache
* ci: make code-size check informational (no failure on violations)
2026-02-09 11:34:18 -08:00
max
79c2466662
refactor: consolidate throwIfAborted + fix isCompactionFailureError ( #12463 )
...
* refactor: consolidate throwIfAborted in outbound module
- Create abort.ts with shared throwIfAborted helper
- Update deliver.ts, message-action-runner.ts, outbound-send-service.ts
* fix: handle context overflow in isCompactionFailureError without requiring colon
2026-02-09 00:32:57 -08:00
max
f0924d3c4e
refactor: consolidate PNG encoder and safeParseJson utilities ( #12457 )
...
- Create shared PNG encoder module (src/media/png-encode.ts)
- Refactor qr-image.ts and live-image-probe.ts to use shared encoder
- Add safeParseJson to utils.ts and plugin-sdk exports
- Update msteams and pairing-store to use centralized safeParseJson
2026-02-09 00:21:54 -08:00
Patrick Shao
5ac1be9cb6
fix: all bundled hooks broken since 2026.2.2 (tsdown migration) ( #9295 )
...
* fix: compile bundled hook handlers in tsdown build
The migration from tsc to tsdown in 2026.2.2 dropped bundled hook handlers
from the build output. The copy-hook-metadata.ts script only copies HOOK.md
metadata files, not the handler.ts source files. Without corresponding tsdown
entry points, the handlers were never compiled to JS, causing
`openclaw hooks list` to show 0 hooks on npm installs.
This adds each bundled hook handler and the llm-slug-generator (dynamically
imported by session-memory) as tsdown entry points:
- src/hooks/bundled/session-memory/handler.ts
- src/hooks/bundled/command-logger/handler.ts
- src/hooks/bundled/boot-md/handler.ts
- src/hooks/bundled/soul-evil/handler.ts
- src/hooks/llm-slug-generator.ts
Regression introduced in 2026.2.2; versions 2026.1.29–2026.2.1 worked
correctly under the previous tsc build.
* refactor: use glob for bundled hook entries, fix dist output paths
- Replace hardcoded entry list with glob pattern in tsdown.config.ts
so new hooks are auto-discovered (matching scripts/copy-hook-metadata.ts)
- Remove inconsistent comment block from tsdown.config.ts
- Fix copy-hook-metadata.ts to copy HOOK.md to dist/bundled/ (matching
the runtime resolution in bundled-dir.ts which resolves path.join(moduleDir, 'bundled')
relative to the chunk in dist/)
- Update stale path comment in session-memory handler
2026-02-09 11:35:47 +09:00
Josh Palmer
d2ec78607d
Docs i18n: make translation prompt language-pluggable
2026-02-08 10:18:04 -08:00
Mariano Belinky
730f86dd5c
Gateway/Plugins: device pairing + phone control plugins ( #11755 )
2026-02-08 18:07:13 +01:00
max
a1123dd9be
Centralize date/time formatting utilities ( #11831 )
2026-02-08 04:53:31 -08:00
Tyler Yust
191da1feb5
fix: context overflow compaction and subagent announce improvements ( #11664 ) (thanks @tyler6204)
...
* initial commit
* feat: implement deriveSessionTotalTokens function and update usage tests
* Added deriveSessionTotalTokens function to calculate total tokens based on usage and context tokens.
* Updated usage tests to include cases for derived session total tokens.
* Refactored session usage calculations in multiple files to utilize the new function for improved accuracy.
* fix: restore overflow truncation fallback + changelog/test hardening (#11551 ) (thanks @tyler6204)
2026-02-07 20:02:32 -08:00
Seb Slight
929a3725d3
docs: canonicalize docs paths and align zh navigation ( #11428 )
...
* docs(navigation): canonicalize paths and align zh nav
* chore(docs): remove stray .DS_Store
* docs(scripts): add non-mint docs link audit
* docs(nav): fix zh source paths and preserve legacy redirects (#11428 ) (thanks @sebslight)
* chore(docs): satisfy lint for docs link audit script (#11428 ) (thanks @sebslight)
2026-02-07 15:40:35 -05:00
Peter Steinberger
80d42eb0ba
fix(docker): support .mjs entrypoints in images and e2e
2026-02-07 00:22:34 -08:00
Peter Steinberger
2b6cf03b47
fix(build): support daemon-cli .mjs bundles in compat shim
2026-02-07 00:22:34 -08:00
Marcus Castro
2d7428a7f2
ci: re-enable parallel vitest on Windows CI
2026-02-06 23:31:48 -08:00
Peter Steinberger
a3b5f1b15c
fix(build): unblock pnpm build dts
2026-02-06 18:43:11 -08:00
Tyler Yust
d90cac990c
fix: cron scheduler reliability, store hardening, and UX improvements ( #10776 )
...
* refactor: update cron job wake mode and run mode handling
- Changed default wake mode from 'next-heartbeat' to 'now' in CronJobEditor and related CLI commands.
- Updated cron-tool tests to reflect changes in run mode, introducing 'due' and 'force' options.
- Enhanced cron-tool logic to handle new run modes and ensure compatibility with existing job structures.
- Added new tests for delivery plan consistency and job execution behavior under various conditions.
- Improved normalization functions to handle wake mode and session target casing.
This refactor aims to streamline cron job configurations and enhance the overall user experience with clearer defaults and improved functionality.
* test: enhance cron job functionality and UI
- Added tests to ensure the isolated agent correctly announces the final payload text when delivering messages via Telegram.
- Implemented a new function to pick the last deliverable payload from a list of delivery payloads.
- Enhanced the cron service to maintain legacy "every" jobs while minute cron jobs recompute schedules.
- Updated the cron store migration tests to verify the addition of anchorMs to legacy every schedules.
- Improved the UI for displaying cron job details, including job state and delivery information, with new styles and layout adjustments.
These changes aim to improve the reliability and user experience of the cron job system.
* test: enhance sessions thinking level handling
- Added tests to verify that the correct thinking levels are applied during session spawning.
- Updated the sessions-spawn-tool to include a new parameter for overriding thinking levels.
- Enhanced the UI to support additional thinking levels, including "xhigh" and "full", and improved the handling of current options in dropdowns.
These changes aim to improve the flexibility and accuracy of thinking level configurations in session management.
* feat: enhance session management and cron job functionality
- Introduced passthrough arguments in the test-parallel script to allow for flexible command-line options.
- Updated session handling to hide cron run alias session keys from the sessions list, improving clarity.
- Enhanced the cron service to accurately record job start times and durations, ensuring better tracking of job execution.
- Added tests to verify the correct behavior of the cron service under various conditions, including zero-delay timers.
These changes aim to improve the usability and reliability of session and cron job management.
* feat: implement job running state checks in cron service
- Added functionality to prevent manual job runs if a job is already in progress, enhancing job management.
- Updated the `isJobDue` function to include checks for running jobs, ensuring accurate scheduling.
- Enhanced the `run` function to return a specific reason when a job is already running.
- Introduced a new test case to verify the behavior of forced manual runs during active job execution.
These changes aim to improve the reliability and clarity of cron job execution and management.
* feat: add session ID and key to CronRunLogEntry model
- Introduced `sessionid` and `sessionkey` properties to the `CronRunLogEntry` struct for enhanced tracking of session-related information.
- Updated the initializer and Codable conformance to accommodate the new properties, ensuring proper serialization and deserialization.
These changes aim to improve the granularity of logging and session management within the cron job system.
* fix: improve session display name resolution
- Updated the `resolveSessionDisplayName` function to ensure that both label and displayName are trimmed and default to an empty string if not present.
- Enhanced the logic to prevent returning the key if it matches the label or displayName, improving clarity in session naming.
These changes aim to enhance the accuracy and usability of session display names in the UI.
* perf: skip cron store persist when idle timer tick produces no changes
recomputeNextRuns now returns a boolean indicating whether any job
state was mutated. The idle path in onTimer only persists when the
return value is true, eliminating unnecessary file writes every 60s
for far-future or idle schedules.
* fix: prep for merge - explicit delivery mode migration, docs + changelog (#10776 ) (thanks @tyler6204)
2026-02-06 18:03:03 -08:00
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
Peter Steinberger
5a08471dcd
feat: add sqlite-vec memory search acceleration
2026-01-17 18:02:34 +00:00
Peter Steinberger
1657525201
chore: prep 2026.1.17 and onboard flow
2026-01-17 16:41:25 +00:00
Peter Steinberger
49c35c752c
fix: stamp build commit metadata
2026-01-17 12:30:11 +00:00
Peter Steinberger
faba508fe0
feat: add internal hooks system
2026-01-17 01:31:57 +00:00
Peter Steinberger
c54c665f97
feat: enhance web_fetch fallbacks
2026-01-17 00:00:49 +00:00
Peter Steinberger
a4e99ecdaf
chore: remove patch references
2026-01-16 22:41:57 +00:00
Peter Steinberger
8bcbe68637
chore: sync Peekaboo submodule on install
2026-01-16 21:04:58 +00:00
Peter Steinberger
eda9410bce
fix: stabilize docker test suite
2026-01-16 11:47:14 +00:00
tosh-hamburg
de5fb65cb8
fix: docker-setup fails on Synology because of problem with bun ( #1002 )
2026-01-16 10:03:56 +00:00
Peter Steinberger
d42b69df74
Merge pull request #982 from wes-davis/fix/gateway-connection-diagnostics
...
macOS: keep gateway connected (stop port flapping)
2026-01-16 07:36:46 +00:00
Ubuntu
ca9688b5cc
feat(session): add dmScope for multi-user DM isolation
...
Co-authored-by: Alphonse-arianee <Alphonse-arianee@users.noreply.github.com>
2026-01-16 04:13:10 +00:00
Peter Steinberger
16bc4cdef3
chore: drop legacy Relay signing
2026-01-16 03:11:16 +00:00
Peter Steinberger
d9f9e93dee
feat!: move msteams to plugin
2026-01-16 02:59:43 +00:00
Wes
f726656d1e
macOS: start gateway before app in restart-mac
2026-01-15 17:12:14 -08:00
Peter Steinberger
f25fe032c4
fix(macos): codesign dmg before notarize
2026-01-15 11:21:25 +00:00
Peter Steinberger
8daab932a2
chore(macos): prep Sparkle release 2026.1.14-1
2026-01-15 11:15:41 +00:00
Peter Steinberger
1afdb850f3
chore: add matrix changelog
2026-01-15 08:40:37 +00:00
Peter Steinberger
79f340a410
chore: prep 2026.1.14 npm release
2026-01-15 07:47:18 +00:00
Peter Steinberger
5a58feefdc
chore: enforce plugin version sync
2026-01-15 07:08:33 +00:00
Peter Steinberger
48b15bd099
chore: sync plugin versions
2026-01-15 07:07:48 +00:00
Peter Steinberger
1c96477686
fix: harden session cache + heartbeat restore
...
Co-authored-by: Ronak Guliani <ronak-guliani@users.noreply.github.com>
2026-01-15 07:07:12 +00:00
Peter Steinberger
3475ecde6f
docs: expand Zalo overview + add longmaba
...
Co-authored-by: Long <longmaba@gmail.com>
2026-01-15 06:26:55 +00:00
Peter Steinberger
60748b1370
docs: refresh clawtributors list
2026-01-15 06:17:02 +00:00
Peter Steinberger
fe974f420d
chore: standardize Claude Code CLI naming ( #915 )
...
Follow-up to #915 .
2026-01-14 20:07:35 +00:00
Peter Steinberger
c892f38d3c
refactor(scripts): extract clawtributors types
2026-01-14 01:17:56 +00:00
Peter Steinberger
d98b6beb4d
chore(e2e): reduce doctor-switch install noise
2026-01-14 01:17:56 +00:00
Peter Steinberger
bcbfb357be
refactor(src): split oversized modules
2026-01-14 01:17:56 +00:00
Peter Steinberger
b2179de839
fix(docker): harden docker e2e scripts
2026-01-14 01:17:08 +00:00
Peter Steinberger
b1102cedd7
fix: support non-interactive token auth
2026-01-14 00:56:34 +00:00
Peter Steinberger
571f8c78bd
chore: allow install e2e previous override
2026-01-14 00:38:26 +00:00
Peter Steinberger
a740d563d7
chore: allow install smoke previous override
2026-01-14 00:07:50 +00:00
Peter Steinberger
4c932edabc
fix: make postinstall patcher idempotent
2026-01-13 23:12:27 +00:00
Peter Steinberger
84bfaad6e6
fix: finish channels rename sweep
2026-01-13 08:40:40 +00:00
Peter Steinberger
76acdb7ae7
test: silence experimental sqlite warnings in docker
2026-01-13 07:27:32 +00:00
Peter Steinberger
df6634727e
fix: refine synthetic provider + minimax probes
2026-01-13 03:36:53 +00:00
Peter Steinberger
b928b96af5
fix: sync Moonshot Kimi K2 models ( #818 ) (thanks @mickahouan)
...
Co-authored-by: mickahouan <mickahouan@users.noreply.github.com>
2026-01-13 03:19:49 +00:00
Peter Steinberger
f19d37c7bb
build: harden installer smoke apt
2026-01-12 22:21:50 +00:00
Peter Steinberger
c1f8f1d9d0
chore: release 2026.1.11-2
2026-01-12 10:14:24 +00:00
Peter Steinberger
b77070cccf
fix: keep mobile nav flattened ( #771 ) (thanks @carlulsoe)
2026-01-12 08:13:49 +00:00
Peter Steinberger
484a33f348
fix: cap ai snapshots for tool calls ( #763 ) (thanks @thesash)
2026-01-12 07:40:34 +00:00
Peter Steinberger
1850013cae
fix: modernize live tests and gemini ids
2026-01-12 07:05:33 +00:00
Peter Steinberger
51d5f16770
refactor: remove mac attach-only setting
2026-01-12 04:58:38 +00:00
Peter Steinberger
98337a14b3
fix: rename bash tool to exec ( #748 ) (thanks @myfunc)
2026-01-12 02:49:55 +00:00
Peter Steinberger
2a728ee68c
test: extend plugins docker e2e
2026-01-12 01:27:48 +00:00
Peter Steinberger
f13ae50ff8
test: plugin install + docker e2e
2026-01-12 01:16:42 +00:00
Peter Steinberger
26cbbafc86
fix: skip pnpm patch fallback
2026-01-12 00:28:34 +00:00
Peter Steinberger
ccd8950d40
ci: stabilize installer smoke
2026-01-12 00:17:07 +00:00
Peter Steinberger
60430fcd2e
chore: harden installer and add smoke ci
2026-01-12 00:00:54 +00:00
Peter Steinberger
933c157092
test: add plugin docker e2e
2026-01-11 12:21:45 +00:00
Peter Steinberger
7acd26a2fc
Move provider to a plugin-architecture ( #661 )
...
* refactor: introduce provider plugin registry
* refactor: move provider CLI to plugins
* docs: add provider plugin implementation notes
* refactor: shift provider runtime logic into plugins
* refactor: add plugin defaults and summaries
* docs: update provider plugin notes
* feat(commands): add /commands slash list
* Auto-reply: tidy help message
* Auto-reply: fix status command lint
* Tests: align google shared expectations
* Auto-reply: tidy help message
* Auto-reply: fix status command lint
* refactor: move provider routing into plugins
* test: align agent routing expectations
* docs: update provider plugin notes
* refactor: route replies via provider plugins
* docs: note route-reply plugin hooks
* refactor: extend provider plugin contract
* refactor: derive provider status from plugins
* refactor: unify gateway provider control
* refactor: use plugin metadata in auto-reply
* fix: parenthesize cron target selection
* refactor: derive gateway methods from plugins
* refactor: generalize provider logout
* refactor: route provider logout through plugins
* refactor: move WhatsApp web login methods into plugin
* refactor: generalize provider log prefixes
* refactor: centralize default chat provider
* refactor: derive provider lists from registry
* refactor: move provider reload noops into plugins
* refactor: resolve web login provider via alias
* refactor: derive CLI provider options from plugins
* refactor: derive prompt provider list from plugins
* style: apply biome lint fixes
* fix: resolve provider routing edge cases
* docs: update provider plugin refactor notes
* fix(gateway): harden agent provider routing
* refactor: move provider routing into plugins
* refactor: move provider CLI to plugins
* refactor: derive provider lists from registry
* fix: restore slash command parsing
* refactor: align provider ids for schema
* refactor: unify outbound target resolution
* fix: keep outbound labels stable
* feat: add msteams to cron surfaces
* fix: clean up lint build issues
* refactor: localize chat provider alias normalization
* refactor: drive gateway provider lists from plugins
* docs: update provider plugin notes
* style: format message-provider
* fix: avoid provider registry init cycles
* style: sort message-provider imports
* fix: relax provider alias map typing
* refactor: move provider routing into plugins
* refactor: add plugin pairing/config adapters
* refactor: route pairing and provider removal via plugins
* refactor: align auto-reply provider typing
* test: stabilize telegram media mocks
* docs: update provider plugin refactor notes
* refactor: pluginize outbound targets
* refactor: pluginize provider selection
* refactor: generalize text chunk limits
* docs: update provider plugin notes
* refactor: generalize group session/config
* fix: normalize provider id for room detection
* fix: avoid provider init in system prompt
* style: formatting cleanup
* refactor: normalize agent delivery targets
* test: update outbound delivery labels
* chore: fix lint regressions
* refactor: extend provider plugin adapters
* refactor: move elevated/block streaming defaults to plugins
* refactor: defer outbound send deps to plugins
* docs: note plugin-driven streaming/elevated defaults
* refactor: centralize webchat provider constant
* refactor: add provider setup adapters
* refactor: delegate provider add config to plugins
* docs: document plugin-driven provider add
* refactor: add plugin state/binding metadata
* refactor: build agent provider status from plugins
* docs: note plugin-driven agent bindings
* refactor: centralize internal provider constant usage
* fix: normalize WhatsApp targets for groups and E.164 (#631 ) (thanks @imfing)
* refactor: centralize default chat provider
* refactor: centralize WhatsApp target normalization
* refactor: move provider routing into plugins
* refactor: normalize agent delivery targets
* chore: fix lint regressions
* fix: normalize WhatsApp targets for groups and E.164 (#631 ) (thanks @imfing)
* feat: expand provider plugin adapters
* refactor: route auto-reply via provider plugins
* fix: align WhatsApp target normalization
* fix: normalize WhatsApp targets for groups and E.164 (#631 ) (thanks @imfing)
* refactor: centralize WhatsApp target normalization
* feat: add /config chat config updates
* docs: add /config get alias
* feat(commands): add /commands slash list
* refactor: centralize default chat provider
* style: apply biome lint fixes
* chore: fix lint regressions
* fix: clean up whatsapp allowlist typing
* style: format config command helpers
* refactor: pluginize tool threading context
* refactor: normalize session announce targets
* docs: note new plugin threading and announce hooks
* refactor: pluginize message actions
* docs: update provider plugin actions notes
* fix: align provider action adapters
* refactor: centralize webchat checks
* style: format message provider helpers
* refactor: move provider onboarding into adapters
* docs: note onboarding provider adapters
* feat: add msteams onboarding adapter
* style: organize onboarding imports
* fix: normalize msteams allowFrom types
* feat: add plugin text chunk limits
* refactor: use plugin chunk limit fallbacks
* feat: add provider mention stripping hooks
* style: organize provider plugin type imports
* refactor: generalize health snapshots
* refactor: update macOS health snapshot handling
* docs: refresh health snapshot notes
* style: format health snapshot updates
* refactor: drive security warnings via plugins
* docs: note provider security adapter
* style: format provider security adapters
* refactor: centralize provider account defaults
* refactor: type gateway client identity constants
* chore: regen gateway protocol swift
* fix: degrade health on failed provider probe
* refactor: centralize pairing approve hint
* docs: add plugin CLI command references
* refactor: route auth and tool sends through plugins
* docs: expand provider plugin hooks
* refactor: document provider docking touchpoints
* refactor: normalize internal provider defaults
* refactor: streamline outbound delivery wiring
* refactor: make provider onboarding plugin-owned
* refactor: support provider-owned agent tools
* refactor: move telegram draft chunking into telegram module
* refactor: infer provider tool sends via extractToolSend
* fix: repair plugin onboarding imports
* refactor: de-dup outbound target normalization
* style: tidy plugin and agent imports
* refactor: data-drive provider selection line
* fix: satisfy lint after provider plugin rebase
* test: deflake gateway-cli coverage
* style: format gateway-cli coverage test
* refactor(provider-plugins): simplify provider ids
* test(pairing-cli): avoid provider-specific ternary
* style(macos): swiftformat HealthStore
* refactor(sandbox): derive provider tool denylist
* fix(sandbox): avoid plugin init in defaults
* refactor(provider-plugins): centralize provider aliases
* style(test): satisfy biome
* refactor(protocol): v3 providers.status maps
* refactor(ui): adapt to protocol v3
* refactor(macos): adapt to protocol v3
* test: update providers.status v3 fixtures
* refactor(gateway): map provider runtime snapshot
* test(gateway): update reload runtime snapshot
* refactor(whatsapp): normalize heartbeat provider id
* docs(refactor): update provider plugin notes
* style: satisfy biome after rebase
* fix: describe sandboxed elevated in prompt
* feat(gateway): add agent image attachments + live probe
* refactor: derive CLI provider options from plugins
* fix(gateway): harden agent provider routing
* fix(gateway): harden agent provider routing
* refactor: align provider ids for schema
* fix(protocol): keep agent provider string
* fix(gateway): harden agent provider routing
* fix(protocol): keep agent provider string
* refactor: normalize agent delivery targets
* refactor: support provider-owned agent tools
* refactor(config): provider-keyed elevated allowFrom
* style: satisfy biome
* fix(gateway): appease provider narrowing
* style: satisfy biome
* refactor(reply): move group intro hints into plugin
* fix(reply): avoid plugin registry init cycle
* refactor(providers): add lightweight provider dock
* refactor(gateway): use typed client id in connect
* refactor(providers): document docks and avoid init cycles
* refactor(providers): make media limit helper generic
* fix(providers): break plugin registry import cycles
* style: satisfy biome
* refactor(status-all): build providers table from plugins
* refactor(gateway): delegate web login to provider plugin
* refactor(provider): drop web alias
* refactor(provider): lazy-load monitors
* style: satisfy lint/format
* style: format status-all providers table
* style: swiftformat gateway discovery model
* test: make reload plan plugin-driven
* fix: avoid token stringification in status-all
* refactor: make provider IDs explicit in status
* feat: warn on signal/imessage provider runtime errors
* test: cover gateway provider runtime warnings in status
* fix: add runtime kind to provider status issues
* test: cover health degradation on probe failure
* fix: keep routeReply lightweight
* style: organize routeReply imports
* refactor(web): extract auth-store helpers
* refactor(whatsapp): lazy login imports
* refactor(outbound): route replies via plugin outbound
* docs: update provider plugin notes
* style: format provider status issues
* fix: make sandbox scope warning wrap-safe
* refactor: load outbound adapters from provider plugins
* docs: update provider plugin outbound notes
* style(macos): fix swiftformat lint
* docs: changelog for provider plugins
* fix(macos): satisfy swiftformat
* fix(macos): open settings via menu action
* style: format after rebase
* fix(macos): open Settings via menu action
---------
Co-authored-by: LK <luke@kyohere.com>
Co-authored-by: Luke K (pr-0f3t) <2609441+lc0rp@users.noreply.github.com>
Co-authored-by: Xin <xin@imfing.com>
2026-01-11 11:45:25 +00:00
Peter Steinberger
684e18bab2
chore: add test:all shortcuts
2026-01-11 11:22:07 +00:00
Peter Steinberger
6d2928888c
feat(macos): prompt for CLI install
2026-01-11 10:32:52 +00:00
Peter Steinberger
7551415db9
fix: copy postinstall for cleanup docker
2026-01-11 10:28:07 +00:00
Peter Steinberger
93cdc89daf
fix(release): generate appcast from zip only
2026-01-11 10:27:10 +00:00
Peter Steinberger
f3f88190bb
fix(macos): avoid bundling dist artifacts in relay
2026-01-11 10:27:10 +00:00
Peter Steinberger
11c8db14a1
feat: add reset/uninstall commands
2026-01-11 10:23:52 +00:00
Peter Steinberger
e84eb3e671
test: add install.sh docker e2e smoke
2026-01-11 10:20:50 +00:00
Peter Steinberger
57e6a9a762
fix: clamp z.ai developer role
2026-01-11 04:28:30 +01:00
Peter Steinberger
f5670cae06
fix(macos): include optional relay deps
2026-01-11 03:22:46 +01:00
Peter Steinberger
9b6bc0e66b
fix: reset unsigned launchd overrides ( #695 ) (thanks @jeffersonwarrior)
2026-01-11 03:19:24 +01:00
Jefferson Warrior
325ed80252
scripts: simplify no-sign steps
2026-01-11 03:12:36 +01:00
Jefferson Warrior
e43abd3f14
macos: keep launchagent stable on --no-sign
2026-01-11 03:12:36 +01:00
Peter Steinberger
21ba04755b
fix(macos): onboarding location + layout
2026-01-11 01:36:00 +01:00
Peter Steinberger
317e15c746
fix: harden restart-mac signing ( #580 ) (thanks @jeffersonwarrior)
2026-01-10 23:48:33 +01:00
Jefferson Warrior
cb213b55f6
feat: add auto-signing detection to restart-mac.sh
2026-01-10 23:45:36 +01:00
Peter Steinberger
0d98e93253
fix: harden cloud code assist tool schema sanitizing ( #665 ) (thanks @sebslight)
2026-01-10 18:07:26 +01:00
Peter Steinberger
001a19eb2c
refactor: tidy mac bundled gateway packaging
2026-01-10 16:03:36 +01:00
Peter Steinberger
449bee9645
fix: bundle node runtime for mac app
2026-01-10 15:28:37 +01:00
Peter Steinberger
a057f6a306
test(docker): add multi-container gateway network smoke
2026-01-10 04:14:39 +00:00
Peter Steinberger
cc8d3d331a
fix(release): include whatsapp in npm pack
2026-01-10 04:34:24 +01:00
Peter Steinberger
5ec2018c8a
fix(release): include msteams in npm pack
2026-01-10 04:30:56 +01:00
Peter Steinberger
f918d30a58
docs(testing): refresh live docker runners
2026-01-10 03:06:07 +00:00
Peter Steinberger
ede3cd78c8
docs: document testing kit
2026-01-10 01:15:47 +00:00
Peter Steinberger
a29f5dda2e
test(live): gateway smoke across profile-key models
2026-01-10 01:09:41 +00:00
Peter Steinberger
3ed877a813
fix: sandbox browser CDP proxy
2026-01-10 01:09:41 +00:00
Peter Steinberger
cb10682d3e
fix(openai): avoid invalid reasoning replay
2026-01-10 00:45:10 +00:00
Peter Steinberger
0730e15c6c
fix: verify bundled relay with version check ( #615 ) (thanks @YuriNachos)
2026-01-09 23:40:52 +01:00
Yurii Chukhlib
9c05675d66
fix(build): remove non-functional smoke test from package-mac-app.sh
...
The --smoke qr argument was removed from the relay CLI, but the smoke
test remained in the macOS app packaging script. This caused the build
to fail with exit code 1 when the bundled relay didn't recognize the
argument.
Removes the 2-line smoke test section to fix the build.
Fixes #317
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-09 23:37:57 +01:00
Peter Steinberger
55e830b009
fix: harden onboarding for non-systemd environments
2026-01-09 22:17:09 +01:00
Peter Steinberger
834e2b82f3
docs: comment doctor switch e2e
2026-01-09 18:16:59 +01:00
Peter Steinberger
044ea90dde
fix: repair doctor service install switches
2026-01-09 17:50:28 +01:00
Peter Steinberger
ee70a1d1fb
fix(status): use claude-cli token for usage
2026-01-09 16:24:55 +00:00
Peter Steinberger
e8d75a39bc
ci: drop output sanitize wrapper
2026-01-09 16:49:12 +01:00
Peter Steinberger
014a4d51a6
feat(status): add claude.ai usage fallback
2026-01-09 15:34:58 +00:00
Peter Steinberger
92b792b3f0
fix: land #569 (thanks @bjesuiter)
2026-01-09 15:32:55 +01:00
Peter Steinberger
7b81d97ec2
feat: wire multi-agent config and routing
...
Co-authored-by: Mark Pors <1078320+pors@users.noreply.github.com>
2026-01-09 12:48:42 +00:00
Tobias Bischoff
a0bb2bccaf
Onboarding: add MiniMax hosted API key option
2026-01-09 13:39:28 +01:00
Josh Palmer
7b79823b24
Adjust UI install for offline pnpm fetch ( #568 )
...
* 🤖 codex: make ui build install prod deps for offline pnpm (issue-pnpm-offline)
* 🤖 codex: ensure ui:test installs dev deps (issue-pnpm-offline)
2026-01-09 13:38:46 +01:00
Peter Steinberger
151523f47b
feat: add usage cost reporting
2026-01-09 02:29:54 +00:00
Peter Steinberger
948ce5eb5f
feat(models): add oauth auth health
2026-01-09 00:34:38 +00:00
L36 Server
6484195bfe
scripts: add auth management and Termux widget scripts
2026-01-09 00:34:38 +00:00
gupsammy
29e9a574b0
fix(macos): prevent crash from missing ClawdbotKit resources and Swift library
...
The macOS app was crashing in two scenarios:
1. Bundle.module crash (fixes #213 ): When the first tool event arrived,
ToolDisplayRegistry tried to load config via ClawdbotKitResources.bundle,
which used Bundle.module directly. In packaged apps, Bundle.module
couldn't find the resource bundle at the expected path, causing a
fatal assertion failure after ~40-80 minutes of runtime.
2. dyld crash (fixes #417 ): Swift 6.2 requires libswiftCompatibilitySpan.dylib
but SwiftPM doesn't bundle it automatically, causing immediate crash on
launch with "Library not loaded" error.
Changes:
- ClawdbotKitResources.swift: Replace direct Bundle.module access with a
safe locator that checks multiple paths and falls back gracefully
- package-mac-app.sh: Copy ClawdbotKit_ClawdbotKit.bundle to Resources
- package-mac-app.sh: Copy libswiftCompatibilitySpan.dylib from Xcode
toolchain to Frameworks
Tested on macOS 26.2 with Swift 6.2 - app launches and runs without crashes.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 19:24:20 +00:00
Peter Steinberger
19595a8f99
refactor: simplify cli commands
2026-01-08 07:16:12 +01:00
Peter Steinberger
8b7b86ada8
docs: keep steipete first
2026-01-08 07:02:17 +01:00
Peter Steinberger
9eb71b1f88
docs: trim clawtributors overrides
2026-01-08 06:30:08 +01:00
Peter Steinberger
41f972c307
docs: infer logins from email local
2026-01-08 06:26:50 +01:00
Peter Steinberger
b0f4e0cfdc
docs: prioritize steipete in clawtributors
2026-01-08 06:22:34 +01:00
Peter Steinberger
689875dfbb
docs: dedupe clawtributors names
2026-01-08 06:20:47 +01:00
Peter Steinberger
fe17743696
docs: keep full clawtributors list
2026-01-08 06:16:52 +01:00
Peter Steinberger
3c20e72e33
docs: refresh clawtributors list
2026-01-08 05:48:29 +01:00
Peter Steinberger
67d1f61872
fix: harden session caching and topic transcripts
2026-01-07 22:51:26 +00:00
hsrvc
5400766b3c
Optimize multi-topic performance with TTL-based session caching
...
Add in-memory TTL-based caching to reduce file I/O bottlenecks in message processing:
1. Session Store Cache (45s TTL)
- Cache entire sessions.json in memory between reads
- Invalidate on writes to ensure consistency
- Reduces disk I/O by ~70-80% for active conversations
- Controlled via CLAWDBOT_SESSION_CACHE_TTL_MS env var
2. SessionManager Pre-warming
- Pre-warm .jsonl conversation history files into OS page cache
- Brings SessionManager.open() from 10-50ms to 1-5ms
- Tracks recently accessed sessions to avoid redundant warming
3. Configuration Support
- Add SessionCacheConfig type with cache control options
- Enable/disable caching and set custom TTL values
4. Testing
- Comprehensive unit tests for cache functionality
- Test cache hits, TTL expiration, write invalidation
- Verify environment variable overrides
This fixes the slowness reported with multiple Telegram topics/channels.
Expected performance gains:
- Session store loads: 99% faster (1-5ms → 0.01ms)
- Overall message latency: 60-80% reduction for multi-topic workloads
- Memory overhead: < 1MB for typical deployments
- Disk I/O: 70-80% reduction in file reads
Rollback: Set CLAWDBOT_SESSION_CACHE_TTL_MS=0 to disable caching
🤖 Generated with Claude Code
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-07 22:51:26 +00:00
Peter Steinberger
aa87d6cee8
refactor(relay): add --smoke entrypoint
2026-01-07 03:12:30 +00:00
Peter Steinberger
2a50eadcc1
fix(ui): self-heal ui builds
2026-01-06 16:03:04 +01:00
Peter Steinberger
c27dd75135
build(control-ui): prefer bun for UI build
2026-01-06 09:08:25 +01:00
Ayaan Zaidi
7a48b908e4
refactor: replace tsx with bun for TypeScript execution ( #278 )
2026-01-06 07:14:08 +00:00
Ayaan Zaidi
a79c100594
fix: targetDir symlink handling in postinstall script ( #272 )
2026-01-05 23:36:11 -06:00
Peter Steinberger
c1698b6975
docs: add bun install support
2026-01-06 03:41:56 +01:00
Peter Steinberger
17db03ad55
test: ignore SIGPIPE in docker e2e
2026-01-06 02:49:45 +01:00
Peter Steinberger
28fad05e96
test: stabilize docker onboarding e2e
2026-01-06 02:49:45 +01:00
Peter Steinberger
b85248bd07
fix: patch qrcode-terminal import for Node 22
2026-01-06 02:23:55 +01:00
Peter Steinberger
bc74e7cd9b
docs: default mac build arch to host
2026-01-05 06:45:23 +01:00
Peter Steinberger
5dbbad0452
chore: default mac packaging to notarize
2026-01-05 04:22:58 +01:00
Peter Steinberger
e4335ea094
fix: bundle qr renderer in relay
2026-01-05 02:19:49 +01:00
Andranik Sahakyan
d9a9f6db7d
fix(mac): add Sendable conformance to generated Swift protocol structs ( #195 )
...
* fix(mac): add Sendable conformance to generated Swift protocol structs
* fix(mac): make generated protocol types Sendable
* chore(mac): drop redundant Sendable extensions
* docs(changelog): thank @andranik-sahakyan for Sendable fix
* chore(swiftformat): exclude generated protocol models
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-04 22:39:21 +00:00
Peter Steinberger
246adaa119
chore: rename project to clawdbot
2026-01-04 14:38:51 +00:00
Peter Steinberger
4b3ca29404
build: add homebrew to sandbox image
2026-01-04 06:12:06 +00:00
Peter Steinberger
be9fa124df
build: add pkg-config + libasound2-dev to sandbox image
2026-01-04 05:28:08 +00:00
Peter Steinberger
5673f4299a
build: add sandbox common image builder
2026-01-04 04:17:13 +00:00
Peter Steinberger
f2ce455c8c
fix: set writable home for sandbox browser
2026-01-04 03:49:39 +00:00
Peter Steinberger
70f79bd926
fix: stabilize sandbox browser startup
2026-01-04 03:45:14 +00:00
Peter Steinberger
52f59e6dc1
fix: drop stale ClawdisCLI build flag
2026-01-04 00:42:22 +01:00
Peter Steinberger
d8a417f7ff
feat: add sandbox browser support
2026-01-03 22:14:18 +01:00
Peter Steinberger
3b075dff8a
feat: add per-session agent sandbox
2026-01-03 21:41:58 +01:00
Peter Steinberger
641080a0b6
fix: document macOS permission requirements
2026-01-03 20:05:22 +01:00
Jake
99c3fc1128
Scripts: Make ad-hoc fallback opt-in with stronger TCC warnings
2026-01-03 20:05:22 +01:00
Jake
8c7b2aa2d3
Scripts: Fallback to ad-hoc signing in codesign-mac-app.sh
2026-01-03 20:05:22 +01:00
Peter Steinberger
40ee0f0672
build: lock x86_64 relay to AVX2
2026-01-03 16:52:06 +01:00
Peter Steinberger
7165c8a7e5
refactor: rename bundle identifiers to com.clawdis
2026-01-03 12:26:22 +01:00
Peter Steinberger
45c555a4bd
fix: use x86_64 bun for relay builds
2026-01-03 11:06:49 +01:00
Peter Steinberger
5986a83e80
fix: skip duplicate arch merge for Sparkle
2026-01-03 11:06:49 +01:00
Peter Steinberger
732de4acf0
fix: make Sparkle builds numeric + universal
2026-01-03 11:06:48 +01:00
Peter Steinberger
eaa69fb6b2
test: silence docker onboarding noise
2026-01-02 20:46:26 +01:00
Peter Steinberger
e0795cf18c
test: annotate onboarding docker e2e
2026-01-02 20:41:47 +01:00
Peter Steinberger
8ed878e73c
test: stabilize docker onboarding e2e
2026-01-02 20:40:33 +01:00
Peter Steinberger
2a6248dad6
fix: add camera entitlement to macOS signing
2026-01-02 17:31:59 +01:00
Peter Steinberger
9b65534561
test: harden wizard e2e flow
2026-01-01 21:09:32 +01:00
Peter Steinberger
6e3cb34024
chore: pin ElevenLabsKit + wizard note
2026-01-01 20:19:00 +01:00
Peter Steinberger
a72fdf7c26
feat: expand wizard setup flow
2026-01-01 19:14:14 +01:00
Peter Steinberger
7c2c541729
feat: expand onboarding wizard
2026-01-01 18:23:59 +01:00
Peter Steinberger
3eb3f38adf
test: add onboarding e2e harness
2026-01-01 18:01:42 +01:00
Petter Blomberg
02d5c00873
macOS: move rpath configuration to build step for reliability
2026-01-01 17:44:39 +01:00
Petter Blomberg
fe5e58af91
scripts: fix ad-hoc signing crashes and bash unbound variable error
2026-01-01 15:29:01 +01:00
Peter Steinberger
ad9a9d8d35
Merge remote-tracking branch 'origin/main' into upstream-preview-nix-2025-12-20
2026-01-01 09:15:28 +01:00
Peter Steinberger
14e9077584
chore: add bench-model script
2026-01-01 08:59:31 +01:00
Peter Steinberger
78cf68549f
Merge pull request #64 from mbelinky/fix-instances-crash
...
Fix Instances crash by bundling device model resources
2026-01-01 08:58:35 +01:00
Mariano Belinky
941ad27551
Bundle Control UI in Mac app
2026-01-01 08:55:09 +01:00
Mariano Belinky
ea248f6743
Fix device model resources for Instances
2025-12-31 16:45:35 +01:00
Peter Steinberger
09ef991e1a
chore: harden restart script
2025-12-29 18:09:27 +01:00
Josh Palmer
ced271bec1
chore(macos): harden mktemp templates in codesign
2025-12-29 17:49:13 +01:00
Josh Palmer
b7363f7c18
feat: Nix mode config, UX, onboarding, SwiftPM plist, docs
2025-12-29 17:49:13 +01:00
Peter Steinberger
7f961237f9
chore: harden release checks
2025-12-27 19:35:39 +01:00
Peter Steinberger
c54e4d0900
refactor: node tools and canvas host url
2025-12-27 01:36:29 +01:00
Peter Steinberger
67b9a675f5
fix(macos): allow http loads in canvas webview
2025-12-27 00:20:58 +01:00
Peter Steinberger
b9d80aa535
chore(ios): add team id helper
2025-12-26 18:16:13 +01:00
Peter Steinberger
2f8213ca9a
fix(a2ui): skip bundle when inputs unchanged
2025-12-26 18:11:00 +01:00
Peter Steinberger
b549307ccf
docs: add Sparkle HTML release notes
2025-12-25 04:27:20 +01:00
Peter Steinberger
2b20e3d2b0
chore: resolve docs list from cwd
2025-12-23 00:28:55 +00:00
Peter Steinberger
02787b5674
build(mac): add notarize flow for release artifacts
2025-12-21 12:33:45 +01:00
Peter Steinberger
bcc5891e03
fix(mac): allow tailscale localapi http
2025-12-21 02:17:55 +00:00
Peter Steinberger
382d237a60
build: silence mac packaging warnings
2025-12-21 02:06:12 +01:00
Peter Steinberger
fb9c1f7e65
perf(dmg): shrink rw image before lzma convert
2025-12-20 19:44:26 +00:00