Kyle Brown
9ca0337dbf
Collect metrics from plugin shell commands ( #38252 )
...
## What changed
- Provide matching local plugin commands with a sandbox-writable temporary output file through `CODEX_PLUGIN_METRICS_OUTPUT` when analytics is enabled.
- Validate successful command output against the plugin's `analytics.yaml` declaration, including measurement names, enum dimensions, finite values, duplicate rows, and size limits, before publishing analytics events.
- Keep the output path reserved from user overrides and clean up the temporary file after execution.
## Testing
- Cover output validation, limits, cleanup, sandbox permissions, environment handling, and path replacement.
- Verify measurement collection through both classic and zsh-fork shell runtimes.
GitOrigin-RevId: 88af0f87dc2f207fcbcca6af498f5c940d79349d
2026-08-12 21:23:21 +00:00
..
2026-08-12 19:37:51 +00:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-08-10 16:57:09 +00:00
2026-08-12 19:37:51 +00:00
2026-08-10 19:26:52 +00:00
2026-08-11 17:47:22 +00:00
2026-08-03 21:37:17 +00:00
2026-07-22 19:31:54 +00:00
2026-08-12 19:37:51 +00:00
2026-07-31 15:40:52 +00:00
2026-07-09 03:40:08 +00:00
2026-08-12 21:18:15 +00:00
2026-08-11 19:35:05 +00:00
2026-08-11 01:05:48 +00:00
2026-07-08 15:27:04 -07:00
2026-08-11 05:32:28 +00:00
2026-08-12 15:31:47 +00:00
2026-07-31 20:49:08 +00:00
2026-08-11 19:30:12 +00:00
2026-08-11 19:30:12 +00:00
2026-08-11 19:30:12 +00:00
2026-08-11 19:30:12 +00:00
2026-07-30 16:44:18 +00:00
2026-08-08 00:59:39 +00:00
2026-06-19 05:35:57 -07:00
2026-07-20 19:23:21 +00:00
2026-06-18 14:09:38 +02:00
2026-07-21 19:17:18 +00:00
2026-08-11 19:04:07 +00:00
2026-08-10 19:26:52 +00:00
2026-08-12 18:11:13 +00:00
2026-08-12 18:11:13 +00:00
2026-08-12 03:00:47 +00:00
2026-08-11 19:30:12 +00:00
2026-08-12 20:05:49 +00:00
2026-08-04 23:04:11 +00:00
2026-08-10 19:26:52 +00:00
2026-06-08 13:55:15 -07:00
2026-06-15 21:53:47 -07:00
2026-07-21 18:23:26 +00:00
2026-08-07 13:54:24 +00:00
2026-08-04 15:23:43 +00:00
2026-08-12 20:36:32 +00:00
2026-08-12 20:36:32 +00:00
2026-08-10 19:26:52 +00:00
2026-08-12 18:11:13 +00:00
2026-08-11 01:05:48 +00:00
2026-05-18 21:03:51 -07:00
2026-07-30 20:24:29 +00:00
2026-08-12 19:37:51 +00:00
2026-08-07 00:42:06 +00:00
2026-08-12 19:37:51 +00:00
2026-06-08 13:55:15 -07:00
2026-07-31 20:49:08 +00:00
2026-08-12 18:11:13 +00:00
2026-07-17 16:07:24 +00:00
2026-07-30 15:50:04 +00:00
2026-08-12 01:45:20 +00:00
2026-07-20 19:23:21 +00:00
2026-06-08 13:55:15 -07:00
2026-08-12 20:05:49 +00:00
2026-08-03 19:30:40 +00:00
2026-08-12 19:37:51 +00:00
2026-08-12 21:23:21 +00:00
2026-07-14 10:37:23 +00:00
2026-08-03 19:30:40 +00:00
2026-07-22 20:23:35 +00:00
2026-06-08 13:55:15 -07:00
2026-08-11 19:30:12 +00:00
2026-08-01 01:17:26 +00:00
2026-08-11 19:58:10 +00:00
2026-08-12 19:37:51 +00:00
2026-06-08 13:55:15 -07:00
2026-07-30 11:41:47 +00:00
2026-07-20 19:23:21 +00:00
2026-08-10 14:45:55 +00:00
2026-08-04 22:58:02 +00:00
2026-08-10 22:58:53 +00:00
2026-08-07 20:26:08 +00:00
2026-07-22 00:50:28 +00:00
2026-08-10 19:26:52 +00:00
2026-07-31 20:49:08 +00:00
2026-08-12 19:37:51 +00:00
2026-08-12 20:36:32 +00:00
2026-08-03 09:46:38 +00:00
2026-07-23 19:19:35 +00:00
2026-08-10 21:50:55 +00:00
2026-07-08 16:24:12 -07:00
2026-08-12 12:59:34 +00:00
2026-07-31 15:34:03 +00:00
2026-06-23 14:27:13 -07:00
2026-08-03 14:14:41 +00:00
2026-06-08 13:55:15 -07:00
2026-08-12 10:34:25 +00:00
2026-08-12 13:14:30 +00:00
2026-08-12 19:37:51 +00:00
2026-08-10 19:26:52 +00:00
2026-07-23 00:02:15 +00:00
2026-08-07 18:33:46 +00:00
2026-08-12 18:11:13 +00:00
2026-08-11 13:52:48 +00:00
2026-06-15 21:53:47 -07:00
2026-06-15 21:53:47 -07:00
2026-08-05 08:01:47 +00:00
2026-08-03 18:51:46 +00:00
2026-08-07 22:41:20 +00:00
2026-08-11 17:47:22 +00:00
2026-08-10 17:24:51 +00:00
2026-08-10 19:57:40 +00:00
2026-08-10 19:26:52 +00:00
2026-08-12 18:11:13 +00:00
2026-06-08 13:55:15 -07:00
2026-06-16 10:37:06 -07:00
2026-08-12 19:37:51 +00:00
2026-08-04 17:55:28 +00:00
2026-06-08 13:55:15 -07:00
2026-06-15 21:53:47 -07:00
2026-07-21 19:17:18 +00:00
2026-08-05 06:38:57 +00:00