Skip to content

v0.1.62

Choose a tag to compare

@github-actions github-actions released this 17 Aug 06:21
· 22 commits to main since this release
1d44aaa

Highlights

GitHub PR Experience

  • Applies explain throttle pauses and checkpoint resumes — when the engine's throttler pauses a row copy or checksum, the PR says so, and a stalled row count reads as a deliberate pause rather than a hang. (#1039)
  • A configurable agent hint on plan comments — deployments can render their own guidance to coding agents alongside a plan. (#895)
  • Over-cap pull requests get a cap-specific blocking check — a PR that exceeds the schema file cap is told exactly that, instead of failing behind a generic check. (#1032)
  • One terminal comment for an exhausted durable command — a command that runs out of retries answers once, at the bottom of the timeline. (#1052)
  • Control requests name the operator who issued them — the plane that records a durable control request carries the caller through to the PR notice and the apply log, even when another plane accepted the command. (#1020, #967)
  • A refused apply names the apply and table holding the database — the refusal points at the blocking work instead of stating that the database is busy. (#1034)
  • Check Run summaries are sanitized — error text on a Check Run summary can no longer leak raw driver or connection detail into a public pull request. (#1044)

Apply Correctness

  • Remote dispatches are keyed by deployment and verified on the way back — a deployment's sibling operations share one remote apply, so the data plane echoes the operation key it resolved and the control plane checks it before persisting remote ids. (#1049, #1050)
  • VSchema-only applies are shaped as a deployment-scoped finalizer — a VSchema change dispatches as a task-less finalizer rather than resurrecting sibling DDL as shard-less work. (#1045)
  • Task-less stop and cancel settle truthfully when the lease is lost — a control request against an apply whose lease has moved reports what actually happened. (#1047)
  • A shutting-down process hands an apply back cleanly — a process going down releases its apply instead of leaving it to time out. (#1019)
  • Queued shards ready for cutover are normalized — a shard that has finished copying is presented consistently regardless of how it queued. (#1035)
  • The revert window is kept for unsafe changes — an unsafe change retains its window to be reverted rather than closing it early. (#1040)
  • The pre-deploy context baseline is bounded to recent history — the baseline reads a recent window instead of the full history. (#1046)

Webhook Durability

  • Lost auto-plans are recovered from check_suite.requested — a plan that never landed is picked back up instead of leaving the PR without one. (#1002)
  • retry_after is honored as a not-before time — a delivery asked to wait is held until its time rather than retried early. (#999)
  • Deliveries that can never succeed are dead-lettered — a permanently failing delivery stops consuming retries. (#1023)
  • Stale auto-plan claims coalesce through a superseded terminal state — a claim overtaken by a newer one resolves instead of lingering. (#1001)
  • Both issue-comment paths share one gate ladder — the durable and direct paths evaluate the same gates in the same order. (#1053)

PostgreSQL & Storage

  • Native-safe PostgreSQL schema changes apply via pg-sprite — PostgreSQL applies run through the pg-sprite engine. (#1025)
  • A storage.dialect switch routes the storage stack — the configured dialect selects the MySQL or PostgreSQL back end. (#1013)
  • PostgreSQL sessions are pinned to UTC — storage sessions no longer inherit the server's timezone. (#1018)

Data Plane

  • Schema pull is delegated to the data plane engine capability — pull runs on the engine that owns the database rather than in the control plane. (#1022)
  • Plan and pull validate the database type against the server config — validation reads the configured types instead of a hardcoded list. (#1031)
  • Managed MySQL connections interpolate query parameters client-side — every connection opened through the shared helper interpolates parameters itself. (#1029)

Observability

  • Engine log routing is correct and race-free — engine log lines reach the right apply log without racing. (#1028)
  • GitHub request metrics distinguish transport failures from 404s — a dial failure and a missing resource are no longer the same signal. (#1024)
  • A resumed or failed drive explains itself in the apply log — the log states why a drive resumed or failed. (#1027)
  • The tern health RPC logs its cause on failure — a failed health check names what went wrong. (#1026)
  • Webhook log severities are right-sized for oncall triage — expected conditions stop logging at warning and above. (#1037)

Upgrade notes

  • pending_drops.enabled now defaults to false. The pending-drops quarantine is opt-in; deployments that relied on the previous default-on behavior must set it explicitly. (#1057)
  • The tasks table gains throttled and throttle_reason. On MySQL the self-bootstrapping schema check applies this at startup. On PostgreSQL the bootstrapper creates missing tables but does not alter existing ones, so apply these columns before deploying.
  • This release requires Go 1.26.6. Consumers embedding the module must be on that toolchain or newer.
  • Upgrade data planes alongside the control plane when running sharded Vitess. A control plane on this version dispatching a sharded or VSchema-only apply to a data plane older than this version fails that dispatch closed, by design (#1050). Non-sharded MySQL applies derive an empty operation key and are unaffected.

Contributors

Full Changelog: v0.1.61...v0.1.62