.omo/evidence/omo-senpi-adapter/20260729-windows-team-crash-recovery/README.md
This directory contains the original Windows run for #6449. It was not regenerated during the PR #6451 review fixes because the current verification host is macOS and cannot execute the Windows-only live path. The committed JSON predates the strengthened harness fields and must not be cited as evidence for the revised crash gate; a fresh Windows run must replace it before those fields are claimed.
The patch:
senpi shims through process.execPath and the package CLI instead of asking Windows to execute .cmd wrappers directly;taskkill.exe /PID <pid> /T /F;notification.liveness_notified_epoch in task records;Base: origin/dev at 106bf0da14077e42e5e95cdd0ca0c27a86730bda.
The counts below describe the pre-review candidate only; current macOS verification is reported in the PR review handoff rather than rewritten into this historical artifact.
packages/omo-senpi typecheck: PASS.packages/senpi-task typecheck: PASS.shell: true, dynamic execution, image-name kill, pkill, or killall findings.git diff --check: PASS.The Windows host cannot create the symlinks used by a set of cross-platform tests and also exposes pre-existing user-agent/config discovery to tests that do not isolate the home directory. The clean origin/dev worktree was built and tested on the same host to distinguish baseline failures from patch regressions.
| Gate | Clean origin/dev | Candidate | Result |
|---|---|---|---|
bun run typecheck | not needed for comparison | exit 0 | PASS |
bun run build | exit 0 | exit 0 | PASS |
bun test | 12,267 pass / 73 fail / 22 skip | 12,287 pass / 73 fail / 22 skip | No increase in failures; 20 new passing tests |
bun run test:codex | 359 pass / 28 fail / 7 skip | 359 pass / 28 fail / 7 skip | Exact baseline parity |
The remaining root and Codex failures are pre-existing on this Windows host. They are dominated by EPERM from symlink fixtures, checkout symlink materialization, home-directory contamination, and unrelated timeout-sensitive scans.
node packages/omo-senpi/scripts/qa/team-e2e.mjs ran against the earlier candidate with isolated mock credentials and state. Its 13-check output does not include the revised alive-before-kill ordering, exact reserved-message replacement delivery, or durable JSONL acknowledgement fields, so it is retained only as historical context.
liveness_notified_epoch for the current run epoch.The historical sanitized results remain in team-e2e.json and crash-recovery.json; they were not hand-edited to imitate output from the strengthened harness.
The liveness notification remains at-least-once across a crash between event delivery and durable acknowledgement. The patch closes deterministic loss after sendMessage() returns, but a sufficiently narrow crash window can still produce a duplicate replay. Downstream handling should remain idempotent.