Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion TRACKER.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,14 @@

| | |
|---|---|
| **Last updated** | 2026-06-10 |
| **Last updated** | 2026-06-11 |
| **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: cut the **v1.0.1** patch tag (serve-path fix below; note: GitHub Actions runs are currently blocked by an account **billing/spending-limit** failure — every `docker.yml` run since GA failed at job start, so the GHCR image was never actually published), then the V1.1 backlog. |

**Recently shipped**

- **7.9b** ✅ Admin-ui **Operate pages** — the console can now *drive* the request path, not just observe it (closes the three High-priority gaps from the [v2 API-coverage analysis](apps/admin-ui/design/claude-design-prompt-v2-api-coverage.md); built to the [Operate design brief](apps/admin-ui/design/claude-design-prompt-operate.md), 1:1 on the real wire types in `rag_core.gateway_types` / `rag_core.openai_types`). New **Operate** nav group + three pages: **Query Playground** (`/playground` — full `QueryRequest` control rail: corpus multiselect / `top_k` / rerank·pack·generate switches / advanced `pack_budget`·`generate_max_tokens`·`generate_temperature`·`filters`; **Run query** `POST /v1/query` vs **Retrieve only** `POST /v1/retrieve`; results render the decision strip (shape · bm25-fallback · corpus strategy · packed tokens · experiment tag), the answer with clickable `[n]` citation chips + guard verdict, citations, the ranked-chunks table (trust badges, detail sheet), a stacked per-stage timings bar with skipped-stage markers, and a **feedback bar** (👍/👎/1–5★/copy/regenerate/PII-redacted comment → `POST /v1/feedback`, exact signal enum); **View full trace** deep-links to `/trace?rid=…` — the seeded run reuses `DEMO_REQUEST_ID` so the demo resolves end-to-end); **Ingest** (`/ingest`, Knowledge — drag-and-drop multipart `POST /v1/ingest/document`, staged queue with progress → `IngestResult` chunk/embedding badges or error+Retry, the *parse → chunk → enrich → PII-redact → embed → index* explainer); **Chat** (`/chat` — OpenAI-compatible: streaming SSE thread with the non-standard `rag` annotations surfaced per reply (shape/chunks/citations/guard/finish_reason/usage; RAG **on by default**), an **Embeddings** tab (one input per line, float/base64, dim + L2 norm + sparkline), and a **Models** tab (`GET /v1/models`)). All follow the live→seed hybrid: action surfaces *simulate* without a gateway (deterministic worked query, token-streamed replies honouring `prefers-reduced-motion`). New `Slider`/`Tabs` primitives + `CorpusMultiSelect`/`GuardBadge`/`CitedText` shared components; identity body-carried on `/v1/query`·`/v1/retrieve`·`/v1/feedback`, header-driven elsewhere. Gates: tsc / eslint / **46 vitest** (12 new) / `next build` (17 static routes); browser-verified light+dark, all three pages + the trace deep-link. [reference/admin-ui.md](docs/reference/admin-ui.md)
- **v1.0.1** ✅ *(patch)* — **production serve path fixed end-to-end.** The image's default CMD (a Phase-0 placeholder that printed the version and exited) now serves via the new config-driven **`rag_gateway.serve:create_app`** uvicorn-factory entrypoint: `RAG_CONFIG_PATH` set → `build_app_from_config(load(path))`, unset → noop `build_app()`, set-but-broken → **fail fast** (`ConfigError`), never a silent noop fallback. The image **build** itself was also broken — the full `uv sync` needs every workspace member on disk but `sdks/python` was never copied (`Distribution not found`); both stages now copy it. New public **`GET /readyz`** backs the Helm chart's readiness probe (liveness stays `/healthz`). The chart's ConfigMap previously rendered an *invalid* `rag.yaml` (`env:/log_level:/service:` against the strict `extra='forbid'` schema → guaranteed CrashLoop); it now renders a minimal valid document with a **`config.ragYaml`** passthrough for full platform configs (`${VAR}` env interpolation keeps secrets out of the ConfigMap), chart `0.2.0` / `appVersion` `1.0.1` (the old `0.1.0` appVersion pointed the default image tag at a tag that never existed), `values.dev.yaml` `env: development` → `local`. Docs: image tags are published *without* the `v` prefix — `:v1.0.0`-style pulls in README/release-notes never matched. [release notes](docs/release-notes/v1.0.1.md) [#185](https://github.com/officialCodeWork/AgentContextOS/pull/185)
- **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)
Expand Down
Loading
Loading