fabro/lib/crates
Bryan Helmkamp da87f978cd
fix(proc): revert process_running to cheap kill(0) probe
Commit 1ed8e6cbd changed process_running(pid) to shell out to `ps` on
every call to distinguish running processes from zombies. That cost
~2 ms per invocation on macOS (fork + exec + wait), and the test
harness calls process_running O(tests × markers) times under session
flock contention. Across a `cargo nextest run -p fabro-cli` that added
up to ~90 s of suite time, and the zombie-aware semantics turned out
to have no production caller on Unix (the server's worker-termination
loop uses process_group_alive; the CLI stop/status paths don't need
zombie detection for a daemon that reparents to init).

Restore the pre-1ed8e6cbd body: process_running is now a straight
kill(pid, 0) via process_exists on Unix, true on non-unix. Delete
unix_process_state (the `ps` helper) and its zombie regression test,
since they describe behavior we're rolling back. process_group_alive
and its tests are unchanged.

Measured on this branch against baseline db953c838:
  reap_nextest p50:   172 ms -> 0.3 ms
  TestContext:🆕  316 ms mean -> 15 ms mean

If a future caller genuinely needs zombie-aware semantics, add it back
alongside that caller with a benchmark in context.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 16:24:42 -04:00
..
fabro-agent refactor(unwrap): clear non-test workspace warnings 2026-04-19 20:56:38 -04:00
fabro-api refactor(cli): rename ServerStoreClient -> Client, fabro_api::Client -> ApiClient 2026-04-20 08:56:09 -04:00
fabro-auth Merge remote-tracking branch 'origin/main' 2026-04-19 20:32:02 -04:00
fabro-checkpoint lint(clippy): disallow blocking std::fs on Tokio paths 2026-04-19 17:22:21 -04:00
fabro-cli test: de-flake pr_list and full_http_lifecycle_cancel 2026-04-20 15:04:08 -04:00
fabro-config feat(server): add explicit GitHub webhook strategies 2026-04-19 22:53:22 -04:00
fabro-core refactor(unwrap): clean runtime hotspot call sites 2026-04-19 20:48:44 -04:00
fabro-devcontainer refactor(unwrap): clear non-test workspace warnings 2026-04-19 20:56:38 -04:00
fabro-github refactor(server): relocate github helpers and use macros for test context 2026-04-20 08:39:12 -04:00
fabro-graphviz refactor(unwrap): clear non-test workspace warnings 2026-04-19 20:56:38 -04:00
fabro-hooks refactor(unwrap): clear non-test workspace warnings 2026-04-19 20:56:38 -04:00
fabro-http fix(auth): harden loopback checks and align CSP tests 2026-04-20 13:30:45 -04:00
fabro-install lint(clippy): disallow blocking std::fs on Tokio paths 2026-04-19 17:22:21 -04:00
fabro-interview Merge remote-tracking branch 'origin/main' 2026-04-19 20:32:02 -04:00
fabro-llm test(unwrap): clean shared support and workflow fixtures 2026-04-19 21:01:25 -04:00
fabro-macros refactor(settings): stage 6.3b shrink server runtime types + delete Combine 2026-04-09 18:27:46 -04:00
fabro-mcp fix: simplify fabro-http crate and fix correctness issues 2026-04-12 12:20:55 -04:00
fabro-model chore(clippy): require reasons on allow attributes 2026-04-19 20:24:24 -04:00
fabro-oauth Merge remote-tracking branch 'origin/main' 2026-04-20 09:47:47 -04:00
fabro-proc fix(proc): revert process_running to cheap kill(0) probe 2026-04-20 16:24:42 -04:00
fabro-retro ci: switch clippy to pinned nightly, clean up workspace lints 2026-04-16 18:59:11 -04:00
fabro-sandbox refactor(unwrap): clear non-test workspace warnings 2026-04-19 20:56:38 -04:00
fabro-server test: de-flake pr_list and full_http_lifecycle_cancel 2026-04-20 15:04:08 -04:00
fabro-slack refactor(http): centralize reqwest behind fabro-http 2026-04-12 11:48:54 -04:00
fabro-spa Merge remote-tracking branch 'origin/main' 2026-04-20 09:33:08 -04:00
fabro-store refactor(auth): simplify CLI auth plumbing after code review 2026-04-20 11:13:37 -04:00
fabro-telemetry Merge remote-tracking branch 'origin/main' 2026-04-19 20:32:02 -04:00
fabro-template refactor(async): lint std::process::Command across all targets 2026-04-12 13:35:57 -04:00
fabro-test test(harness): add FABRO_TEST_PROBE_LOG timing probes 2026-04-20 16:24:26 -04:00
fabro-tracker refactor(unwrap): clear non-test workspace warnings 2026-04-19 20:56:38 -04:00
fabro-types Merge remote-tracking branch 'origin/main' 2026-04-20 09:47:47 -04:00
fabro-util refactor(unwrap): clear non-test workspace warnings 2026-04-19 20:56:38 -04:00
fabro-validate fmt: apply nightly rustfmt after merge 2026-04-11 13:43:30 -04:00
fabro-vault lint(clippy): disallow blocking std::fs on Tokio paths 2026-04-19 17:22:21 -04:00
fabro-workflow test(unwrap): clean shared support and workflow fixtures 2026-04-19 21:01:25 -04:00