Bug Fixes
Estimate generation, photo sharing, and photo link management now handle network interruptions without crashing. Previously, transport-level failures (network drop, server error, deploy skew) in server actions would cause unhandled rejections that bubbled up to the app-wide error boundary. Now we catch these failures, show a user-friendly error toast, and keep the project UI intact so you can retry.
Additionally, the dashboard no longer issues a prefetch request for every recent project tile on load, eliminating unnecessary server load during pageload.