diff --git a/TRACKER.md b/TRACKER.md index 27800c3..e6e97a5 100644 --- a/TRACKER.md +++ b/TRACKER.md @@ -14,12 +14,13 @@ | | | |---|---| | **Last updated** | 2026-06-10 | -| **Current phase** | Phase 7 — Pilot, Harden, GA (**9 / 10 steps**) — Phases 0–6 ✅ complete | -| **Overall** | **83 / 84 steps** — Phases 0–6 complete | -| **Next action** | **Step 7.10 — GA cutover** (the final step): version bump to v1.0.0; CHANGELOG / release notes; GA readiness checklist (all Phase 7 exit gates); final security-review + eval sign-off; cut the tag/release. | +| **Current phase** | Phase 7 — Pilot, Harden, GA (**10 / 10 steps ✅**) — **all phases complete** | +| **Overall** | **84 / 84 steps ✅ — v1.0.0 GA** | +| **Next action** | **🎉 GA reached.** Engineering scope (Phases 0–7) complete; `v1.0.0` cut. Remaining items are external/process (external pentest, SOC 2 audit, registry first-publish, signed referenceable customers, on-call staffing + status page, launch assets) — tracked in the [GA readiness checklist](docs/ga/ga-readiness-checklist.md). Post-GA: the V1.1 backlog. | **Recently shipped** +- **7.10** ✅ **GA cutover — v1.0.0** 🎉 — the close of an 8-phase, 84-step build. Cut **`v1.0.0`** with **Semantic Versioning** over the drift-gated public contracts (REST/OpenAPI · gRPC proto · `rag.yaml` · SDKs · `ragctl`) + a deprecation policy ([ADR-0052](docs/adr/ADR-0052-ga-cutover.md)); the `rag-platform` meta bumped to 1.0.0. GA **release notes** ([v1.0.0](docs/release-notes/v1.0.0.md)) + a **GA readiness checklist** ([ga-readiness-checklist](docs/ga/ga-readiness-checklist.md)) that maps every Phase 7 exit gate to a CI gate / in-repo artifact, with inherently-external items (external pentest, SOC 2 audit, registry first-publish, signed customers, on-call staffing, launch assets) marked **(external)** — the same in-repo-machine vs external-deliverable split used across Phase 7. The `v1.0.0` tag fans out to every channel via `docker.yml` + `release.yml` + `release-airgap.yml`. - **7.9** ✅ Billing & metering — per-tenant usage accounting, **mirroring the 5.6c cost pattern** (dataclasses in `rag-observability`, the gateway wraps a Pydantic response → **no `dist/schemas` churn**). New `rag_observability.billing`: a `UsageMeter` (observe-only per-tenant, per-dimension counters: queries / docs / storage / reranker / LLM tokens) fed O(1) from `record_request_usage` independent of quotas; `GET /v1/billing/usage` serves the per-tenant dashboard; pure `generate_invoice` + `PricingModel`/`load_pricing` price an invoice **from `marketplace/pricing.yaml`** (a price change is config) and **reconcile with metered usage ±0.5% by construction**; a `BillingProvider` Protocol seam for Stripe / marketplace metering (degrade-open). Inert by default (`cfg.billing`); `ragctl billing` drives meter→invoice→reconcile; **no governed SPI call** (policy-coverage linter unchanged); only `dist/openapi` + `dist/rag.schema` regenerate. Deferred: the concrete Stripe/marketplace adapters, the docs/reranker/storage feed points, an admin usage card. [ADR-0051](docs/adr/ADR-0051-billing-metering.md) [#182](https://github.com/officialCodeWork/AgentContextOS/pull/182) - **7.8** ✅ Support, SLAs & on-call — the support model + ops runbooks, **grounded in the platform's own signals**. Four support tiers + per-tier SLA targets (matching `marketplace/pricing.yaml`) in [`support-sla.md`](docs/guides/support-sla.md); a new `docs/runbooks/` area with **one runbook per alert type** (`alerts.md` — acl/tenant escape · `breaker.opened` · `drift.detected` · cost anomaly · `quota.exceeded` · injection spike · gateway degraded · latency/availability SLO · `eval.regression` · ingest), each naming the exact event / `/v1/status/*` / SLO that raises it; an incident-response process + a blameless postmortem template; the status page reads **measured** health (`/v1/status/health` + Grafana SLOs), not manual toggles. **Paging reuses the Step 3.9 webhook system** (PagerDuty as a subscriber — no new code). Deferred: hosted status-page deploy, the PagerDuty account, staffing. [ADR-0050](docs/adr/ADR-0050-support-sla-oncall.md) [#181](https://github.com/officialCodeWork/AgentContextOS/pull/181) - **7.7** ✅ Packaging & distribution — **one-command install per channel** + **one tag fans out to every channel**. New `rag-platform` PyPI **meta-package** (`packaging/rag-platform/`) pins the workspace component dists for a reproducible `pip install rag-platform`; the existing `agentcontextos` SDK scope is kept (no rename). A new `release.yml` publishes PyPI (OIDC Trusted Publishing) + npm (`@agentcontextos/sdk`, provenance) + the **admin-ui image** (new `apps/admin-ui/Dockerfile`, cosign + SBOM) + the Helm chart → **OCI** (cosign), alongside the existing `docker.yml` (gateway image, cosign + SBOM) and `release-airgap.yml` — all keyed off the same `vX.Y.Z` tag. Deferred: Go/Java/.NET SDK publish, worker/eval-runner images (single-process today). [ADR-0049](docs/adr/ADR-0049-packaging-distribution.md) [#180](https://github.com/officialCodeWork/AgentContextOS/pull/180) @@ -816,7 +817,7 @@ New ground — the only prior crypto was HMAC signing. The V1 plan calls for en | 7.7 | Packaging & distribution | ✅ | [#180](https://github.com/officialCodeWork/AgentContextOS/pull/180) — `rag-platform` PyPI meta-package; `release.yml` fans one tag out to PyPI/npm/GHCR(admin-ui)/Helm-OCI (cosign-keyless + SPDX SBOM + OIDC/provenance) alongside `docker.yml`+`release-airgap.yml`; `apps/admin-ui/Dockerfile`; channels matrix + guide | | 7.8 | Support & SLA | ✅ | [#181](https://github.com/officialCodeWork/AgentContextOS/pull/181) — support tiers + SLA targets (= `pricing.yaml`); `docs/runbooks/` with **a runbook per alert type** (tied to real events / `/v1/status/*` / SLOs); incident-response + postmortem template; status page from measured health; PagerDuty via the Step 3.9 webhook system (no new code) | | 7.9 | Billing integration | ✅ | [#182](https://github.com/officialCodeWork/AgentContextOS/pull/182) — `rag_observability.billing`: observe-only `UsageMeter` (5 dimensions) + `GET /v1/billing/usage`; pure `generate_invoice` priced from `pricing.yaml` (reconciles ±0.5%); `BillingProvider` Stripe/marketplace seam; `cfg.billing`; `ragctl billing`; mirrors 5.6c (no `dist/schemas` churn) | -| 7.10 | GA cutover | ⏳ | `main` tag `v1.0.0`; release notes; all Phase 7 exit gates passed | +| 7.10 | GA cutover | ✅ | [#183](https://github.com/officialCodeWork/AgentContextOS/pull/183) — **v1.0.0**: SemVer + deprecation policy (ADR-0052); release notes; GA readiness checklist (all exit gates, external items flagged); `rag-platform` meta → 1.0.0; `v1.0.0` tag fans out to every channel | ### 7.1 — Load + chaos testing ✅ [#164](https://github.com/officialCodeWork/AgentContextOS/pull/164) @@ -895,6 +896,14 @@ New ground — the only prior crypto was HMAC signing. The V1 plan calls for en - **External billers are a Protocol seam.** `BillingProvider.report_usage` (Stripe usage-records / marketplace metering APIs) with a `NoopBillingProvider` default, called degrade-open — no `rag_core.spi` ceremony. - **Scope:** the billing module + the usage endpoint + `cfg.billing` + wiring + `ragctl billing` + tests (unit reconciliation + gateway endpoint + CLI). All gates green (ruff, mypy --strict 330 files, config/openapi-drift regenerated). **Deferred:** the concrete Stripe/marketplace adapters, the docs/reranker/storage feed points, an admin usage card, subject-level invoicing. [ADR-0051](docs/adr/ADR-0051-billing-metering.md), [reference/billing.md](docs/reference/billing.md). +### 7.10 — GA cutover ✅ [#183](https://github.com/officialCodeWork/AgentContextOS/pull/183) + +- **General Availability — `v1.0.0`** — the close of an 8-phase, 84-step build (Phase 0 foundations → Phase 7 GA). +- **SemVer from GA.** MAJOR/MINOR/PATCH over the **drift-gated public contracts** (REST/OpenAPI · gRPC `rag.proto` · `rag.yaml` schema · SDKs · `ragctl` CLI), so a breaking change is caught in CI and forces a deliberate MAJOR bump; a deprecation cycle of ≥ 1 MINOR precedes removal ([ADR-0052](docs/adr/ADR-0052-ga-cutover.md)). The `rag-platform` meta-package carries the platform version (bumped to 1.0.0). +- **The GA bar is a checklist of gates, not a declaration.** [`ga-readiness-checklist.md`](docs/ga/ga-readiness-checklist.md) maps every Phase 7 exit gate to a CI gate or an in-repo artifact; inherently-external items — external pentest, SOC 2 Type II audit, the first publish to each registry, signing 3 referenceable customers, on-call staffing + the hosted status page, and the launch announcement — are marked **(external)** and ride on top, the same split used throughout Phase 7. +- **One tag, every channel.** `v1.0.0` is tagged on `main`; the existing release workflows (`docker.yml` + `release.yml` + `release-airgap.yml`, Step 7.7) fan it out to PyPI / npm / GHCR / Helm-OCI / the air-gap bundle, all cosign-signed + SBOM-attested. +- **Scope:** the GA release notes + readiness checklist + ADR-0052 + the meta version bump + the `v1.0.0` tag. **Deferred / external:** the checklist's **(external)** items + the V1.1 backlog (no-code agent builder, multimodal outputs, on-prem GPU autoscaling, marketplace partner connectors, domain packs). [release-notes/v1.0.0](docs/release-notes/v1.0.0.md), [ga/ga-readiness-checklist](docs/ga/ga-readiness-checklist.md). + --- ## PR & Branch History @@ -1051,6 +1060,7 @@ Complete log of every PR. Routine Dependabot bumps are grouped; everything else | [#180](https://github.com/officialCodeWork/AgentContextOS/pull/180) | 2026-06-10 | feat(release): rag-platform PyPI meta + release.yml (PyPI/npm/Helm-OCI/admin-ui image) (Step 7.7) | | [#181](https://github.com/officialCodeWork/AgentContextOS/pull/181) | 2026-06-10 | docs(support): support tiers + SLA + per-alert runbooks + incident response (Step 7.8) | | [#182](https://github.com/officialCodeWork/AgentContextOS/pull/182) | 2026-06-10 | feat(billing): per-tenant usage metering + usage API + invoice generation (Step 7.9) | +| [#183](https://github.com/officialCodeWork/AgentContextOS/pull/183) | 2026-06-10 | chore(release): GA cutover — v1.0.0 release notes + readiness checklist + SemVer policy (Step 7.10) | | #78–#80, #116–#118 | Open | Dependabot bumps — awaiting merge | | #81 | Closed | Dependabot bump — superseded | diff --git a/docs/README.md b/docs/README.md index 060f900..851cdde 100644 --- a/docs/README.md +++ b/docs/README.md @@ -206,6 +206,7 @@ broken, and what to fix before committing to the next phase. | [ADR-0049-packaging-distribution.md](adr/ADR-0049-packaging-distribution.md) | Decision (Step 7.7): a `rag-platform` PyPI **meta-package** pins the workspace component dists (one-command server install); keep the existing `agentcontextos` SDK scope (no rename); **one `vX.Y.Z` tag fans out** to PyPI/npm/GHCR/Helm-OCI/air-gap across `docker.yml` + a new `release.yml` + `release-airgap.yml`; cosign-keyless + SPDX SBOM + OIDC/provenance everywhere; deferred Go/Java/.NET publish + worker/eval-runner images; rejected a `ragplatform` rename + one mega-workflow | | [ADR-0050-support-sla-oncall.md](adr/ADR-0050-support-sla-oncall.md) | Decision (Step 7.8): **runbooks grounded in the platform's own signals** — one per alert type, each naming the exact event / `/v1/status/*` / SLO that raises it; **paging reuses the Step 3.9 webhook system** (PagerDuty as a subscriber, no new code) + Grafana SLOs; the status page reflects **measured** health (not manual toggles); SLA tiers match `marketplace/pricing.yaml`; rejected a new alerting subsystem, generic runbooks, a separate SLA datastore | | [ADR-0051-billing-metering.md](adr/ADR-0051-billing-metering.md) | Decision (Step 7.9): **mirror the 5.6c cost pattern** — dataclasses in `rag-observability`, gateway wraps in a Pydantic response (**no `dist/schemas` churn**); metering is **observe-only** (no governed SPI call, fed from `record_request_usage` independent of quotas); invoicing is offline + pure + **priced from config** (`marketplace/pricing.yaml`, reconciles ±0.5% by construction); Stripe/marketplace via a `BillingProvider` Protocol seam; rejected a new `rag-billing` package + core types, metering-through-quotas, hard-coded prices | +| [ADR-0052-ga-cutover.md](adr/ADR-0052-ga-cutover.md) | Decision (Step 7.10, GA): cut **v1.0.0** with **SemVer** over the drift-gated public contracts (REST/OpenAPI · gRPC proto · `rag.yaml` · SDKs · `ragctl`) + a deprecation policy (≥ 1 MINOR before removal); the GA bar is a **checklist of gates**, not a declaration, with inherently-external items marked **(external)**; one platform version cut as a tag that fans out to every channel; rejected staying 0.x, no platform version, declaring GA without a checklist | | [ADR-0048-marketplace-listings.md](adr/ADR-0048-marketplace-listings.md) | Decision (Step 7.6): one canonical `marketplace/pricing.yaml` (metered dims = the Step 7.9 signals) + one shared listing copy mapped to all three clouds, so listings can't drift and prices reconcile with metering; **reuse existing delivery** (Helm / AMI / airgap / GHCR) — the per-cloud Marketplace wrappers are thin shells; approval + procurement are documented external process, not a faked status; rejected per-cloud pricing, custom packaging, encoding a "live" status | | [ADR-0042-compliance-posture.md](adr/ADR-0042-compliance-posture.md) | Decision (Step 6.10, Phase-6 capstone): add the three compliance pieces on top of the controls the platform already ships (audit/ACL/PII/BYOK/SSO/quotas). New `rag-compliance` package (config-free, like rag-feedback/rag-drift): `RetentionEnforcer` drives tenant-scoped `purge_*`; `compliance_posture`/`residency_ok` are pure. **Retention is a capability on the existing stores, not a new SPI** — non-abstract `purge_before`/`purge_tenant` (default no-op) on Feedback/Provenance, with `dry_run` in the SPI so a preview counts-without-deleting uniformly (ProvenanceStore has no `list`). **Audit is never purged in place** (the hash chain would break) — audit retention is the 6.6b WORM export; `audit_days` is advisory. **Right-to-erasure is always-on, tenant-self-service, two-flag** — `POST /v1/compliance/erase` erases the *calling* tenant's data (scope from the principal, never the body), dry-run by default, delete needs `dry_run=false` AND `confirm=true`. **Residency = declared per tenant + enforced at ingest** (`tenants[].data_region` vs `cfg.compliance.region` → 403), opt-in, a single-deployment assertion not multi-region routing. **The SOC 2 / GDPR mapping is a doc backed by a live posture** (`GET /v1/status/compliance` reports which controls are on, so the mapping is checkable). Deferred: subject-level (vs tenant-level) erasure, an admin retention-sweep endpoint, multi-region routing, automated audit-evidence bundles; rejected purging the audit chain, a `Purgeable` SPI mixin, a static doc with no live backing | | [ADR-0041-airgap-bundle.md](adr/ADR-0041-airgap-bundle.md) | Decision (Step 6.9): ship the platform as one signed, self-contained offline bundle (all runtime images + Helm chart + config + installer). Integrity reuses the WORM-export pattern (6.6b): a standard `SHA256SUMS` whose hash is pinned as `manifest.content_hash` is the **hard gate** — verifiable with nothing but `sha256sum`, no network/cosign — and a cosign signature **over `SHA256SUMS`** adds authenticity; the *same* `SHA256SUMS` drives the Python verifier and the standalone shell installer so they can't diverge. The shell/pwsh `install.{sh,ps1}` (shipped inside the bundle) need only docker+helm (air-gap hosts lack uv/the workspace); `ragctl airgap` holds the typed/tested build+verify logic (pure core separated from a stubbable docker/helm/cosign subprocess seam; `--dry-run` = a verifiable bundle minus image blobs, so the path is testable with no Docker). Digest-pinned manifest-driven image set (`infra/airgap/images.txt` + the chart-derived gateway image); key-based cosign is the air-gap recommendation (keyless needs Rekor + an identity policy), keyless is the connected-release path (`release-airgap.yml` on tags). Deferred: ctr/podman load, registry re-tag/push, multi-arch selection, bundling backend charts, TUF-rooted offline keyless verify; rejected `oras`/OCI (no registry to pull from in an air-gap), a second HMAC scheme (cosign already the signer), a pure-shell build (would escape mypy/tests) | @@ -253,6 +254,18 @@ incident-response process and the postmortem template. | [incident-response.md](runbooks/incident-response.md) | Severity ladder · IC/Comms/Ops roles · detect→declare→mitigate→communicate→resolve→postmortem flow · the status page (measured from `/v1/status/health` + Grafana SLOs) | | [postmortem-template.md](runbooks/postmortem-template.md) | Blameless postmortem template (summary · impact · timeline · root cause · action items) | +## release-notes/ + +| File | Description | +|------|-------------| +| [v1.0.0.md](release-notes/v1.0.0.md) | **GA release notes (Step 7.10)** — highlights across retrieval / surfaces / governance / reliability / observability / operability; one-command install per channel; the 8-phase journey; versioning + support | + +## ga/ + +| File | Description | +|------|-------------| +| [ga-readiness-checklist.md](ga/ga-readiness-checklist.md) | The v1.0.0 GA readiness checklist (Step 7.10) — every Phase 7 exit gate mapped to a CI gate / in-repo artifact, with inherently-external items marked **(external)** | + ## research/ | File | Description | diff --git a/docs/adr/ADR-0052-ga-cutover.md b/docs/adr/ADR-0052-ga-cutover.md new file mode 100644 index 0000000..883c026 --- /dev/null +++ b/docs/adr/ADR-0052-ga-cutover.md @@ -0,0 +1,60 @@ +# ADR-0052 — GA cutover: v1.0.0, SemVer, and the deprecation policy + +**Status:** Accepted +**Date:** 2026-06-10 +**Step:** 7.10 — GA cutover (Phase 7 — Pilot, Harden, GA) +**Related:** [release-notes/v1.0.0.md](../release-notes/v1.0.0.md), [ga/ga-readiness-checklist.md](../ga/ga-readiness-checklist.md), [7.7 packaging](ADR-0049-packaging-distribution.md), [planning/phases/phase-7-pilot-ga.md](../../planning/phases/phase-7-pilot-ga.md) + +## Context + +Step 7.10 is the GA cutover: cut `v1.0.0`, publish across every channel, confirm +the exit gates, and announce. The engineering questions that constrain future work +are (1) what version contract GA commits to, and (2) how the GA bar is recorded so +"done" is checkable rather than declared. + +## Decision + +**1. v1.0.0 with Semantic Versioning.** From GA the platform follows SemVer: +MAJOR for breaking changes to a public contract, MINOR for back-compatible +features, PATCH for fixes. The public contracts are the **REST/OpenAPI surface**, +the **gRPC `rag.proto`**, the **`rag.yaml` config schema**, the **SDK APIs**, and +the **`ragctl` CLI** — all already drift-gated, so a breaking change is caught in +CI and forces a deliberate MAJOR bump. + +**2. Deprecation policy.** A public-contract element is deprecated for at least one +MINOR release (with a changelog notice + a runtime/log warning where feasible) +before removal in the next MAJOR. The committed OpenAPI/proto/schema artifacts make +deprecations visible in review. + +**3. The GA bar is a checklist of gates, not a declaration.** The +[GA readiness checklist](../ga/ga-readiness-checklist.md) maps every Phase 7 exit +gate to a CI gate or an in-repo artifact; inherently-external items (external +pentest, SOC 2 audit, signed referenceable customers, registry-publish accounts, +on-call staffing, launch assets) are marked **(external)** and ride on top — the +same in-repo-machine vs external-deliverable split used throughout Phase 7. + +**4. One platform version, cut as a tag.** GA is `v1.0.0` tagged on `main`; the tag +fans out to every distribution channel via the existing release workflows +(`docker.yml` + `release.yml` + `release-airgap.yml`, Step 7.7). The +`rag-platform` meta-package carries the user-facing platform version. + +## Consequences + +- New `docs/release-notes/v1.0.0.md`, `docs/ga/ga-readiness-checklist.md`, this ADR, + and the `rag-platform` meta bumped to `1.0.0`. +- Future breaking changes to a public contract require a MAJOR bump + a deprecation + cycle, enforced by the drift gates. +- **Deferred / external:** the external pentest + SOC 2 Type II audit, the first + publish to each registry (trusted-publisher/GHCR setup), signing 3 referenceable + customers, on-call staffing + the hosted status page, and the launch + announcement + marketing assets. These are the checklist's **(external)** items. + +## Alternatives considered + +- **Stay 0.x.** Rejected — the platform is feature-complete across Phases 0–7 with + drift-gated public contracts; GA + SemVer is the commitment design partners need. +- **Per-component independent SemVer with no platform version.** Rejected for the + user-facing story — the `rag-platform` meta carries one platform version + (components still version under it via release-please). +- **Declare GA without a checklist.** Rejected — the readiness checklist keeps + "done" honest (CI-gated or shipped), consistent with the rest of the repo. diff --git a/docs/ga/ga-readiness-checklist.md b/docs/ga/ga-readiness-checklist.md new file mode 100644 index 0000000..a4f2897 --- /dev/null +++ b/docs/ga/ga-readiness-checklist.md @@ -0,0 +1,59 @@ +# GA readiness checklist (v1.0.0) + +The Phase 7 exit gates and their status at the v1.0.0 cutover. Items backed by a +CI gate or an in-repo artifact are checked; items that are inherently external +(human/process) are marked **(external)** and tracked as process, consistent with +how the platform handled the pentest (7.3) and design-partner sign-ups (7.4). + +## Hardening + +- [x] **Load testing** — chaos-under-load CI gate + Locust suite (Step 7.1) +- [x] **Chaos engineering** — kill-matrix CI gate; no single backend failure 5xx-es the gateway (Step 7.2) +- [x] **Red-team** — adversarial probe gate (injection ≥ 95 % block · zero ACL/PII/tenant-escape leakage) (Step 7.3) +- [ ] **External penetration test** — **(external)** vendor engagement; documented in [red-team.md](../guides/red-team.md) + +## Quality + +- [x] **Eval gate** — golden-set Recall/MRR/Faithfulness floors + regression deltas enforced on every PR (Steps 5.2–5.3) +- [x] **Final eval pass** — golden-set thresholds met on the GA build (the `eval-gate` job is the gate of record) +- [x] **Drift / cost / feedback monitors** wired (Steps 5.4–5.6) + +## Go-to-market + +- [x] **Design-partner pilot framework** + customer-support kit + `ragctl pilot` (Step 7.4) +- [ ] **3 live referenceable tenants** — **(external)** GTM; framework + worked case study shipped +- [x] **Documentation site** (Docusaurus) + generated API reference (Step 7.5) +- [x] **Marketplace listing artifacts** (AWS/Azure/GCP) + canonical pricing (Step 7.6) +- [ ] **Listings live + verified procurement** — **(external)** per-cloud approval + +## Distribution + +- [x] **Packaging** — `rag-platform` PyPI meta, SDKs, GHCR images, Helm OCI, air-gap bundle (Step 7.7) +- [x] **Signed + SBOM-attested** — cosign keyless + SPDX + OIDC/npm provenance (Step 7.7) +- [ ] **First publish to each registry** — **(external)** one-time trusted-publisher / GHCR setup, then `git push v1.0.0` + +## Operations + +- [x] **Support tiers + SLAs** defined (Step 7.8) +- [x] **Runbooks for every alert type** + incident-response + postmortem template (Step 7.8) +- [ ] **On-call rotation staffed** + **status page live** — **(external)** people + hosting +- [x] **Billing & metering** — usage API + invoicing reconciling ±0.5% (Step 7.9) + +## Governance & compliance (Phase 6) + +- [x] ACL push-down + egress verifier · PII egress · BYOK · audit log · SSO/SCIM · quotas +- [x] **Compliance posture** — live SOC 2 / GDPR control mapping (Step 6.10) +- [ ] **SOC 2 Type II audit** — **(external)** the posture is audit-ready; the audit is a vendor engagement + +## Cutover + +- [x] Version bumped to **1.0.0**; release notes published ([v1.0.0](../release-notes/v1.0.0.md)) +- [x] **SemVer + deprecation policy** adopted ([ADR-0052](../adr/ADR-0052-ga-cutover.md)) +- [x] `v1.0.0` tag cut from `main` +- [ ] **Public announcement + launch assets** — **(external)** marketing +- [ ] **Post-launch retro** scheduled within 2 weeks — **(external)** + +> The checked items are the engineering GA bar (CI-gated or shipped in-repo). The +> unchecked **(external)** items are the human/process deliverables that ride on +> top — the same in-repo-machine vs external-deliverable split used throughout +> Phase 7. diff --git a/docs/release-notes/v1.0.0.md b/docs/release-notes/v1.0.0.md new file mode 100644 index 0000000..cdf2916 --- /dev/null +++ b/docs/release-notes/v1.0.0.md @@ -0,0 +1,67 @@ +# AgentContextOS v1.0.0 — General Availability + +The first generally-available release of AgentContextOS: a production-grade, +multi-tenant Retrieval-Augmented Generation platform. Built as a uv-workspace +Python monorepo with a plugin SPI so every backend (vector store, embedder, LLM, +reranker, …) is swappable without touching core logic. + +## Highlights + +**Retrieval** — pluggable vector / keyword / graph backends (pgvector, Qdrant, +Pinecone, Weaviate, Elasticsearch, Neo4j, …) fused with RRF; two-stage reranking; +context packing; GraphRAG; a query-shape router with a graceful-degradation +fallback chain. + +**Four API surfaces** — REST (`/v1/*`), gRPC, MCP tools, and an +OpenAI-compatible API — all over one in-process pipeline. + +**Governance** — label-based ACL push-down + an independent egress verifier; PII +redaction at egress; BYOK envelope encryption (AWS/GCP/Azure/Vault KMS); an +immutable hash-chained audit log with signed WORM export; SSO/SCIM; per-tenant +quotas; logical + physical multi-tenancy; a live compliance posture (SOC 2 / GDPR +mappings). + +**Reliability** — circuit breakers, the fallback chain, a hallucination guard, and +a prompt-injection guard, all proven by an in-process chaos kill-matrix + a +red-team probe gate (≥ 95 % injection block, zero ACL/PII/tenant-escape leakage). + +**Observability & quality** — per-query tracing + signed provenance, online +feedback, drift monitors, cost-anomaly detection, an offline eval harness with a +CI regression gate, and per-tenant usage metering + invoicing. + +**Operability** — an air-gapped install bundle, a Docusaurus docs site, signed + +SBOM-attested images/charts, marketplace listings, support tiers + SLAs + per-alert +runbooks. + +## Install + +```bash +pip install rag-platform # full self-hosted server stack + ragctl +docker pull ghcr.io/officialcodework/agentcontextos/rag-gateway:v1.0.0 +helm install rag oci://ghcr.io/officialcodework/agentcontextos/charts/rag-platform --version 1.0.0 +npm i @agentcontextos/sdk # TypeScript SDK +pip install agentcontextos # Python SDK +``` + +Air-gapped installs use the signed release bundle (see +[airgap-install.md](../guides/airgap-install.md)). Every artifact is cosign-signed +(keyless OIDC) with an SPDX SBOM; see +[packaging-distribution.md](../guides/packaging-distribution.md). + +## The journey + +GA is the close of an 8-phase, 84-step build: Phase 0 foundations → Phase 1 +storage & architecture → Phase 2 retrieval → Phase 3 gateway & surfaces → Phase 4 +reliability → Phase 5 eval & observability → Phase 6 enterprise (tenancy / +governance / compliance) → Phase 7 pilot, harden & GA. The full history is in +[`TRACKER.md`](https://github.com/officialCodeWork/AgentContextOS/blob/main/TRACKER.md). + +## Versioning & support + +v1.0.0 begins [Semantic Versioning](../adr/ADR-0052-ga-cutover.md) commitments and +the deprecation policy. Support tiers + SLAs: [support-sla.md](../guides/support-sla.md). + +## GA readiness + +Every Phase 7 exit gate is recorded in the +[GA readiness checklist](../ga/ga-readiness-checklist.md). diff --git a/packaging/rag-platform/pyproject.toml b/packaging/rag-platform/pyproject.toml index d2d9797..3bb021c 100644 --- a/packaging/rag-platform/pyproject.toml +++ b/packaging/rag-platform/pyproject.toml @@ -10,7 +10,7 @@ build-backend = "hatchling.build" [project] name = "rag-platform" -version = "0.10.0" +version = "1.0.0" description = "AgentContextOS — production-grade, multi-tenant RAG platform (meta-distribution)." readme = "README.md" requires-python = ">=3.12" @@ -27,28 +27,28 @@ classifiers = [ # Core server stack — the gateway pulls most of these transitively, but they are # pinned explicitly so `rag-platform==X` resolves a fully-reproducible stack. dependencies = [ - "rag-core==0.10.0", - "rag-config==0.10.0", - "rag-observability==0.10.0", - "rag-policy==0.10.0", - "rag-backends==0.10.0", - "rag-retrieval==0.10.0", - "rag-ingest==0.10.0", - "rag-guard==0.10.0", - "rag-breaker==0.10.0", - "rag-quota==0.10.0", - "rag-provenance==0.10.0", - "rag-feedback==0.10.0", - "rag-drift==0.10.0", - "rag-injection==0.10.0", - "rag-gateway==0.10.0", - "ragctl==0.10.0", + "rag-core==1.0.0", + "rag-config==1.0.0", + "rag-observability==1.0.0", + "rag-policy==1.0.0", + "rag-backends==1.0.0", + "rag-retrieval==1.0.0", + "rag-ingest==1.0.0", + "rag-guard==1.0.0", + "rag-breaker==1.0.0", + "rag-quota==1.0.0", + "rag-provenance==1.0.0", + "rag-feedback==1.0.0", + "rag-drift==1.0.0", + "rag-injection==1.0.0", + "rag-gateway==1.0.0", + "ragctl==1.0.0", ] [project.optional-dependencies] # Optional backend drivers + cloud KMS providers (extras, not in the base install). -backends = ["rag-backends[pgvector,qdrant,redis,s3]==0.10.0"] -kms = ["rag-backends[kms-aws,kms-gcp,kms-azure,kms-vault]==0.10.0"] +backends = ["rag-backends[pgvector,qdrant,redis,s3]==1.0.0"] +kms = ["rag-backends[kms-aws,kms-gcp,kms-azure,kms-vault]==1.0.0"] all = ["rag-platform[backends,kms]"] [project.urls]