Changed
- Releases no longer repeat main CI's full test suite. The release workflow re-ran typecheck, lint, build and every test on the tagged commit, about 39 of its roughly 95 minutes. When main CI's "Typecheck · Lint · Build · Test" job already passed on that exact commit, the release reuses that verdict and links the run in its summary. Otherwise it runs the checks as before: no CI run, a failed or cancelled one, one still running, or a tag on a commit that was never main's head. The database integration checks, the image smokes and signing are unchanged.
- A deployment held for runtime recovery now says so on the Deploys tab. When the outcome of a Swarm, primary-runtime or fan-out transition cannot be confirmed, the deployment is kept unsettled on purpose and retried every minute. Its row stayed "deploying" with nothing beside it, which looked like a deploy that never ends. The recovery cards were only under Settings. The Deploys tab of a Docker service now shows them too, with the reason, the next automatic check and, for operators, Retry recovery.
- The release Swarm smoke reports the recovery journal when a deploy hangs. A Swarm deploy that cannot confirm its outcome is held for recovery on purpose, which from outside looks like a deploy that never ends. The smoke's timeout report now starts with the service's Swarm recovery entry (phase, reason, attempts) and its newest deployments.
No migration and no configuration change.