David Gageot
2c5e4de390
fix(safety): make the classified command the one the handlers execute
...
shell and run_background_job now resolve cmd/command via
safety.CommandArg over an exact-key map instead of encoding/json struct
tags, whose case-insensitive last-wins matching let
{"cmd":"ls","CMD":"rm -rf x"} run a command the runtime never
classified.
Permission rules and session grants for command tools are matched
against args with the executed command mirrored under the canonical
"cmd" key, so a `shell:cmd=sudo*` deny can no longer be dodged with the
"command" alias and "always allow" grants keep matching alias calls.
Assisted-By: Claude
2026-09-04 13:58:08 +02:00
..
2026-07-21 22:16:18 +02:00
2026-09-04 09:23:24 +02:00
2026-09-04 13:58:08 +02:00
2026-05-11 11:42:38 +02:00
2026-08-13 17:43:24 +02:00
2026-09-01 13:14:37 +02:00
2026-09-01 13:14:37 +02:00
2026-09-03 22:29:18 +00:00
2026-04-27 18:57:26 +02:00
2026-06-30 17:14:10 +02:00
2026-06-18 10:48:59 +02:00
2026-07-04 09:37:25 +00:00
2026-07-19 19:20:09 +03:30
2026-07-28 15:47:36 +02:00
2026-07-28 15:47:36 +02:00
2026-08-12 15:42:26 +02:00
2026-08-12 15:42:26 +02:00
2026-07-02 01:06:11 +02:00
2026-08-04 11:29:53 +02:00
2026-06-29 10:17:44 +02:00
2026-06-30 16:17:13 +02:00
2026-07-21 15:02:51 +02:00
2026-09-04 09:23:24 +02:00
2026-07-01 19:42:28 +02:00
2026-07-23 18:31:52 +02:00
2026-07-06 09:51:03 +02:00
2026-07-03 15:33:21 +02:00
2026-07-31 14:06:29 +02:00
2026-09-01 23:10:00 +02:00
2026-07-13 16:39:20 +02:00
2026-04-27 18:57:26 +02:00
2026-04-27 18:57:27 +02:00
2026-07-15 18:32:56 +02:00
2026-09-03 17:53:33 +00:00
2026-06-27 15:56:37 +02:00
2026-06-29 10:50:40 +02:00
2026-07-13 16:39:20 +02:00
2026-09-03 17:53:33 +00:00
2026-08-20 15:34:08 +02:00
2026-05-09 09:00:50 +02:00
2026-09-03 17:53:33 +00:00
2026-07-28 15:47:36 +02:00
2026-09-03 17:53:33 +00:00
2026-07-02 00:48:45 +02:00
2026-06-30 18:09:39 +02:00
2026-06-29 10:17:44 +02:00
2026-07-27 14:26:29 +02:00
2026-07-27 14:26:29 +02:00
2026-09-04 09:23:11 +02:00
2026-09-04 09:23:11 +02:00
2026-09-04 09:23:11 +02:00
2026-09-04 09:23:11 +02:00
2026-06-29 10:58:37 +02:00
2026-09-03 18:33:30 +00:00
2026-07-15 17:24:08 +02:00
2026-07-31 16:32:05 +02:00
2026-07-09 20:32:52 +02:00
2026-07-29 15:34:13 +02:00
2026-07-23 18:31:52 +02:00
2026-06-29 10:17:44 +02:00
2026-08-20 15:34:08 +02:00
2026-09-03 17:53:33 +00:00
2026-07-04 09:30:04 +00:00
2026-06-20 12:27:49 +02:00
2026-09-01 13:14:37 +02:00
2026-07-27 14:26:29 +02:00
2026-09-04 11:16:08 +02:00
2026-06-29 10:17:44 +02:00
2026-06-29 11:03:56 +02:00
2026-04-28 09:47:03 +02:00
2026-06-29 10:17:44 +02:00
2026-06-29 10:17:44 +02:00
2026-07-27 10:10:48 +02:00
2026-08-20 15:34:08 +02:00
2026-07-11 18:28:46 +02:00
2026-06-29 10:17:44 +02:00
2026-07-02 01:06:11 +02:00
2026-06-17 15:48:13 +02:00
2026-05-11 11:42:31 +02:00
2026-07-28 15:35:55 +02:00
2026-06-30 16:17:13 +02:00
2026-07-20 13:32:57 +02:00
2026-08-27 12:23:40 +02:00
2026-07-28 21:38:07 +02:00
2026-07-04 09:37:25 +00:00
2026-06-29 10:16:55 +02:00
2026-07-20 13:46:59 +02:00
2026-07-20 13:46:59 +02:00
2026-07-21 16:17:27 +02:00
2026-08-27 12:23:40 +02:00
2026-04-28 18:23:42 +02:00
2026-07-27 10:10:48 +02:00
2026-07-27 10:10:48 +02:00
2026-06-30 16:17:13 +02:00
2026-09-01 13:14:37 +02:00
2026-09-04 08:59:52 +02:00
2026-07-08 14:32:07 +02:00
2026-07-08 14:32:07 +02:00
2026-08-27 12:23:40 +02:00
2026-08-27 12:23:40 +02:00
2026-07-11 17:55:43 +02:00
2026-09-01 13:14:37 +02:00
2026-09-01 13:14:37 +02:00
2026-09-01 13:14:37 +02:00
2026-09-01 13:14:37 +02:00
2026-07-11 18:30:06 +02:00
2026-09-03 17:53:33 +00:00
2026-07-29 15:23:40 +02:00
2026-07-29 15:23:40 +02:00
2026-05-12 12:17:32 +02:00
2026-08-12 15:42:26 +02:00
2026-08-23 09:35:55 +00:00
2026-06-29 10:17:44 +02:00
2026-04-27 18:54:21 +02:00
2026-09-01 13:14:37 +02:00
2026-09-03 22:29:18 +00:00
2026-06-29 10:17:44 +02:00
2026-05-06 16:42:35 +03:00
2026-07-04 09:37:25 +00:00
2026-06-29 10:17:44 +02:00
2026-05-12 12:17:32 +02:00
2026-06-30 16:17:13 +02:00
2026-05-09 19:04:38 +03:00