Skip to content

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.
  • 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 /readyz with 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).

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.