Skip to content

Releases: freeCodeCamp/artemis

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 10:40
225790f

1.4.0 (2026-07-14)

Features

  • gc: audit each purged deploy as system:gc (3291c36)
  • gc: page on reconcile aliased_missing drift via Sentry issue (32793d4)
  • handler: add h.audit helper + AuditStore interface (92f01de)
  • handler: add HTTP request/duration/in-flight metrics (c5e5c08)
  • handler: add logAction helper; log deploy.init with actor (0147f81)
  • handler: add Sentry breadcrumbs at promote/finalize checkpoints (fb43d98)
  • handler: audit all 11 destructive actions incl SiteRegister (f454a7b)
  • handler: capture chi route pattern into access-log + Scope (d95c3c8)
  • handler: convert mutating handlers to logAction with actor (dc75f2f)
  • handler: emit action_total metric from logAction (2f262d4)
  • handler: enrich upstream-error log + Sentry with actor/site/deployId (6f3cd6a)
  • handler: log deploy.upload/finalize success with actor + bytes (38cf481)
  • handler: log site.update with actor + before/after teams (b10095f)
  • handler: set Sentry user on deploy-JWT routes (71bdbb6)
  • handler: trace spans + breadcrumbs on destructive flows (e923416)
  • handler: trace_id exemplar on http duration histogram (3291608)
  • hatchet: capture worker task panics to Sentry via WithPanicHandler (64cbc0d)
  • metrics: add audit_events_total counter surface (3c261dd)
  • metrics: extend upload buckets past 10s + build_info gauge (a0ee63f)
  • metrics: label tombstoned deploys by trigger (manual|scheduled) (7f8f26e)
  • observability: force-sample destructive actions by raw method+path (0aca05d)
  • observability: harden Sentry ClientOptions (ServerName, breadcrumbs) (fb8f193)
  • observability: log workflow panics to slog, not just Sentry (dab5d89)
  • observability: scrub breadcrumb message + nested data instead of dropping (bb1f12d)
  • observability: scrub stdout logs via shared ScrubText/ScrubAttrs (5e44aa8)
  • pg: add append-only audit_log table + RecordAudit (025cc73)
  • server: retag Sentry tx name to method + chi route pattern (e5d81c8)
  • telemetry: add reqID RoundTripper; thread reqID into pg lock/retry logs (b66d532)
  • telemetry: add request Scope with mutex-guarded setters (cd8028c)
  • telemetry: add trace_id/span_id to log lines from active span (560b198)
  • telemetry: add WithSpan; instrument DeployFinalize dep calls (625af4c)
  • telemetry: inject request-scoped attrs into every log line (35d5234)
  • telemetry: propagate sentry-trace on outbound GitHub calls (b5f921a)
  • worker: add duration histograms for workflows + relay (985353d)
  • worker: mint run_id scope for cron/relay workflow firings (2257f01)
  • worker: Sentry Crons check-ins on reconcile + purge crons (7e24151)

