@@ -4,6 +4,8 @@ All notable changes to AgentFlow are documented in this file.
44
55## [ Unreleased]
66
7+ ## [ 2.0.0] - 2026-07-06
8+
79### Fixed — single-container demo deploys pin the DuckDB serving backend (G2 S7, 2026-07-06)
810
911- ** ` SERVING_BACKEND=duckdb ` is now pinned** in ` deploy/hf-space/Dockerfile `
@@ -15,6 +17,26 @@ All notable changes to AgentFlow are documented in this file.
1517 Caught live on the first three-node HF Space bring-up; the standalone demo
1618 Space never showed it only because it still ran a pre-cutover image.
1719
20+ ### Added — Three-node demo topology: center hub + two edge branches, live on HF Spaces (ADR 0012 — F1/F2 2026-07-04, deployed G2 S7 2026-07-06)
21+
22+ - ** Node roles land in the serving API** (` AGENTFLOW_NODE_ROLE ` = ` center ` |
23+ ` edge ` ; standalone stays byte-identical without it). The center mounts
24+ ` POST /v1/node/events ` — bearer-token ingest, distinct from the public
25+ ` demo-key ` and hidden from the public OpenAPI catalog, applying each pushed
26+ event through the existing ` _process_event ` path — and
27+ ` GET /v1/node/branches ` , the cross-branch summary (seeded baseline, live
28+ delta, last-seen per branch, ` waking ` for silent ones). Edges run a
29+ background emitter that applies each generated event locally and forwards
30+ the same canonical dict to the hub; a cold hub is tolerated (bounded
31+ retries, then drop). The N1–N12 node invariants are pinned as
32+ unit/integration tests.
33+ - ** Deployed as three Docker Spaces** under the ` liovina ` account
34+ (` agentflow-center ` , ` agentflow-edge-spb ` , ` agentflow-edge-ekb ` ) from
35+ ` deploy/hf-space/three-node/ ` — one shared image built from public ` main ` ,
36+ role set purely by Space environment. Center + edge-spb live-verified
37+ end-to-end via the §12 checklist: auth ladder (401/403), ` applied:1 `
38+ token ingest, idempotent re-POST, cross-branch delta movement.
39+
1840### Changed — spec/seed number consistency: daily rate, GTIN check digits, band centering, FX honesty (G2 S3, 2026-07-06)
1941
2042- ** Seed daily rate now matches §1 (audit m5).** ` satellite_seed*.sql ` order
@@ -45,6 +67,35 @@ All notable changes to AgentFlow are documented in this file.
4567 ` reference/legend.py ` solely as the fixed basis for doc/evidence-level
4668 conversions.
4769
70+ ### Changed — demo narration and evidence re-captured live on the kitchen legend (G2 S5/S6/S8, 2026-07-05/06)
71+
72+ - ** Narration texts rewritten off the fashion-retailer legend**
73+ (` demo_voiced.narration.txt ` , ` demo_transcript.txt ` ) onto the importer's
74+ real pains — cross-channel oversell, container ETA, five-program triage
75+ (` domain.md ` §4); the voiced demo mp4 re-recorded live on the current
76+ legend (the webui capture was already legend-clean).
77+ - ** DV2 evidence re-captured on a live kind stand** (§1–3, §9, §10,
78+ §12–§15), catching and fixing two real bugs in the process:
79+ ` cdc_setup.sql ` now grants ` CREATE ` on the source DB to ` rep_user ` , and
80+ the MinIO ` mc ` -alias setup was repaired. The load-test baseline was
81+ re-captured at seed scale with an explicit host-contention caveat; the
82+ live 2-pod ClickHouse cutover stage is documented as blocked by stand
83+ contention, with the re-run recipe pinned
84+ (` docs/clickhouse-cutover-plan.md ` Phase 3, ADR 0010).
85+ - ** Delta re-audit followups (S8)** : stale factual claims corrected (probe
86+ counts, node-label narration, done-status notes), residual USD tails
87+ re-pinned to ₽, the retired dataset's name dropped from provenance
88+ comments.
89+
90+ ### Changed — hardening: bounded journal scans and a node-token guard (G2 S4, 2026-07-06)
91+
92+ - ** Journal scans are bounded and deterministic** : the newest-first scans in
93+ ` ops.py ` / ` reconciliation.py ` carry an explicit ` LIMIT ` and tiebreak
94+ equal timestamps on ` event_id ` ; ` fetch_pipeline_events(None) ` scoping
95+ tightened.
96+ - ** ` AGENTFLOW_NODE_TOKEN ` may not equal the public demo key** — enforced by
97+ a boot-time guard rather than convention.
98+
4899### Removed — X5 Retail Hero loader deleted; at-scale benchmark retired as historical (G2 S2b, 2026-07-05)
49100
50101- ** Deleted ` warehouse/agentflow/dv2/loaders/x5_retail_hero/ ` ** in full
@@ -96,6 +147,46 @@ All notable changes to AgentFlow are documented in this file.
96147 retired at-scale row-count strings ("45.8M", "8.06M", "402K") survive
97148 outside this file and git history.
98149
150+ ### Changed — residual USD/generic-catalog text swept to the kitchen/₽ legend (G2 S1, 2026-07-05)
151+
152+ - Entity contracts (` product ` , ` user ` ) price text moved to ₽ (the stable
153+ contract's ` Currency ` enum keeps ` [RUB, USD, EUR, GBP] ` with RUB default —
154+ no version bump); the agent-demo notebook, EUR/GBP test fixtures,
155+ ` docker/postgres-source/init.sql ` , the NL-SQL eval warehouse, and the
156+ benchmark/load-test catalogs re-pinned to the kitchen catalog per
157+ generator-spec §3/§9.
158+
159+ ### Changed — demo legend re-pinned: own-brand kitchen-appliance importer in ₽ (A1/A2 + B1–B4 + C1 2026-07-03, G2 B1 2026-07-05)
160+
161+ - ** ` domain.md ` becomes the business-legend source of truth** — an own-brand
162+ kitchen-appliance importer selling through five sales programs — with the
163+ unit-economics and data-generation specs pinned alongside (A1/A2).
164+ - ** Generator + seeds rebuilt on the legend** (B1), ` record_source ` examples
165+ renamed off the retired brand (B2), the serving demo store re-pinned (B3),
166+ ` demo_evidence.md ` regenerated with a fresh ` verify_live ` (B4), DV2 docs
167+ swept of the clothing/footwear storyline (C1), and the live generator +
168+ currency defaults moved to kitchen/₽ (G2 B1 fix-batch).
169+
170+ ### Added — bv_order_canonical PostgreSQL smoke: seed + verify (G1, 2026-07-04)
171+
172+ - ` verify_bv_order.sh ` seeds a canonical order into the PG raw vault and
173+ verifies the business-vault projection end-to-end; transcript captured
174+ live on the kind stand (17/17 checks, G2 S6, ` docs/perf/ ` ).
175+
176+ ### Added — operational read surfaces: Order 360, stuck-orders worklist, exception inbox (D2/D3/D4, 2026-07-04)
177+
178+ - ** Order 360 timeline** endpoint + stage-entry journal (D2), the
179+ ** stuck-orders worklist** with its SLA-stage contract block (D3), and the
180+ ** exception inbox** — a dead-letter/webhook overlay with R1/R2
181+ reconciliation (D4): the three ops surfaces ADR 0011 splits out of the
182+ agent-facing catalog.
183+
184+ ### Added — Helm PostgreSQL control-plane profile; shared TenantRouter (ADR 0010 slice 6 / E4 + E3, 2026-07-04)
185+
186+ - The chart renders the scale profile (external PostgreSQL control plane)
187+ behind the render-time scaling gate (E4); tenant routing extracted into a
188+ shared ` TenantRouter ` module and the warehouse gitignore split (E3).
189+
99190### Added — Operational serving split decided; ops-surfaces spec (ADR 0011, 2026-07-03)
100191
101192- ** New [ ADR 0011] ( docs/decisions/0011-ops-serving-split.md ) ** — the design
0 commit comments