Skip to content

Commit 674fe64

Browse files
JuliaEdomclaude
andcommitted
docs: v2.0.0 release status sync
README badge/highlights/Status arc to the v2.0.0 line (closes the m12 "tagged line vs main" claim on the current tag); RELEASE_STATUS.md registry table, GH-Releases note, re-verify snippets and "how the release fired" updated from live registry verification (PyPI/npm uploads 2026-07-06T16:23Z, tag a47d000). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent a47d000 commit 674fe64

2 files changed

Lines changed: 58 additions & 33 deletions

File tree

‎README.md‎

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
> Event-native metrics layer: business metrics that move when events happen — measured **1.1 s p50** event-to-metric freshness on production defaults. Live entity lookups, typed contracts, dual-language SDKs, and release-gated delivery for people, dashboards, services, and AI agents alike.
44
5-
[![Release gate](https://img.shields.io/badge/release_gate-v1.6_published-brightgreen)](docs/dv2-multi-branch/RELEASE_STATUS.md)
5+
[![Release gate](https://img.shields.io/badge/release_gate-v2.0_published-brightgreen)](docs/dv2-multi-branch/RELEASE_STATUS.md)
66
[![codecov](https://codecov.io/gh/brownjuly2003-code/agentflow/branch/main/graph/badge.svg)](https://codecov.io/gh/brownjuly2003-code/agentflow)
77
[![Python](https://img.shields.io/badge/python-3.11+-blue)](pyproject.toml)
88
[![License](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
@@ -24,7 +24,7 @@ Consumers are whoever needs the number now: humans, dashboards, downstream servi
2424

2525
- **Measured event-to-metric freshness** — an event entering the pipeline is reflected in `GET /v1/metrics/*` in **1.06 s p50 / 1.99 s p95** on production defaults (event-driven cache invalidation, no webhook registration), tunable to **238 ms p50**; a plain TTL cache on the same pipeline sits at ~15 s. Reproducible via `python scripts/benchmark_freshness.py` → [freshness benchmark](docs/freshness-benchmark.md)
2626
- **Lineage as a contract** — all six metrics declare their source events, serving table, and a 2.5 s p95 staleness budget in versioned contracts, exposed through `/v1/catalog` and `/v1/contracts` and pinned by tests against the actual write path
27-
- **Published release line through `v1.6.0`** on PyPI (`agentflow-runtime`, `agentflow-client`) and npm (`@yuliaedomskikh/agentflow-client`) via OIDC Trusted Publishers with SLSA provenance on every artifact
27+
- **Published release line through `v2.0.0`** on PyPI (`agentflow-runtime`, `agentflow-client`) and npm (`@yuliaedomskikh/agentflow-client`) via OIDC Trusted Publishers with SLSA provenance on every artifact
2828
- **Tested and gated** — 1,500+ unit tests plus a broad Windows no-Docker suite; CI enforces 13 required status checks (lint, schema, unit, integration, helm, perf, terraform, bandit, safety, npm-audit, trivy, contract, build-smoke) through branch protection
2929
- **Dual SDK parity** across Python and TypeScript — retries, circuit breakers, batching, pagination, contract pinning, idempotency keys, `as_of` historical reads — over sub-second entity lookups (p50 `38–55 ms`, p99 `167 ms` on local hardware)
3030
- **Security in the hot path** — tenant isolation on every read surface, parameterized queries, `sqlglot` AST validation for NL-to-SQL, fail-closed auth, secret scrubbing, and a Bandit gate for new findings
@@ -148,12 +148,12 @@ python scripts/bandit_diff.py .bandit-baseline.json .tmp/bandit-current.json
148148

149149
## Status
150150

151-
**`v1.6.0` is the current release line** — PyPI `agentflow-runtime` /
151+
**`v2.0.0` is the current release line** — PyPI `agentflow-runtime` /
152152
`agentflow-client` and npm `@yuliaedomskikh/agentflow-client`, all
153153
published via OIDC Trusted Publishers with SLSA provenance attestations.
154154
CI on `main` is green across all 13 required checks.
155155

156-
The `v1.1.0` → `v1.6.0` arc landed in six increments on top of a security
156+
The `v1.1.0` → `v2.0.0` arc landed in seven increments on top of a security
157157
audit-closure sprint:
158158

159159
- **`v1.1.0`** — audit closure: tenant isolation across every read
@@ -187,8 +187,20 @@ audit-closure sprint:
187187
generation engine (LangGraph, routed through GraceKelly), the DV2 raw
188188
vault on PostgreSQL with `LISTEN`/`NOTIFY` freshness, the MinIO-backed
189189
PyIceberg catalog, and the OpenSSF Scorecard channel (5.8 → 7.0).
190-
191-
The tagged line and `main` are in sync as of `v1.6.0`. See the
190+
- **`v2.0.0`** — the demo universe re-founded and the scale path shipped:
191+
the business legend re-pinned end-to-end to an own-brand
192+
kitchen-appliance importer in ₽ (breaking for the retired
193+
fashion-retail/USD surfaces), the external real-retailer dataset removed
194+
outright (breaking: loader deleted, its at-scale benchmark retired as
195+
historical), the control plane externalized to PostgreSQL behind the
196+
`ControlPlaneStore` port (ADR 0010, six slices incl. the Helm scale
197+
profile), three operational read surfaces split out of the agent catalog
198+
(ADR 0011: Order 360, stuck-orders worklist, exception inbox), and the
199+
three-node demo topology (ADR 0012) implemented and deployed live on
200+
Hugging Face Spaces — plus the G2 audit closure (spec/seed consistency,
201+
journal-scan hardening, live evidence re-captures).
202+
203+
The tagged line and `main` are in sync as of `v2.0.0`. See the
192204
[changelog](CHANGELOG.md) for full detail.
193205

194206
### Scope

‎docs/dv2-multi-branch/RELEASE_STATUS.md‎

Lines changed: 40 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,35 @@
1-
# Release status — v1.6.0 PUBLISHED
1+
# Release status — v2.0.0 PUBLISHED
22

3-
**Status (verified 2026-07-02 via live registry queries):** v1.1.0
4-
through v1.6.0 are all published on the three registries (PyPI
3+
**Status (verified 2026-07-06 via live registry queries):** v1.1.0
4+
through v2.0.0 are all published on the three registries (PyPI
55
`agentflow-runtime` + `agentflow-client`, npm
6-
`@yuliaedomskikh/agentflow-client`). v1.6.0 is the architecture-fixing
7-
release: ClickHouse becomes the shipped serving engine (ADR 0006
8-
Phase 1 — pipeline sink, `ReplacingMergeTree` row versions,
9-
backend-routed event scan, dedicated CI E2E lane), PII protection moves
10-
from the removed app-level string-parse gate to engine-enforced vault
11-
governance (ADR 0006 Phase 2 — fail-closed column grants,
12-
per-jurisdiction officer roles, row policies, `SQL SECURITY DEFINER`
13-
views; every live adversarial probe green), plus the vendored NL→SQL
14-
generation engine routed through GraceKelly (ADR 0008), the DV2 raw
15-
vault PostgreSQL migration with `LISTEN`/`NOTIFY` freshness, the
16-
MinIO-backed PyIceberg catalog, ADR 0009, and the OpenSSF Scorecard
17-
channel (published score 5.8 → 7.0).
18-
19-
v1.5.0 is a security & correctness hardening release: argon2id key
20-
hashing with an O(1) peppered lookup index, an NL→SQL guard bypass fix
21-
(typed `read_csv` / `read_parquet` scan functions denied in projection
22-
position), `sqlglot` control-byte and mutation-target repairs, and a
23-
strict-`mypy` expansion. No public API changes from v1.4.0.
6+
`@yuliaedomskikh/agentflow-client`). v2.0.0 is the major release that
7+
re-founds the demo universe and ships the scale path: the business
8+
legend re-pinned end-to-end to an own-brand kitchen-appliance importer
9+
in ₽ (breaking for the retired fashion-retail/USD surfaces), the
10+
external real-retailer dataset removed outright (breaking: loader
11+
deleted, its at-scale benchmark retired as historical), the control
12+
plane externalized to PostgreSQL behind the `ControlPlaneStore` port
13+
(ADR 0010, slices 1–6 incl. the Helm scale profile), three operational
14+
read surfaces split out of the agent catalog (ADR 0011), the three-node
15+
demo topology implemented and deployed live on HF Spaces (ADR 0012),
16+
and the G2 audit closure (spec/seed consistency, journal-scan
17+
hardening, live evidence re-captures, demo serving-backend pin).
18+
19+
v1.6.0 was the architecture-fixing release: ClickHouse became the
20+
shipped serving engine (ADR 0006 Phase 1), PII protection moved to
21+
engine-enforced vault governance (ADR 0006 Phase 2), plus the vendored
22+
NL→SQL generation engine (ADR 0008), the DV2 raw vault PostgreSQL
23+
migration, the MinIO-backed PyIceberg catalog, and the OpenSSF
24+
Scorecard channel (5.8 → 7.0).
2425

2526
## Live registry state
2627

2728
| Registry | Package | Version | Upload time (UTC) | Tag commit |
2829
|----------|---------|---------|-------------------|------------|
30+
| PyPI | [`agentflow-runtime`](https://pypi.org/project/agentflow-runtime/2.0.0/) | 2.0.0 | 2026-07-06 16:23 | `a47d000` |
31+
| PyPI | [`agentflow-client`](https://pypi.org/project/agentflow-client/2.0.0/) | 2.0.0 | 2026-07-06 16:23 | `a47d000` |
32+
| npm | [`@yuliaedomskikh/agentflow-client`](https://www.npmjs.com/package/@yuliaedomskikh/agentflow-client/v/2.0.0) | 2.0.0 | 2026-07-06 16:23 | `a47d000` |
2933
| PyPI | [`agentflow-runtime`](https://pypi.org/project/agentflow-runtime/1.6.0/) | 1.6.0 | 2026-07-02 00:55 | `734132a` |
3034
| PyPI | [`agentflow-client`](https://pypi.org/project/agentflow-client/1.6.0/) | 1.6.0 | 2026-07-02 00:55 | `734132a` |
3135
| npm | [`@yuliaedomskikh/agentflow-client`](https://www.npmjs.com/package/@yuliaedomskikh/agentflow-client/v/1.6.0) | 1.6.0 | 2026-07-02 00:55 | `734132a` |
@@ -55,21 +59,22 @@ the package registries. Backfills are metadata only — no re-publish: the
5559
PyPI/npm artifacts and Trusted Publishing runs predate those Release objects
5660
and remain the package source of truth (the publish workflows trigger on tag
5761
push, not on `release`). GitHub Releases and the PyPI/npm registries are now
58-
consistent through `v1.6.0`, with `v1.6.0` marked Latest.
62+
consistent through `v2.0.0`, with `v2.0.0` marked Latest (created 2026-07-06
63+
alongside the tag; no backfills were needed this cycle).
5964

6065
## Re-verify
6166

6267
```bash
6368
# PyPI metadata
64-
curl -sf "https://pypi.org/pypi/agentflow-runtime/1.6.0/json" -o /dev/null && echo OK
65-
curl -sf "https://pypi.org/pypi/agentflow-client/1.6.0/json" -o /dev/null && echo OK
69+
curl -sf "https://pypi.org/pypi/agentflow-runtime/2.0.0/json" -o /dev/null && echo OK
70+
curl -sf "https://pypi.org/pypi/agentflow-client/2.0.0/json" -o /dev/null && echo OK
6671

6772
# npm metadata
68-
npm view "@yuliaedomskikh/agentflow-client@1.6.0" version dist.tarball
73+
npm view "@yuliaedomskikh/agentflow-client@2.0.0" version dist.tarball
6974

7075
# Install smoke
7176
python -m venv /tmp/.afcheck && . /tmp/.afcheck/bin/activate
72-
pip install agentflow-runtime==1.6.0 agentflow-client==1.6.0
77+
pip install agentflow-runtime==2.0.0 agentflow-client==2.0.0
7378
python -c "from importlib.metadata import version; print(version('agentflow-runtime'), version('agentflow-client'))"
7479
```
7580

@@ -149,7 +154,14 @@ shows the changes. The high-level shape:
149154

150155
## How the release fired
151156

152-
Tag `v1.6.0` on commit `734132a` triggered both
157+
Tag `v2.0.0` on commit `a47d000` (PR #166, the exact 10-file v1.6.0 cut
158+
pattern) triggered both publish workflows on 2026-07-06; both runs
159+
completed `success` and the packages were visible in the registries at
160+
2026-07-06T16:23Z (verified live). The `test_version` gotcha applied as
161+
documented: `pip install -e ./sdk` re-run before the local gate (full
162+
unit suite, 1670 passed).
163+
164+
Previous cycle: tag `v1.6.0` on commit `734132a` triggered both
153165
[`publish-pypi.yml`](../../.github/workflows/publish-pypi.yml) (OIDC
154166
Trusted Publishing, no token) and
155167
[`publish-npm.yml`](../../.github/workflows/publish-npm.yml) (npm
@@ -173,6 +185,7 @@ same one.
173185
| v1.4.0 | `e58693b` | published |
174186
| v1.5.0 | `c99d094` | published |
175187
| v1.6.0 | `734132a` | published |
188+
| v2.0.0 | `a47d000` | published |
176189

177190
The next release should follow the same recipe:
178191
bump 5 files (root `pyproject.toml`, `sdk/pyproject.toml`,

0 commit comments

Comments
 (0)