v0.3.3 — verify the crash is actually gone
Fixed
--notifyproduced nothing at all on macOS 15.6, with no way to tell. A
display notificationfrom a command-line process is discarded: nothing appears,
osascriptexits 0, and the script never registers under System Settings →
Notifications -- so there is no permission to grant, and phantom cannot observe the
difference between delivered and dropped. It now warns once per run when it is on that
path and points atbrew install terminal-notifier, which ships its own bundle and does
deliver. The README previously said to allow Script Editor; that entry never appears, so
the advice was wrong.
Changed
- A crash with nothing to go on is now declined instead of recovered.
phantom node -e "process.exit(7)"spent 90 seconds and ~300k tokens to conclude nothing: no error line,
no stack trace, no file named in the output and no test command, so the session could
neither locate the fault nor tell whether it had fixed it. That is the shape of a linter
or build tool exiting non-zero, and spending a session to reliably achieve nothing is
worse than saying so. A project with a test command still gets a recovery -- the suite is
both the map and the proof -- and--dry-runstill runs, since a diagnosis without
verification is exactly what that mode is for.
Fixed
-
Phantom could report a fix that fixed nothing. Verification ran the test command and
nothing else, so a session that changed no code at all -- or changed code without
touching the crashing path -- was announced as✅ fixed · fix verified by phantomwhile
the original command still crashed with the identical error. The tests that "verified" it
were the ones already passing while the command was dying, since the bug lived in a path
they never covered. Found by running phantom against a real crash, not by the suite.Two changes. A session that changes nothing can no longer be
fixed, whatever the suite
says. And after the tests pass, phantom re-runs the command that crashed: exit 0, or
still running at the 30 s cap, is the evidence; the same failure again isunfixedwith
the exit code named. The still-running case is deliberate --phantom npm run dev
crashed on boot, and surviving past the point it used to die is exactly the proof wanted,
while waiting for an exit would hang the recovery forever.The post-mortem's verification table gains a
Crashed command re-runrow, so the
distinction between "tests pass" and "the crash is gone" is visible rather than implied.
Set"verifyCommand": falseto skip the re-run if the command has side effects you do
not want repeated. -
A false alarm on the most alarming message phantom has. The stat-snapshot audit flags
any never-touch file that changed on disk, and phantom reported "phantom cannot restore
these; inspect them now" for a tracked.envthat the hard reset put back a second
later. It now checks whether git tracks the file: only a file git never knew about -- a
gitignored.envis the usual one -- is genuinely beyond recovery. A tracked one is
still a violation and still reverts the branch, but is reported as restored, because it
was.