v0.14.2
A deployment backed by a managed database would start answering 500 to everything about a week after it was deployed, and nothing said so. Uptime is now drawn as a heatmap, and the preview settings have a screen of their own.
- Uptime is drawn as a 24-hour × date heatmap, so you can see when the workspaces are actually occupied rather than only how many hours a day added up to. It shows occupancy, not money — the cloud bill is only available per day, and an hourly amount would be a guess. It fills from this release onwards; the hours before it were never recorded.
Improved
Section titled “Improved”- The preview subdomain has a settings screen of its own, next to the toolchain instead of buried at the end of it — the ports you expose and whether the URL is readable without signing in are decisions of a different weight from picking a JDK. It appears only on deployments that issue preview URLs.
- A deployment whose database rotates its own password could start answering 500 to
every request — a week in, without a single sign of it. The screen was unusable while
the health check, the load balancer and the deployment all reported normal. The control
plane now re-reads the password when the database refuses a connection, answers a new
/readyzwith the database’s state, and can mail an alarm when it cannot reach it (see Upgrade notes). - A session running subagents was shown as waiting for input, drifting between working and idle instead of settling on “running a background agent”.
- A handoff you received could not be started from where the notification took you, and notification rows showed an identifier instead of a label.
- A branch named after a ticket keeps the key’s capitals (
feature/G3-1234).
Upgrade notes
Section titled “Upgrade notes”On ECS, redeploy 20-platform as well as 30-ingress. The fix above reads the
database secret as the control plane’s own identity, which needs
secretsmanager:GetSecretValue on the CP task role; without it the control plane keeps
running on the password it was started with and says so in the log — that is, the old
behaviour. 30-ingress passes the secret’s ARN by itself.
Set CpAlarmEmail. Empty (the default) means the database alarm has nowhere to go and
the only trace is the control plane’s log, which is exactly what made the failure above
invisible. Other deployments are unaffected: with no secret ARN the control plane behaves
as it always did.
Agent CLI pins: Claude Code 2.1.252, Codex 0.152.0, Antigravity 1.1.23, Cursor 2026.08.31, Kiro 2.20.2. The others are unchanged from 0.14.1.