Build image / build-and-push (push) Successful in 12s
Gadfly (2 models, correctness): the redirect effect checked live.isError but the rendered "taking you to your gardens…" message read full.error — which is the SEASON query when viewing a past year. A season-view 404 with a healthy live garden would then show a redirect promise the effect never fires, stranding the user. Derive gardenGone once from the LIVE query (garden existence doesn't depend on the season viewed) and use it for BOTH the bounce effect and the render message, so the promise and the redirect can't disagree. Also removes the duplicated not-found reasoning the maintainability finding flagged. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_01H3zbym8Doka2d7D48maSgZ