Peter Steinberger
08431da5d5
refactor(gateway): unify credential precedence across entrypoints
2026-02-22 18:55:44 +01:00
Peter Steinberger
ad1072842e
test: dedupe agent tests and session helpers
2026-02-22 17:11:54 +00:00
Peter Steinberger
7d09a9e74d
test: update agent tool assertions and reclassify suites
2026-02-22 11:18:50 +00:00
Peter Steinberger
fcb86408fd
test: move embedded and tool agent suites out of e2e
2026-02-22 11:17:47 +00:00
Peter Steinberger
713e2928b2
test: move duplicate local scenario suites out of agents e2e
2026-02-22 10:56:58 +00:00
Peter Steinberger
adace58505
test: reclassify local helper suites out of agents e2e
2026-02-22 10:53:40 +00:00
Peter Steinberger
ab38e1e6b2
test: reclassify image tool suite as unit test
2026-02-22 10:47:16 +00:00
Peter Steinberger
1d7dbd8cd9
test: reclassify web fetch/readability suites as unit tests
2026-02-22 10:41:29 +00:00
Peter Steinberger
304eef575b
test: reclassify sandbox and web/image tool suites as unit tests
2026-02-22 10:40:40 +00:00
Peter Steinberger
2d2e1c2403
test(core): use lightweight clear in cron, claude runner, and telegram delivery specs
2026-02-22 08:35:38 +00:00
Peter Steinberger
1ba1c3f306
test(core): reduce reset overhead in messaging and agent e2e mocks
2026-02-22 08:33:06 +00:00
Peter Steinberger
e67f813b0e
test(core): continue reset-to-clear cleanup in subagent focus and web fetch
2026-02-22 08:30:05 +00:00
Peter Steinberger
8a0a28763e
test(core): reduce mock reset overhead across unit and e2e specs
2026-02-22 08:22:58 +00:00
Peter Steinberger
089270e769
test(core): use lightweight clears in stable mock setup
2026-02-22 08:01:16 +00:00
Peter Steinberger
d476994fb9
test(memory): share memory-tool manager mock fixture
2026-02-22 07:44:57 +00:00
Peter Steinberger
8083cb8e0b
test(web-fetch): dedupe blocked-url SSRF assertions
2026-02-21 23:58:33 +00:00
Peter Steinberger
a353dae14f
test(image-tool): share temp agent dirs and table-drive validation cases
2026-02-21 23:58:33 +00:00
Peter Steinberger
f589295a0a
test(actions): table-drive discord presence mappings
2026-02-21 23:44:01 +00:00
Peter Steinberger
0afd5d38c5
test(actions): table-drive discord reaction and permission cases
2026-02-21 23:43:01 +00:00
Peter Steinberger
2595690a4d
test(actions): table-drive slack and telegram action cases
2026-02-21 23:43:01 +00:00
Harry Cui Kepler
ffa63173e0
refactor(agents): migrate console.warn/error/info to subsystem logger ( #22906 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: a806c4cb2700564096ce8980a8d7f839f8a0d388
Co-authored-by: Kepler2024 <166882517+Kepler2024@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-02-21 17:11:47 -05:00
Peter Steinberger
861718e4dc
test: group remaining suite cleanups
2026-02-21 21:44:57 +00:00
Peter Steinberger
884166c7af
refactor(test): snapshot telegram action env in e2e suite
2026-02-21 19:13:47 +00: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
10b8839a82
fix(security): centralize WhatsApp outbound auth and return 403 tool auth errors
2026-02-21 14:31:01 +01:00
Peter Steinberger
50a8942c07
docs(changelog): add WhatsApp reaction allowlist security note
2026-02-21 13:57:54 +01:00
Aether AI Agent
e217f8c3f7
fix(security): OC-91 validate WhatsApp JID against allowlist in all send paths — Aether AI Agent
2026-02-21 13:57:54 +01:00
Peter Steinberger
b2d84528f8
refactor(test): remove duplicate cron tool harnesses
2026-02-21 12:25:23 +00:00
Vincent Koc
c2f5628915
Fix formatting ( #22474 )
2026-02-21 01:37:02 -05:00
C.J. Winslow
58f7b7638a
Security: add per-wrapper IDs to untrusted-content markers ( #19009 )
...
Fixes #10927
Adds unique per-wrapper IDs to external-content boundary markers to
prevent spoofing attacks where malicious content could inject fake
marker boundaries.
- Generate random 16-char hex ID per wrap operation
- Start/end markers share the same ID for pairing
- Sanitizer strips markers with or without IDs (handles legacy + spoofed)
- Added test for attacker-injected markers with fake IDs
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-02-21 01:16:02 -05:00
Vignesh Natarajan
93c2f20a23
Memory: surface explicit memory_search unavailable status
2026-02-20 20:30:52 -08:00
Vincent Koc
282a545130
chore: fix formatting on CI-drift files ( #22391 )
2026-02-20 22:40:30 -05:00
Shadow
b294342d7f
feat(discord): support forum tag edits via channel-edit ( #12070 ) (thanks @xiaoyaner0201)
2026-02-20 21:17:04 -06:00
Shadow
f555835b09
Channels: add thread-aware model overrides
2026-02-20 19:26:25 -06:00
Tyler Yust
fe57bea088
Subagents: restore announce chain + fix nested retry/drop regressions ( #22223 )
...
* Subagents: restore announce flow and fix nested delivery retries
* fix: prep subagent announce + docs alignment (#22223 ) (thanks @tyler6204)
2026-02-20 15:39:09 -08:00
Shadow
4ab946eebf
Discord VC: voice channels, transcription, and TTS ( #18774 )
2026-02-20 16:06:07 -06:00
Shadow
39816e61b0
Security: restrict canvas jsonlPath file reads
2026-02-20 13:21:55 -06:00
Mariano
5828708343
iOS/Gateway: harden pairing resolution and settings-driven capability refresh ( #22120 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 55b8a93a999b7458c98f9d3b31abbd3665929b31
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:57:04 +00:00
Mariano
8e4f6c0384
fix(browser): block upload symlink escapes ( #21972 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 4381ef9a4d9107798c9c7c00aac62ee81a878789
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 16:36:25 +00:00
Vignesh Natarajan
ec4198954a
Memory: harden readFile ENOENT handling
2026-02-19 23:33:28 -08:00
Daniel Zou
f3f47886ba
fix(memory): handle ENOENT gracefully in readFile instead of throwing
...
When a memory file doesn't exist yet (e.g. daily log `2026-02-19.md`),
`readFile` now returns `{ text: "", path }` instead of propagating the
ENOENT error. This prevents noisy error responses from the memory read
tool and aligns with the "graceful degradation" recommendation in #9307 .
Closes #9307
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-19 23:33:28 -08:00
青雲
21448508a1
fix: Grok web_search extracts output_text blocks at top level (openclaw#20508) thanks @echoVic
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: echoVic <16428813+echoVic@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 20:37:15 -06:00
Peter Steinberger
3a258e7ca8
fix(ci): add explicit mock export types for harnesses
2026-02-19 15:16:09 +00:00
Peter Steinberger
e96c6a7a3e
fix(ci): format cron tool imports
2026-02-19 15:13:02 +00:00
Peter Steinberger
cc9be84b9c
refactor(runtime): split runtime builders and stabilize cron tool seam
2026-02-19 16:09:56 +01:00
Peter Steinberger
f76f98b268
chore: fix formatting drift and stabilize cron tool mocks
2026-02-19 15:41:38 +01:00
Peter Steinberger
c9dee59266
refactor(security): centralize trusted sender checks for discord moderation
2026-02-19 15:39:56 +01:00
Peter Steinberger
3d7ad1cfca
fix(security): centralize owner-only tool gating and scope maps
2026-02-19 15:29:23 +01:00
Peter Steinberger
efca61e3ac
test: share cron tool mock harness
2026-02-19 14:27:37 +00:00
Peter Steinberger
775816035e
fix(security): enforce trusted sender auth for discord moderation
2026-02-19 15:18:24 +01:00