If your first publish failed, the project could be left unable to publish at all: pressing Publish again would stop immediately, and the project card kept showing "Publishing..." forever. That is fixed. Every publish attempt now ends in a state you can act on, so you can always fix your app and publish again.
When a publish fails its health check, we also now show you your app's own startup log with the error. That is the part that actually explains the failure: your code deploys fine, but the app's server does not come up, so the published URL never responds. Previously that log was not kept, and the deploy log looked clean because the deploy itself had succeeded.
Two related improvements: the publish progress window no longer blocks the editor, so you can keep working while a publish runs or close it if something goes wrong. And if a publish is interrupted and left behind, we now clean it up automatically instead of leaving the project stuck.
If a health check keeps failing, check that your app listens on the path set as healthcheck.path in playcode.yml, or point it at a path your app actually serves.