Peter Steinberger
50645b905b
refactor(outbound): centralize outbound identity
2026-02-14 16:44:43 +01:00
Peter Steinberger
64df787448
refactor(channels): share account summary helpers
2026-02-14 15:39:46 +00:00
Peter Steinberger
cc233da373
refactor(pairing): share json state helpers
2026-02-14 15:39:46 +00:00
Peter Steinberger
e9de242159
refactor(exec-approvals): share request event types
2026-02-14 15:39:46 +00:00
Peter Steinberger
4caeb203a6
refactor(install): share package dir install
2026-02-14 15:39:46 +00:00
Peter Steinberger
e1e05e57cb
refactor(utils): share shell argv tokenizer
2026-02-14 15:39:46 +00:00
Robby
09e1cbc35d
fix(cron): pass agent identity through delivery path ( #16218 ) ( #16242 )
...
* fix(cron): pass agent identity through delivery path
Cron delivery messages now include agent identity (name, avatar) in
outbound messages. Identity fields are passed best-effort for Slack
(graceful fallback if chat:write.customize scope is missing).
Fixes #16218
* fix: fix Slack cron delivery identity (#16242 ) (thanks @robbyczgw-cla)
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-02-14 16:08:51 +01:00
Peter Steinberger
abf6b4997e
test(archive): accept drive-path absolute tar errors
2026-02-14 15:52:38 +01:00
Peter Steinberger
4c7838e3cf
refactor(archive): centralize limits and budgets
2026-02-14 15:43:44 +01:00
Peter Steinberger
5f4b29145c
test(archive): cover archive size and absolute tar paths
2026-02-14 15:36:41 +01:00
Peter Steinberger
d3ee5deb87
fix(archive): enforce extraction resource limits
2026-02-14 15:36:41 +01:00
Peter Steinberger
3aa94afcfd
fix(security): harden archive extraction ( #16203 )
...
* fix(browser): confine upload paths for file chooser
* fix(browser): sanitize suggested download filenames
* chore(lint): avoid control regex in download sanitizer
* test(browser): cover absolute escape paths
* docs(browser): update upload example path
* refactor(browser): centralize upload path confinement
* fix(infra): harden tmp dir selection
* fix(security): harden archive extraction
* fix(infra): harden tar extraction filter
2026-02-14 14:42:08 +01:00
Peter Steinberger
6f7d31c426
fix(security): harden plugin/hook npm installs
2026-02-14 14:07:14 +01:00
Peter Steinberger
eb4215d570
perf(test): speed up Vitest bootstrap
2026-02-14 12:13:27 +00:00
Peter Steinberger
e6d5b5fb11
perf(test): remove slow port inspection and reconnect sleeps
2026-02-14 04:57:28 +00:00
Peter Steinberger
7f227fc8cc
perf(test): avoid heavy browser barrels in pw-ai tests
2026-02-14 03:13:32 +00:00
Artale
7f0d6b1fcb
fix(heartbeat): exempt wake and hook reasons from empty-heartbeat skip (openclaw#14532) thanks @arosstale
...
Verified:
- pnpm build
- pnpm check
- pnpm test
Co-authored-by: arosstale <117890364+arosstale@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-13 19:05:02 -06:00
Peter Steinberger
ad57e561c6
refactor: unify gateway restart deferral and dispatcher cleanup
2026-02-14 00:38:18 +01:00
Peter Steinberger
e794ef0478
perf(test): reduce hot-suite setup and duplicate test work
2026-02-13 23:30:41 +00:00
Bridgerz
ab4a08a82a
fix: defer gateway restart until all replies are sent ( #12970 )
...
* fix: defer gateway restart until all replies are sent
Fixes a race condition where gateway config changes (e.g., enabling
plugins via iMessage) trigger an immediate SIGUSR1 restart, killing the
iMessage RPC connection before replies are delivered.
Both restart paths (config watcher and RPC-triggered) now defer until
all queued operations, pending replies, and embedded agent runs complete
(polling every 500ms, 30s timeout). A shared emitGatewayRestart() guard
prevents double SIGUSR1 when both paths fire simultaneously.
Key changes:
- Dispatcher registry tracks active reply dispatchers globally
- markComplete() called in finally block for guaranteed cleanup
- Pre-restart deferral hook registered at gateway startup
- Centralized extractDeliveryInfo() for session key parsing
- Post-restart sentinel messages delivered directly (not via agent)
- config-patch distinguished from config-apply in sentinel kind
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: single-source gateway restart authorization
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-02-14 00:29:29 +01:00
Peter Steinberger
dc507f3dec
perf(test): reduce memory and port probe overhead
2026-02-13 23:22:30 +00:00
Peter Steinberger
dac8f5ba3f
perf(test): trim fixture and import overhead in hot suites
2026-02-13 23:16:41 +00:00
nabbilkhan
207e2c5aff
fix: add outbound delivery crash recovery ( #15636 ) (thanks @nabbilkhan) ( #15636 )
...
Co-authored-by: Shadow <hi@shadowing.dev>
2026-02-13 15:54:07 -06:00
Joseph Krug
4e9f933e88
fix: reset stale execution state after SIGUSR1 in-process restart ( #15195 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 676f9ec45135be0d3471bb0444bc2ac7ce7d5224
Co-authored-by: joeykrug <5925937+joeykrug@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-02-13 15:30:09 -05:00
Peter Steinberger
83bc73f4ea
refactor(exec-approvals): split allowlist evaluation module
2026-02-13 19:08:37 +00:00
Peter Steinberger
81fbfa06ee
refactor(exec-approvals): extract command analysis module
2026-02-13 19:08:37 +00:00
Peter Steinberger
39af215c31
refactor(outbound): extract message action param helpers
2026-02-13 19:08:37 +00:00
Peter Steinberger
c256503ea1
refactor(infra): extract session cost usage types
2026-02-13 19:08:37 +00:00
Peter Steinberger
5a431f57fc
refactor(infra): split heartbeat event filters
2026-02-13 19:08:37 +00:00
nyanjou
77df8b1104
feat(discord): add silent message support (SUPPRESS_NOTIFICATIONS flag)
...
- Add silent option to message tool for Discord
- Passes SUPPRESS_NOTIFICATIONS flag (4096) to Discord API
- Threads silent param through entire outbound chain:
- message-action-runner.ts
- outbound-send-service.ts
- message.ts
- deliver.ts
- discord outbound adapter
- send.outbound.ts
- send.shared.ts
Usage: message tool with silent=true suppresses push/desktop notifications
2026-02-13 12:44:14 -06:00
Peter Steinberger
3cbcba10cf
fix(security): enforce bounded webhook body handling
2026-02-13 19:14:54 +01:00
Peter Steinberger
201ac2b72a
perf: replace proper-lockfile with lightweight file locks
2026-02-13 17:57:30 +00:00
Marcus Castro
7ec60d6449
fix: use relayAbort helper for addEventListener to preserve AbortError reason
2026-02-13 18:13:18 +01:00
Marcus Castro
5ac8d1d2bb
test: add abort .bind() behavioral tests ( #7174 )
2026-02-13 18:13:18 +01:00
Marcus Castro
d9c582627c
perf: use .abort.bind() instead of arrow closures to prevent memory leaks ( #7174 )
2026-02-13 18:13:18 +01:00
Omair Afzal
59733a02c8
fix(configure): reject literal "undefined" and "null" gateway auth tokens ( #13767 )
...
* fix(configure): reject literal "undefined" and "null" gateway auth tokens
* fix(configure): reject literal "undefined" and "null" gateway auth tokens
* fix(configure): validate gateway password prompt and harden token coercion (#13767 ) (thanks @omair445)
* test: remove unused vitest imports in baseline lint fixtures (#13767 )
---------
Co-authored-by: Luna AI <luna@coredirection.ai>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-02-13 17:04:41 +01:00
Peter Steinberger
de7d94d9e2
perf(test): remove resetModules from config/sandbox/message suites
2026-02-13 15:58:08 +00:00
Peter Steinberger
41f2f359a5
perf(test): reduce module reload overhead in key suites
2026-02-13 15:45:19 +00:00
Peter Steinberger
9131b22a28
test: migrate suites to e2e coverage layout
2026-02-13 14:28:22 +00:00
Peter Steinberger
8899f9e94a
perf(test): optimize heavy suites and stabilize lock timing
2026-02-13 13:29:07 +00:00
Peter Steinberger
990413534a
fix: land multi-agent session path fix + regressions ( #15103 ) ( #15448 )
...
Co-authored-by: Josh Lehman <josh@martian.engineering>
2026-02-13 14:17:24 +01:00
kumarabhirup
a6a521ec22
rebrand: use ironclaw as default CLI/package name and bump to 2026.2.10-1.10
...
- Switch DEFAULT_PACKAGE_NAME to ironclaw in update-cli and update-runner
- Add cliName param to system prompt builder for dynamic CLI references
- Update README clone URL from openclaw-ai-sdk to ironclaw
- Update cron dashboard empty state to reference ironclaw CLI
- Restructure dench skill: flatten knowledge/ paths, add browser use section
2026-02-12 22:54:57 -08:00
Gustavo Madeira Santana
ac41176532
Auto-reply: fix non-default agent session transcript path resolution ( #15154 )
...
* Auto-reply: fix non-default agent transcript path resolution
* Auto-reply: harden non-default agent transcript lookups
* Auto-reply: harden session path resolution across agent stores
2026-02-12 23:23:12 -05:00
Marcus Castro
39ee708df6
fix(outbound): return error instead of silently redirecting to allowList[0] ( #13578 )
2026-02-13 05:20:03 +01:00
Marcus Castro
13bfd9da83
fix: thread replyToId and threadId through message tool send action ( #14948 )
...
* fix: thread replyToId and threadId through message tool send action
* fix: omit replyToId/threadId from gateway send params
* fix: add threading seam regression coverage (#14948 ) (thanks @mcaxtr)
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-02-13 04:55:20 +01:00
Marcus Castro
e90caa66d8
fix(exec): allow heredoc operator (<<) in allowlist security mode ( #13811 )
...
* fix(exec): allow heredoc operator (<<) in allowlist security mode
* fix: allow multiline heredoc parsing in exec approvals (#13811 ) (thanks @mcaxtr)
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-02-13 04:41:51 +01:00
Joseph Krug
40aff672c1
fix: prevent heartbeat scheduler silent death from wake handler race ( #15108 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: fd7165b93547251c48904fa60b4b608d96bfb65c
Co-authored-by: joeykrug <5925937+joeykrug@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-02-12 22:30:21 -05:00
Tak Hoffman
1d8bda4a21
fix: emit message_sent hook for all successful outbound paths ( #15104 )
2026-02-12 19:39:09 -06:00
Peter Steinberger
99f28031e5
fix: harden OpenResponses URL input fetching
2026-02-13 01:38:49 +01:00
Peter Steinberger
113ebfd6a2
fix(security): harden hook and device token auth
2026-02-13 01:23:53 +01:00