From 7b80ffff4e3fb1c92fee9737a615d4f8eb36a23b Mon Sep 17 00:00:00 2001 From: smaramwbc <145447586+smaramwbc@users.noreply.github.com> Date: Mon, 13 Jul 2026 22:21:55 +0100 Subject: [PATCH] docs(v1.4): fix product-status pattern + bump status surfaces for v1.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - _targets.py: docs_product_status pattern add " line " between "release" and "(vX.Y.Z)" so the current "release line" wording matches - product.md: status line 1.3.0 → 1.4.0 - README.md: current-status feature blurb rewritten for v1.4.0 (tenant scoping, admin ops surface, bootstrap resilience, SDK parity note) Unblocks the smaramwbc/statewave v1.4.0 tag push — the release workflow's verify-workspace-versions gate currently fails on the stale product.md pattern (unrelated to v1.4 itself, but the fix has to land docs-side). --- README.md | 2 +- product.md | 2 +- tools/_targets.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b1b5df0..56a427b 100644 --- a/README.md +++ b/README.md @@ -88,4 +88,4 @@ GitHub Discussions live on the core repo: **[statewave/discussions](https://gith ## Current status -**v1.3.0** — hybrid retrieval (pgvector + Postgres BM25, on by default with a `hybrid=false` opt-out) and compile-pipeline recall improvements (dedup/reconcile), plus provider-aware LLM key routing. The `/v1/*` API contract and governance surfaces (HMAC-signed [receipts](receipts.md), receipt-driven replay, per-memory [sensitivity labels](sensitivity-labels.md) + declarative YAML policy, opt-in detector-suggested labels, per-region data residency) remain stable, as do the v1.2 additions (dynamic settings endpoint for topology-agnostic hot-reload, a production-readiness probe, SSRF + DNS-rebinding protection on the webhook URL probe, LIKE metachar escaping in admin search, and six admin inspection endpoints). Both SDKs ship alongside: `statewave` (PyPI) v1.2.0 adds per-call timeout overrides and `CancelledError` propagation; `@statewavedev/sdk` (npm) v1.2.0 adds `AbortSignal` support on all HTTP methods. See [roadmap](roadmap.md) and [CHANGELOG](CHANGELOG.md). +**v1.4.0** — tenant-scoped memory provenance and `/v1/context` source-episode lookups (closes cross-tenant leakage the single-tenant repository helpers previously left open on shared infra), plus tenant-keyed admin bulk delete with explicit `tenant_id IS NULL` handling for global rows. Admin operational surface expands: `POST /admin/jobs/reset-stuck` recovers orphaned running compile jobs, `DELETE /admin/jobs/{id}` closes the immortal-terminal-job gap, and empty-subject stats return 200 instead of 404 so zero-data dashboards don't break. Support-docs bootstrap now runs an async compile with build-then-swap gated on the compile job's `memories_created` — a failed rebuild no longer empties the live pack. Non-breaking: `search_mode` opt-in on `/v1/memories/search`, `subject.deleted` webhook guarded against no-op fires, extended purge-event coverage. The `/v1/*` contract and the v1.3 hybrid-retrieval stack remain stable. Both SDKs ship v1.4.0 alongside as a parity release with no runtime changes since v1.2.0 (CI/docs hygiene only). See [roadmap](roadmap.md) and [CHANGELOG](CHANGELOG.md). diff --git a/product.md b/product.md index 6372df2..74499b5 100644 --- a/product.md +++ b/product.md @@ -45,7 +45,7 @@ Everything is organised around **subjects** — a user, account, workspace, repo ## Current limitations -Statewave is on its first stable public developer release line (v1.3.0). We document these honestly: +Statewave is on its first stable public developer release line (v1.4.0). We document these honestly: | Limitation | Impact | Status | |-----------|--------|--------| diff --git a/tools/_targets.py b/tools/_targets.py index 6065d0b..41900e3 100644 --- a/tools/_targets.py +++ b/tools/_targets.py @@ -144,7 +144,7 @@ ( "docs_product_status", "statewave-docs/product.md", - r'first stable public developer release \(v(\d+\.\d+\.\d+)\)', + r'first stable public developer release line \(v(\d+\.\d+\.\d+)\)', None, "independent", ),