Neil
8d8b9dad78
fix: keep macOS shell ownership proof within recovery budget ( #18932 )
...
* fix: keep macOS shell ownership proof within recovery budget
* fix: parse the shell-proof column set with its own anchored parser
The narrower macOS capture (`pid ppid pgid tpgid stat command`) was fed to the
shared lenient parser, whose optional tty/start pair has no `tty=` column left
to absorb it. It then eats the head of any argv shaped `python 3 app.py`
(parsing command as `app.py`, tty as `/usr/bin/python`), and turns a
command-less row into a garbage pid/stat pair. Either can flip a shell
ownership verdict, which is what gates dead-TUI recovery.
Give the column set a named constant and a parser anchored to exactly those
six columns, beside its `CHEAP_PS_ARGS` sibling. A capture that yields no rows
now raises `empty_capture` rather than reading as a machine with no processes.
Update the `confirmShellForegroundProcess` fixtures from the 4-column legacy
shape to the 6 columns the darwin reader actually emits; that describe block
already forces `platform=darwin`, so the stale fixtures were failing.
2026-09-06 18:28:54 -07:00
..
2026-09-02 12:49:15 -07:00
2026-08-19 22:37:42 -07:00
2026-08-13 20:44:16 -07:00
2026-09-02 15:14:14 -07:00
2026-09-03 14:44:32 -07:00
2026-08-28 16:45:58 -07:00
2026-09-02 23:32:41 -07:00
2026-09-02 12:49:15 -07:00
2026-09-02 23:32:41 -07:00
2026-09-02 23:32:41 -07:00
2026-08-26 19:49:26 -07:00
2026-09-06 18:28:54 -07:00
2026-09-06 18:28:54 -07:00
2026-09-02 18:04:48 -07:00
2026-09-02 19:26:07 -07:00
2026-08-27 23:27:39 -07:00
2026-08-30 14:19:05 -07:00
2026-08-30 14:19:05 -07:00
2026-09-04 23:27:30 -07:00
2026-09-05 00:57:02 -07:00
2026-09-05 00:57:02 -07:00
2026-08-27 17:46:36 -07:00
2026-08-29 20:18:28 -07:00
2026-08-26 00:10:32 -07:00
2026-08-26 00:10:32 -07:00
2026-08-26 00:10:32 -07:00
2026-08-30 18:13:36 -07:00
2026-08-26 00:10:32 -07:00
2026-08-26 00:10:32 -07:00
2026-08-29 20:18:28 -07:00
2026-09-05 15:08:22 -07:00
2026-09-05 00:57:02 -07:00
2026-08-25 20:32:54 -07:00
2026-08-29 20:18:28 -07:00
2026-08-29 20:18:28 -07:00
2026-09-06 14:34:03 -04:00
2026-08-30 18:13:36 -07:00
2026-08-29 20:18:28 -07:00
2026-08-29 20:18:28 -07:00
2026-08-30 18:13:36 -07:00
2026-08-15 00:54:20 -07:00
2026-08-18 15:59:17 -07:00
2026-08-15 19:36:03 -07:00
2026-08-15 19:36:03 -07:00
2026-08-18 03:12:47 -07:00
2026-08-30 20:48:45 -07:00
2026-08-30 20:48:45 -07:00
2026-08-19 22:37:42 -07:00
2026-08-30 20:48:45 -07:00
2026-08-19 22:37:42 -07:00
2026-09-01 23:21:14 -07:00
2026-08-30 18:13:36 -07:00
2026-08-29 20:18:28 -07:00
2026-09-05 15:08:22 -07:00
2026-08-29 20:18:28 -07:00
2026-08-29 20:18:28 -07:00
2026-08-11 11:49:44 -07:00
2026-08-18 13:17:42 -07:00
2026-09-02 02:49:09 -07:00
2026-08-29 20:18:28 -07:00
2026-07-22 14:45:03 -07:00
2026-07-22 14:45:03 -07:00
2026-08-21 21:05:24 -07:00
2026-08-21 21:05:24 -07:00
2026-09-05 00:57:02 -07:00
2026-09-05 00:57:02 -07:00
2026-05-30 11:04:48 -07:00
2026-06-29 22:38:29 -07:00
2026-09-06 14:39:25 -04:00
2026-07-04 22:50:43 -07:00
2026-07-04 22:50:43 -07:00
2026-07-04 22:50:43 -07:00
2026-09-02 15:14:14 -07:00
2026-09-02 23:32:41 -07:00
2026-09-05 00:57:02 -07:00
2026-08-31 12:44:41 -07:00
2026-08-31 12:44:41 -07:00
2026-09-06 14:34:03 -04:00
2026-07-27 17:17:47 -07:00
2026-08-18 15:26:49 -07:00
2026-09-05 01:34:38 -07:00
2026-07-26 15:05:39 -07:00
2026-09-06 14:34:03 -04:00
2026-09-06 14:34:03 -04:00
2026-09-02 23:32:41 -07:00
2026-07-21 20:51:28 -07:00
2026-07-29 17:03:15 -07:00
2026-07-23 18:35:31 -07:00
2026-07-21 20:51:28 -07:00
2026-07-24 17:37:01 -07:00
2026-07-24 17:37:01 -07:00
2026-08-27 23:27:39 -07:00
2026-08-27 23:27:39 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-12 01:29:55 -07:00
2026-08-19 16:45:42 -07:00
2026-08-19 16:45:42 -07:00
2026-07-23 18:35:31 -07:00
2026-08-19 16:45:42 -07:00
2026-07-23 18:35:31 -07:00
2026-08-14 00:24:57 -07:00
2026-07-15 15:23:35 -07:00
2026-08-13 22:48:24 -07:00
2026-09-02 05:36:54 -07:00
2026-09-02 05:36:54 -07:00
2026-08-19 16:45:42 -07:00
2026-08-19 16:45:42 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-08-24 20:44:34 -07:00
2026-09-01 22:44:05 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-24 20:44:34 -07:00
2026-05-28 16:13:45 -07:00
2026-08-24 12:11:55 -07:00
2026-08-15 00:54:20 -07:00
2026-08-30 14:19:05 -07:00
2026-08-30 14:19:05 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 23:24:05 -07:00
2026-09-01 22:44:05 -07:00
2026-08-24 20:44:34 -07:00
2026-09-03 22:03:05 -07:00
2026-08-24 20:44:34 -07:00
2026-08-24 20:44:34 -07:00
2026-08-24 20:44:34 -07:00
2026-08-30 14:19:05 -07:00
2026-09-03 22:03:05 -07:00
2026-09-03 22:03:05 -07:00
2026-07-20 18:54:44 -07:00
2026-09-03 16:13:03 -07:00
2026-09-02 21:48:17 -07:00
2026-09-03 22:03:05 -07:00
2026-09-02 21:05:18 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-08-13 18:11:33 -07:00
2026-07-21 20:51:28 -07:00
2026-08-05 10:30:04 -07:00
2026-08-13 18:11:33 -07:00
2026-08-17 16:40:01 -07:00
2026-08-13 18:11:33 -07:00
2026-08-13 18:11:33 -07:00
2026-09-02 21:05:18 -07:00
2026-09-06 14:34:03 -04:00
2026-08-17 16:40:01 -07:00
2026-09-01 22:48:12 -07:00
2026-09-02 23:32:41 -07:00
2026-09-06 14:34:03 -04:00
2026-09-03 16:13:03 -07:00
2026-09-02 21:05:18 -07:00
2026-09-03 16:13:03 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-23 18:35:31 -07:00
2026-09-01 22:48:12 -07:00
2026-08-16 23:51:53 -07:00
2026-09-06 14:34:03 -04:00
2026-09-06 14:34:03 -04:00
2026-09-01 22:05:30 -07:00
2026-07-17 18:09:39 -07:00
2026-07-17 18:09:39 -07:00
2026-08-19 16:45:42 -07:00
2026-08-28 16:45:58 -07:00
2026-08-25 20:32:54 -07:00
2026-08-26 00:10:32 -07:00
2026-08-26 00:10:32 -07:00
2026-08-18 15:26:49 -07:00
2026-08-25 20:32:54 -07:00
2026-08-25 20:32:54 -07:00
2026-09-02 13:08:01 -07:00
2026-09-05 21:42:34 -07:00
2026-09-05 21:42:34 -07:00
2026-07-19 01:19:46 -07:00
2026-07-19 01:19:46 -07:00
2026-06-30 03:48:25 -07:00
2026-06-30 03:48:25 -07:00
2026-08-25 20:32:54 -07:00
2026-08-26 00:10:32 -07:00
2026-08-22 21:15:25 -07:00
2026-09-02 01:29:30 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-08-31 08:17:40 -07:00
2026-08-16 16:50:26 -07:00
2026-08-30 14:19:05 -07:00