Peter Steinberger
dbbd41a2ed
fix(security): harden file installs and race-path tests
2026-03-02 19:30:02 +00:00
Peter Steinberger
e1bc5cad25
fix(outbound): harden plain-text HTML sanitization paths ( #32034 )
2026-03-02 19:28:47 +00:00
AytuncYildizli
62d0cfeee7
fix(delivery): strip HTML tags for plain-text messaging surfaces
...
Models occasionally produce HTML tags in their output. While these render
fine on web surfaces, they appear as literal text on WhatsApp, Signal,
SMS, IRC, and Telegram.
Add sanitizeForPlainText() utility that converts common inline HTML to
lightweight-markup equivalents and strips remaining tags. Applied in the
outbound delivery pipeline for non-HTML surfaces only.
Closes #31884
See also: #18558
2026-03-02 19:28:47 +00:00
Peter Steinberger
83c8406f01
refactor(security): split gateway auth suites and share safe write path checks
2026-03-02 18:07:03 +00:00
Peter Steinberger
7dac9b05dd
fix(security): harden zip write race handling
2026-03-02 17:38:11 +00:00
Peter Steinberger
d4bf07d075
refactor(security): unify hardened install and fs write flows
2026-03-02 17:23:29 +00:00
Peter Steinberger
104d32bb64
fix(security): unify root-bound write hardening
2026-03-02 17:12:33 +00:00
Peter Steinberger
be3a62c5e0
test(perf): defer delivery queue fixture cleanup to suite end
2026-03-02 17:10:55 +00:00
Peter Steinberger
11562c452a
test(perf): avoid unused heartbeat fixture file writes
2026-03-02 17:01:40 +00:00
Peter Steinberger
db7a8a6982
test(perf): reuse delivery queue suite temp root
2026-03-02 16:55:18 +00:00
Peter Steinberger
4a80311628
refactor(security): split sandbox media staging and stream safe copies
2026-03-02 16:53:14 +00:00
Peter Steinberger
031bf0c6c0
refactor(security): split safe-regex parse and bounded matching
2026-03-02 16:47:00 +00:00
Artale
1b462ed174
fix(test): use NTFS junctions and platform guards for symlink tests on Windows (openclaw#28747) thanks @arosstale
...
Verified:
- pnpm install --frozen-lockfile
- pnpm test src/agents/apply-patch.test.ts src/agents/sandbox/fs-bridge.test.ts src/agents/sandbox/validate-sandbox-security.test.ts src/infra/archive.test.ts
Co-authored-by: arosstale <117890364+arosstale@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-02 10:45:19 -06:00
Peter Steinberger
18f8393b6c
fix: harden sandbox writes and centralize atomic file writes
2026-03-02 16:45:12 +00:00
Peter Steinberger
b1592457fa
perf(security): bound regex input in filters and redaction
2026-03-02 16:37:45 +00:00
Peter Steinberger
0dbb92dd2b
fix(security): harden tar archive extraction parity
2026-03-02 16:36:56 +00:00
Peter Steinberger
c973b053a5
refactor(net): unify proxy env checks and guarded fetch modes
2026-03-02 16:24:26 +00:00
Tak Hoffman
21708f58ce
fix(exec): resolve PATH key case-insensitively for Windows pathPrepend ( #25399 ) ( #31879 )
...
Co-authored-by: Glucksberg <markuscontasul@gmail.com >
2026-03-02 10:14:38 -06:00
Peter Steinberger
82247f09a7
test(perf): remove redundant module reset in system presence version tests
2026-03-02 15:56:30 +00:00
Peter Steinberger
345abf0b20
fix: preserve dns pinning for strict web SSRF fetches
2026-03-02 15:54:46 +00:00
Peter Steinberger
741e74972b
refactor(plugin-sdk): share boolean action param parsing
2026-03-02 14:36:41 +00:00
Peter Steinberger
693f61404d
refactor(shared): centralize assistant identity and usage timeseries types
2026-03-02 14:36:41 +00:00
cygaar
127217612c
fix(CI/CD): use path.resolve in expandHomePrefix test for Windows compat ( #30961 )
...
Merged via squash.
Prepared head SHA: 26bc118517
Co-authored-by: cygaar <97691933+cygaar@users.noreply.github.com >
Co-authored-by: velvet-shark <126378+velvet-shark@users.noreply.github.com >
Reviewed-by: @velvet-shark
2026-03-02 14:18:11 +01:00
Peter Steinberger
cb9bce902e
fix(infra): accept cross-realm promises in boundary traversal
2026-03-02 13:00:21 +00:00
Peter Steinberger
b02b94673f
refactor: dedupe runtime and helper flows
2026-03-02 12:55:47 +00:00
Peter Steinberger
5d3f066bbd
test(perf): reduce boundary-path fuzz setup churn
2026-03-02 12:54:59 +00:00
Peter Steinberger
d358b3ac88
refactor(core): extract shared usage, auth, and display helpers
2026-03-02 08:54:20 +00:00
Peter Steinberger
d3e0c0b29c
test(gateway): dedupe gateway and infra test scaffolds
2026-03-02 07:13:10 +00:00
Peter Steinberger
5b8f492a48
fix(security): harden spoofed system marker handling
2026-03-02 06:19:16 +00:00
Peter Steinberger
1de3200973
refactor(infra): centralize boundary traversal and root path checks
2026-03-02 05:20:19 +00:00
Peter Steinberger
2d31126e6a
refactor(shared): extract reused path and normalization helpers
2026-03-02 05:20:19 +00:00
Peter Steinberger
264599cc1d
refactor(core): share JSON utf8 byte counting helper
2026-03-02 05:20:19 +00:00
Peter Steinberger
c0bf42f2a8
refactor: centralize delivery/path/media/version lifecycle
2026-03-02 04:04:36 +00:00
Peter Steinberger
e1bf9591c3
fix(web-tools): land #31176 allow RFC2544 trusted fetch range (@sunkinux)
...
Landed from contributor PR #31176 by @sunkinux.
Co-authored-by: sunkinux <sunkinux@users.noreply.github.com >
2026-03-02 03:43:25 +00:00
Ayaan Zaidi
c13b35b83d
feat(telegram): improve DM topics support ( #30579 ) (thanks @kesor)
2026-03-02 09:06:45 +05:30
Peter Steinberger
00dcd931cb
test(fs-safe): assert directory-read errors never leak EISDIR text
2026-03-02 03:35:20 +00:00
倪汉杰0668001185
6398a0ba8f
fix(infra): avoid EISDIR leak to messaging when Read targets directory ( Closes #31186 )
2026-03-02 03:35:20 +00:00
Peter Steinberger
493ebb915b
refactor: simplify telegram delivery and outbound session resolver flow
2026-03-02 03:09:40 +00:00
Brian Le
f64d25bd3e
fix(telegram): scope DM topic thread keys by chat id ( #31064 )
...
* fix(telegram): scope DM topic thread keys by chat id
* test(telegram): update dm topic session-key expectation
* fix(telegram): parse scoped dm thread ids in outbound recovery
* chore(telegram): format accounts config merge block
* test(nodes): simplify mocked exports for ts tuple spreads
2026-03-02 02:54:45 +00:00
Jose E Velez
0c8fa63b93
feat: lightweight bootstrap context mode for heartbeat/cron runs (openclaw#26064) thanks @jose-velez
...
Verified:
- pnpm build
- pnpm check (fails on pre-existing unrelated repo issues in extensions/diffs and src/agents/tools/nodes-tool.test.ts)
- pnpm vitest run src/agents/bootstrap-files.test.ts src/infra/heartbeat-runner.model-override.test.ts src/cli/cron-cli.test.ts
- pnpm test:macmini (fails on pre-existing extensions/diffs import errors; touched suites pass)
Co-authored-by: jose-velez <10926182+jose-velez@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-01 20:13:24 -06:00
Peter Steinberger
710004e011
fix(security): harden root-scoped writes against symlink races
2026-03-02 01:27:46 +00:00
Peter Steinberger
155118751f
refactor!: remove versioned system-run approval contract
2026-03-02 01:12:53 +00:00
Peter Steinberger
c823a85302
fix: harden sandbox media reads against TOCTOU escapes
2026-03-02 01:04:01 +00:00
Agent
dcd19da425
refactor: simplify sandbox boundary open flow
2026-03-01 21:49:42 +00:00
Agent
3be1343e00
fix: tighten sandbox mkdirp boundary checks ( #30610 ) (thanks @glitch418x)
2026-03-01 21:41:47 +00:00
glitch418x
687f5779d1
sandbox: allow directory boundary checks for mkdirp
2026-03-01 21:41:47 +00:00
Onur
ac5d7ee4cd
Tests: normalize HOME expansion assertion on Windows
2026-03-01 20:39:24 +01:00
msvechla
2c5b898eea
feat(slack): add download-file action for on-demand file attachment access ( #24723 )
...
* feat(slack): add download-file action for on-demand file attachment access
Adds a new `download-file` message tool action that allows the agent to
download Slack file attachments by file ID on demand. This is a prerequisite
for accessing images posted in thread history, where file attachments are
not automatically resolved.
Changes:
- Add `files` field to `SlackMessageSummary` type so file IDs are
visible in message read results
- Add `downloadSlackFile()` to fetch a file by ID via `files.info`
and resolve it through the existing `resolveSlackMedia()` pipeline
- Register `download-file` in `CHANNEL_MESSAGE_ACTION_NAMES`,
`MESSAGE_ACTION_TARGET_MODE`, and `listSlackMessageActions`
- Add `downloadFile` dispatch case in `handleSlackAction`
- Wire agent-facing `download-file` → internal `downloadFile` in
`handleSlackMessageAction`
Closes #24681
* style: fix formatting in slack-actions and actions
* test(slack): cover download-file action path
---------
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-01 11:45:05 -06:00
Glucksberg
6dbbc58a8d
fix(slack): use SLACK_USER_TOKEN when connecting to Slack ( #28103 )
...
* fix(slack): use SLACK_USER_TOKEN when connecting to Slack (closes #26480 )
* test(slack): fix account fixture typing for user token source
---------
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-01 11:05:35 -06:00
graysurf
a54b85822c
Handle transient Slack request errors without crashing the gateway (openclaw#23787) thanks @graysurf
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: graysurf <10785178+graysurf@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-01 10:42:42 -06:00