Peter Steinberger
89aad7b922
refactor: tighten safe-bin policy model and docs parity
2026-02-21 19:24:23 +01:00
Peter Steinberger
57fbbaebca
fix: block safeBins sort --compress-program bypass
2026-02-21 19:13:53 +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
f23da067f6
fix(security): harden heredoc allowlist parsing
2026-02-21 14:27:51 +01:00
orlyjamie
92cada2aca
fix(security): block command substitution in unquoted heredoc bodies
...
The shell command analyzer (splitShellPipeline) skipped all token
validation while parsing heredoc bodies. When the heredoc delimiter
was unquoted, bash performs command substitution on the body content,
allowing $(cmd) and backtick expressions to execute arbitrary commands
that bypass the exec allowlist.
Track whether heredoc delimiters are quoted or unquoted. When unquoted,
scan the body for $( , ${ , and backtick tokens and reject the command.
Quoted heredocs (<<'EOF' / <<"EOF") are safe - the shell treats their
body as literal text.
Ref: https://github.com/openclaw/openclaw/security/advisories/GHSA-65rx-fvh6-r4h2
2026-02-21 14:27:35 +01:00
Peter Steinberger
c2874aead7
refactor(test): centralize temporary state-dir env setup
2026-02-21 12:59:24 +00:00
Peter Steinberger
f202e73077
refactor(security): centralize host env policy and harden env ingestion
2026-02-21 13:04:39 +01:00
Peter Steinberger
6007941f04
fix(security): harden and refactor system.run command resolution
2026-02-21 11:49:38 +01:00
Peter Steinberger
2cdbadee1f
fix(security): block startup-file env injection across host execution paths
2026-02-21 11:44:20 +01:00
Peter Steinberger
c6ee14d60e
fix(security): block grep safe-bin file-read bypass
2026-02-21 11:18:29 +01:00
Vincent Koc
c20d519e05
feat(security): migrate sha1 hashes to sha256 for synthetic ids ( #7343 ) ( #22528 )
...
* feat(prompt): add explicit owner hash secret to obfuscation path
* feat(security): migrate synthetic IDs to sha256 for #7343
2026-02-21 03:20:14 -05:00
Mariano
5dd304d1c6
fix(gateway): clear pairing state on device token mismatch ( #22071 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: ad38d1a529
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-02-20 18:21:13 +00:00
Coy Geek
914a7c5359
fix: Device Token Scope Escalation via Rotate Endpoint ( #20703 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 4f2c2ecef4
Co-authored-by: coygeek <65363919+coygeek@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-02-20 17:38:58 +00:00
Nimrod Gutman
8775d34fba
fix(pairing): simplify pending merge and harden mixed-role onboarding
2026-02-20 14:47:20 +02:00
Nimrod Gutman
1da23be302
fix(pairing): preserve operator scopes for ios onboarding
2026-02-20 14:47:20 +02:00
Shakker
525d6e0671
Gateway: align pairing scope checks for read access
2026-02-20 05:12:05 +00:00
Hudson
7b81383d44
fix(signal): preserve case for Base64 group IDs in target normalization (openclaw#10623) thanks @heyhudson
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: heyhudson <258693705+heyhudson@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 22:41:55 -06:00
Kirill Shchetynin
ee519086f6
Feature/default messenger delivery target (openclaw#16985) thanks @KirillShchetinin
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: KirillShchetinin <13061871+KirillShchetinin@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 22:37:19 -06:00
adhitShet
ae4907ce6e
fix(heartbeat): return false for zero-width active-hours window ( #21408 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 993860bd03
Co-authored-by: adhitShet <131381638+adhitShet@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-02-19 20:03:57 -05:00
adhitShet
57f0ac21e9
fix(heartbeat): constrain 24-hour sentinel to 24:00 only in regex ( #21410 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 7b8fe75738
Co-authored-by: adhitShet <131381638+adhitShet@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-02-19 19:52:38 -05:00
Gustavo Madeira Santana
cf4ffff3e1
fix(heartbeat): run when HEARTBEAT.md is missing
2026-02-19 19:32:18 -05:00
George Pickett
802f043e53
Net: expand cross-origin sensitive header regression test
2026-02-19 11:42:25 -08:00
Andrii Furmanets
c0cd5a7265
Net: strip sensitive headers on cross-origin redirects
2026-02-19 11:42:25 -08:00
Peter Steinberger
bf8117ad32
fix(update): silence npm deprecation/funding noise
2026-02-19 18:19:16 +01:00
Peter Steinberger
a1cb700a05
test: dedupe and optimize test suites
2026-02-19 15:19:38 +00:00
Peter Steinberger
4574f3279b
test: cover npm pack install drift branches
2026-02-19 15:08:54 +00:00
Peter Steinberger
dcd592a601
refactor: eliminate jscpd clones and boost tests
2026-02-19 15:08:54 +00:00
Peter Steinberger
edf92f1cb0
refactor: share npm integrity drift handling
2026-02-19 15:08:14 +00:00
Peter Steinberger
a688ccf24a
refactor(security): unify safe-bin argv parsing and harden regressions
2026-02-19 16:04:58 +01:00
Peter Steinberger
f76f98b268
chore: fix formatting drift and stabilize cron tool mocks
2026-02-19 15:41:38 +01:00
Peter Steinberger
ba538c98c7
refactor: share plain object guard across config and utils
2026-02-19 14:27:36 +00:00
Peter Steinberger
cb6b835a49
test: dedupe heartbeat and action-runner fixtures
2026-02-19 14:27:36 +00:00
Peter Steinberger
26c9b37f5b
fix(security): enforce strict IPv4 SSRF literal handling
2026-02-19 15:24:47 +01:00
Peter Steinberger
775816035e
fix(security): enforce trusted sender auth for discord moderation
2026-02-19 15:18:24 +01:00
Peter Steinberger
baa335f258
fix(security): harden SSRF IPv4 literal parsing
2026-02-19 15:14:46 +01:00
Peter Steinberger
5dc50b8a3f
fix(security): harden npm plugin and hook install integrity flow
2026-02-19 15:11:25 +01:00
Peter Steinberger
2777d8ad93
refactor(security): unify gateway scope authorization flows
2026-02-19 15:06:38 +01:00
Peter Steinberger
f8b61bb4ed
refactor(acp): split session tests and share rate limiter
2026-02-19 14:55:06 +01:00
Peter Steinberger
7a89049d1d
refactor: dedupe pending pairing request flow and add reuse tests
2026-02-19 13:54:35 +00:00
Peter Steinberger
79ab4927c1
test: dedupe extracted-size budget assertions in archive tests
2026-02-19 13:51:53 +00:00
Peter Steinberger
4ddc4dfd76
test: dedupe fetch cleanup-throw signal harness
2026-02-19 13:50:07 +00:00
Peter Steinberger
182ffdf557
test: dedupe zai env test setup and cover blank legacy key
2026-02-19 13:48:21 +00:00
Peter Steinberger
177654f526
refactor: dedupe APNs push send flow and add wake default test
2026-02-19 13:45:34 +00:00
Peter Steinberger
722a898f20
refactor: dedupe openclaw root traversal and add coverage
2026-02-19 13:43:31 +00:00
Peter Steinberger
a40c10d3e2
fix: harden agent gateway authorization scopes
2026-02-19 14:37:56 +01:00
Peter Steinberger
165c18819e
refactor(security): simplify safe-bin validation structure
2026-02-19 14:33:58 +01:00
Peter Steinberger
268b0dc921
style: fix formatting drift in security allowlist checks
2026-02-19 13:31:01 +00:00
Peter Steinberger
ff74d89e86
fix: harden gateway control-plane restart protections
2026-02-19 14:30:15 +01:00
Peter Steinberger
14b4c7fd56
refactor: dedupe provider usage auth/fetch logic and expand coverage
2026-02-19 13:28:18 +00:00
Peter Steinberger
2d485cd47a
refactor(security): extract safe-bin policy and dedupe tests
2026-02-19 14:28:03 +01:00