Skip to content

Post-GA batch: CRUD update, real-backend wiring, admin-UI fixes & Docker/demo stack - #194

Merged
officialCodeWork merged 6 commits into
mainfrom
chore/post-ga-bugfixes-and-demo-stack
Jun 18, 2026
Merged

Post-GA batch: CRUD update, real-backend wiring, admin-UI fixes & Docker/demo stack#194
officialCodeWork merged 6 commits into
mainfrom
chore/post-ga-bugfixes-and-demo-stack

Conversation

@officialCodeWork

@officialCodeWork officialCodeWork commented Jun 18, 2026

Copy link
Copy Markdown
Owner

Summary

A post-GA batch from a testing + demo-prep session, branched off latest main (the Step 3.10 branch it was sitting on is already merged via #189/#190). Logically-grouped commits spanning bug fixes, real-backend wiring, the local Docker stack, branding, and GTM demo assets.

What's in it

Commit Type What
60ac857 feat Real-backend wiringOpenAILLM + content hydration so the gateway runs end-to-end RAG from rag.yaml, not noop-only
628f408 feat Corpus & webhook PATCH — completes the Step 3.10 deferred update path (SPI + noop + pg + routes + OpenAPI re-export)
be7a42c fix admin-UI — Edit dialogs, per-source demo badges, hydration warning, stale copy
4b0d83a chore Local Docker stackdocker-compose.app.yml (pg + gateway + admin-ui), rag.docker.yaml, init.sql
b2246fe feat Branding — admin-UI brand mark/icon + docs-site logo
d854098 chore GTM demo — safety/injection demo scripts + slide decks, BUGS.md tracker, ignore .DS_Store
8fb9688 docs PATCH endpoint reference — corpus + webhook update routes in gateway.md / webhooks.md
d073316 chore Green the gates — exclude scripts/demo tooling from ruff + policy-coverage; ruff format + UP017 on shipped code
db2c513 docs TRACKER — flip Step 3.10 PATCH to done, add post-GA batch entry, refresh status block

Bugs fixed

Closes the testing-pass bugs logged in BUGS.md: BUG-002, BUG-003, BUG-004, BUG-007, BUG-008, BUG-009. (BUG-005 audit-writer coverage and BUG-006 ingest document-count are deferred with root cause in BUGS.md; BUG-010 is environmental.)

Notable

  • These fixes complete the corpus/webhook update (PATCH) path that TRACKER.md listed as deferred for Step 3.10 — the Edit action was previously a dead placeholder.
  • No secret leakage: .env / .env.openai stay gitignored and the stack reads OPENAI_API_KEY from env; the only committed credential is the local-dev POSTGRES_PASSWORD: rag.

Verification — all gates green (run locally; CI is billing-blocked)

Gate Result
ruff check + ruff format --check ✅ clean
mypy --strict (packages/ + apps/gateway/) ✅ 333 source files, no issues
pytest (full suite, -m 'not perf') ✅ pass (incl. PolicyEngine coverage linter)
proto / openapi / schema drift gates ✅ clean (openapi: 45 paths, PATCH routes included)
admin-UI: tsc · eslint · vitest · next build ✅ tsc clean, no eslint warnings, 46/46 vitest, build OK (20 routes)

scripts/demo (GTM slide builders + adversarial safety demos) is excluded from ruff and the policy-coverage linter — it's demo tooling, not shipped code, and safety_demo.py deliberately bypasses the PolicyEngine to demonstrate the injection guard. Shipped code is held to the full bar.

Documentation

  • docs/reference/gateway.md + docs/reference/webhooks.md — the new PATCH update endpoints.
  • TRACKER.md — Step 3.10 PATCH flipped to done + post-GA batch entry.
  • BUGS.md — testing-findings tracker (new).

🤖 Generated with Claude Code

Deep Kumar Singh Kushwah and others added 6 commits June 19, 2026 02:31
Wire real backends from rag.yaml so the gateway runs end-to-end RAG instead of noop-only:

- rag_backends.llm.OpenAILLM (chat completions) behind a new [openai] extra
- _build_{embedder,vector_store,llm}_from_config in wiring; vector-store lifespan init
- IngestPipeline gains an optional content_store; PgVectorStore.put_content /
  hydrate_content persist chunk text so retrieved refs can be hydrated for
  rerank / pack / generate (the vector store holds vectors only)
- query path now hydrates whenever pack or generate need text, not just rerank
- gateway [backends] extra pulls rag-backends[openai] + rag-embedders[openai]

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…CRUD

The Edit action on the Corpora and Webhooks pages was a dead placeholder
(BUG-002 / BUG-003): the update (U) of CRUD was unimplemented across UI,
gateway, and store. This adds the backend half:

- CorpusStore.update + SubscriptionStore.update (SPI + noop + pg, tenant-scoped;
  embedding model/dim immutable on corpora, signing secret stays masked on subs)
- PATCH /v1/corpora/{id} and PATCH /v1/webhooks/subscriptions/{id} on the gateway
- CreateCorpusRequest/update wire types in gateway_types + webhook_types
- contract + gateway-route tests; OpenAPI re-exported (drift gate)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolves the admin-console bugs found in this session's testing pass:

- BUG-002/003: wire the corpus & webhook Edit dialogs to the new PATCH routes
  (updateCorpus / updateWebhook in api.ts), with demo-mode local simulation
- BUG-004: each seed-fallback Live-Status card (breakers/quotas/drift/feedback/
  cost/experiments) renders a per-source SourceBadge so seed data isn't shown as Live
- BUG-007: suppressHydrationWarning on the Metrics 'Captured' locale timestamp
- BUG-008: drop stale 'lands with Phase 6' copy on API Keys + Tenants (project is GA)
- BUG-009: Playground 'Demo data' badge only shows after a mock run, not on load
- chat: default RAG scope to the tenant's live corpora once loaded

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
One-command full-stack run for local demo / verification:

- docker-compose.app.yml: pgvector + gateway + admin-ui (stack PG maps to host
  :5433 so it doesn't collide with a native :5432); admin-ui Dockerfile added
- infra/rag.docker.yaml: rag.yaml for the stack (real pgvector + OpenAI; the
  OPENAI_API_KEY is read from env / .env.openai, never committed)
- infra/postgres/init.sql: chunk-content table for hydration
- .dockerignore to keep build context lean; gateway Dockerfile + debug launch config

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the generic Layers placeholder with a real brand identity:

- admin-ui BrandMark component + app icon.svg, wired into the sidebar
- shared logo_main.svg; Docusaurus favicon + navbar logo now point at it

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- scripts/demo/: layered-defense + prompt-injection safety demos
  (safety_demo.py, hallucination_probe.py) and rendered slide decks (PNG/PDF)
  for go-to-market walkthroughs
- BUGS.md: testing-findings tracker (companion to TRACKER.md), this session's
  10 bugs logged with root cause + resolution
- .gitignore: ignore macOS .DS_Store

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@officialCodeWork
officialCodeWork merged commit 2a6d280 into main Jun 18, 2026
13 of 23 checks passed
officialCodeWork pushed a commit that referenced this pull request Jun 18, 2026
Flip the Step 3.10 'update (PATCH) deferred' note to done, add a post-GA
batch entry to Recently shipped, refresh the Status block + Last updated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
officialCodeWork added a commit that referenced this pull request Jun 18, 2026
…green-gates

Post-GA follow-up: green the lint/policy gates + PATCH docs + TRACKER (after #194)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant