Build image / build-and-push (push) Successful in 11s
From the Gadfly review of #119: - Reset the cost field on a new scan — it was the one review field not reseeded in the success handler (there's no cost on a packet), so a value typed before a Rescan lingered into the next proposal. - Clear the review-phase error when returning to capture via Rescan, so a failed confirm doesn't leave a stale error showing on the capture screen. - Make the scan escapable: thread an AbortController through the scan mutation and wire it to Cancel (no longer disabled while scanning), so a slow or hung vision call — the server allows up to 120s — isn't a trap the user can only leave by reloading. An aborted scan is treated as a cancel, not an error. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_01H3zbym8Doka2d7D48maSgZ