Bug Fixes

  • backfill: keep first genuine byte error, ignore trailing cancel (9828d4a)
  • gc: bound reconcile-scheduler publish with a deadline (091887f)
  • gc: derive live-alias re-read key via <site> substitution (fc1df86)
  • gc: downgrade self-healing reconcile/lock logs to Warn (4441eb1)
  • gc: guard purge double-count + thread ctx through gc/handler logs (64057ff)
  • gc: stop paging on self-healed aliased drift (1df5dbb)
  • handler: drop duplicate actor log key (2127362)
  • handler: lock SiteUpdate to fix audit race (f87c3c8)
  • handler: map GitHub rate-limit to 429 at re-probe sites (40ed828)
  • handler: populate access-log actor via shared request Scope (9c74c75)
  • handler: record real deploy bytes in delete tombstone (df37b11)
  • internal: do not init on non-template (#20) (51def46)
  • main: wire h.Audit so audit_log persists for HTTP actions (f364f1a)
  • observability: scrub secrets in error/stringer log attrs (5808b95)
  • pg: release and surface stranded advisory unlock (00631fd)
  • readyz: swap log levels to match client impact (31633b5)
  • worker: add reconcile-scheduler cron producing site.reconcile events (fc72a64)
  • worker: bound relay pass so a Hatchet stall frees pool + locks (9473578)
  • worker: claim outbox rows FOR UPDATE SKIP LOCKED to stop cross-replica dup (cf9644a)
  • worker: scale relay timeout with batch size (865a4fb)

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 05 Jul 14:27
31ccbec

1.3.0 (2026-07-05)

Features

  • handler: add deploy restore and trash-list endpoints (33a6ede)

Bug Fixes

  • gc: detach tombstone-move from workflow context cancellation (d07f155)
  • gc: reuse one advisory-lock conn across a GC run's per-move locks (fbc3bc7)
  • handler: close purge-vs-finalize race with in-lock site re-check (beeb786)
  • handler: reject deploy JWT when scoped site is unregistered (ec9188c)

v1.2.2

Choose a tag to compare

@github-actions github-actions released this 04 Jul 16:44
b53c6a3

1.2.2 (2026-07-04)

Bug Fixes

  • backfill: one aggregate byte-failure capture per run (9fcf4f6)
  • backfill: report bytes soft-fail to Sentry (grouped) (6b69984)
  • backfill: unwrap last error so shutdown cancel suppressed (de9dac4)
  • handler: edge-triggered readyz paging via reset-latch (51fead1)
  • handler: readyz streak-based paging for sustained outages (9167af7)
  • pg: zero bytes upsert must not clobber a known value (190f34f)

v1.2.1

Choose a tag to compare

@github-actions github-actions released this 04 Jul 14:42
7ead9cf

1.2.1 (2026-07-04)

Bug Fixes

  • backfill: soft-fail bytes probe, never crash fleet backfill (36eb530)
  • handler: page Sentry on sustained readyz outage (73c6d9b)
  • handler: restore R2 signal on finalize bytes soft-fail (98ce16c)

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 04 Jul 10:32
66d6f58

1.2.0 (2026-07-04)

Features

  • gc,server: gc-site advisory lock per-move + chi request timeout (c94a8a8)
  • gc: blast-cap partial-progress + capped metric; grace 1h->72h (86d0e75)
  • pg,r2,backfill: populate deploys.bytes + supersede-stamp test (25c7f8b)

Bug Fixes

  • handler: 409 on site-lock timeout; quiet transient sentry (19669ee)
  • handler: deploy.bytes is best-effort, never gates finalize (DHP-1) (5ac32e6)
  • handler: detach destructive purge/delete moves from request deadline (TMO-1/2) (4290e2a)

v1.1.1

Choose a tag to compare

@github-actions github-actions released this 06 Jun 18:47
377aeb0

1.1.1 (2026-06-06)

Bug Fixes

  • gc,handler: R2-authoritative alias re-read + per-site advisory lock on destructive ops (f12aad5)
  • gc: per-deploy alias-release hold replaces site-blanket freshAliasMove (74c76ca)
  • pg,handler: dedicated lock connection + in-lock CAS preflight reads (8b3b1a0)

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 06 Jun 09:02
e7b1dee

1.1.0 (2026-06-06)

Features

  • pg: bounded boot connect retry with backoff (068e455)

Bug Fixes

  • boot: shutdown-aware exit, bounded lock waits (f107e32)
  • handler: canonicalize site keys to R2 dirname at GC boundary (15757f5)
  • handler: write deploy index + alias rows through to PG on finalize/promote/rollback (2e8ed88)

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...
Read more

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 02 Jun 02:49
e7a9e31

0.8.0 (2026-06-02)

Features

  • repo: delete endpoint + stale-claim reconcile (c3a7271)

Bug Fixes

  • repo: correct delete claim-release + reconcile (0259bdb)
  • repo: log reconcile probe failure (493a60c)

v0.7.1

Choose a tag to compare

@github-actions github-actions released this 01 Jun 14:16
bc74eeb

0.7.1 (2026-06-01)

Bug Fixes

  • handler: cap json request body sizes (2859d1f)
  • handler: raise readyz probe timeout to 5s (7490776)
  • handler: run readyz probes concurrently (238c51e)
  • handler: validate rollback target deploy id (c5bd8c1)