Jesse Merhi
a9377fe667
Harden browser download output writes ( #78780 )
...
Summary:
- The PR exports `ensureAbsoluteDirectory` through the fs-safe/SDK runtime facades and routes browser download ... through safe output directory/file helpers with focused tests, a changelog entry, and SDK API hash updates.
- Reproducibility: yes. at source level: current main creates browser download/output roots with raw recursive ... jection coverage for that path. I did not run a live browser runtime reproduction in this read-only review.
Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(browser): use fs-safe output directory helper
- PR branch already contained follow-up commit before automerge: docs(changelog): mention browser fs-safe hardening
- PR branch already contained follow-up commit before automerge: fix(browser): harden download output writes
Validation:
- ClawSweeper review passed for head a9c9570f66 .
- Required merge gates passed before the squash merge.
Prepared head SHA: a9c9570f66
Review: https://github.com/openclaw/openclaw/pull/78780#issuecomment-4394146682
Co-authored-by: jesse-merhi <79823012+jesse-merhi@users.noreply.github.com >
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
2026-05-08 05:57:23 +00:00
..
2026-05-08 05:28:12 +01:00
2026-05-08 05:28:12 +01:00
2026-05-06 09:47:34 +01:00
2026-05-08 05:28:12 +01:00
2026-05-07 08:43:29 +01:00
2026-05-08 05:28:12 +01:00
2026-05-07 08:43:29 +01:00
2026-05-07 14:28:33 +01:00
2026-05-07 08:43:29 +01:00
2026-05-08 06:34:45 +01:00
2026-05-07 08:43:29 +01:00
2026-05-08 05:57:23 +00:00
2026-05-08 00:28:43 +01:00
2026-05-08 05:28:12 +01:00
2026-05-06 09:47:34 +01:00
2026-05-07 08:43:29 +01:00
2026-05-07 08:43:29 +01:00
2026-05-08 05:39:13 +01:00
2026-05-08 05:28:12 +01:00
2026-05-06 09:47:34 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 05:56:38 +01:00
2026-05-07 08:43:29 +01:00
2026-05-07 18:34:05 -05:00
2026-05-06 11:41:04 +00:00
2026-05-08 05:28:12 +01:00
2026-05-08 06:28:56 +01:00
2026-05-07 08:43:29 +01:00
2026-05-07 08:43:29 +01:00
2026-05-08 05:28:12 +01:00
2026-05-06 09:47:34 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 06:19:37 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 05:28:12 +01:00
2026-05-07 13:46:46 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 06:56:38 +01:00
2026-05-08 00:47:25 +01:00
2026-05-08 05:28:12 +01:00
2026-05-06 09:47:34 +01:00
2026-05-06 09:47:34 +01:00
2026-05-07 08:43:29 +01:00
2026-05-07 08:43:29 +01:00
2026-05-08 05:34:22 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 05:28:12 +01:00
2026-05-06 09:47:34 +01:00
2026-05-08 05:56:38 +01:00
2026-05-07 08:43:29 +01:00
2026-05-08 00:28:43 +01:00
2026-05-08 05:56:38 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 06:38:25 +01:00
2026-05-08 05:56:38 +01:00
2026-05-06 09:47:34 +01:00
2026-05-08 05:56:38 +01:00
2026-05-08 05:39:13 +01:00
2026-05-08 05:28:12 +01:00
2026-05-07 06:05:24 +01:00
2026-05-07 08:43:29 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 00:28:43 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 05:28:12 +01:00
2026-05-06 09:47:34 +01:00
2026-05-08 06:19:37 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 05:56:38 +01:00
2026-05-06 09:47:34 +01:00
2026-05-08 05:28:12 +01:00
2026-05-06 09:47:34 +01:00
2026-05-08 05:28:12 +01:00
2026-05-06 09:47:34 +01:00
2026-05-06 09:47:34 +01:00
2026-05-08 00:28:43 +01:00
2026-05-07 08:43:29 +01:00
2026-05-08 00:28:43 +01:00
2026-05-06 02:15:17 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 05:28:12 +01:00
2026-05-06 09:47:34 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 00:28:43 +01:00
2026-05-06 09:47:34 +01:00
2026-05-06 09:47:34 +01:00
2026-05-06 09:47:34 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 06:38:25 +01:00
2026-05-07 12:53:01 -07:00
2026-05-06 09:47:34 +01:00
2026-05-08 05:28:12 +01:00
2026-05-06 09:47:34 +01:00
2026-04-28 04:33:47 +01:00
2026-05-08 00:28:43 +01:00
2026-05-08 06:34:45 +01:00
2026-05-06 09:47:34 +01:00
2026-05-01 12:02:22 +01:00
2026-05-08 00:28:43 +01:00
2026-05-08 05:56:38 +01:00
2026-05-08 00:28:43 +01:00
2026-05-06 09:47:34 +01:00
2026-05-07 06:05:24 +01:00
2026-05-08 05:28:12 +01:00
2026-05-06 09:47:34 +01:00
2026-05-06 09:47:34 +01:00
2026-05-06 09:47:34 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 06:34:45 +01:00
2026-05-08 05:28:12 +01:00
2026-05-06 09:47:34 +01:00
2026-05-08 05:28:12 +01:00
2026-05-06 09:47:34 +01:00
2026-05-08 00:28:43 +01:00
2026-05-08 06:31:10 +01:00
2026-05-08 06:19:37 +01:00
2026-05-07 08:43:29 +01:00
2026-05-06 09:47:34 +01:00
2026-05-08 05:28:12 +01:00
2026-05-08 05:28:12 +01:00
2026-05-04 00:30:02 +01:00
2026-05-05 20:07:49 +01:00
2026-05-05 12:09:28 -07:00
2026-05-08 05:28:12 +01:00