Peter Steinberger
ba23d2b1fe
test(onboard): table-drive custom api flag rejection cases
2026-02-21 23:58:33 +00:00
Peter Steinberger
8cc3a5e460
test(doctor): tighten legacy migration e2e timeout budgets
2026-02-21 23:58:33 +00:00
Brian Mendonca
6c813bd32b
test: avoid asserting auth.json absence for invalid profile creds
2026-02-21 23:57:34 +01:00
Brian Mendonca
d12817994f
test: stabilize model catalog and auth-sync assertions across runtimes
2026-02-21 23:57:34 +01:00
Peter Steinberger
861718e4dc
test: group remaining suite cleanups
2026-02-21 21:44:57 +00:00
Peter Steinberger
5d61afb362
test(commands): dedupe signal install extract fixture and cover zip extract
2026-02-21 21:40:39 +00:00
Peter Steinberger
0e49eec056
test(commands): dedupe auth-sync fixture and cover invalid profile handling
2026-02-21 21:40:38 +00:00
Peter Steinberger
5e607ae1eb
refactor(test): snapshot deprecated auth profile env in e2e
2026-02-21 19:13:47 +00:00
Peter Steinberger
1fd88af219
test(commands): stabilize message e2e env and gateway mock
2026-02-21 19:13:47 +00:00
Peter Steinberger
ec8288e9b8
refactor(test): reuse env helper in gateway status e2e
2026-02-21 19:13:47 +00:00
Peter Steinberger
fc43a16d43
refactor(test): replace ad-hoc env restore blocks with helpers
2026-02-21 19:13:47 +00:00
Peter Steinberger
dda9e9f094
refactor(test): snapshot onboarding gateway env via helper
2026-02-21 19:13:47 +00:00
Peter Steinberger
b2ed54f600
refactor(test): reuse env helper in onboarding provider auth e2e
2026-02-21 19:13:47 +00:00
Peter Steinberger
aff272ec35
refactor(test): reuse env helper in models auth sync
2026-02-21 19:13:46 +00:00
Peter Steinberger
992b7e5577
refactor(test): use env snapshots in setup hooks
2026-02-21 19:13:46 +00:00
Peter Steinberger
2c14b0cf4c
refactor(config): unify streaming config across channels
2026-02-21 19:53:42 +01:00
Thorfinn
efdec39254
fix: correct MiniMax M2.5 pricing (was ~50x too high) (openclaw#22755) thanks @miloudbelarebia
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: miloudbelarebia <136994453+miloudbelarebia@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-21 11:26:48 -06:00
Peter Steinberger
35a57bc940
fix: gate doctor oauth-dir repair by channel config
2026-02-21 18:08:15 +01:00
Onur
8178ea472d
feat: thread-bound subagents on Discord ( #21805 )
...
* docs: thread-bound subagents plan
* docs: add exact thread-bound subagent implementation touchpoints
* Docs: prioritize auto thread-bound subagent flow
* Docs: add ACP harness thread-binding extensions
* Discord: add thread-bound session routing and auto-bind spawn flow
* Subagents: add focus commands and ACP/session binding lifecycle hooks
* Tests: cover thread bindings, focus commands, and ACP unbind hooks
* Docs: add plugin-hook appendix for thread-bound subagents
* Plugins: add subagent lifecycle hook events
* Core: emit subagent lifecycle hooks and decouple Discord bindings
* Discord: handle subagent bind lifecycle via plugin hooks
* Subagents: unify completion finalizer and split registry modules
* Add subagent lifecycle events module
* Hooks: fix subagent ended context key
* Discord: share thread bindings across ESM and Jiti
* Subagents: add persistent sessions_spawn mode for thread-bound sessions
* Subagents: clarify thread intro and persistent completion copy
* test(subagents): stabilize sessions_spawn lifecycle cleanup assertions
* Discord: add thread-bound session TTL with auto-unfocus
* Subagents: fail session spawns when thread bind fails
* Subagents: cover thread session failure cleanup paths
* Session: add thread binding TTL config and /session ttl controls
* Tests: align discord reaction expectations
* Agent: persist sessionFile for keyed subagent sessions
* Discord: normalize imports after conflict resolution
* Sessions: centralize sessionFile resolve/persist helper
* Discord: harden thread-bound subagent session routing
* Rebase: resolve upstream/main conflicts
* Subagents: move thread binding into hooks and split bindings modules
* Docs: add channel-agnostic subagent routing hook plan
* Agents: decouple subagent routing from Discord
* Discord: refactor thread-bound subagent flows
* Subagents: prevent duplicate end hooks and orphaned failed sessions
* Refactor: split subagent command and provider phases
* Subagents: honor hook delivery target overrides
* Discord: add thread binding kill switches and refresh plan doc
* Discord: fix thread bind channel resolution
* Routing: centralize account id normalization
* Discord: clean up thread bindings on startup failures
* Discord: add startup cleanup regression tests
* Docs: add long-term thread-bound subagent architecture
* Docs: split session binding plan and dedupe thread-bound doc
* Subagents: add channel-agnostic session binding routing
* Subagents: stabilize announce completion routing tests
* Subagents: cover multi-bound completion routing
* Subagents: suppress lifecycle hooks on failed thread bind
* tests: fix discord provider mock typing regressions
* docs/protocol: sync slash command aliases and delete param models
* fix: add changelog entry for Discord thread-bound subagents (#21805 ) (thanks @onutc)
---------
Co-authored-by: Shadow <hi@shadowing.dev >
2026-02-21 16:14:55 +01:00
Peter Steinberger
581868365d
fix: finish volcengine/byteplus landing polish ( #7967 ) (thanks @funmore123)
2026-02-21 15:05:09 +01:00
fanziqing
559736a5a0
feat(volcengine): integrate Volcengine & Byteplus Provider
2026-02-21 15:05:09 +01:00
大猫子
c62a6e7040
fix(models): add kimi-coding implicit provider template (openclaw#22526) thanks @lailoo
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: lailoo <20536249+lailoo@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-21 07:35:09 -06:00
Peter Steinberger
f202e73077
refactor(security): centralize host env policy and harden env ingestion
2026-02-21 13:04:39 +01:00
Vignesh Natarajan
d583399c92
Hooks: persist session memory on /reset
2026-02-20 20:19:29 -08:00
Xinhua Gu
9c5249714d
fix(gateway): trusted-proxy auth rejected when bind=loopback ( #20097 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 8de62f1a8f991f900fd1482f64976f234011f4d2
Co-authored-by: xinhuagu <562450+xinhuagu@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-02-20 17:51:35 +00:00
mudrii
7ecfc1d93c
fix(auth): bidirectional mode/type compat + sync OAuth to all agents ( #12692 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 2dee8e1174e637e50d10bf7020f1de2990b804dc
Co-authored-by: mudrii <220262+mudrii@users.noreply.github.com >
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Reviewed-by: @obviyus
2026-02-20 16:01:09 +05:30
Glucksberg
38b4fb5d55
fix(auth/session): preserve override reset behavior and repair oauth profile-id drift (openclaw#18820) thanks @Glucksberg
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: Glucksberg <80581902+Glucksberg@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 21:16:26 -06:00
Vishal
f1e1cc4ee3
feat: surface cached token counts in /status output (openclaw#21248) thanks @vishaltandale00
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: vishaltandale00 <9222298+vishaltandale00@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 21:06:13 -06:00
Jeremy Mumford
6ef365d062
resolved bug with doing a raw call to anthropic compatible apis ( #21336 )
2026-02-19 15:04:49 -08:00
Peter Steinberger
a1cb700a05
test: dedupe and optimize test suites
2026-02-19 15:19:38 +00:00
Peter Steinberger
3a258e7ca8
fix(ci): add explicit mock export types for harnesses
2026-02-19 15:16:09 +00:00
Peter Steinberger
d3bf6e1b90
test: harden mock order and shell path coverage
2026-02-19 15:09:19 +00:00
Peter Steinberger
71983716ff
test: share channels command mock harness
2026-02-19 15:08:14 +00:00
Peter Steinberger
f76f98b268
chore: fix formatting drift and stabilize cron tool mocks
2026-02-19 15:41:38 +01:00
Peter Steinberger
5dc50b8a3f
fix(security): harden npm plugin and hook install integrity flow
2026-02-19 15:11:25 +01:00
Thorfinn
b45bb6801c
fix(doctor): skip embedding provider check when QMD backend is active (openclaw#17295) thanks @miloudbelarebia
...
Verified:
- pnpm build
- pnpm check (fails on baseline formatting drift in files identical to origin/main)
- pnpm test:macmini
Co-authored-by: miloudbelarebia <52387093+miloudbelarebia@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 07:21:27 -06:00
Jay Caldwell
9edec67a18
fix(security): block plaintext WebSocket connections to non-loopback addresses ( #20803 )
...
* fix(security): block plaintext WebSocket connections to non-loopback addresses
Addresses CWE-319 (Cleartext Transmission of Sensitive Information).
Previously, ws:// connections to remote hosts were allowed, exposing
both credentials and chat data to network interception. This change
blocks ALL plaintext ws:// connections to non-loopback addresses,
regardless of whether explicit credentials are configured (device
tokens may be loaded dynamically).
Security policy:
- wss:// allowed to any host
- ws:// allowed only to loopback (127.x.x.x, localhost, ::1)
- ws:// to LAN/tailnet/remote hosts now requires TLS
Changes:
- Add isSecureWebSocketUrl() validation in net.ts
- Block insecure connections in GatewayClient.start()
- Block insecure URLs in buildGatewayConnectionDetails()
- Handle malformed URLs gracefully without crashing
- Update tests to use wss:// for non-loopback URLs
Fixes #12519
* fix(test): update gateway-chat mock to preserve net.js exports
Use importOriginal to spread actual module exports and mock only
the functions needed for testing. This ensures isSecureWebSocketUrl
and other exports remain available to the code under test.
2026-02-19 03:13:08 -08:00
Peter Steinberger
90b05b18f1
test: collapse duplicate onboard auth assertions
2026-02-19 09:13:16 +00:00
Peter Steinberger
749edf25ca
test: dedupe repeated onboarding provider config cases
2026-02-19 09:08:48 +00:00
Peter Steinberger
47bbef30f9
test: merge duplicate undefined api-key persistence checks
2026-02-19 08:27:40 +00:00
Peter Steinberger
fe3bd9d65b
test: merge duplicate gateway token coercion checks
2026-02-19 08:26:43 +00:00
Peter Steinberger
ad4c784f20
test: collapse duplicate gateway token-generation cases
2026-02-19 08:15:32 +00:00
Peter Steinberger
8b17a369e9
refactor(agents): share agent entry and block reply payload types
2026-02-19 00:06:19 +00:00
Peter Steinberger
5c5c032f42
refactor(security): share DM allowlist state resolver
2026-02-18 23:58:11 +00:00
Peter Steinberger
89a0b95af4
refactor(security): reuse shared allowlist normalization
2026-02-18 23:48:32 +00:00
Peter Steinberger
aa8f87a3bf
refactor(plugins): reuse plugin loader logger adapter
2026-02-18 23:48:32 +00:00
Peter Steinberger
0048af4e2d
refactor(commands): dedupe auth-choice model notes
2026-02-18 23:34:15 +00:00
Peter Steinberger
1a030a544b
test: table-drive sandbox formatter assertions
2026-02-18 23:19:33 +00:00
Peter Steinberger
c0c10f42e2
refactor(commands): share daemon runtime warning helper
2026-02-18 23:09:09 +00:00
Peter Steinberger
8e6a7a6343
refactor(models): reuse list format helpers in scan
2026-02-18 23:09:09 +00:00