All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Planning milestones vs Hex releases
Published Hex releases use [0.x.y] version headings in this file. Internal repository
milestone labels (such as v2.x) track delivery tranches — they are not a second
install axis and do not map to Hex versions.
0.1.3 (2026-07-11)
Features
- 37-04: build the Overlays curated flow-probe section (53d186f)
- 37-05: build DevLab.LabLive shell and section dispatch (900768e)
- 37-05: mount dev-only lab route in dev/dev_router.ex (476ba08)
- 37-06: add deterministic lab browser proof (lab.spec.mjs) (247ca20)
- 38-01: add opaque toast tokens and repoint toast/flash CSS (GREEN) (3c0f1af)
- 38-02: close copy-control a11y gaps (aria-live, aria-label) (96b593e)
- 38-02: delete signal_strip duplicate and guard stat singularity (dc49af6)
- 39-01: add page_header/1 to ScoriaWeb.UI (8d9ac90)
- 39-01: additively upgrade status_label/1 with curated D-25 vocabulary (45d1b94)
- 39-02: add per-domain copy modules (Incident/Dataset/Review/Connector) (517d275)
- 39-02: add strings-only ScoriaWeb.Copy (bf19553)
- 39-03: add Workflows.list_decided_approvals/1 (bounded projection, D-20) (f64c01e)
- 39-03: extend ApprovalCopy as the decision-copy SSOT (D-16, D-24d, D-27) (89fb198)
- 39-03: route decided/expired fixtures through approve/3, guard the write invariant (86d35dd)
- 39-04: migrate eval-spec/prompt headers, fix D-23 microcopy offenders (f7b9312)
- 39-04: migrate orchestrator Home + workflow index to page_header/1 (e2286a6)
- 39-04: reconcile coming_soon_live's two hand-rolled header shapes (8448b68)
- 39-05: incidents page_header + stream the selectable list (D-10) (6c01997)
- 39-05: normalize dataset/connectors page_header, D-04/D-23 microcopy, D-08 states (e2479c3)
- 39-05: review_queue page_header, URL-held filter, D-23/D-08 fixes (eba95a0)
- 39-06: confirm modal earns friction, Deny neutral, decided gate, alarm CSS removed (2efcbe2)
- 39-06: re-sequence approval drawer decision-first, de-alarm, dedup copy (ce86c88)
- 39-06: split approval payload into two native disclosures + stable DOM id (22f9e16)
- 39-07: decided read-only receipt drawer + audit-sourced attribution (99ed2a4)
- 39-07: Pending|Decided URL scope + ?approval deep-link on approvals table (522b0cb)
- 40-01: add shared axe-run and boxesIntersect helpers (9d8d0db)
- 40-01: pin @axe-core/playwright 4.12.1 dev-only with axe-core override (715cb72)
- 40-02: add A11Y structural-presence source-scan guard (5188d25)
- 40-02: add MOTION-01 tokenization + keyframe source-scan guard (15ec2e4)
- 40-03: add focus trap + restore to drawer/1 and modal/1 (cbe1288)
- 40-04: add report-only axe WCAG 2.2 AA baseline for full dev lab (dcdd5ba)
- 40-04: curated axe assert-zero scan on all 7 seeded real pages (088e85d)
- 40-05: reduced_motion.spec.mjs proves duration collapse incl. infinite skeleton (0116e39)
- 40-05: responsive_scan.spec.mjs — D-16 tiered assertion catalog across 4 anchor pages (72bc857)
- 40-05: widen shots.mjs to the 6-width matrix for contact-sheet evidence (3cfb079)
- 41-04: add /_lab/overlays to screenshot SCREENS with toast-timing-safe capture (2d914ec)
- 41.1-01: delegate UI.status_label/1 to Copy.status_label/1 + parity guard (c61e0be)
- 41.1-01: wire dataset_live/index.ex to Copy + DatasetCopy, byte-stable (0ae707f)
- 42-01: allow not_scored scores without measurements (d328ad5)
- 42-01: implement fail-closed verdict spine (07572d1)
- 42-01: render eval inconclusive states as warnings (33eb786)
- 42-02: add dataset item capture fields (d792cae)
- 42-02: capture workflow step output on promotion (2b19e2f)
- 42-02: implement subject output resolver (861a917)
- 42-03: add minimal exact match scorer (bb3a330)
- 42-03: implement exact match scorer behavior (f0c41c3)
- 42-04: score offline replay with real scorer dispatch (ed54fc4)
- 42-05: route judge runner through captured output (2cc621b)
- 42-06: classify online negative signals (85e6839)
- 42-06: gate online summaries with verdict (639b007)
- 42-07: add eval run verdict lookup index (5dc694a)
- 42-07: add release gate verdict consult (ebdadd6)
- 43-01: add knowledge scope contract (068224c)
- 43-02: add knowledge tenant scope migration (cee298a)
- 43-02: add knowledge tenant scope schema fields (671315a)
- 43-03: enforce retrieval scope persistence (a43d4d4)
- 43-03: enforce scope on knowledge source paths (26904c4)
- 43-04: pass scope into knowledge backends (d1448ff)
- 43-04: tenant filter pgvector retrieval (1d008a7)
- 43-04: tenant qualify scrypath normalization (55d16f8)
- 43-05: route grounding through scoped citations (dcc14b9)
- 43-05: scope citation validation and audit (d9be295)
- 44-01: add fail-closed dashboard scope gate (8e38b55)
- 44-01: wire dashboard auth hook chain (1c15790)
- 44-02: consume dashboard scope in auth seam views (fe16315)
- 44-03: route approvals through dashboard scope (2803061)
- 44-04: tenant-scope workflow dashboard reads (94e9c40)
- 44-05: add tenant-aware eval dashboard helpers (152f5f1)
- 44-05: wire quality dashboards to tenant scope (fb9f95a)
- 44-06: scope prompt release evidence (a235e3c)
- 46-01: add reviewer broadcast compatibility surface (3e7fec9)
- 46-01: add verification suites compatibility surface (69789d4)
- 46-02: add reviewer surface compatibility alias (5c7d839)
- 46-03: add semantic cache profile aliases (adc3247)
- 46-04: migrate workflow adapters to trace components (7dba6b3)
- 46-05: normalize trace evidence copy boundary (5919088)
- 46-06: expose glossary in docs package surface (f32b52f)
- 48-07: add docs source metadata helpers (0c8d3b5)
- 48-07: align release preview docs inventory (e4f7911)
- 48-07: configure ExDoc guide surface (2255e61)
- 49-01: add AI docs contract constants (2e45f5a)
- 49-01: add root AI docs entry points (d90413e)
- 49-02: enforce docs warnings in release preview (a1306cb)
- 49-02: make docs warnings gate clean (9fe0953)
- 49-02: package shared root AI docs (1935020)
Bug Fixes
- 38-01: regenerate compiled dashboard CSS from token/component sources (f519394)
- 40-04: repoint --scoria-text-subtle off pumice-500 to clear AA contrast (43bdadf)
- 40: CR-01 gate drawer window-Escape while a modal is stacked on top (096154d)
- 40: WR-03 clear the other connectors drawer when opening one (52921c0)
- 41-01: add aria-label to .scoria-table__viewport, tighten a11y guard (38a891e)
- 41-01: add exhaustive else to dismiss_candidate with clause (d90dc97)
- 41-01: assign safe :origin_context default in mount/2 (f35b136)
- 41: namespace guard-test ErrorView to avoid parallel-compile collision (f6e3e0c)
- 43: resolve research questions from checker feedback (11e949f)
- 44: close dashboard auth review blockers (bc293bb)
- 44: revise dashboard auth seam plans (3d82c58)
- 45-01: project pgvector cosine retrieval scores (b36953d)
- 45-02: repair grounding labels and chunk offsets (03d9bef)
- 45-03: measure offline and judge eval latency (1de6ea0)
- 45-04: measure online scoring latency (57ad733)
- 46: revise terminology plans from checker feedback (861ff2f)
- 47: address code review findings (6d87120)
- 47: align package surface changelog guard (defeb56)
- 47: require changelog in release preview (e017fca)
- 47: revise planning artifacts based on checker feedback (c26b243)
- 48: clean generated docs before release preview (04de4db)
- 48: close guide contract drift after wave 3 (6e765a6)
- 48: preserve scope doctrine in compatibility stubs (5c5ba9f)
- 48: resolve planning revision findings (1d89acf)
- 48: revise phase plans for checker feedback (9cf8cd4)
- 48: revise plans based on checker feedback (f5f4bae)
- 49: resolve research open questions (d4693dc)
- 49: revise plans based on checker feedback (d77b3a1)
- 50-01: unbreak docs release-preview gate (D-50-DEF-01) (c809241)
- 50-02: pass tenant_id to start_release_workflow/3 in dev seed (7a24315)
- 50-02: scope theme-toggle locators to the visible desktop control (75ee88a)
- 50-05: repair DashboardScope bare-halt regression under LiveView 1.1.30 (69e660a)
- 50-06: repoint handoff/semantic docs-source tests to guides/ SSOT (e9fe82f)
- 50-06: repoint phoenix_example_source_test to per-guide fragment groups (b8867e6)
- 50-06: repoint SupportJourney adopter doc surfaces to canonical guides/ (ee7f53f)
- 50-07: align seeded-run tenant scope with operator LiveView mount (0d540fc)
- 50-07: repoint notebook-primitive and incident-evidence tests to relocated/reworded SSOT (2618fce)
- 50-08: repoint dev_lab_boundary guard #7 to archived 36-inventory.json path (8e019e7)
- 50-08: repoint ui_component_test maintainer-doc reads to guides/maintainers.md (72fa708)
- 50-09: repair tenant-scoped knowledge seed and repoint approvals vocab drift in gallery app (44eda48)
- 50-10: align package_surface_test homepage_url to REL-03 subdomain SSOT (5258266)
- 50-11: unbreak ExDoc release-preview gate on docs/design_system.md dev-only cross-link (37494e5)
[Unreleased]
Changed
Pre-1.0 terminology migration
These notes describe unreleased main-branch changes. Hex release remains 0.1.2 until Phase 50 cuts the next release.
Historical sections below may retain old terminology as history. Current adopter-facing docs use final vocabulary.
| Previous wording | Final wording | Status |
|---|---|---|
| operator persona | reviewer | New docs and dashboard copy use reviewer; ScoriaWeb.OperatorSurface remains a legacy alias for ScoriaWeb.ReviewerSurface. |
| surface-sense evidence | trace | Run inspection surfaces use trace; RAG/citation evidence remains evidence. |
| verification lane | verification suite | Scoria.VerificationLanes remains a legacy alias for Scoria.VerificationSuites. |
| projected context | scoped context | projected_context: remains accepted as a legacy alias for scoped_context:. |
| semantic fast path | semantic cache | Scoria.SemanticLane, lane:, and lane_key remain accepted as legacy aliases for Scoria.SemanticCache.Profile, profile:, and cache_key:. |
| optional knowledge | optional knowledge base | Docs now name the optional retrieval capability as a knowledge base. |
RAG/citation evidence and evidence_refs stay unchanged. There is no database migration
for this terminology migration, and legacy aliases remain accepted during the 0.1.x
compatibility window.
0.1.2 (2026-06-19)
Features
- 13-01: add IA component primitives (eebebcb)
- 13-02: implement grouped dashboard nav (9e0703d)
- 13-03: add honest coming-soon route (af24726)
- 13-04: implement Status Home attention strip (9401b65)
- 13-05: add object-aware page headers (9229aba)
- 13-06: add dashboard command palette (6c3772b)
- 13-07: thread incident and review ingress links (3e66229)
- 13-08: thread quality loop object links (d35b92b)
- 13: add make seed/reseed + surface demo routes in dev banner (c3a21e4)
- 14-01: add Dataset Builder route and navigation (8d84f0f)
- 14-01: implement Dataset Builder index (eb4abfd)
- 14-02: convert promote component to shared surfaces (68cf829)
- 14-02: reconstruct promotion drawer from URL params (57792b0)
- 14-03: route review promotion to dataset builder (9687adf)
- 14-04: convert incident evidence to notebook adapter (959a3b3)
- 14-04: convert incidents shell to shared components (acb9904)
- 14-05: convert eval workbench edit form (6d106eb)
- 14-05: convert eval workbench result surfaces (957c382)
- 14-06: convert prompt registry to shared components (5cebb4b)
- 14-06: convert release workbench to shared components (2f655d1)
- 15-01: add shared evidence primitives (1f15b7f)
- 15-02: convert home and runs to shared surfaces (9c09764)
- 15-03: convert workflow trace inspector surfaces (8761e85)
- 15-04: convert approvals and connectors shared surfaces (288960a)
- 15-05: convert evidence adapters to shared primitives (8dc3105)
- 16-01: mobile topbar, off-canvas nav drawer markup, and MobileNav JS hook (433bfb5)
- 16-01: mobile-first shell CSS and drawer motion primitive (4ccb16b)
- 16-02: table/1 overflow viewport, opt-in mobile_summary slot, and aria-sort (7b1f5f0)
- 16-03: add named responsive grid split classes to 04-components.css (7c90246)
- 16-03: replace all 7 unsupported responsive utility callsites (dfdf557)
- 16-04: mobile summaries and domain empty-state copy for Connectors + Dataset Builder (5005595)
- 16-04: mobile summaries and domain empty-state copy for Runs + Review Queue (ff3f960)
- 16-05: focus-ring overflow-clip-margin, selected-row aria-current, and status tests (31d65be)
- 16-06: Phase 16 Playwright parity spec for MOTION-01..04 (f032ea9)
- 16-06: single-SSOT AA contrast floor guard (D-31) (238b210)
- 17-02: add contact_sheet_index.md + document generator in MAINTAINERS harness section (361e0f4)
- 17-02: add priv/dev/contact_sheet.mjs before/after contact-sheet generator (c5cc4af)
- 18-01: brand-book pressure-test Sections 1-7 with embedded contrast table (cae5b0a)
- 18-01: zero-dep WCAG 2.1 contrast checker for brand-book pairings (2b74473)
- 18-02: append Decisions Locked section with propagation verdict (030673d)
- 18-02: append Sections 8-14 to pressure-test.md (0de71a8)
- 19-01: geometry + SVG document libraries (36b0f4c)
- 19-01: wordmark + lockup modules + smoke test (f2cd057)
- 19-02b: round-2 gallery with rejection diagnosis + recommendation (8a861d7)
- 19-02b: round-2 lockup-variant toolchain on locked TV-1 mark (ca13a47)
- 19-02b: six round-2 lockup candidates (LK-A..LK-F) (e62ac68)
- 19-02: build standalone options-gallery.html for gate #2 (9baa89a)
- 19-02: generate candidate SVGs into candidates/ (bc70930)
- 19-02: hand-tuned logo presets with design-intent blocks (1dbd26c)
- 19-03: finalize ranked recommendation block in options-gallery.html (d0b28ee)
- 19-03: LOGO-01..07 + gallery-completeness verifier (verify-logos.mjs) (8f9f182)
- 20-01: converge LK-B/TV-1 into 8 root variant SVGs (ad487d7)
- 20-01: ROOT-* verifier gate + prune galleries & losing candidates (425a9e1)
- 20-02: final-strip.mjs generates standalone final-variants.html confirm strip (3af3b79)
- 21-01: add brandbook/README.md + tools/check-consistency.mjs (cfa998f)
- 21-01: author brandbook/tokens.css — :root-scoped, --scoria- prefixed, two-tier (d161748)
- 21-01: author brandbook/tokens.json — Threadline-shaped, hex-identical to tokens.css (02ecc30)
- 21-02: author palette/typography/components/terminal example SVGs (5a9ef0d)
- 21-02: author readme-header/landing-hero/docs-page example SVGs (7231498)
- 21-03: build standalone dark-first brand book (index.html) (44380e6)
- 21-03: wire brand-book.md into check-consistency (4th hex source) (55632ec)
- 22-01: dashboard TV-1 mark + favicon wiring (compile-time inline) (26244d9)
- 22-01: Hex.pm description + GitHub repo description verbatim brand copy (BRAND-08) (c13899b)
- 22-01: README brand header — picture dark/light lockup, tagline, verbatim opener (79a2c36)
- 22-02: GATE.md — dated Phase 22 final quality gate report (all 8 checks PASS) (2bdbb32)
- 22-02: quality-gate.mjs — 8-check aggregating Phase 22 final gate (1ffe559)
- 23-01: CACHE-01 — env-scoped cache keys + version-file sourcing (51c12fe)
- 23-01: CACHE-02 — build-once job + artifact restore + 3 contract assertions (5f606f1)
- 24-01: add knowledge lane contract test (D-03 coverage ratchet) (a4dd664)
- 24-01: scope knowledge lane to --only knowledge, add accessor and after_suite guard (dcbb535)
- 25-01: refactor ci_policy_contract_test.exs to parallel-shape + derived fan-in completeness; fold WR-03 (5cb9613)
- 25-01: restructure ci-verify.yml into parallel sibling jobs + verify-summary fan-in (84103dc)
- 25-01: split verification_lanes_test.exs ci lane ordering into intra-vs-cross parallel-shape asserts (f418f64)
- 26-01: shard full ExUnit suite into 4-way GHA matrix job (SHARD-01) (2106758)
- 27-01: add durable contract guards — ephemeral-port ban, no-TEMP-step, no-retry-on-test-workflows (4b884c8)
- 28-01: implement Mix.Tasks.Scoria.Ci merge-gate task + ci alias (f9826b3)
- 28-03: make ratchet warning capture compile-only + parity guard (bf15f10)
- 29-01: thread PORT 4799 through dev harness (DXCLI-01) (b4e8b3d)
- 30-01: add native startup URL line to Makefile dev: recipe (0f058b9)
- 30-01: update Docker dev banner with live route list, Traefik link, native notice (050709f)
- 31-01: add Dockerfile.dev boundary invariant comment + docs layer-invalidation table (9bb2eaa)
- 32-01: add safe 1Password secret examples (4a3a558)
- 34-02: extend post-publish port scanner (5ebaae2)
- ui: dark/light/system theme picker + pre-paint FOUC fix (269d82a)
- v2.17 brand system, dashboard IA, theme picker + dev DX (#9) (1d2c9e2)
Bug Fixes
- 13: default dev dashboard to demo tenant + seed full IA demo data (1f05019)
- 13: revise orientation spine plan copy (b576066)
- 13: revise orientation spine plans based on checker feedback (51698fe)
- 14-02: normalize promotion key links (ca48f4a)
- 14: align support gallery smoke with status home IA (0bf47c7)
- 14: cite missing plan decisions (2f704d4)
- 14: review queue back-link honors scoria_base mount path (04f3ac5)
- 14: revise plans based on checker feedback (33f82a1)
- 15-review: gate table density controls (0fc2ff7)
- 15-review: gate table sort controls (b23f530)
- 16-01: modern HEEx comment syntax (<%!-- --%>) in mobile shell (f01d8b0)
- 16: address code review — style mobile summary cards (CR-01) + dataset crash guard (WR-06) (b67087d)
- 16: regenerate committed dashboard asset bundle from phase-16 source (0ca184c)
- 17-02: IN-02 remove unused fileURLToPath import (ba62be1)
- 17-02: IN-03 update stale .gitignore rationale comment (71ca01a)
- 17-02: WR-01 HTML-escape interpolated values; IN-01 drop dead isBaseline param (e5576f2)
- 17-02: WR-02 URL-encode img src path segments (3899a44)
- 17-02: WR-03 use stat-based directory checks instead of existsSync (ae2dbbe)
- 27-01: FLAKE-01+02 — fix Postgres host port to 5432 in all 5 CI blocks, delete TEMP e2e step (5277e90)
- 27-01: harden ephemeral-port guard against quoted binds; align topology comments (fb73f8e)
- 28-03: give scoria.install_check tests 180s timeout for CI shard load (06cdc34)
- 28-03: ratchet lane needs Postgres; update CI policy contract (8501578)
- 28-03: repair parallelized CI topology for its first real run (d07093b)
- 28: revise plans based on checker feedback (a83f5be)
- 33: mark research questions resolved (0695a29)
- 33: revise plans based on checker feedback (d8dcc24)
- 34-02: fix post-publish postgres port bind (8675672)
- 34: close code review doc guard gaps (8d981f5)
- 34: pin ci e2e flake guard coverage (91ff82d)
- 34: revise plans based on checker feedback (fab3308)
- 35-01: encode previous-live registry lineage (fbb5e2d)
- 35-02: align release branch e2e gate (4099118)
- 35-02: clear release docs warning gate (532cc4c)
- 35-02: include Docker DX policy surfaces for release CI (1b74283)
- brandbook: §3 logo display bugs — mono use-viewport mapping, subtitle colorway panel, mark on both grounds (0efefb5)
- dev: use the standard DB pool in dev (off the test Sandbox) (3249c6e)
- ui: drawer/modal scrim no longer intercepts panel clicks (b77970b)
Historical main-branch notes
Added
- Self-contained, dark-first (with light theme) operator dashboard design system. The
/scoriadashboard now ships its own brand-token CSS, client bundle (LiveSocket + hooks), and self-hosted fonts (IBM Plex Sans, JetBrains Mono) — it renders fully styled and interactive with no dependency on the host app's Tailwind/asset pipeline. - Task-oriented navigation shell: persona-grouped sidebar (Operate / Improve), breadcrumb topbar, light/dark theme toggle, and a GOV.UK-style "what do you want to do?" task band on the Live Ops landing page.
- Runs index at
/scoria/workflows; the previously-unreachable Eval Workbench is now routed at/scoria/eval_specs. - Routed Operate pages extracted from the Live Ops god-page, each a focused, linkable
surface with its own nav item: Approvals (
/scoria/approvals— inbox + decision modal), Connectors (/scoria/connectors— runtime + connector fleet posture and drawers), and Incidents (/scoria/incidents— tenant SRE triage with trace-first evidence). ?tenant=view parameter on Live Ops andpriv/repo/dev_seed.exs(gallery) to populate every dashboard screen with realistic data.$ mix scoria.assets.buildto (re)generate the shipped dashboard asset bundle.- First-run empty states on the Prompt Registry (
/scoria/prompts) and Eval Workbench (/scoria/eval_specs) tables, consistent with the Runs and Incidents pages.
Changed
$ mix scoria.installno longer probes or edits the host app's Tailwind config. Because the dashboard ships self-contained assets, install is now router mount + Ecto migrations + runtime config only — there is no Tailwind install surface and no host asset work.Live Ops (
/scoria) slimmed to a task band + live trace stream plus a compact Approvals/Connectors/Incidents "at a glance" strip that links to the new routed pages; approvals, fleet posture, and the tenant incident rollup moved off the landing page.Shared
ScoriaWeb.OperatorSurfaceread model now backs Live Ops and the routed Operate pages, replacing the duplicated fleet/SRE projection reads.Status→color styling fully consolidated into
ScoriaWeb.UI(tone/1+<.badge tone=><.flash_group>); the per-componentbadge_class/status_color/trace_badge_class/ flash_kind_classhelpers are removed and a drift-guard test prevents their return.
Bump
req_llmpeer dependency to~> 1.13(locked at 1.13.0)
0.1.1 (2026-05-30)
Added
- Shared SupportJourney handlers for overlay and gallery journey smokes
- Support copilot gallery optional lane journeys: semantic FAQ, knowledge, connector
- Gallery producer-path orchestrator smoke on
/scoria docs/MAINTAINERS.mdfor CI topology and release operationsdocs/connector_adoption.mdin Hex package and docs extras- Named remote connector adoption lane (
$ mix test.connector) with SupportJourney billing fixture proof
Changed
- Support copilot gallery docs: clone-repo requirement and path vs tarball consumer distinction
- README: session keys for LiveView operator UI, deduplicated install steps, maintainer section at bottom
- Operator verification guide trimmed for adopters; maintainer content moved to
MAINTAINERS.md
0.1.0 (2026-05-28)
Features
- 02-01: implement JSON-RPC 2.0 protocol handler (abd2dd2)
- 02-01: implement MCP Plug Router (61a3a5f)
- 02-02: define Scoria.MCP.Tool behaviour (ef00d95)
- 02-02: implement Scoria.MCP.Validator (172318d)
- 02-03: implement isolated executor with telemetry (b768cb7)
- 02-03: wire the router pipeline with execution and validation (ea99aab)
- 03-01: add ScoriaWeb.Router macro and dependencies (6397c56)
- 03-02: implement CSS Grid Trace Tree component (27e3b18)
- 03-02: wire PubSub and trace rendering in LiveView (cbfe3ef)
- 03-03: implement Approval schema (16687c9)
- 03-03: implement HITL Approval Modals and Ecto Coordination (7fd7e45)
- 03-03: implement token stream coalescing (219ca51)
- 03-liveview-operator-ux-01: implement OrchestratorLive and configure tests (0d7aae7)
- 04-01: implement evaluation flywheel schemas and context (8143cc4)
- 04-02: implement ExUnit Evaluation Macro (EvalCase) (5b6c1d8)
- 04-02: implement scoria.eval mix task (fee33a3)
- 04-03: implement dataset promotion and evalspec rubrics (c213d0e)
- 04-03: implement Promotion Context Logic (06a6c69)
- 07-01: add optional sre sink seams (c4b8f23)
- 07-01: bootstrap sre public context (080647d)
- 07-02: enforce runtime and mcp budget preflight (6ba1d5f)
- 07-02: implement budget engine reservations (ae7fd63)
- 07-03: add integration-scoped breaker guards (7f9447e)
- 07-03: add sre telemetry helpers (4c22b85)
- 07-04: implement incident dedupe and severity routing (ff6bc45)
- 07-04: implement transactional audit outbox capture (b77bdc0)
- 07-05: add trace-first incident evidence notebook (7f43d68)
- 07-05: refresh trace badges from lazy SRE evidence (5918e26)
- 07-06: add durable sre budget and breaker persistence (f82b39a)
- 07-07: add durable incident and audit storage nouns (644e98d)
- 07-08: add optional first-party sink adapters (6f75ffc)
- 07-08: add supervised durable relay worker (fa3eab0)
- 09-01: lock approval audit attribution (7583cd7)
- 09-01: restore workflow-owned approval ui path (9d1b758)
- 09-02: produce durable incident delivery rows (3e6ecf1)
- 09-03: expose durable incident delivery outcomes (0a765c4)
- 10-01: emit canonical runtime telemetry from execution seams (e82e934)
- 10-01: expose canonical telemetry identity contract (6f2832c)
- 10-02: align parapet telemetry translation (125f947)
- 10-02: emit post-commit incident lifecycle telemetry (cfdba13)
- 19-01: add durable connector job and vault posture (7cfa755)
- 19-01: add normalized connector boundary schemas (c4d0fcd)
- 23-01: implement tokenizer utility (269ad3b)
- 23-02: implement prompt template schema and migration (2a1161b)
- 23-03: implement prompt registry context API with immutable updates (35da112)
- 23-04: add live route for prompt templates (dc62634)
- 23-04: implement prompt template LiveView interface with token estimation (9157155)
- 24-01: generate ai_eval_datasets migration (8d7dc7f)
- 24-01: implement Dataset schema and validation (e8b45ac)
- 24-01: implement DatasetItem schema (4bd6520)
- 24-02: implement dataset CRUD and state management in Eval context (0c2f93f)
- 24-03: implement dataset promotion component (98032d8)
- 24-03: inject promote button into trace explorer (892ccd1)
- 24-03: integrate promote modal in workflow show liveview (ac9cb7b)
- 25-01: converge eval persistence onto canonical datasets (06eb037)
- 26-01: implement release gate middleware for draft prompts (66ed7e7)
- 26-02: implement prompt release workflow and approval handling (0e548c6)
- 26-03: scaffold prompt release UI and fix DB testing concurrency (b6261a7)
- 27-01: add scoria_mcp router macro for host integration (ffdea33)
- 27-01: add session registry to application supervisor (4f8d918)
- 27-01: implement MCP SSE controller and message ingestion (da1134a)
- 29-01: create Scoria.Runtime.Instance schema and migration (5373da6)
- 29-01: implement context functions for runtime registration (a0f73f6)
- 29-02: setup Phoenix Presence for runtime observability (8c2ba9a)
- 29-02: track MCP connections via Phoenix Presence (77780e1)
- 29-03: implement runtime posture rail and detail drawer (a446406)
- 29-04: add memory notebook component for compaction audit (f9b0bc1)
- 29-04: integrate memory notebook into workflow show with reciprocal link (d28e6c4)
- 30-01: configure baseline and dynamic oban queues (8bbcf94)
- 30-02: implement BatchEnqueue chunking (46972cf)
- 31-01: implement Circuit Breaker Sweep Manager (eba002b)
- 31-01: implement ETS Circuit Breaker State API (fea7208)
- 31-02: implement CircuitBreaker request step (ebb42bd)
- 31-02: implement Resiliency response and error steps (e63b2f9)
- 31-02: implement Steps wrapper for Req pipelines (33e796b)
- 31-03: inject req_options into application workers (7131567)
- 32-01: Add default configuration for model fallback chains (b97f7f2)
- 32-01: Implement Scoria.Orchestrator with recursive fallback and telemetry (bf95885)
- 32: integrate multi-model fallback orchestration and stabilize tests (384536c)
- 33-01: add eval campaign persistence foundation (71f3e2e)
- 33-02: implement eval campaign fan-out coordinator (a9eb4a9)
- 33-03: execute eval campaign targets through orchestrator (9e68f36)
- 38-01: add replay disposition resolver contract (819c0e3)
- 38-01: add replay run intent and approval authority fields (e2e8e29)
- 38-01: persist replay evidence on checkpoints events and audit rows (591ee5a)
- 38-02: gate replay execution at connector and mcp seams (2f8d805)
- 38-02: rework replay-scoped approval transitions (e242c05)
- 38-03: expose replay-safe approval projection reads (32f12f3)
- 38-03: project replay posture through runtime dto reads (a6e1aa4)
- 39-01: build replay comparison runtime DTOs (406e3e5)
- 39-02: add replay evidence notebook (92f57f3)
- 39-02: add replay workflow page state (20b289f)
- 39-03: freeze workflow-source dataset promotion (3d67cb3)
- 39-03: route sealed dataset promotion through approvals (5579017)
- 39-05: fix replay promotion runtime contract (f35884a)
- 39-05: persist replay promotion metadata end to end (23cfc0f)
- 40-01: add online scoring storage substrate (4be7a70)
- 41-01: lock bounded handoff contract and lineage (62049f5)
- 48-01: harden installer mutation reporting (a754c66)
- 72: Hex publish enablement and shift-left release automation (197c929)
- observability: create Ecto schemas and migrations for traces, spans, and span events (5cb78a4)
- observability: implement async gen server buffer for spans (e703a39)
- observability: implement telemetry handlers and adapters (58bb928)
- observability: implement telemetry redaction engine (800c2e1)
- v1.9: ship crucible operator loop (252bbfc)
- v2.2: finish OSS adopter onramp (3d30442)
Bug Fixes
- 26-03: wire real approval logic and verification to prompt release (ccb3e15)
- 31-01: resolve compilation warnings and test suite concurrency flakiness (39f0b68)
- 38: preserve replay-live approval provenance (245888e)
- 39: revise plans based on checker feedback .planning/phases/39-replay-operator-ux-draft-dataset-promotion/39-03-PLAN.md .planning/phases/39-replay-operator-ux-draft-dataset-promotion/39-04-PLAN.md .planning/phases/39-replay-operator-ux-draft-dataset-promotion/39-05-PLAN.md .planning/phases/39-replay-operator-ux-draft-dataset-promotion/39-VALIDATION.md .planning/ROADMAP.md (51bdba2)
- 41-02: harden projected context validation (1d3d4e8)
- 45: revise plans based on checker feedback .planning/phases/45-compatibility-and-invalidation-engine/45-00-PLAN.md .planning/phases/45-compatibility-and-invalidation-engine/45-01-PLAN.md .planning/phases/45-compatibility-and-invalidation-engine/45-02-PLAN.md .planning/phases/45-compatibility-and-invalidation-engine/45-03-PLAN.md .planning/phases/45-compatibility-and-invalidation-engine/45-RESEARCH.md .planning/phases/45-compatibility-and-invalidation-engine/45-VALIDATION.md .planning/ROADMAP.md (290d9d0)
- 50-01: lock release preview command contract (be552b0)
- 50-01: run release preview lane in dev env (5c24c78)
- 72: allow Release PR manifest 0.1.0 in ci policy contract (e1e697c)
- bootstrap pgvector in knowledge lane (f94c98a)
- eval: fix update_eval_spec merging keys (4d547eb)
- phase-10: stabilize bootstrap verification lanes (a0a31e7)
- phase-39: close post-review replay promotion gaps (118b9f5)
- ui: add assign_async for trace metadata lazy loading (52f0d6f)
Historical main-branch notes before 0.1.0
[0.1.0]
First public Hex packaging of Scoria's in-repo capability through the v2.6 warning-ratchet closeout. Integrators get a Phoenix-native runtime with durable runs, bounded escalation, optional semantic reuse, and executable adoption lanes — without adopting internal planning milestone names as product releases.
Added
- Default runtime — identity-aware durable runs, approvals, and operator evidence via
Scoria.start_run/2,Scoria.resume_run/2, and/scoriainspection surfaces; prove with$ mix scoria.test.adoption. - Bounded handoff — narrow same-run delegation with projected context and visible lineage
through
Scoria.start_handoff_run/3; prove with$ mix scoria.test.runtime_to_handoff. - Semantic fast path — tenant-scoped reuse for explicitly safe read-only lanes via
Scoria.SemanticLane; prove with$ mix scoria.test.semantic_fast_path. - Optional knowledge — pgvector-backed retrieval when chosen; prove with
$ mix scoria.test.knowledge. - Upgrade-safe install — planner/check/apply paths via
$ mix scoria.install --dry-run,$ mix scoria.install --check, and$ mix scoria.install. - Maintainer CI trust — warning baseline and ratchet enforcement, policy→test topology
guarded by contract tests, and local parity via
$ mix scoria.test.ci_trust(maintainer-only; not an adopter integration requirement).
Roadmap traceability
| Planning tranche | Shipped | Reference |
|---|---|---|
| v2.1 | 2026-05-25 | .planning/MILESTONES.md#v21-tenant-scoped-semantic-fast-path |
| v2.3 | 2026-05-27 | .planning/MILESTONES.md#v23-runtime-to-handoff-adoption-example |
| v2.4 | 2026-05-27 | .planning/MILESTONES.md#v24-adoption-reliability-contract |
| v2.5 | 2026-05-27 | .planning/MILESTONES.md#v25-installer-safety--upgrade-confidence |
| v2.6 | 2026-05-28 | .planning/MILESTONES.md#v26-warning-ratchet |