Skip to content

Commit a47d000

Browse files
brownjuly2003-codeJuliaEdomclaude
authored
chore(release): cut v2.0.0 (#166)
Bumps agentflow-runtime, agentflow-client, and @yuliaedomskikh/agentflow-client to 2.0.0. Major release — headline: the demo universe is re-founded and the scale path ships. The business legend is re-pinned end-to-end to an own-brand kitchen-appliance importer in RUB (A1-C1 + G2 fix-batch; breaking for anything that consumed the retired fashion-retail/USD surfaces), the X5 Retail Hero dataset is removed entirely (breaking: loader package deleted, at-scale benchmark retired as historical), the control plane externalizes to PostgreSQL behind the ControlPlaneStore port (ADR 0010 slices 1-6 incl. the Helm scale profile), three operational read surfaces split out of the agent catalog (ADR 0011: Order 360, stuck-orders, exception inbox), and the three-node demo topology (ADR 0012) is implemented and deployed live on HF Spaces. Also bundles the G2 audit closure: spec/seed number consistency, journal-scan hardening, live evidence re-captures, and the single-container demo serving-backend pin. CHANGELOG [2.0.0] rolls up the full arc (closes audit m12). Full detail in CHANGELOG.md [2.0.0]. Co-authored-by: JuliaEdom <uedomskikh@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
1 parent 6146f16 commit a47d000

10 files changed

Lines changed: 102 additions & 11 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

‎helm/agentflow/Chart.yaml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ name: agentflow
33
description: Helm chart for deploying the AgentFlow API on Kubernetes
44
type: application
55
version: 0.1.0
6-
appVersion: "1.6.0"
6+
appVersion: "2.0.0"

‎helm/agentflow/values.yaml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ replicaCount: 1
55

66
image:
77
repository: agentflow/api
8-
tag: "1.6.0"
8+
tag: "2.0.0"
99
pullPolicy: IfNotPresent
1010

1111
imagePullSecrets: []

‎pyproject.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "agentflow-runtime"
3-
version = "1.6.0"
3+
version = "2.0.0"
44
description = "Real-time data platform serving context to AI agents"
55
readme = "README.md"
66
requires-python = ">=3.11"

‎sdk-ts/package-lock.json‎

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎sdk-ts/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@yuliaedomskikh/agentflow-client",
3-
"version": "1.6.0",
3+
"version": "2.0.0",
44
"description": "TypeScript SDK for the AgentFlow API",
55
"type": "module",
66
"main": "./dist/index.js",

‎sdk/agentflow/__init__.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from agentflow.client import AgentFlowClient
44
from agentflow.exceptions import PermissionDeniedError
55

6-
__version__ = "1.6.0"
6+
__version__ = "2.0.0"
77

88
__all__ = [
99
"AgentFlowClient",

‎sdk/pyproject.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "agentflow-client"
3-
version = "1.6.0"
3+
version = "2.0.0"
44
description = "Python SDK for the AgentFlow API"
55
readme = "README.md"
66
requires-python = ">=3.11"

‎tests/unit/test_sdk_backwards_compat.py‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121

2222
def test_version_is_exposed_from_package():
23-
assert __version__ == "1.6.0"
23+
assert __version__ == "2.0.0"
2424
assert re.fullmatch(r"\d+\.\d+\.\d+(?:rc\d+)?", __version__)
2525

2626

@@ -193,7 +193,7 @@ def old_method() -> str:
193193
def test_sdk_pyproject_version_matches_release():
194194
pyproject = tomllib.loads((SDK_ROOT / "pyproject.toml").read_text(encoding="utf-8"))
195195

196-
assert pyproject["project"]["version"] == "1.6.0"
196+
assert pyproject["project"]["version"] == "2.0.0"
197197

198198

199199
def test_changelog_documents_semver_and_deprecation_policy():

‎tests/unit/test_version.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44

55

66
def test_distribution_version_matches_sdk_version() -> None:
7-
assert version("agentflow-client") == __version__ == "1.6.0"
7+
assert version("agentflow-client") == __version__ == "2.0.0"

0 commit comments

Comments
 (0)