Garry Tan
b6f03e53e8
feat(browse): js/eval --out render-to-file with write-capability gate
...
Add --out <file> / --raw to js and eval so an evaluate result is written
straight to disk (base64 data URLs auto-decoded to bytes, charset-validated
before decode, parent dirs created) instead of serialized back through the
CLI. --out is modeled as a per-invocation WRITE: it requires write scope, is
never dispatchable over the pair-agent tunnel (canDispatchOverTunnel now
consults args), and counts as a mutation for watch-mode and tab-ownership.
Shared parseOutArgs/hasOutArg/resultToString helpers keep the handler and the
gate in sync. Tests cover the parser, render-to-file paths, and tunnel guards.
2026-06-09 08:35:59 -07:00
..
2026-04-23 10:23:40 -07:00
2026-03-26 11:15:24 -06:00
2026-03-28 08:35:24 -06:00
2026-04-07 00:23:36 -07:00
2026-05-07 20:14:59 -07:00
2026-05-09 08:06:47 -07:00
2026-05-13 12:22:30 -04:00
2026-05-21 21:21:07 -07:00
2026-05-24 01:43:51 -07:00
2026-04-28 20:08:04 -07:00
2026-05-14 21:55:29 -07:00
2026-04-28 20:08:04 -07:00
2026-05-14 21:46:50 -07:00
2026-04-16 13:49:04 -07:00
2026-03-20 12:22:11 -07:00
2026-04-28 20:08:04 -07:00
2026-04-28 20:08:04 -07:00
2026-05-27 16:09:38 -07:00
2026-04-28 20:08:04 -07:00
2026-05-27 16:09:38 -07:00
2026-05-01 07:21:28 -07:00
2026-05-21 21:21:07 -07:00
2026-05-24 01:43:51 -07:00
2026-06-09 08:35:59 -07:00
2026-04-07 00:23:36 -07:00
2026-05-13 12:22:30 -04:00
2026-05-14 21:46:50 -07:00
2026-03-23 22:15:23 -07:00
2026-04-17 00:45:13 -07:00
2026-05-07 20:14:59 -07:00
2026-04-08 00:41:55 -07:00
2026-05-09 08:06:47 -07:00
2026-05-09 08:06:47 -07:00
2026-05-14 21:55:29 -07:00
2026-04-18 23:25:33 +08:00
2026-04-10 17:13:15 -10:00
2026-03-26 11:15:24 -06:00
2026-05-09 08:06:47 -07:00
2026-05-20 07:35:01 -07:00
2026-05-25 10:57:15 -07:00
2026-04-21 21:58:27 -07:00
2026-03-29 23:35:17 -06:00
2026-05-13 13:37:31 -04:00
2026-04-07 00:23:36 -07:00
2026-04-06 00:47:04 -07:00
2026-05-27 16:09:38 -07:00
2026-05-27 16:09:38 -07:00
2026-04-21 21:58:27 -07:00
2026-04-28 00:57:28 -07:00
2026-04-06 00:47:04 -07:00
2026-04-20 13:20:30 +08:00
2026-03-20 12:22:11 -07:00
2026-05-07 20:14:59 -07:00
2026-05-07 20:14:59 -07:00
2026-05-20 07:35:01 -07:00
2026-05-24 01:43:51 -07:00
2026-05-20 06:56:41 -07:00
2026-05-30 14:57:07 -07:00
2026-05-14 21:46:50 -07:00
2026-05-20 07:35:01 -07:00
2026-04-25 22:52:15 -07:00
2026-04-23 10:23:40 -07:00
2026-04-25 22:52:15 -07:00
2026-04-23 10:23:40 -07:00
2026-04-23 10:23:40 -07:00
2026-04-23 10:23:40 -07:00
2026-04-20 22:18:37 +08:00
2026-05-20 06:56:41 -07:00
2026-05-13 12:22:30 -04:00
2026-04-20 22:18:37 +08:00
2026-04-23 10:23:40 -07:00
2026-04-20 22:18:37 +08:00
2026-04-20 22:18:37 +08:00
2026-05-20 07:35:01 -07:00
2026-04-20 22:18:37 +08:00
2026-04-20 22:18:37 +08:00
2026-05-09 08:06:47 -07:00
2026-05-24 01:43:51 -07:00
2026-05-24 01:43:51 -07:00
2026-05-21 22:15:37 -07:00
2026-05-09 08:06:47 -07:00
2026-05-13 12:22:30 -04:00
2026-05-07 20:14:59 -07:00
2026-05-24 01:43:51 -07:00
2026-05-27 16:09:38 -07:00
2026-05-09 08:06:47 -07:00
2026-04-21 21:58:27 -07:00
2026-04-20 22:18:37 +08:00
2026-05-11 12:16:26 -07:00
2026-03-26 22:07:03 -06:00
2026-05-21 22:15:37 -07:00
2026-05-24 01:43:51 -07:00
2026-05-24 01:43:51 -07:00
2026-05-24 01:43:51 -07:00
2026-05-14 21:55:29 -07:00
2026-04-07 00:23:36 -07:00
2026-05-07 20:14:59 -07:00
2026-05-27 16:09:38 -07:00
2026-04-21 21:58:27 -07:00
2026-03-28 08:35:24 -06:00
2026-05-20 07:35:01 -07:00
2026-05-07 20:14:59 -07:00
2026-04-25 22:52:15 -07:00
2026-05-27 16:09:38 -07:00
2026-04-28 20:08:04 -07:00
2026-05-09 08:06:47 -07:00
2026-04-28 20:08:04 -07:00
2026-05-24 01:43:51 -07:00
2026-04-25 22:52:15 -07:00
2026-05-24 01:43:51 -07:00
2026-05-24 01:43:51 -07:00
2026-05-24 01:43:51 -07:00
2026-05-24 01:43:51 -07:00
2026-05-24 01:43:51 -07:00
2026-05-24 01:43:51 -07:00
2026-04-25 22:52:15 -07:00
2026-03-13 00:31:41 -07:00
2026-05-14 21:55:29 -07:00
2026-06-09 08:35:59 -07:00
2026-05-11 12:16:26 -07:00
2026-03-26 11:15:24 -06:00
2026-04-17 00:45:13 -07:00
2026-04-04 10:17:05 -07:00
2026-05-07 20:14:59 -07:00