Zee Zheng
8be581cbf8
fix(browser): allow inbound media uploads
Allow the browser upload tool to resolve OpenClaw-managed inbound media refs such as `media://inbound/<id>` and sandbox-relative `media/inbound/<id>` while preserving the existing upload-root path contract.
Keep upload-root files ahead of sandbox-relative inbound fallback, reject nested absolute inbound media files, and validate raw `media://` paths before URL normalization so traversal-shaped refs cannot resolve to direct media ids.
Verification:
- `OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/run-vitest.mjs extensions/browser/src/browser/paths.test.ts --reporter=verbose`
- `OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/run-vitest.mjs extensions/browser/src/browser/paths.test.ts --reporter=dot`
- `OPENCLAW_HEAVY_CHECK_LOCK_SCOPE=worktree node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.extensions.test.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/extensions-test.tsbuildinfo`
- `pnpm lint --threads=8`
- `.agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main`
- `git diff --check`
- GitHub PR checks on be08e6c8a8: dependency-guard, check-lint, check-test-types, check-additional-extension-bundled, checks-fast-contracts-plugins-a, checks-fast-contracts-plugins-b all passed.
Fixes #83544.
Co-authored-by: Zee Zheng <zheng.zuo0@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-30 23:49:07 +01:00
..
2026-05-30 06:49:13 +01:00
2026-05-30 11:13:04 -04:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 12:33:07 -04:00
2026-05-30 14:09:59 -04:00
2026-05-30 14:14:13 -04:00
2026-05-30 13:00:30 +02:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 07:53:51 +02:00
2026-05-30 23:49:07 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 20:41:04 +01:00
2026-05-30 23:03:32 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-25 11:34:12 +03:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 08:54:56 -04:00
2026-05-30 06:49:13 +01:00
2026-05-30 23:46:04 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 23:46:04 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 14:49:34 -04:00
2026-05-30 08:26:16 +02:00
2026-05-30 13:16:22 -04:00
2026-05-30 10:26:07 -04:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 13:28:17 -04:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 11:48:41 +02:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 21:19:09 +01:00
2026-05-30 16:33:45 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 14:39:33 -04:00
2026-05-30 06:49:13 +01:00
2026-05-30 08:02:26 -04:00
2026-05-30 06:49:13 +01:00
2026-05-30 10:29:26 -04:00
2026-05-30 06:49:13 +01:00
2026-05-30 11:48:41 +02:00
2026-05-30 05:23:53 -04:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 21:08:39 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 08:26:16 +02:00
2026-05-30 12:34:53 -04:00
2026-05-30 06:49:13 +01:00
2026-05-30 08:26:16 +02:00
2026-05-30 06:49:13 +01:00
2026-05-30 11:48:41 +02:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 08:28:41 +02:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 11:24:36 -04:00
2026-05-30 06:49:13 +01:00
2026-05-30 13:00:31 +02:00
2026-05-30 06:49:13 +01:00
2026-05-30 03:15:50 -04:00
2026-05-30 03:47:22 -04:00
2026-05-30 06:49:13 +01:00
2026-05-30 14:41:39 -04:00
2026-05-30 08:26:16 +02:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 10:50:44 -04:00
2026-05-30 22:28:49 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-29 06:08:50 -04:00
2026-05-30 06:49:13 +01:00
2026-05-30 14:16:57 -04:00
2026-05-30 06:49:13 +01:00
2026-05-27 19:24:04 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 13:51:12 -04:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 06:49:13 +01:00
2026-05-30 11:45:05 -04:00
2026-05-30 19:22:19 +01:00
2026-05-30 20:51:11 +01:00
2026-05-30 11:37:36 +02:00
2026-05-30 06:49:13 +01:00
2026-05-30 11:29:33 -04:00
2026-05-30 12:52:24 -04:00
2026-05-16 12:38:51 +01:00
2026-05-26 23:09:56 +01:00
2026-05-30 20:51:11 +01:00
2026-05-27 12:41:10 +02:00