Skip to content

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 05 Jun 04:04
c82d780

1.0.0 (2026-06-05)

Features

  • auth: consult durable teamcache before GitHub team probe (6355ea7)
  • backfill: one-shot BACKFILL_ON_BOOT R2-to-PG index runner (a185b51)
  • boot: inject pg.Repo as handler Outbox + Tombstones (TrashPrefixBase) (0dcaaa5)
  • boot: open pg pool + run migrations gated on DATABASE_URL (55a535e)
  • boot: register + start gc workflows on the Hatchet worker (c8fd6bf)
  • boot: run outbox-relay ticker loop draining to the Hatchet adapter (7d95639)
  • boot: wire gc closures + policy + pg.Repo stores (prod R2 layout) (ded5b80)
  • config: add DATABASE_URL, HATCHET_, CLEANUP_ with grace>=ttl validation (b6c1a08)
  • deploy: write _artemis_meta.json marker on finalize (b9cd06f)
  • gc: add gc-site workflow (retain, TOCTOU re-check, tombstone-move, dry-run) (52138cc)
  • gc: add prometheus metrics + slog reporting for GC workflows (61315ac)
  • gc: add pure retain predicate (alias/keepN/grace/retention/serve-cache) (7be6dc6)
  • gc: add reconcile-slice drift audit (orphan tombstone, reindex, PG prune) (f4f9786)
  • gc: add site GC planner with blast-cap abort (c211aeb)
  • gc: add tombstone-purge workflow (2-phase reclaim past recovery window) (882ae27)
  • handler: add manual deploy-delete endpoint (409 if aliased, else tombstone) (e3d19e1)
  • handler: add site-purge (?purge=true cascade tombstone) (ef3bc4b)
  • hatchet: adapter implementing worker.Engine + worker.Publisher (9714509)
  • metrics: expose worker run + relay counters at /metrics (c3830a9)
  • observability: capture outbox-enqueue failures to Sentry (bd002f2)
  • pg: add alias CAS for last-writer-safe promote/rollback (no lost update) (dc392ff)
  • pg: add atomic finalize saga (deploy+alias+outbox in one tx) (d8a1653)
  • pg: add deploy/alias/tombstone repo + one-time R2->PG backfill (8286666)
  • pg: add Postgres layer with embedded schema migrations (fd1f4bf)
  • pg: add Postgres-backed repo-request queue (partial-index name claim, CAS transitions) (c6a3827)
  • pg: add Postgres-backed site registry store (Valkey cache-front via OnChange) (6807518)
  • pg: add transactional outbox + emit site.changed on finalize/promote/rollback (7988ba0)
  • r2: add DeleteObject + paginated batch DeletePrefix (53e14fe)
  • r2: add ListSites (top-level delimiter, _* excluded) (1698048)
  • r2: add MovePrefix (copy+delete) for tombstone moves (b1f248d)
  • readyz: PG-degraded probe semantics (R6) (d075130)
  • registry: cut registry SoT to pg.RegistryStore + valkey cache-front (a40efe5)
  • registry: one-shot Valkey-to-PG import on boot when empty (11b9be8)
  • teamcache: add Valkey-backed shared GitHub team-membership cache (a166a35)
  • worker: add engine-agnostic durable workflow runtime (concurrency key=site) (ade56a4)
  • worker: add event/cron triggers to WorkflowDef + Hatchet adapter (d7f68b4)
  • worker: add outbox relay to publisher (at-least-once, order-preserving) (e67ee1c)
  • worker: add per-site debouncer for site.changed gc-site triggers (060a98d)
  • worker: add queue/DLQ/workflow metrics + reconcile drift counters (26032dc)
  • worker: register finalize/promote/rollback as durable workflows (key=site) (701ac31)

Bug Fixes

  • auth: surface io.ReadAll + parse errors on GitHub OK path (ae9ebf8)
  • auth: tolerate durable team cache write fail (531f491)
  • backfill: honor configurable ALIAS_*_KEY_FORMAT instead of hardcoded keys (10d0074)
  • backfill: revert alias-key templating; read R2-dir-relative <dir>/<mode> (B3 was a false positive) (81e3ccd)
  • compose: boot smoke stack past R11 via loopback fakegithub + pg (f4c05a5)
  • config: reject whitespace-only authz team (939559a)
  • config: validate GH_API_BASE; reject cleartext-remote + malformed bases (8bc0170)
  • gc: never tombstone an alias-pinned deploy in reconcile (V1) (935df49)
  • gc: re-read aliases before reconcile tombstone to close TOCTOU (V1) (130638c)
  • handler: detach emit from request ctx (069ab55)
  • handler: purge R2 before registry delete (b94f581)
  • metrics: expose go and process collectors (cb87f3e)
  • pg: count only inserted rows in import (a5db15b)
  • pg: panic on crypto/rand failure in repo request id gen (fd23e57)
  • pg: rebuild outbox_unpublished_idx on id to match fetch order (f9f0d10)
  • pg: return DB-read value as current from SetAliasCAS (2170962)
  • pg: unlock advisory locks on fresh ctx (71489c8)
  • r2: URL-encode MovePrefix copy-source for space/non-ASCII keys (V5) (2dff82e)
  • scripts: fail fast on pg readiness timeout (535c721)
  • worker: close debounce timer capture race (70120ff)
  • worker: guard debounce callback against stale timer race (4587b39)
  • worker: surface mark-published error on relay publish failure (errcheck) (2792bb7)

Miscellaneous Chores