Обновлено: 2026-08-18 — Update-210 (first CI in 2.5 months: branch ci-check-20260818 red→green 8/8 at 752488b; PR #2 exercises migrations/helm before fast-forwarding master). Update-209 = stage closed (suite green 1870/7, lock gate root-caused = WSL idle-shutdown, INDEX-DIM activated on Windows).
Назначение: самодостаточный старт следующей сессии без чтения всей
истории AGENT_STATE.md.
| Приоритет | Источник |
|---|---|
| 1 | Actual Git — git status --short --branch + git log -12 --oneline |
| 2 | Верхний блок AGENT_STATE.md (Update-210, затем 209) |
| 3 | Эта капсула + PLAN_CLOSURE_STATUS.md + анализ operations/2026-08-18-test-failure-analysis.md |
| 4 | План rag-remediation-plan-2026-08-03.md — DoD, не очередь галочек (теперь tracked, 5d93e12) |
Не использовать: старые START HERE ниже Update-209; _NEXT_SESSION.md
для routing (untracked pointer, не SoT). Owner-dirty файлы больше не dirty —
закоммичены в 5d93e12.
Plan checkboxes: не править casually. Local slice ≠ section closed ≠ release.
| Вопрос следующей сессии | Проверяемый ответ |
|---|---|
| Последний implementation SHA | 0cba9d1 — read-only Windows INDEX-DIM activation preflight; product code unchanged since |
| CI (Update-210) | branch ci-check-20260818 run 1 red (aiosqlite unlocked; live-gate tmp_path; local outbox regression ad5e435; pip-audit aiohttp/cryptography/pypdf; whitespace) → 752488b → run 2 8/8 green; PR #2 for migrations/helm; master fast-forward after green |
| Последний committed test contract | 752488b (CI fixes) ← cc0458d — test_csp.py через shared client-fixture (не грузит реальный embedder), test_index_operator.py rollback-тест приведён к 1aa9f19; полный suite 1870 passed / 7 skipped |
| Последний committed docs closure | 5d93e12 (owner pointer-docs + tracked plan) → Update-209 docs commit (resolve через Actual Git); push НЕ выполнялся |
| Dev-runbook: tenant lock на Windows | PostgreSQL живёт в WSL Ubuntu-22.04; инстанс гаснет по idle → перед lock-guarded операцией держать keepalive wsl -d Ubuntu-22.04 -u root -e sh -c 'service postgresql start; exec sleep infinity' (проверено: acquire/exclusive/release зелёные) |
| Windows-индекс сейчас | data/vectordb/chroma = staged 3×1024 tree (SHA 1ce87531…), manifest generation 1: active rag_docs-v-default-3f2b79fbe1246ab3, previous rag_docs_default; snapshot до активации .tmp/index-dim-windows-target-snapshot-before-activation (SHA 5c9eff00…, 627 files); evidence .tmp/index-dim-windows-activation-result-20260818.json |
| Где лежит Mac-артефакт | Checkout /Users/julia/RAG_Support_Assistant-index-rebuild-20260813; imported Chroma copy .runtime/windows-chroma (56 MiB observed); evidence .runtime/index-dim-rebuild-result.json, SHA-256 c49feed5812cc44987b4478f0737d99c075f350b8ba66fb8ebba3e70df86a382 |
| Что закрыто локально | Update-209: unit suite green (1870/7), tenant-lock gate green с keepalive, INDEX-DIM activated on Windows (candidate 3×1024 active, gen 1, snapshot retained). Ранее: d157b31 guard, 1aa9f19 legacy rollback, Mac artifact + publish→rollback→reactivate (Update-195). GraceKelly containment, generation fail-closed, VER-01 local MyPy, §9 telemetry 7/7, dashboard, Astro 7 / DEP-01, lifecycle owners, VER-07 remain local evidence only; это не означает production ready |
| Последний live gate | post-QG §5 seed 42: 20/20 effective, evidence_valid=true / release_passed=false; candidate 25% vs baseline 90%, 13 regressions. Решение Update-209: причина — transport-unfit кандидат gracekelly-mixed (browser-артефакты 18/20, 304 с/кейс), не RAG-регрессия; §5 остаётся OPEN, платные seed'ы на Windows больше не тратить, путь — off-Windows полный hybrid-пайплайн |
| Известный baseline debt | VER-01 is LOCAL TYPE-GREEN: exact command 1 is green across 72 sources and exact command 2 is freshly green across 31 sources in the retained Windows Python 3.11 diagnostic environment. Exact Ubuntu/full 222-package-lock equivalence remains unproved |
| Worktree boundary | owner-dirty файлы закоммичены (5d93e12); implementation/test WIP none; untracked остаются только презентации/HTML/.grok-prompts//_NEXT_SESSION.md; 151 .pytest_tmp_* каталогов (1.1 GB) удалены и добавлены в .gitignore |
| Executor truth (Update-209) | Работа выполнена напрямую (Claude Code); Grok не привлекался; Codex second-opinion запрошен через плагин, но упал на auth (access token could not be refreshed) — нужен интерактивный re-login владельца |
| Что не запускалось | Push, deploy, migration 019–023, paid live seeds 43–44, independent judge, hybrid+reranker на Windows, Grafana, scrape/alert delivery, publish→rollback→reinstall loop на Windows, retention inventory write. .env, firewall, ACLs, Docker не трогались; WSL: только service postgresql start + keepalive-процесс (без изменений конфигурации). |
| Что осталось в §9 | SessionService deferred pending multi-replica SLA; live scrape/alert delivery; no ungated local architecture owner preselected |
| Следующий slice | Решения владельца: (1) push master → читать CI (3.11 leg, integration PG/Redis, migrations); (2) при желании re-login Codex и повторить second-opinion; (3) §5 live evidence — только off-Windows (Mac/Kaggle) полный hybrid-пайплайн; (4) снапшот .tmp/index-dim-windows-target-snapshot-before-activation можно удалить после того, как активированный индекс поживёт. |
| Поле | Факт |
|---|---|
| Suite | run1: hang 300 s в test_csp.py (lifespan → реальный bge-m3 при локальном data/vectordb/chroma); run2 после фикса: 1 failed (test_index_operator stale к 1aa9f19) / 1869 passed; run3: 1870 passed / 7 skipped / 0 failed / 339 s → cc0458d |
| Lint/type | ruff tracked non-legacy: clean; mypy cmd2 green (31 sources); mypy cmd1 локально падает на numpy 2.5.1 stubs vs lock 2.4.4 (env drift) |
| Lock gate | root cause = WSL2 idle-shutdown; keepalive → first_acquired=true, second_acquired_while_held=false, released=true, reacquired=true |
| INDEX-DIM | activated: fingerprints verified, snapshot verified (627/55,885,536/5c9eff00…), install verified (1ce87531…), child validation 3×1024 + sources + E20 top-1 (remote mistral-embed), publish_active_collection gen 1 previous rag_docs_default, app initialize_vector_store() грузит кандидата, retriever E20 top-1 |
| Compromises | без publish→rollback→reinstall loop на Windows (proven on Mac + unit contracts); retention inventory не писался; §5 остаётся OPEN; gracekelly-mixed unfit as candidate |
| Docs | analysis docs/operations/2026-08-18-test-failure-analysis.md; runbook index-dim-windows-activation.md обновлён; _NEXT_SESSION.md → pointer на Update-209 |
0B5. Update-208 dpkg/PostgreSQL green, Windows lock still red — исторический факт (superseded by Update-209)
| Поле | Зафиксированный факт |
|---|---|
| Authorization | Owner authorized repair of the confirmed interrupted Ubuntu dpkg/Python state and continuation of PostgreSQL setup plus the normal default lock probe. |
| Implementation executor | local_grok_cli; actual model grok-4.6-build; run id rag-dpkg-postgres-lock-20260814-01; stderr empty. |
| dpkg repair (green) | Initial dpkg --configure -a and a limited reinstall exposed an exact Python version dependency mismatch. Simulated apt-get --fix-broken install proposed 7 upgrades, 0 new, 0 remove, no downgrade. Actual bounded fix completed exit 0. Final dpkg --configure -a exit 0; dpkg --audit empty; apt-get check exit 0. Codex independently confirmed audit/check green. No removal, purge, force flags, direct dpkg database edit, or lock-file deletion. |
| PostgreSQL (green, WSL-internal) | Ubuntu PostgreSQL 14.23 installed via postgresql + postgresql-contrib; cluster 14/main online on 5432. Unix socket and WSL 127.0.0.1:5432 accept connections. Codex independently confirmed pg_lsclusters and both pg_isready checks. Package-default local bind/auth unchanged. Only the previously missing checked-in local-dev fallback role/database were created; role login and database ownership verified. No migration or application table created. |
| Immediate Windows stop | Grok Windows login attempts were refused; the implementation run stopped without a lock probe. |
| Codex TCP note | Later Codex Test-NetConnection localhost:5432 reported overall True while warning that IPv6 ::1 failed. That created a boundary for one QA follow-up. |
| Consumed QA follow-up | local_grok_cli; actual model grok-4.6-build; run id rag-postgres-lock-followup-20260814-01; stderr empty. Created only .grok-prompts/postgres-lock-probe-20260814.py and ran it once. |
| Lock probe (red) | Grok probe exit 1: first_acquired=false, token_invalidated=false, second_acquired=false, released=false, error type TenantIndexLockUnavailable. Codex inspected the correct production-API probe and independently ran it once with the identical false JSON/error. One redacted Codex diagnostic classified the cause as connection_refused, root type OperationalError; no DSN/password or exception text was emitted. |
| Untouched | Docker, Docker VHDX, ACLs, firewall, port proxy, PostgreSQL listen/auth, .env, index data, snapshot, manifest, retention registry, migrations, providers, push, deploy. No tracked product/test/config change; four protected SHA-256 values unchanged. The single QA follow-up is consumed; no further retry or network/config mutation. |
Граница разрешений: the consumed owner authorization covers the completed dpkg repair, WSL-internal PostgreSQL install/readiness, and the one QA lock follow-up. It is not reusable for another lock probe, package work, listen/auth change, firewall or port-proxy work, WSL shutdown/restart, DSN change, Docker-VHD mutation, index mutation, migrations, push, deploy, or paid-provider execution.
Следующий порядок:
- Обновить Actual Git и защитить четыре owner-dirty файла.
- Не повторять lock probes и не повторять package work.
- Ждать fresh owner authorization на bounded WSL localhost-forwarding/relay recovery decision. PostgreSQL listen/auth, firewall, port-proxy, WSL shutdown/restart и DSN changes не implied authorized; точная recovery-последовательность не верифицирована.
- Только после зелёного Windows production acquire/release штатного
defaultlock повторить существующий read-only INDEX-DIM preflight. Snapshot/copy/publish остаются более поздними mutation gates.
| Поле | Зафиксированный факт |
|---|---|
| Authorization | Owner authorized local PostgreSQL install/config in Ubuntu-22.04 plus the normal default acquire/release probe. Repair of unrelated pre-existing packages was not included. |
| Executor | local_grok_cli; actual model grok-4.6-build; run id rag-postgres-lock-20260814-01; stderr empty. |
apt-get update |
WSL root, exit 0. Ubuntu package lists refreshed. Only known runtime/system mutation in the install slice. |
| First install | Noninteractive postgresql + postgresql-contrib exited 1 immediately: dpkg had been interrupted; dpkg --configure -a must be run. |
| Diagnosis | One narrowed Grok dpkg --audit, then independent Codex dpkg --audit only. Confirmed: libpython3.10-dev:amd64 serious broken state / must reinstall; python3.10-dev unpacked but not configured; man-db pending trigger processing. Unrelated to PostgreSQL. |
| Stop boundary | No dpkg --configure -a, reinstall, fix-broken, package removal, or unrelated-package mutation. No raw install retry. |
| PostgreSQL / lock | Packages not installed; no service/cluster started; no role/database created or altered; no fallback login; no tenant_index_lock("default") probe; probe file not created. |
| Untouched | Docker, Docker VHDX, ACLs, firewall/network/port proxy, .env, index data, snapshot, manifest, retention registry, migrations, providers, push, deploy. No new tracked source/test/config change; four protected SHA-256 values unchanged. |
Граница разрешений (историческая): that consumed owner authorization covered only the attempted PostgreSQL install/config and the normal lock probe. It was not repair authority for the pre-existing dpkg state.
Исторический порядок Update-207 (superseded): owner later authorized repair of the interrupted dpkg/Python state and continuation of PostgreSQL setup/lock probe. Update-208 records that repair and WSL-internal PostgreSQL as green, while the Windows production lock gate remains red. Do not wait again for dpkg repair and do not repeat the same install or lock probe.
| Поле | Зафиксированный факт |
|---|---|
| WSL | Ordinary Ubuntu-22.04 attach already green; prior uname -r was 5.15.167.4-microsoft-standard-WSL2. This slice did not repeat attach or binary-path probes. |
| Binaries/paths (attempt 2) | psql --version unresolved; /usr/bin/psql, /usr/lib/postgresql, and /etc/postgresql absent; which postgres produced no path. |
| Direct package checks (this slice) | dpkg --status for postgresql-common, postgresql, postgresql-14, postgresql-15, and postgresql-16 each exited 1: package is not installed and no information is available. |
| Server/cluster | Absent. No installed PostgreSQL server or cluster was established. |
| Lock probe | Not attempted. Package installation is outside this slice. |
| Mutation | None. No runtime, repository, index, package, service, Docker VHDX, .env, or protected-file change. Only the three allowed status docs were edited. |
Граница разрешений: Update-204 UAC/owner approval remains consumed and is not reusable. This inventory does not authorize package installation, service configuration, Docker-VHD mutation, index mutation, migrations, push, deploy, or paid-provider execution.
Исторический порядок Update-206 (superseded): owner later authorized the local Ubuntu PostgreSQL install/config slice. Update-207 consumed that authorization and stopped on the unrelated dpkg blocker. Update-208 then recorded dpkg repair plus WSL-internal PostgreSQL as green, while the Windows production lock gate remains red. Do not wait again for the inventory-era install choice.
- Обновить Actual Git и защитить четыре owner-dirty файла.
- Не повторять owner/UAC тест и не повторять package listing.
- Ждать явный выбор владельца: либо отдельный atomic slice на
установку/конфигурацию локального Ubuntu PostgreSQL, либо отдельно
авторизованный достижимый non-production
DATABASE_URL. - Только после зелёного acquire/release штатного
defaultlock повторить существующий read-only INDEX-DIM preflight. Snapshot/copy/publish остаются более поздними mutation gates.
| Поле | Зафиксированный факт |
|---|---|
| Причина | Ubuntu data VHD не подключался: Wsl/Service/CreateInstance/MountVhd/HCS/E_ACCESSDENIED. Системный и swap VHD создавались успешно, поэтому диагностика была сужена до Ubuntu VHD. |
| Разрешение пользователя | Пользователь явно разрешил один повтор elevated owner correction после предупреждения о UAC. Это разрешение применено только к указанному ниже Ubuntu VHD. |
| Единственная elevated-мутация | icacls "D:\WSL\Ubuntu-22.04\ext4.vhdx" /setowner "JULIADEV25\uedom" через RunAs; UAC подтверждён, icacls завершился с exit code 0. |
| Независимая owner-проверка | Get-Acl вернул JULIADEV25\uedom. Исходное значение было BUILTIN\Administrators. ACL не расширялись. |
| Проверка исходного симптома | wsl.exe -d Ubuntu-22.04 -e sh -lc "printf 'WSL_OK\n'; uname -r" завершился с exit code 0; вывод: WSL_OK и 5.15.167.4-microsoft-standard-WSL2. |
| Вывод | Owner-гипотеза подтверждена для этого состояния: обычный Ubuntu attach восстановлен. Повторять UAC/owner эксперимент без нового противоречащего состояния нельзя. |
| Что не менялось | Docker VHDX, Docker Desktop, PostgreSQL, проектный код, рабочий Windows Chroma, canonical staging, snapshot, manifest/retention registries и миграции не затрагивались. Push и deploy не выполнялись. |
| Durable evidence | 8a4a8e0 — docs(index): record restored Ubuntu attach; подробный текущий runbook: index-dim-windows-activation.md. |
Граница разрешений: прошлое подтверждение UAC не является бессрочным «разрешено всё». Inventory из Update-206 уже выполнен: сервер/кластер отсутствовал. Update-207 later consumed a separate install authorization and stopped on an unrelated dpkg blocker. Update-208 later recorded dpkg repair and WSL-internal PostgreSQL as green. Для ACL broadening, Docker-VHD mutation, index mutation, migrations 019–023, push, deploy, live multi-service и paid-provider execution нельзя выводить разрешение из Update-204.
Исторический порядок Update-204 (superseded): read-only PostgreSQL inventory выполнен в Update-206; install attempt recorded in Update-207; dpkg repair and WSL-internal PostgreSQL recorded in Update-208. Текущий gate — fresh owner authorization for a bounded WSL localhost-forwarding/relay recovery decision, зафиксированный в секции 0B выше.
| Факт | Значение |
|---|---|
| Latest committed implementation | 0cba9d1 — read-only Windows activation preflight; first-publish rollback bootstrap remains 1aa9f19, runtime dimension guard remains d157b31 |
| Latest committed QG evidence | 5f8bb78 — exact retained five-document E30 grading replay |
| Prior implementations (recent) | d865b06 9.5d2 PipelineRunner sync · aefcf20 9.5d1 PipelineRunner capacity · 890155a 9.5c2 ingestion worker · 84fbdf7 9.5c1 ingestion API · 03057aa 9.5b escalation · 9c207b6 9.5a tracing · 344e174 9.2f · 5a2f696 9.2e · 9817e89 9.2d · 64f40b3 9.2c · 356a530 VER-06 · 11e52f1 9.2b · 3fe6d6f 9.2a · 4b0fba7 VER-05 · 893efe3 9.1c |
| Latest committed test contract | 0cba9d1 — exact source/evidence/target/snapshot preflight; 1aa9f19 still preserves legacy rollback and d157b31 still enforces the stored/declared width guard |
| Latest committed docs before this Update | fb9e74e before this docs-only closeout |
| This Update docs identity | Resolve with Actual Git (git log -1 --oneline -- AGENT_STATE.md docs/SESSION_HANDOFF.md index-dim-windows-activation.md); never add a follow-up only to embed this file's self-SHA |
| Branch advisory | observed HEAD fb9e74e2c05a6af5884c821f7b6c3dd41808862b before this docs-only closeout, ahead of origin by 345 — refresh mandatory; no push authorization |
| Active writer / WIP | active delegated writer none; implementation/test WIP none; ignored control/test artifacts remain local; Update-208 owns only AGENT_STATE.md, this handoff, and index-dim-windows-activation.md |
| Locally complete (documented scopes) | isolated INDEX-DIM Mac artifact/lifecycle proof + INDEX-DIM runtime guard d157b31 + rollback bootstrap 1aa9f19 + GraceKelly artifact containment 63aa5df + generation-provider fail-closed dbd2b28 + TestClient backend e400d88; 2.1–2.6g + 3.1a–3.1i + 4.1–4.8 + 5.1–5.7 + 6.1–6.7 + 7.1–7.8 + 8.1–8.5 + 9.1a–9.1c + 9.2a–9.2f telemetry + 9.3a dashboard + 9.4a Astro 7 / DEP-01 + 9.5a–9.5d3 completed owner slices + QG-01–QG-04 + HYBRID-MEM env propagation + VER-02/03/04/05/06/07 |
| Off-plan local capability | OpenCode Zen opencode-zen-free @ faaa815; no plan checkbox closed |
| Full plan §1–§10 / production | NOT complete / NOT claimed |
| Plan status | ACTIVE |
| Next ordered | INDEX-DIM activation is tenant-lock-blocked before snapshot: dpkg repair and WSL-internal PostgreSQL 14.23 are green, but the Windows production-API lock probe failed (TenantIndexLockUnavailable / connection_refused). Do not repeat lock probes or package work. Next is fresh owner authorization for a bounded WSL localhost-forwarding/relay recovery decision; listen/auth, firewall, port-proxy, WSL shutdown/restart, and DSN changes are not implied authorized, and no exact recovery sequence is claimed verified. |
| Gates | Do not repeat lock probes or package work. Do not change PostgreSQL listen/auth, firewall, port-proxy, WSL shutdown/restart, or DSN without fresh explicit opt-in for a bounded forwarding/relay decision. No ACL broadening, Docker-VHD mutation, push / deploy / live multi-service / further paid provider·quality execute / migrate 019–023 without fresh explicit opt-in |
| Migrations on disk | 019–023 (not applied here) |
Update-176 adds bounded formal §7.6 evidence: one direct-Mistral seed-43
case completed with 1/1 effective case, zero infrastructure failures, complete
Section 5 metrics, and authoritative child evidence_valid=true /
release_passed=true. Both sides passed warranty-no-receipt-where; total
reported provider cost was $0.000199. This is one-case route/gate acceptance,
not scheduled breadth, independent-judge, quality ×3, or whole-release proof.
No migration, deploy, push, DB persistence, or product-code change occurred.
Ignored local evidence: reports/regression/20260812T084811Z-ministral-3b-latest-vs-mistral-small-latest.{json,md}
and reports/regression/live-provider-gate-result-2026-08-12-seed43-one-case.json.
| Question | Durable answer |
|---|---|
| What is the current docs baseline? | fb9e74e before Update-208; Actual Git must override the embedded SHA after commit. |
| Is an owned writer/test still running? | No related writer/test is active. Docker Desktop is not running. WSL PostgreSQL cluster 14/main is online internally; that is not a green Windows lock. |
| Is the memory guard active? | Last durable verification recorded PythonMemoryGuard as Running, with a 1024 MiB / 10-second contract. Update-197 did not recheck it; verify current scheduler state before relying on it. |
| What does §5 prove? | The post-QG vector-only seed 42 is valid live evidence but FAILS quality: 25% candidate vs 90% baseline, 13 regressions. Seeds 43–44 and passing ×3 evidence do not exist. |
| What does local artifact containment prove? | Retained output classification found 12 timestamp-only and 6 prompt-echo candidate answers. 63aa5df rejects those shapes; dbd2b28 routes the resulting provider outage human/not_verified without automatic ticket registration. No live recovery is inferred. |
| What does §7.6 prove? | One direct-Mistral seed-43 case passed with valid complete child evidence. It proves the bounded route/gate attempt only, not scheduled breadth, independent judge, §5 ×3, or whole release. |
| What does hybrid prove? | Default production reranker exceeded 1 GiB and was killed before retrieval/provider execution. Hybrid quality remains unknown; raw local retry is forbidden. |
| What is the full local Python gate? | Python 3.13 CI-shaped unit+coverage is local-green: 1851 passed / 4 skipped, coverage 77.04% ≥ 72%. VER-01 retained Windows Python 3.11 MyPy command 1 is green across 72 sources and command 2 is green across 31 sources. Ubuntu/full 222-package-lock CI and release gates remain open. |
| What is preauthorized next? | Nothing on the lock path. The dpkg-repair/PostgreSQL-setup authorization and the single QA lock follow-up are consumed. Windows production lock remains red (TenantIndexLockUnavailable / connection_refused). Wait for fresh owner authorization for a bounded WSL localhost-forwarding/relay recovery decision; do not treat a recovery command sequence as already verified. Do not repeat lock probes or package work. Docker VHDX, ACL broadening, lock bypass, listen/auth/firewall/port-proxy/WSL-restart/DSN mutation, push, deploy, paid provider calls, migrations 019–023, production claims, and destructive deletion remain unauthorized. |
| Item | Durable value | Interpretation |
|---|---|---|
| SSH route | deproject-mac |
Read-only inspection is safe; mutation still requires a named target slice |
| Build checkout | /Users/julia/RAG_Support_Assistant-index-rebuild-20260813 at 7ed9cd3 |
This is the exact code checkout used for the rebuild; later Windows commits are docs-only |
| Imported Windows copy | /Users/julia/RAG_Support_Assistant-index-rebuild-20260813/.runtime/windows-chroma |
56 MiB observed; isolated copy only, not the Windows working directory |
| Evidence JSON | /Users/julia/RAG_Support_Assistant-index-rebuild-20260813/.runtime/index-dim-rebuild-result.json |
SHA-256 c49feed5812cc44987b4478f0737d99c075f350b8ba66fb8ebba3e70df86a382 |
| Candidate | rag_docs-v-default-3f2b79fbe1246ab3, 3 vectors × 1024 |
Final isolated manifest generation 3 points here; previous is legacy rag_docs_default |
| Primary Mac corpus | /Users/julia/RAG_Support_Assistant/data/vectordb/chroma |
Not mutated; last inspected rag_docs_default was 5589 × 1024 |
| Windows working corpus | D:\RAG_Support_Assistant\data\vectordb\chroma |
Not replaced; captured legacy baseline was rag_docs_default, 6 × 3 |
| Canonical Windows staging | .tmp/index-dim-windows-chroma-source-20260813 |
Restored from Mac; 631 files / 56,309,636 bytes / SHA 1ce875318d2d4c903a684e7d1dd6326d4dd4366b0e131c6c8418fd9e94835b96; fingerprint only, never open directly with Chroma |
| Quarantined opened copy | .tmp/index-dim-windows-chroma-source-opened-20260813 |
Preserved diagnostic artifact; PersistentClient changed its bytes, so it is not an activation source |
| Windows rollback paths | .tmp/index-dim-windows-target-snapshot-before-activation; data/vectordb/index-manifests; data/vectordb/index-retention |
All absent after Update-199; unexpected presence is a stop condition, not permission to overwrite |
| Lock dependency | PostgreSQL advisory lock through the configured DATABASE_URL |
Required before snapshot/copy/publish; Ubuntu attach is green; dpkg repaired; WSL PostgreSQL 14.23 cluster 14/main is online and internally reachable on unix socket plus 127.0.0.1:5432; Windows production-API probe failed with TenantIndexLockUnavailable / connection_refused; do not repeat lock probes or package work |
| Temporary resources | /tmp/mistral-key-20260813 absent; WSL PostgreSQL 5432 listening internally; Windows localhost relay still refuses the production connection; Docker Desktop stopped |
No credential file or Docker daemon was left active. The WSL cluster remains the local lock backend; it is not a proven Windows lock. |
The next session must not rebuild or raw-retry WSL/Docker merely to rediscover this state. Start with Actual Git and this table. If activation is explicitly selected, verify the artifact hash, snapshot the exact target, import without deleting the retained corpus, run dimension/content/E20 smoke checks, and keep a tested rollback. Otherwise select a different documented residual and leave both corpora alone.
This is routing and acceptance documentation, not standing authority to mutate the index. Execute it only when the latest user request selects the local activation slice.
- Refresh Actual Git and confirm only the four protected owner files are dirty.
- Confirm no project Python/uvicorn/Celery process has the Windows Chroma tree open. Confirm Docker/PostgreSQL state instead of assuming it.
- Do not repeat the green Ubuntu attach, the completed package inventory,
the completed dpkg repair, the completed WSL-internal PostgreSQL
install/readiness checks, or the consumed Windows lock probe. The lock
gate is blocked by Windows production connection refusal, not package
health or WSL-internal PostgreSQL. Wait for fresh owner authorization
for a bounded WSL localhost-forwarding/relay recovery decision.
PostgreSQL listen/auth, firewall, port-proxy, WSL shutdown/restart, and
DSN changes are not implied authorized; the exact recovery sequence is
not already verified. Only after a green Windows production
acquire/release of the
defaultlock may activation continue. This is a connectivity probe only; do not create a manifest manually or construct a lock token outside that context. Do not repeat lock probes or package work. - Run the exact preflight from the activation plan. Require canonical source
SHA
1ce875318d2d4c903a684e7d1dd6326d4dd4366b0e131c6c8418fd9e94835b96, target SHA5c9eff00707d725a06c1a4f442833e675525d888d4d200f85049d9a77963842e, evidence SHAc49feed5812cc44987b4478f0737d99c075f350b8ba66fb8ebba3e70df86a382,ready=true,mutation_performed=false, and an absent snapshot path. - Acquire the
defaulttenant lock again and hold it continuously through steps 6–10. After acquisition, recheck the target fingerprint, absent snapshot/sidecar state, and absence of another runtime before mutating. - Move/copy the complete original target to the named snapshot and verify its
full fingerprint before installing anything. Copy from canonical staging
without opening canonical staging through
PersistentClient. - Validate the installed target before publication: candidate count
3, dimension1024, exact three source documents, E20 content, anderrors_e10_e30.mdas E20 top-1. No provider call is needed. Then record retention and publish through existing lock-guarded APIs; first Windows publication must produce generation 1 with previousrag_docs_default. - Accept the active candidate, then use the existing rollback API. Require
generation 2 with active
rag_docs_defaultand previous candidate before restoring the Chroma snapshot. - Preserve the candidate tree in the named hold path, restore the verified
target snapshot, and recheck its exact fingerprint. Move the restored target
back to the snapshot path, reinstall the preserved candidate tree, validate
it again, and publish it as generation 3 with previous
rag_docs_default. - Repeat active candidate acceptance, then release the tenant lock. Retain the verified snapshot until final reporting explicitly decides its fate.
- On any failed hash, lock, snapshot, manifest, dimension, content, E20, or restore check: stop, preserve evidence, return the manifest to a compatible legacy target before restoring the verified snapshot, and do not delete either retained collection.
Completion requires both a verified rollback proof and final manifest
generation 3 active on rag_docs-v-default-3f2b79fbe1246ab3 at 3 × 1024,
with previous rag_docs_default. Snapshot retention/removal and sidecar state
must be reported explicitly. The detailed contract and forbidden shortcuts are
in index-dim-windows-activation.md.
Update-193 implementation evidence: d157b31 adds a read-only one-vector
active Chroma preflight at the tenant-runtime boundary, declares built-in
embedder widths, validates remote response width, and defers/clears all four
tenant caches on compatibility failure. The exact missing-guard and stale
matching-index-key cache cases were each proved red before their corrections.
The independent final gate passed 36 tests, scoped Ruff, and
git diff --check. No provider call, active-index/manifest mutation,
rebuild/publication, migration, push, deploy, or live-quality replay occurred.
Update-191 implementation evidence: d4583cc adds precise shared agentic
terminal payload contracts and declares the two observability keys already
emitted into GraphState. Exact MyPy command 1 moved from 8 errors to
Success across 72 sources; exact command 2 is freshly Success across 31
sources. Codex passed 32 focused runtime tests plus scoped Ruff/diff/LF/hash
checks. The first Grok run was actual grok-4.5-build but cancelled before
source reads; the follow-up wrote the scoped diff but was budget-stopped with
empty logs, so its model/tests are unclaimed. Exact Ubuntu/full-lock CI remains
unproved.
Update-190 implementation evidence: acc76ee changes read-only
status_for_claims from invariant list[Mapping[str, Any]] to covariant
Sequence[Mapping[str, Any]]. Exact MyPy command 1 moved from 9 to 8
errors across 72 sources; the claims arg-type error is absent and all
remaining errors are agentic TypedDict expansions. Grok (grok-4.5-build)
passed 26 focused tests; Codex independently passed 3 caller tests plus scoped
Ruff/diff/LF/protected hashes. Command 1 remains red and Linux/full-lock CI is
unproved.
Update-189 implementation evidence: 25455f5 narrows both
finalize_grade_state results to GraphState at their graph boundary and
removes three obsolete adjacent ignores. Exact MyPy command 1 moved from 10
to 9 errors across the same 72 sources; the assignment error is absent while
the claims-invariance and eight agentic expansions remain open. The successful
Grok follow-up (grok-4.5-build) passed 11 focused tests; Codex independently
passed 3 representative tests plus scoped Ruff/diff/LF/protected hashes.
Command 1 remains red and Linux/full-lock CI is unproved.
Update-188 implementation evidence: 02df975 replaces the imprecise
heterogeneous escalation dict annotation with a fixed-key _EscalationPayload
TypedDict. Exact MyPy command 1 moved from 11 to 10 errors across the
same 72 sources; the nullable delivery_state error is absent while the three
other finding groups remain open. Grok (grok-4.5-build) and Codex each
observed the delta and 6 focused tests passed; scoped Ruff/diff/LF and
protected hashes are clean. Command 1 remains red and Linux/full-lock CI is
unproved.
Update-187 implementation evidence: 370a429 closes only the three
remaining strict findings in api/app.py. Exact MyPy command 2 moved from
3 errors in 1 file to Success across 31 sources; three independent key
runtime tests and scoped Ruff/diff/LF/protected-hash checks passed. The Grok
writer left the exact diff but was budget-cancelled before final JSON, so its
actual model and self-reported tests remain unclaimed. Command 1 retains the
previously measured 11 agent/graph.py errors; Linux/full-lock CI remains
unproved.
Update-186 implementation evidence: fbebe5e removed only the legacy
annotations on suggested_questions = [] and graph_result = None. Exact
command 2 changed from 5 errors in 2 files to 3 errors in api/app.py; the
whole command remains red. Grok passed 19 focused streaming tests, Codex passed
11 independent key tests, and scoped Ruff/diff/LF checks are clean.
Ignored VER-01 v2 diagnostic artifacts — preserve and reuse:
| Artifact | SHA-256 | Proven scope |
|---|---|---|
.tmp/ver01-typecheck-direct-v2.txt |
32E4F08B69C5B7810CE97410A1FFBD8F83D7B31717111ABDF0D7FB763E21F043 |
direct production inputs + five exact toolchain pins |
.tmp/ver01-typecheck-direct-v2.lock |
5C310940C564128B6227C695187665ED733A3A6B95503C327A6D435A660751EB |
compile exit 0; 54 entries; GPU 0; 54/54 versions equal dev lock |
Their presence proves lock construction only. It does not prove installation, MyPy execution, CI, or release status.
Update-185 execution evidence: the retained lock installed successfully in
.tmp/ver01-py311-light-v2 with Python 3.11.13 and MyPy 1.19.1. Exact command
1 reported 11 errors in agent/graph.py after checking 72 sources; exact
command 2 reported 5 errors in api/routers/conversation.py and api/app.py
after checking 31 sources. Codex reproduced both sets. This closes the local
diagnostic question as type-red; it does not turn the artifact into a committed
CI lock or prove Ubuntu/full-lock behavior.
Ignored evidence inventory — preserve; do not regenerate merely to verify:
| Artifact | Bytes | SHA-256 | Authority |
|---|---|---|---|
reports/regression/20260812T084811Z-ministral-3b-latest-vs-mistral-small-latest.json |
7,838 | 3E766339F20F9D73E0F09A72951E3A646A8562BF54EC2DB5C6FF589D52277A23 |
authoritative child report |
reports/regression/20260812T084811Z-ministral-3b-latest-vs-mistral-small-latest.md |
1,193 | B9CF2B57CE6BC77E2655B4833B0120D453DE22F0298C4E378795E03692F0B98E |
human-readable child report |
reports/regression/live-provider-gate-result-2026-08-12-seed43-one-case.json |
1,299 | C48F380EBA8097B0A4D4423CC909A75DD02F44AFA29BC240757FD1DFC4576C3E |
wrapper metadata; intentionally not verdict authority |
reports/regression/20260812T093713Z-ministral-3b-latest-vs-gracekelly-mixed.json |
131,183 | EA3C7DAF64C705C30CC7616867F0FDAC9D1BC6FA96EEC6CD89318CBEE74817BB |
authoritative post-QG seed-42 child report; valid quality FAIL |
reports/regression/20260812T093713Z-ministral-3b-latest-vs-gracekelly-mixed.md |
13,818 | 513994A27525F2C7F831901630C4CEC382BD12C12492AA8069BE7A3220A00974 |
human-readable post-QG child report |
reports/regression/live-quality-metrics-gate-result-2026-08-12-post-qg.json |
2,741 | F8185BE6E799362C93146B12BD7A35205404F58E6AB958569F5EBFE01A9FA4CF |
outer fail-fast metadata; seeds 43–44 not executed |
These files are ignored by repository policy. Their absence in git status
does not mean evidence is missing; verify existence and hash before relying on
them. If a file is absent or its hash differs, report the gap and do not rerun
the paid call automatically.
Last known verification:
| Slice | Last known gate |
|---|---|
| INDEX-DIM guard | d157b31: exact missing-guard red reached forbidden chunk restore; stale matching-key cache red retained chunks; final independent vector-manager/remote/base-manager band 36 passed; scoped Ruff and git diff --check clean; zero real provider calls and zero index/manifest mutations |
| GraceKelly artifact guard | 63aa5df: focused TDD 3 failed → 17 passed; independent provider/failover band 28 passed; scoped Ruff/MyPy/diff clean; no live call |
| Generation-provider fail-closed | dbd2b28: focused TDD 1 failed → 1 passed; missing safety → response_safety mapping separately reproduced red and corrected once; final graph/provider-safety band 31 passed; scoped Ruff/narrowed MyPy/diff clean; no live call |
| §5 post-QG live quality | run 20260812T093713Z-6121aab5: 20/20 effective, zero infrastructure failures, complete metrics, authoritative child evidence valid / release FAIL; candidate 25% vs baseline 90%, 13 regressions, 0 new passes; outer fail-fast stopped seeds 43–44 |
| 7.6 bounded live provider | run 20260812T084811Z-b195b7a9: direct Mistral, seed 43, one case; 1/1 effective, zero infrastructure failures, Section 5 complete, authoritative child evidence/release PASS; both sides refusal rate 1.0, so no breadth/quality/whole-release claim |
| VER-03 Python 3.13 unit+coverage gate | LOCAL-CLOSED: fresh CI-shaped run passes 1851 tests / 4 skipped / 187 warnings in 753.44s at 77.04% coverage (threshold 72%); no locked Python 3.11, integration/live, or production claim |
| 9.5d3 PipelineRunner streaming execution/deadline owner | Grok TDD transcript 2 failed → 6 passed, first focused band 32 passed; QA follow-up added event-worker and exception-fallback ownership; Codex independent owner/provider-token stream band 7 passed; Ruff/format/scoped MyPy/diff/LF/protected hashes green |
| 9.5d2 PipelineRunner sync execution/deadline owner | ownership 2 failed / 2 passed → 4 passed; owner/concurrency/request-timeout/stream-capacity/chat-streaming band 22 passed; Ruff/format/scoped MyPy/diff/LF/protected hashes green |
| 9.5d1 PipelineRunner capacity lifecycle owner | ownership 2 failed → 2 passed; pipeline concurrency/stream-capacity/request-timeout/chat-streaming band 20 passed; Ruff/narrowed MyPy/format/diff/LF/protected hashes green |
| 9.5c2 IngestionJobService worker owner | ownership 1 failed → 1 passed; job-contract/liveness/worker/outage/duplicate-claim band 111 passed; Ruff/narrowed MyPy/format/signature/diff/LF/protected hashes green |
| 9.5c1 IngestionJobService API owner | ownership 1 failed → 1 passed; job-contract/upload-idempotency band 73 passed; scoped static and boundary gates green |
| 9.5b EscalationService lifecycle owner | ownership 1 failed → 1 passed; focused escalation band 32 passed; scoped static and boundary gates green |
| VER-07 retention audit tenant contract | exact stale assertion 1 failed → 1 passed; adjacent trace-retention/audit-retention/audit-tenant/tenant-enforcement band 22 passed; Ruff lint + diff/LF + runtime-diff + protected hashes clean; whole-file formatter debt reproduces on clean HEAD |
| 9.5a TraceService lifecycle owner | TDD import error → 3 passed; adjacent 34 passed / 1 pre-existing failed; narrowed 34 passed / 1 deselected; final 13 passed; scoped Ruff/format + narrowed MyPy + diff/LF + protected hashes clean |
| 9.4a Astro 7 / DEP-01 | independent pytest 5 passed, one known warning; Astro check 0/0/0; npm audit 0 vulnerabilities; static build 59 pages + Pagefind + sitemap; scoped diff/LF + protected hashes clean |
| Update-156 transparency | docs-only Actual Git/Grok/artifact reconciliation; docs quality gate only; no implementation test rerun or new implementation/release claim |
| 9.3a Grafana dashboard artifact | Grok TDD 7 failed → 7 passed; QA semantic threshold check 1 failed / 6 passed → 7 passed; independent 7 passed, one known warning; scoped Ruff + JSON parse + cached diff/LF + protected hashes clean; no live Grafana/import/scrape/alert-delivery evidence |
| Update-154 transparency | docs-only reconciliation against Actual Git; no implementation file changed, no project suite rerun, and no new implementation or release claim |
| 9.2f tenant-denied telemetry | focused TDD 5 failed → 5 passed; independent tenant/session/agent/KB/metrics/alerts band first rejected a zero-duration alert, then passed 54 tests after one narrowed correction, one known warning; scoped Ruff + six-source narrowed MyPy + diff/LF clean; ordinary MyPy retains four pre-existing api/app.py errors outside changed lines; formatter debt remains outside added lines; no live scrape/alert delivery |
| 9.2e orphan-work telemetry | focused TDD 5 failed → 5 passed; independent pipeline/stream/metrics/alerts/timeout band initially exposed test-isolation leakage, then passed 37 tests after one narrowed correction, one known warning; scoped Ruff + narrowed metrics MyPy + diff/LF clean; ordinary two-source MyPy retains two pre-existing no-redef errors outside changed lines; formatter debt remains only outside added lines; no live scrape/alert delivery |
| 9.2d safety-block telemetry | focused TDD 5 failed → 5 passed; full response-safety/metrics/alerts/unverified-auto band 35 passed, one known warning; post-format focused gate 5 passed; scoped Ruff + two-source MyPy + diff/LF clean; formatter debt remains only outside added lines; no live scrape/alert delivery |
| 9.2c escalation-delivery telemetry | Grok focused TDD 8 failed → 8 passed after one narrowed test-fixture correction; independent four-file band 33 passed, one known warning; scoped Ruff + two-source MyPy + diff/LF clean; whole-file formatter debt remains only outside added lines; no live scrape/alert delivery |
| Update-149 docs reconciliation | docs quality 13 passed, one known warning; scoped diff/LF clean; no project tests rerun and no new implementation claim |
| VER-06 agentic safety mock contract | exact stale test 1 failed → 1 passed; independent response-safety/agentic/auto-telemetry band 44 passed, one known warning; scoped Ruff + diff/LF clean; whole-file formatter debt reproduces on HEAD and remains outside scope |
| 9.2b unverified auto-rate telemetry | focused TDD 4 failed / 5 passed → 9 passed; independent band 60 passed / 1 failed, exact failure reproduced alone as pre-existing VER-06; one narrowed rerun 60 passed, 1 deselected, one known warning; scoped Ruff + new-file format + narrowed two-source MyPy + diff/LF clean |
| 9.2a index lifecycle failure telemetry | focused TDD 10 failed / 2 passed → 12 passed; final lifecycle/metrics/alert band 75 passed, 61 deselected, one known warning; docs 13 passed; scoped Ruff + narrowed two-source MyPy + diff/LF clean; pre-existing whole-file format debt remains |
| VER-05 retention caller contract | stale assertion red 1 failed with exact admin caller → independent retention/admin band 51 passed, 62 deselected, one known warning; scoped Ruff + diff clean; whole-file format debt reproduces on clean HEAD and remains outside scope |
| 9.1c versioned cache namespace | HTTP settings-source regression 2 failed → 2 passed; final namespace/HTTP-cache/Redis/manifest band 40 passed with two known warnings; Ruff + changed-range format + narrowed MyPy + diff clean; no live Redis/provider/index mutation |
| 9.1b Redis reconnect backoff | recovery red 2 failed → green 2 passed; focused Redis file 9 passed; final Redis/cache band 15 passed with two known warnings; Ruff check/format + scoped MyPy + diff clean; no live Redis |
| 9.1a bounded Redis fallback | TTL/cap red 2 failed → focused 2 passed; partial-delete-count red 1 failed → green 1 passed; final Redis/cache band 13 passed with two known deprecation warnings; Ruff check/format + scoped MyPy + diff clean; no live Redis |
| VER-02 lifecycle fault type debt | narrowed MyPy red 1 error → green 1 source; lifecycle/lock band 11 passed; Ruff clean; package vectordb MyPy 10 source files under --follow-imports=skip; no full/locked-CI claim |
| HYBRID-MEM | child-env propagation remains local-green; authorized default-hybrid smoke reached production reranker loading and was killed by the 1 GiB guard at 4044.1 MiB private / 801.4 MiB working set before retrieval/provider execution; no quality claim |
| QG-04 retained E30 replay | exact local five-document replay 1 passed; independent band 31 passed; post-QG live seed 42 still regressed on error-e30 |
| QG-03B contextual-header grading | TDD red 1 failed → focused green 1 passed; independent band 24 passed; post-QG live seed 42 did not recover the E20 candidate answer |
| QG-03A verifier-outage routing | Grok TDD red 1 failed → focused 6 passed + Ruff; independent verifier/grounding/citation/graph-error/judge/provider band 49 passed + Ruff + diff clean; ordinary local Mypy exposed 9 pre-existing typeddict-item errors outside changed lines, while the one narrowed run disabling only that code passed both changed source files; no locked/full-Mypy claim |
| QG-02 generation failure routing | TDD red 1 failed → green 1 passed; final focused 1 passed; independent provider graph/error/model-routing/judge band 31 passed; scoped Ruff + changed-file Mypy (--follow-imports=skip) + diff clean; full-import Mypy blocked by unlocked local NumPy stubs before project checking |
| QG-01 vector parent expansion | TDD red 2 failed / 9 passed → focused 11 passed; independent parent/base/reranker 34 passed; scoped Ruff + changed-file Mypy + diff clean; the former broader vectordb debt was closed separately by 3a37fd2 |
| Native §5 post-QG live quality | seed 42: 20/20 effective, infrastructure failures 0, child evidence valid, gate FAIL; candidate 25%, baseline 90%, minimum 85%, regressions 13, new passes 0; fail-fast skipped seeds 43–44 |
| Lightweight GraceKelly/Sonnet 5 smoke | local 16 passed + Ruff/Mypy clean; live claude-sonnet-5 smoke PASS; SQLite row verified |
| OpenCode Zen | 155 provider/settings/workflow/Helm tests; Ruff + scoped Mypy + Helm render + diff clean |
| 5.7 | independent regression + quality band 83 passed; Ruff + scoped diff clean |
| 5.6 | Grok focused 25 passed; independent quality + provider + workflow gate 46 passed; Ruff and scoped diff clean |
| 5.5 | 33 passed (quality-metrics + provider-gate + workflows); readiness SKIPPED_NO_OPT_IN; Ruff clean |
| 5.4 | 56 passed (relevance + agentic + grounding/judge); Ruff clean |
| 4.8 | 16 passed (provider tokens + node SSE + parity); Ruff clean |
| 4.7 | included in 4.8 band |
| 6.7 | 19 passed (calibration); seed readiness NOT_READY (synthetic) |
| 7.8 | Grok + independent Codex: 20 passed; curated floor 4; 76 unique cases |
| 7.7 | historical 8 passed (curated floor 3); 67 cases |
| 7.6 | 21 passed (live-gate + workflows) |
| 8.5 | 16 passed (widget + Playwright) |
| DEP-01 | npm audit high=0 |
Full suite / live multi-service / migrate / push / deploy were not run. One bounded formal provider case passed; scheduled breadth and independent judge did not run. The live quality gate remains the failing seed-42 attempt; live ×3 / release / production are not claimed.
Owner contract: use native GraceKelly paid access with exactly
claude-sonnet-5. Do not use or start Docker/WSL, and do not silently fall
back to sonar-2, Ollama, or another model. Keep this path independent of
PostgreSQL, Redis, Celery, and the heavy multi-service stack.
Committed in 99c6be5:
scripts/lightweight_gracekelly_smoke.pytests/test_lightweight_gracekelly_smoke.py
The script reads the existing Chroma collection rag_docs_default, performs
lightweight lexical ranking, makes one GraceKelly generation request, and
stores only a successful result in
.tmp/lightweight-gracekelly-smoke.sqlite3. The CLI default is
claude-sonnet-5; a provider failure must not create a PASS row.
Verification truth:
- The model-default test first failed because the code still selected
sonar-2, then passed after restoringclaude-sonnet-5. - The four non-subprocess tests passed in 0.79 s; the direct CLI + Chroma test passed separately in 5.86 s.
- The fresh focused smoke + provider gate passed 16 tests in 4.95 s using
an explicit writable
.tmpbasetemp; the slowest test was the direct CLI test at 4.36 s. The preceding failure was an access-denied error for the system pytest temp directory, not a product assertion failure. - Scoped Ruff passed; scoped Mypy reported no issues in the two committed files.
- A regression proves a provider exception creates no SQLite result DB or
PASSrow. The implementation and tests are committed as99c6be5.
Live evidence: the historical task
526243a3-84c5-4150-913e-70a2d21a2d29 exposed Playwright's post-click
navigation wait. GraceKelly commit 886b277 replaced that editor click with
Locator.focus(). One subsequent request through a temporary updated listener
selected exactly claude-sonnet-5 and returned PASS with source
returns_policy.md. SQLite contains the verified successful row timestamped
2026-08-09T15:03:21.124037+00:00.
D:\GraceKelly remains an external orchestrator boundary. A read-only
Update-129 refresh found commit 886b277, main...origin/main [ahead 1], and
unrelated untracked issues.md; nothing was pushed. The temporary listener
was stopped. Port 8011 is owned by PID 3048 running the pre-existing uvicorn
command, which was not restarted after 886b277; do not describe it as
serving the fix.
Next slice: none is selected. The lightweight smoke is committed and live acceptance is already green. Await an explicit owner priority for remaining gated work; do not repeat the paid request without new authorization/evidence.
Historical pre-QG attempt. Update-178 contains the current post-QG seed-42 replay and supersedes its quality numbers; this section remains chronology.
This is separate from the lightweight one-call smoke above. The owner
authorized a native live quality attempt without Docker or WSL. The requested
gate was baseline ministral-3b-latest versus candidate
gracekelly-mixed, 3 runs × 20 cases, seeds 42–44. PostgreSQL, Redis, Celery,
Ollama, and the heavy multi-service stack were not started.
Prepared native runtime:
- Remote Mistral embeddings used
mistral-embed; no secret value was logged. - The original active
data/vectordb/chroma/rag_docs_defaultcollection is dimension 3 and was left unchanged. - A compatible retained copy exists at
.tmp/live-quality-native-index-20260809/chroma, collectionrag_docs_default, 6 documents, dimension 1024. Its source was the existing collectionrag_eval_20260530t0835_default. - The updated external GraceKelly checkout was served temporarily from
D:\GraceKelly@886b277on127.0.0.1:8012. The pre-existing listener on8011was not restarted or modified.
Attempt chronology:
- The first run used the original dimension-3 active collection. The child
produced 20 infrastructure failures, 0 effective cases, and
vector store is not initialized. Evidence:live-quality-metrics-gate-result-native-2026-08-09.jsonand20260809T165258Z-ministral-3b-latest-vs-gracekelly-mixed.json. - The compatible index fixed initialization, but an empty
RAG_RERANKER_MODELenvironment value did not propagate to the Windows child. The resolved defaultBAAI/bge-reranker-v2-m3loaded and the child reached about 2.12 GiB. Only that verified regression child was stopped. The outer exit was4294967295; seelive-quality-metrics-gate-result-native-2026-08-09-retry.json. The installedPythonMemoryGuardscheduled task wasDisabled, so it did not enforce the documented 1 GiB limit. Do not repeat this hybrid command. - One narrowed retry set
RAG_RETRIEVAL_STRATEGY=vector, keeping remote embeddings and the compatible index while bypassing local hybrid/reranker components. Seed 42 completed after about 2 h 9 min and failed quality thresholds. Fail-fast correctly prevented seeds 43 and 44 from making more paid calls.
Interpretation boundary: the seed-42 evidence is authoritative for the executed vector-only retrieval configuration. It does not prove that the unexecuted default hybrid path would produce the same quality result; that path exceeded the local memory limit.
The long run was not a hard hang. A bounded sample showed the regression process responding with increasing CPU and stable memory around 427 MiB. It later exited and wrote both reports. The measured average latency explains the wall time: baseline 81,878.8 ms versus candidate 304,456.7 ms per case.
Authoritative seed-42 result:
| Measure | Result | Required | Status |
|---|---|---|---|
| Effective cases | 20/20 | >0 | valid |
| Infrastructure failures | 0 | 0 | pass |
| Candidate pass rate | 65% | ≥85% and ≥baseline 70% | fail |
| Regressions | 4 | ≤2 | fail |
| Context precision | 0.1499 | ≥0.63 | fail |
| Context recall | 0.65 | ≥0.97 | fail |
| Full rate | 0.60 | ≥0.97 | fail |
| Miss count | 6 | ≤1 | fail |
| Faithfulness | 0.30 | ≥0.90 | fail |
| Answer relevancy | 0.4855 | ≥0.92 | fail |
| Unverified auto rate | 0 | 0 | pass |
The candidate gained three new passes but introduced four regressions:
| Case | Observed candidate outcome |
|---|---|
error-e20-filter-or-pump |
returned escalation-registration fallback; omitted E20 and the requested components |
error-e20-hose-kink |
returned a generic internal-error answer; omitted E20, hose, and kink |
error-e30 |
claimed the KB lacked E30 guidance; omitted the required disconnect instruction |
warranty-receipt-storage |
claimed no exact retention period; omitted 12 months |
Do not collapse these into one assumed cause. The first two look like orchestration/fallback outcomes; the latter two look like missing or rejected retrieval context. Those are diagnostic hypotheses, not established root causes.
Evidence semantics and artifacts:
- The exact child sidecar
20260809T172531Z-ministral-3b-latest-vs-gracekelly-mixed.jsonhasevidence_valid=true, complete Section 5 metrics,exit_code=1, andrelease_passed=false. Its quality verdict is genuinely FAIL. - The outer report
live-quality-metrics-gate-result-native-2026-08-09-retry-vector.jsonhasLIVE_EXECUTED_FAILandevidence_valid=falsebecause only 1 of the required 3 runs completed. It is not a valid ×3 aggregate. - Therefore formal Section 5 live ×3 evidence remains open. Neither release nor production readiness is claimable.
Cleanup and current boundary: the regression child exited; the temporary
listener on 8012 was verified and stopped, and the port is closed. Port
8011 still belongs to the pre-existing PID 3048 and was untouched. The
compatible temporary index remains for offline diagnostics. At handoff time,
PythonMemoryGuard is now Running/Enabled after the explicit Update-175
authorization; its first bounded enforcement smoke killed only the over-limit
hybrid process.
QG-01 closure: c3ae4f4 fixes the warranty-receipt-storage cause only.
The vector fast path now applies bounded same-source parent expansion after
top-k selection, and vector-mode factories retain a lightweight
HybridRetriever when expansion has chunks. BM25 and reranker stay disabled.
The other regressions remain separate.
QG-02 closure: 1304ff4 fixes the error-e20-hose-kink orchestration
cause only. A generation-provider exception now produces the existing graph
error state and routes to error handling instead of returning a normal generic
internal-error answer. The stale independent-judge mock exposed by its gate was
corrected separately at c157796. The other two regressions remain separate;
no paid 3×20 rerun or live quality recovery is claimed. A paid retry still
requires fresh explicit opt-in.
This ledger is the next-session source for known open problems. OPEN
means unresolved locally; GATED needs fresh external/live authority;
DEFERRED needs a product/SLA decision; LOCAL-ONLY means code is fixed but
the relevant live outcome has not been re-proved. Actual Git and newer evidence
override this snapshot. Active INDEX-DIM status below separates the closed
runtime guard from the still-incompatible active collection; active VER-01
status reflects Update-191 local type-green evidence. Historical blocks remain
dated and are not rewritten.
| ID | Status | Problem and evidence | Next safe boundary |
|---|---|---|---|
| QG-03A | LOCAL-ONLY | Retained SQLite trace proved verify_facts hit httpx.ReadError; generic graph error routing then overwrote the generated answer with an escalation-registration fallback. 80c2603 now fails closed to human through response safety while preserving answer/context and bounded error provenance. |
No live replay; do not infer E20 keyword recovery or reopen without new code/evidence. |
| QG-03B | LOCAL-ONLY | Retained current-code reproduction matched the saved verdict pattern: a header-only errors_e10_e30.md chunk was kept while its same-logical-source E20 body was filtered. 5662ea7 replaces a positively graded contextual-header shell with its content-bearing chunks. |
No live replay; do not infer E20 keyword recovery or reopen without new code/evidence. |
| QG-04 | LOCAL-ONLY | Retained trace showed E30 content at retrieve, then only its header shell at grade; low-quality generation triggered a retry whose retrieval was empty. Current 5662ea7 replay restores the E30 body at the first loss boundary, and 5f8bb78 guards the exact five-document verdict pattern. |
No live replay; do not infer E30 keyword recovery or reopen without new code/evidence. |
| QG-LIVE | LOCAL-CONTAINED / LIVE FAIL | Offline classification of all 20 retained candidate answers found 12 timestamp-only, 6 prompt echoes, and 2 failed-escalation fallbacks. 63aa5df rejects the evidenced browser artifacts as invalid_response; dbd2b28 routes expected generation-provider outages human/not_verified through response safety without traceback state or automatic ticket registration. |
gracekelly-mixed has no fallback, so quality recovery is unproved. A GraceKelly/root extraction fix or routing/fallback cost decision needs separate authority; do not claim live recovery. |
| LIVE-QUALITY | OPEN / candidate UNFIT (Update-209) | Post-QG seed 42 valid FAIL: precision 0.3012, recall 0.725, FULL 0.70, MISS 5, faithfulness 0.7101, relevancy 0.30; candidate 25% vs baseline 90%; 13 regressions. Root cause: gracekelly-mixed browser artifacts (18/20) + 304 s/case — transport-unfit candidate, not RAG regression. §5 thresholds unreachable in vector-only 6-doc local config by construction. |
No more paid seeds on Windows. §5 stays OPEN; closure path = full-corpus hybrid pipeline off-Windows (Mac/Kaggle) with a direct-provider candidate. |
| INDEX-DIM-GUARD | LOCAL-CLOSED | d157b31 declares built-in embedder dimensions, validates remote response width, and makes tenant runtime read one stored Chroma embedding before chunk restore/retriever/cache. 3 != 1024 raises a bounded rebuild-required error, performs no provider call or collection mutation, and leaves no tenant retriever/chunk/store/index-key cache. Independent final gate: 36 passed, Ruff and diff clean. |
Do not reopen without a dimension/cache boundary change. This is containment/diagnosis only, not index compatibility or quality recovery. |
| INDEX-DIM-REBUILD | ACTIVATED ON WINDOWS (Update-209) | Lock gate root cause = WSL2 idle-shutdown (keepalive fixes it). Activation under held default lock: fingerprints verified, snapshot .tmp/index-dim-windows-target-snapshot-before-activation (SHA 5c9eff00…), staged tree installed (SHA 1ce87531…), candidate rag_docs-v-default-3f2b79fbe1246ab3 3×1024 + sources + E20 top-1 (remote embed), manifest gen 1 previous rag_docs_default; app initialize_vector_store() loads candidate. Evidence .tmp/index-dim-windows-activation-result-20260818.json. |
Publish→rollback→reinstall loop not repeated on Windows (proven on Mac + unit contracts); retention inventory not written. Snapshot retained; rollback_index_version API available. |
| HYBRID-MEM | LOCAL-CLOSED / MEMORY-BLOCKED | 3c90368 proves blank child-reranker propagation. Update-175 enabled the 1 GiB watchdog and one bounded default-hybrid smoke was killed during production reranker loading at 4044.1 MiB private / 801.4 MiB working set, before retrieval/provider execution. |
Do not retry this high-memory path locally. A future design must be expected to stay below 1 GiB; vector-only seed 42 remains the authoritative quality FAIL. |
| LIVE-LATENCY | OPEN | Seed 42 took about 2 h 9 min. Mean latency was 81,878.8 ms baseline vs 304,456.7 ms candidate. | Profile only in a separately authorized bounded run; do not raw-retry the aggregate. |
| ID | Status | Problem and evidence | Authority / closure condition |
|---|---|---|---|
| REL-01 | GATED | No real PostgreSQL multi-tenant restart, backup/restore, disposable-namespace, RPO/RTO, image, or live Helm evidence. | Explicit live/deploy authority; Gate A artifacts. |
| REL-02 | GATED | Live PG/Redis/Celery/Chroma lifecycle and advisory-lock drills are open; migrations 019–023 exist on disk and were not applied here. | Explicit migration/live-service authority. |
| REL-03 | DEFERRED | Multi-replica durable session/version ownership is not implemented. | Product SLA/consistency decision before implementation. |
| REL-04 | DEFERRED | STREAMING_RAG_PARITY still defaults false; local parity/token contracts do not flip production behavior. |
Product rollout decision plus acceptance evidence. |
| REL-05 | OPEN | Calibration seed is synthetic; no production dual-annotator human sample or agreement/cost evidence exists. | Collect authorized human-labelled sample and reissue calibration artifact. |
| REL-06 | PARTIAL LIVE EVIDENCE | Direct-Mistral run 20260812T084811Z-b195b7a9 executed one seed-43 case with valid complete child evidence and release PASS. The outer wrapper correctly delegates authority and remains non-evidence. |
Scheduled breadth and an independent-judge run still need a separately authorized execution; do not extrapolate one no-receipt case to whole-release quality. |
| REL-07 | GATED | Live IdP/OIDC drill and production WIDGET_ALLOWED_ORIGINS evidence are absent; widget E2E is Chromium-only local evidence. |
Live IdP/prod-config authority and cross-environment acceptance. |
| REL-08 | OPEN | Cache, seven telemetry signals, dashboard, Astro 7 / DEP-01, TraceService, EscalationService, API/worker IngestionJobService, and PipelineRunner capacity + sync + streaming execution owners are local-green. SLA-gated sessions, live scrape/alert delivery, and §10 full verification/canary/rollback remain open. | No ungated local architecture owner is preselected; continue only from an explicit owner request or documented safe residual, then run the required release gates. |
| ID | Status | Problem and evidence | Safe handling |
|---|---|---|---|
| VER-01 | LOCAL TYPE-GREEN / LINUX-CI OPEN | Product commit d4583cc closed the final eight command-1 MyPy diagnostics. Exact unchanged MyPy command 1 is locally green across 72/72 sources and exact command 2 across 31/31 sources under the retained Windows Python 3.11 diagnostic environment. Runtime product evidence remains the existing Python 3.13 32-test focused band plus historical full unit/coverage; no full Python 3.11 runtime gate is claimed. Exact Ubuntu execution with the full 222-package hashed dev lock remains unproved. Two earlier full WSL installation paths are exhausted. |
Do not raw-retry exhausted WSL installs or the completed direct-package/toolchain experiment. Local Windows MyPy green is not Ubuntu/full-lock CI green and not release/production evidence. Exact Linux CI needs explicit remote/push authority or a genuinely distinct local environment hypothesis. No push, remote CI, migration, live provider/index/service operation, deploy, or production/release proof exists from Update-191. |
| VER-02 | LOCAL-CLOSED | 3a37fd2 casts the final runtime-guarded callable to FaultAction. The exact failure reproduced before the edit; afterward narrowed MyPy passed, 11 lifecycle tests passed, Ruff passed, and package vectordb MyPy checked 10 sources under --follow-imports=skip. |
Do not reopen without a code/environment change. Do not extrapolate this to VER-01, full imports, the repository, locked Python 3.11, or CI. |
| VER-03 | LOCAL-CLOSED (re-proven Update-209) | Full Python 3.13 unit suite with RAG_RERANKER_MODEL="": 1870 passed / 7 skipped / 0 failed in 339 s at cc0458d, after fixing test_csp.py (env-dependent lifespan → real embedder) and the stale test_index_operator.py rollback test (1aa9f19 contract). Historical: 1851/4 at 77.04% coverage (Update-174). |
Rule: contract changes in vectordb/, agent/, api/ → run the full suite before commit; never rely on focused bands alone. |
| VER-04 | REPO-CLOSED / HOST-ENV STALE | requirements-dev.txt and its hashed lock pin httpx2 2.10.0, the backend Starlette 1.3+ selects before its deprecated httpx fallback. The dependency contract reproduced red before the pin; afterward an isolated strict-warning TestClient band passed 33 tests, and a real request returned 200 through httpx2 without the warning. The narrowed new-stack audit found no known vulnerabilities. The current global Python is not synchronized to the dev lock and still emits the warning. |
Install the hashed dev lock in a clean environment before claiming host/CI closure. Do not reopen the repository contract without a Starlette/TestClient or dependency change. The full 222-package dev-lock audit timed out after 124 seconds, so no fresh whole-lock security audit is claimed. |
| VER-05 | LOCAL-CLOSED | 4b0fba7 replaces the stale zero-caller assertion with the exact intentional allowlist ["api/routers/admin_ops.py"] and renames the test accordingly. The original assert reproduced red; the independent retention/admin band passed 51 tests, scoped Ruff and diff checks passed. |
Do not reopen without a new caller or contract change. Whole-file Ruff format debt predates this slice and was not reformatted here. |
| VER-06 | LOCAL-CLOSED | 356a530 updates the exact stale agentic-injection test to patch agent.tools.search_kb_docs and return (formatted_text, raw_docs). The failure reproduced before the edit; afterward the exact test and the 44-test response-safety/agentic band passed. |
Do not reopen without another agentic KB boundary change. File-wide formatter debt predates this test-only slice. |
| VER-07 | LOCAL-CLOSED | fd23317 aligns the stale trace-retention assertion with the existing tenant-aware audit contract. The exact failure reproduced 1 failed → 1 passed; the adjacent retention/tenant/audit band passed 22 tests. |
Do not reopen without a tenant/audit boundary change; this does not establish full-suite or production evidence. |
| OPS-01 | LOCAL-CLOSED / ENFORCED | PythonMemoryGuard is Running/Enabled with the unchanged 1024 MiB / 10-second watchdog. Its bounded smoke killed only PID 11984 at 4044.1 MiB observed private memory and logged the command/reason. |
Keep enabled; inspect D:\SystemState\PythonMemoryGuard\logs\kills-YYYY-MM-DD.log after any future Python memory event. Changing limit/task definition still needs explicit authority. |
| OPS-02 | ENV LIMIT | The system pytest temp root can return access denied. | Use a unique writable repository basetemp; do not raw-retry the inaccessible path. |
| OPS-03 | ENV LIMIT | Git/PowerShell commands intermittently exceeded 10 s or timed out; root cause is not established. login:false, git -C, scoped plumbing commands, and a 30 s read-only timeout completed. |
Avoid parallel full-worktree scans and raw retries; preserve the cycle budget. |
| ID | Status | Problem and evidence | Safe handling |
|---|---|---|---|
| WS-01 | UNPUSHED | master ahead of origin/master by ~349 at Update-209 (cc0458d, 5d93e12, docs). No push is authorized by this session. |
Owner decision: push and read CI (public repo). |
| WS-02 | CLOSED (Update-209) | The four owner-dirty files + untracked active plan were the owner's 2026-08-03 pointer edits; committed as 5d93e12. |
Nothing protected remains dirty. |
| WS-03 | UNTRACKED SoT RISK | Active DoD file rag-remediation-plan-2026-08-03.md is untracked; _NEXT_SESSION.md is a stale untracked pointer. |
Preserve both; use this handoff + Actual Git for routing. Do not casually stage or edit plan checkboxes. |
| WS-04 | CLEANED (Update-209) | 151 .pytest_tmp_* basetemp trees (1.1 GB) deleted and .pytest_tmp*/ added to .gitignore. Presentations/HTML, .grok-prompts/, _NEXT_SESSION.md, .tmp/* evidence remain untracked/ignored on purpose. |
Do not stage presentations (public repo). |
| WS-05 | LOCAL-CLOSED | eb764da aligns the deployment assertion with the canonical queue metric and implemented collision-resistant tenant-name marker. The exact test reproduced stale ten-03, then passed 1 test after one narrowed correction; scoped gates were green. |
Do not reopen without changed deployment reliability evidence. This focused closure does not close VER-03 or establish a full-suite claim. |
| EXT-01 | EXTERNAL / UNPUSHED | D:\GraceKelly is main...origin/main [ahead 1] at 886b277, with untracked issues.md. Port 8011 still listens under PID 3048 on the pre-existing command; 8012 is closed. |
Do not claim 8011 serves 886b277; external push/restart needs separate authority. |
| Slice | Count |
|---|---|
| multi_tenant | 4 |
| multi_turn | 5 (2 sessions) |
| claim_citation | 4 |
| no_answer | 4 |
| tools | 4 |
| streaming | 4 |
| adversarial | 4 |
| pii | 4 |
| durable_escalation | 4 |
| context_recall | 4 |
| total cases | 76 |
MIN_CASES_PER_REQUIRED_SLICE |
4 |
1. Cycle-guard: one named atomic slice per user turn.
2. cd D:\RAG_Support_Assistant
3. git status --short --branch
4. git log -12 --oneline # actual Git wins
5. Read ONLY top Update-193 in AGENT_STATE.md + §0A/§0B/§1C in this file
6. Confirm there is no active writer; protect §8 dirty/untracked boundaries
7. VER-03 is local-green; do not repeat it without a changed boundary
8. Do not invent another QG item; QG-01–QG-04 are local-only closures
| Candidate | Current truth | Boundary before action |
|---|---|---|
| VER-01 Python 3.11 lightweight-lock MyPy | LOCAL TYPE-GREEN / LINUX-CI OPEN: both exact MyPy commands are locally green (72/72 and 31/31) under retained Windows Python 3.11; exact Ubuntu/full 222-package-lock CI remains unproved | Do not raw-retry exhausted WSL installs. Linux CI requires explicit remote/push authority or a genuinely distinct local environment hypothesis; do not claim release/production from local type-green |
| VER-03 Python 3.13 gate | LOCAL-CLOSED: 1851 passed / 4 skipped, 77.04% coverage at threshold 72% | Reopen only after a changed code/environment boundary; this is not locked Python 3.11 or release evidence |
| §9 residuals | Cache, telemetry (7/7), dashboard, Astro 7 / DEP-01, TraceService, EscalationService, API/worker IngestionJobService, and PipelineRunner capacity + sync + streaming execution are local-green | No item preselected; SessionService needs an SLA decision and live alert delivery needs opt-in; no ungated local architecture owner is currently named |
| HYBRID-MEM | Guard is enforced; production-reranker hybrid exceeded the 1 GiB ceiling and was killed before retrieval/provider execution | Do not retry locally without a narrowed design expected below 1 GiB; no hybrid quality claim exists |
| Live quality ×3 | Post-QG seed 42 ran with valid evidence and failed at 25% candidate vs 90% baseline; seeds 43–44 and a valid passing aggregate do not exist | Diagnose candidate/browser behavior locally first; any new paid seed needs fresh opt-in |
| INDEX-DIM guard | LOCAL-CLOSED at d157b31: tenant runtime fails before provider/retriever/cache/mutation when stored width differs from declared embedder width |
Do not reopen without a dimension/cache boundary change; guard closure is not index repair |
| INDEX-DIM rebuild | ARTIFACT-CLOSED / PREFLIGHT READY / ACTIVATION LOCK-BLOCKED: isolated Mac copy has a verified 3×1024 artifact; canonical Windows staging and target hashes are fixed; working Windows target is unchanged | First restore a reachable PostgreSQL advisory-lock service. Then follow §0D; do not open canonical staging, bypass the lock, or delete retained collections |
| Release / migrations / deploy / push | Plan and production remain open | Exact target-specific owner authorization plus the relevant full gate |
The table is routing information only. It grants no permission to execute a provider call, enable a task, mutate an index, apply migrations, push, or deploy.
Not authorized without opt-in: push, deploy, live PostgreSQL/Redis/Celery,
another live provider/quality execute with secrets, alembic upgrade
(incl. 019–023), destructive Git, production claims, bulk plan checkbox
edits. The authorization for the Update-176 one-case provider run has been
consumed; do not infer permission for another paid call.
| Plan § | Local | Residual / blockers |
|---|---|---|
| 1 live multi-tenant / backup / RPO | partial chart/docs | opt-in live — Gate A open |
| 2 index lifecycle | 2.1–2.6g + INDEX-DIM runtime guard local | active 3D→1024D validated rebuild/publication; live PG/Redis/Celery/Chroma + migrate drills |
| 3 execution / session / budget | 3.1a–3.1i local | multi-replica durable session (DEFER without SLA; design exists) |
| 4 pipeline + escalation | 4.1–4.8 local | parity default still off (product decision) |
| 5 grounding fail-closed | 5.1–5.7 local | one valid live seed-42 report exists but FAILS quality; seeds 43–44 and passing ×3 evidence remain open |
| 6 judge / safety / agentic | 6.1–6.7 local | production human dual-annotator sample |
| 7 eval gate | 7.1–7.8 local + one-case direct-provider live PASS | scheduled breadth + independent judge remain open; mock≠release |
| 8 widget / edge | 8.1–8.5 local | live IdP; WIDGET_ALLOWED_ORIGINS in prod |
| 9 cache / architecture / SLO | 9.1a–9.1c + 9.2a–9.2f + 9.3a–9.5d3 owner slices local | SessionService SLA decision; live alert delivery |
| 10 final verification | Python 3.13 unit+coverage local-green; both local VER-01 MyPy commands green (72/72, 31/31 Windows 3.11) | exact Ubuntu/full-lock MyPy CI, integration/live, migrations, image/Helm, canary/rollback remain open after 1–9 + opt-in evidence |
Release / production: NOT claimable until §1 live + §5 live quality evidence + §6–8 residual + §10.
Full matrix: PLAN_CLOSURE_STATUS.md.
Off-plan capability (does not change the table): faaa815 adds explicit
opencode-zen-free routing for non-sensitive trial data. It produced no live
evidence and closes no plan DoD.
99c6be5 adds a separate lightweight operational smoke for existing Chroma +
native GraceKelly + SQLite. Its one-call live acceptance does not substitute
for the formal §5 quality ×3 or §7.6 provider-gate evidence.
d157b31 adds a separate fail-fast runtime compatibility guard for active
Chroma collections. It prevents an incompatible retriever from being restored
or cached, but it does not make the existing 3D collection usable with the
configured 1024D remote embedder. Therefore it closes no live-quality or
release DoD and does not authorize a rebuild/publication.
The Update-130 seed-42 quality sidecar is formal live §5 evidence, but it is a failed single run rather than a passing ×3 aggregate. It closes neither §5 DoD nor release readiness.
| Slice | SHA | Surface |
|---|---|---|
| OpenCode Zen trial/free | faaa815 |
fixed free model/profile, endpoint identity, fail-fast key, live-gate/workflow/Helm plumbing, safety docs |
| Lightweight GraceKelly RAG smoke | 99c6be5 |
existing Chroma lexical context → exact claude-sonnet-5 request → SQLite success record; provider failures persist no PASS row |
| Slice | SHA | Surface |
|---|---|---|
| INDEX-DIM guard | d157b31 |
declared local/remote embedder width + remote response validation + read-only one-vector active Chroma preflight + fail-closed four-cache eviction; no rebuild/publish |
| Slice | SHA | Surface |
|---|---|---|
| 5.1 | 7c53bdb |
grounding fail-closed statuses |
| 5.2 | 50bb220 |
citation-bound claims |
| 5.3 | 1cdecb2 |
grader fail-closed |
| 5.4 | 4f95e18 |
independent retrieval relevance (≠ quality/100) |
| 5.5 | a901692 |
live quality metrics gate scaffold (×3 DoD structure) |
| 5.6 | fb72dd2 |
exact child report parse + release-honest §5 DoD wire |
| 5.7 | 13bf255 |
canonical candidate metric producer + completeness provenance |
| Slice | SHA | Surface |
|---|---|---|
| 4.1 | eaf41f3 |
single terminal/history when parity succeeds |
| 4.2 | f1c846e |
graph-only generation when parity on |
| 4.3 | ad5e435 |
durable idempotent escalation |
| 4.4 | 0371971 |
auto human-route on normal ask |
| 4.5 | 6453530 |
outbox retry without second ticket |
| 4.6 | 11acfec |
Celery beat + CLI outbox schedule |
| 4.7 | 6b91a35 |
real LangGraph node status SSE |
| 4.8 | fc7f07b |
provider token stream through generate |
| Slice | SHA | Surface |
|---|---|---|
| 6.1 | b3494a0 |
unmeasured agentic; never fixed 80/85/90 |
| 6.2 | d0317e9 |
pre-response PII + prompt-injection |
| 6.3 | d6e3a55 |
independent judge fail-closed |
| 6.4 | a7cefc3 |
routing calibration artifact (bootstrap-defaults) |
| 6.5 | 431893c |
measured grounding when agentic has KB docs |
| 6.6 | 69c6fdf |
LLM evaluate wire on KB agentic terminals |
| 6.7 | c707c46 |
human readiness gate + recalibrate CLI |
| Slice | SHA | Surface |
|---|---|---|
| 7.1–7.5 | 94ac64e…4eceed3 |
fail-closed + mock SMOKE + baseline + curated + CI |
| 7.6 | d1ae4d6 |
live provider gate scaffold (opt-in) |
| 7.7 | 47e255a |
depth ≥3/slice; 67 cases |
| 7.8 | resolve through Actual Git | depth ≥4/slice; 76 unique cases |
| Slice | SHA | Surface |
|---|---|---|
| 8.1–8.5 | 0bee13e…4d6be52 |
widget → Playwright E2E |
| DEP-01 | cea370b |
Astro 7.2 / Starlight 0.41; npm audit total=0; validated empty exception register |
| Band | Ends at SHA | Note |
|---|---|---|
| §3 | fe2f0aa 3.1i |
process-local session version; multi-replica DEFER |
| §2 | f347feb 2.6g |
fault-injection residual closed local |
- Use existing
data/vectordb/chromacollectionrag_docs_default; do not start Docker/WSL, PostgreSQL, Redis, Celery, Ollama, or a fallback model. - The CLI default is exactly
claude-sonnet-5. A missing lexical match, failed provider call, or empty answer fails closed before a successful SQLite row. - Successful results go to
.tmp/lightweight-gracekelly-smoke.sqlite3; the verified live row is already recorded in §1A and must not be regenerated merely to re-prove history. - Local regression command needs a unique writable
--basetempunder.tmpbecause the system pytest temp root is inaccessible to this account. - The GraceKelly browser fix is external commit
886b277; the listener on8011was not restarted onto that commit.
opencode-zen-freefixes both routing lanes tonemotron-3-ultra-free; the runtime rejects non--freecanonical IDs and the profile declares no fallback.- OpenAI-compatible requests use
https://opencode.ai/zen/v1/chat/completionswith server-sideOPENCODE_ZEN_API_KEY; missing/placeholders fail during startup validation. .env.example, live-gate detectors, opt-in workflows, and optional Helm Secret rendering carry the key name only; no credential value is checked in.- OpenCode documents the endpoint as temporary/logged trial service. Use only non-sensitive test data; availability/pricing/terms are external and mutable.
- No live call, quality result, production claim, or plan checkbox followed.
regression_evalemits all seven canonical §5 metrics from candidate question/answer/exact generation context and explicit routing/grounding.- Context selection reuses
resolve_generation_context_docs; all-rejected grade results stay empty while simple-path retrieval context remains visible. quality_metrics_provenance.completefails real release runs closed when an eligible case lacks finite measurements.- Top-level/nested release flags satisfy the exact-sidecar consumer contract.
- No substitution from quality/factuality/pass-rate/regression counts.
scripts/live_quality_metrics_gate.py --mode live --executecaptures each argv-only child result and parses only that child's stdout JSON summary.- The exact
report_jsonmust resolve to a file inside the workspace; no glob, newest-file selection, or path escape is accepted. - Every sidecar must explicitly prove non-mock release honesty at top level and
inside
gate, and must contain all seven finite canonical §5 metrics. - Invalid exit, summary, path, sidecar, evidence, or metric fails fast before remaining potentially paid runs; raw child streams/exception text are not copied into the gate report.
- Valid rows use the existing aggregate + DoD evaluator and produce
DOD_PASS/DOD_FAIL; readiness/command remain non-live and never pass. - Historical 5.6 limitation, closed by 5.7: sidecars did not yet emit all
seven metrics.
13bf255added that producer; real execute still needs opt-in evidence. Never substitutequality_score,factuality_score,candidate_pass_rate, or counts. - Files:
scripts/live_quality_metrics_gate.py,tests/test_live_quality_metrics_gate.py.
scripts/live_quality_metrics_gate.py- modes:
readiness/command/live/evaluate-report - plan floors: precision≥0.63, recall≥0.97, full_rate≥0.97, miss≤1, faithfulness≥0.90, answer_relevancy≥0.92, unverified_auto_rate=0
MIN_RUNS=3; multi-seed commands; aggregate means + CI half-width- opt-in
RAG_LIVE_QUALITY_METRICS_GATE/--live; fail-closed without keys - forbids
--mock-experiment-runtime; requires--release-gate+--allow-paid-apis+--no-persist - default readiness:
SKIPPED_NO_OPT_IN, neverrelease_passed
- modes:
- Workflow:
.github/workflows/live-quality-metrics-gate.yml(weekly + dispatchenable_livedefault false) - Offline:
--mode evaluate-report --metrics-runs <json|dir>scores supplied runs - The former report-parse residual is closed by 5.6; producer metrics are closed by 5.7; actual live ×3 evidence remains open.
agent/relevance.py—measure_retrieval_relevance- Sources:
empty_context|retrieval_scores|graded_fraction|context_kept|unmeasured - Never
quality_score / 100 - Wired: evaluate node, agentic evaluate, agentic measure
relevance_sourceon state
- LangGraph
customstream +provider_token_stream_enabled - Generate streams via
generate_stream/.streamwhen flag on token_source=provider_generatelive; fallbackgraph_answer_chunks- Single generation; parity default still off
- Real LangGraph node status SSE on parity path
iter_ask_events/stream_graph_node_events
assess_human_calibration_readinessfail-closed floors- synthetic
label_sourcecannot claimsource=human-labelled - CLI:
scripts/recalibrate_routing.pyreadiness/reissue/--require-human - Seed remains synthetic; production human sample still residual
scripts/live_provider_gate.py+ weekly workflow- Default readiness:
SKIPPED_NO_OPT_IN; live needs opt-in + secrets +--execute
# Quality metrics gate readiness (no live)
python scripts/live_quality_metrics_gate.py --mode readiness --write-report reports/regression/live-quality-metrics-gate-readiness.json
# Offline DoD on supplied multi-run metrics
python scripts/live_quality_metrics_gate.py --mode evaluate-report --metrics-runs path\to\runs.json
# Human calibration readiness (expect NOT_READY on synthetic seed)
python scripts/recalibrate_routing.py --mode readiness
# Live provider gate readiness (no live)
python scripts/live_provider_gate.py --mode readiness --write-report reports/regression/live-provider-gate-readiness.json
# Focused tests (last known bands)
python -m pytest tests/test_live_quality_metrics_gate.py tests/test_live_provider_gate.py tests/test_github_workflows.py -q -p no:cacheprovider -p no:schemathesis
python -m pytest tests/test_retrieval_relevance.py tests/test_agentic_evaluate.py tests/test_agentic_measure.py -q -p no:cacheprovider -p no:schemathesis
python -m pytest tests/test_provider_token_stream.py tests/test_graph_node_sse.py tests/test_streaming_rag_parity.py -q -p no:cacheprovider -p no:schemathesisFull suite / live / migrate — not the default gate for a single slice.
OPS-01 is enforced and default hybrid is conclusively memory-blocked under the
1 GiB local ceiling. Do not retry the production reranker locally without a
narrowed design expected below that limit. VER-03 remains local-green.
INDEX-DIM-GUARD is locally closed at d157b31; do not reimplement or
re-probe it. The isolated INDEX-DIM-REBUILD artifact and its
publish/rollback/reactivation proof are verified, Update-198 closes the
read-only Windows source/target/evidence preflight, and Update-199 records the
failed bounded Docker/lock attempt. The remaining index boundary is
state-changing and currently blocked below PostgreSQL: Ubuntu WSL data-VHD
attachment returns E_ACCESSDENIED. System/swap VHD setup succeeds; the next
bounded hypothesis is one manually initiated elevated owner change on the
Ubuntu VHD only, then one attach. Resume §0D only after a successful attach or
a separately authorized reachable database; otherwise no ungated local slice
is preselected.
Remaining
work needs a separately selected authorized boundary, a product/SLA decision,
or human-labelled evidence.
Completed lifecycle-owner boundaries are TraceService 9c207b6,
EscalationService 03057aa, IngestionJobService API 84fbdf7, ingestion worker
890155a, PipelineRunner capacity aefcf20, and PipelineRunner sync execution
d865b06, plus PipelineRunner streaming execution c53f724. Do not reopen
them without a changed boundary. No ungated local architecture owner is
preselected. SessionService requires an explicit multi-replica SLA/consistency
decision and is not an autonomous candidate.
QG-01–QG-04, the browser-artifact containment at 63aa5df/dbd2b28,
VER-04/05/06/07, §9.1a–9.4a, and their focused gates are locally closed; do not
replay them without new code or evidence. gracekelly-mixed has no fallback,
so do not add a paid or local fallback without an explicit routing/cost
decision and acceptance contract.
A new paid seed or 3×20 retry needs fresh owner opt-in. Remaining local work must come from an explicit owner request or one documented residual selected in a new turn; do not invent another local QG item.
- live multi-service / migrate / push / deploy / live provider·quality execute
- re-select through 8.5 / 4.1–4.8 / 5.1–5.7 / 6.1–6.7 / 7.1–7.8 / 9.1a–9.1c / 9.2a–9.2f / completed 9.3a–9.5d3 slices
- OIDC live IdP drill; bulk plan checkbox edits; production claims
- multi-replica impl without SLA (design DEFER)
- Docker/WSL or a silent model fallback for the lightweight smoke
- live §1 / migrate 019–023 (explicit opt-in only)
- further curated corpus depth beyond 4/slice
- multi-replica durable session (only with explicit SLA/product ask)
Protected dirty tracked (leave alone):
BACKLOG.md, README.md, audit_gpt_23_07_26.md, plan_sol_23_07_26
Owned handoff paths for Update-193: AGENT_STATE.md and this file only.
Actual Git decides whether the docs-only commit has already closed the diff;
never stage the protected tracked files with it.
Owned implementation/test WIP: none. The former topology-test WIP is
committed at eb764da; the retained pytest basetemps are evidence/artifacts,
not active WIP.
Protected SHA-256 snapshot (2026-08-09, before Update-133 edit):
| File | SHA-256 |
|---|---|
BACKLOG.md |
95BF4DA93E012EDF3DEDF0525EE364F955F8B5428935D6EE970E27102530E311 |
README.md |
B3364D116E40CD1CB327146AE71152C608A7888F3B0053AF3B4BE2BCD69B8652 |
audit_gpt_23_07_26.md |
71EB338A4772C9C30152AA430C9DD79565E7564F91F670E070B406C52A37F9EF |
plan_sol_23_07_26 |
0E5A8B81FB87D1A1FE888773108F42492C23BB82BD8BFE44CA0546C4FD2FDF8E |
Untracked (examples):
.grok-prompts/, .pytest_tmp*/, presentations, _NEXT_SESSION.md (stale
untracked pointer; never routing authority),
rag-remediation-plan-2026-08-03.md (active plan — DoD source, no casual
checkbox edits), architecture HTML, etc. Preserve these unrelated artifacts.
.tmp/live-quality-native-index-20260809/chroma is retained diagnostic
evidence, not implementation WIP. It contains the compatible dimension-1024
collection used by seed 42; do not rebuild, stage, or delete it casually.
The untracked
.grok-prompts/index-dim-runtime-guard-20260812.md and
.grok-prompts/index-dim-runtime-guard-qa-20260812.md files plus
.tmp/pytest-index-dim-* directories are historical control/test evidence for
d157b31, not active WIP. Do not relaunch or stage them casually.
There is no owned untracked implementation WIP. The retained
cache-namespace-9-1c.md and
.grok-prompts/cache-namespace-9-1c-impl.md are historical control artifacts
for committed 9.1c, not WIP. The two untracked
.grok-prompts/dashboard-artifact-9-3a-*.md files are control artifacts for
committed 1237f3c, not WIP; dashboard pytest basetemps are absent. The smoke
script and test are tracked in
99c6be5; if they appear untracked, stop and reconcile Actual Git instead of
recreating or staging substitutes.
Zen verification created
.pytest_tmp_codex_opencode_{baseline,red,green,gate}/; cleanup was blocked by
execution policy. They are not WIP and must never be staged; removal is safe
only when local policy permits. Docs-verification basetemps self-cleaned and
are absent.
- One user turn → one named atomic implementation slice + verify + docs
- At most 3 delegated runs (impl / QA-batch / docs); one QA follow-up
- No push/deploy/live without opt-in
- After hard-stop / cycle complaint: stop; cancel active writer once if needed
| Gate | Env | Default |
|---|---|---|
| Streaming parity | STREAMING_RAG_PARITY |
false |
| Declared remote embedding width | RAG_EMBEDDING_REMOTE_DIMENSION |
1024; must match the configured remote model and active index |
| Live provider gate | RAG_LIVE_PROVIDER_GATE |
off |
| Live quality metrics gate | RAG_LIVE_QUALITY_METRICS_GATE |
off |
| Live-quality child reranker override | CLI --disable-child-reranker with --mode live --execute |
off; when explicit, child receives RAG_RERANKER_MODEL="" |
| Provider keys (presence only) | MISTRAL_API_KEY, GRACEKELLY_API_KEY, OPENCODE_ZEN_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY |
unset |
Never log secret values.
| Order | Slice | SHA | What |
|---|---|---|---|
| 1 | 4.8 | fc7f07b |
provider token streaming through generate |
| 2 | docs | cf12230 |
Update-120 |
| 3 | 5.4 | 4f95e18 |
independent retrieval relevance |
| 4 | docs | 7b86c1f |
Update-121 |
| 5 | 5.5 | a901692 |
live quality metrics gate scaffold |
| 6 | docs | 96ef373 |
Update-122 |
| 7 | 5.6 | fb72dd2 |
exact child report → §5 DoD wire |
| 8 | docs | 33949b1 |
Update-123 full transparency after 5.6 |
| 9 | 5.7 | 13bf255 |
canonical metric producer + provenance |
| 10 | docs | 336b08e |
Update-124 full transparency after 5.7 |
| 11 | provider | faaa815 |
OpenCode Zen trial/free integration |
| 12 | docs | ddb721c |
Update-125 full transparency after Zen integration |
| 13 | external fix | D:\GraceKelly@886b277 |
Playwright editor focus; local/unpushed |
| 14 | lightweight smoke | 99c6be5 |
RAG script + regressions; local/live acceptance green |
| 15 | docs | 79379a6 |
Update-129 reconciled GraceKelly smoke handoff |
| 16 | live quality evidence | no code SHA | native seed 42 completed: valid child evidence, quality FAIL, seeds 43–44 not run |
| 17 | docs | 9a870f7 |
Update-130 after the native live quality attempt |
| 18 | QG-01 | c3ae4f4 |
preserve bounded parent expansion on the vector lane |
| 19 | docs | 62a1f27 |
Update-131 QG-01 verification and residual honesty |
| 20 | routing test | c157796 |
align mock with the independent-judge policy |
| 21 | QG-02 | 1304ff4 |
route generation-provider failures to graph error handling |
| 22 | docs | b391028 |
Update-132 QG-02 verification and residual honesty |
| 23 | docs | 142747d |
Update-133 authoritative problem ledger and next-session transparency |
| 24 | QG-03A | 80c2603 |
verifier provider outage fails closed to human/safety without answer overwrite |
| 25 | docs | e1d9ae5 |
Update-134 QG-03A evidence and QG-03B residual |
| 26 | QG-03B | 5662ea7 |
replace relevant contextual-header shells with same-logical-source content |
| 27 | docs | 3f6f652 |
Update-135 QG-03B evidence and QG-04 routing |
| 28 | QG-04 evidence | 5f8bb78 |
exact retained five-document E30 grading replay over shared fix 5662ea7 |
| 29 | docs | 62772d7 |
Update-136 QG-04 shared-cause closure and remaining-gate honesty |
| 30 | HYBRID-MEM env | 3c90368 |
explicitly preserve blank child reranker selection on Windows |
| 31 | docs | 4acdd32 |
Update-137 HYBRID-MEM local closure and operational-gate honesty |
| 32 | docs | 1c758bd |
Update-138 reconciliation and next-session decision card |
| 33 | VER-02 | 3a37fd2 |
close lifecycle fault callable MyPy debt without runtime change |
| 34 | docs | ed1c2fc |
Update-139 VER-02 evidence and retained verification limits |
| 35 | 9.1a | db65e37 |
bound the process-local Redis fallback by TTL and 1024-entry LRU capacity |
| 36 | docs | cc7abaa |
Update-140 9.1a evidence and the remaining §9 boundaries |
| 37 | 9.1b | eb8466e |
reconnect after Redis outage with serialized bounded exponential backoff |
| 38 | docs | 3528858 |
Update-141 9.1b evidence and the separate namespace residual |
| 39 | docs | a224659 |
reconcile Actual Git and make next-session routing self-contained |
| 40 | 9.1c | 893efe3 |
bind response cache to tenant/index/prompt/model/query identity and fail closed when unresolved |
| 41 | docs | 65c82cc |
record 9.1c evidence and remove it from next-session routing |
| 42 | docs | resolve through Actual Git | Update-144 transparency reconciliation; do not add a follow-up solely for its self-SHA |
| 43 | VER-05 | 4b0fba7 |
require the exact intentional admin retention caller without permitting additional production callers |
| 44 | docs | resolve through Actual Git | Update-145 VER-05 closure; do not add a follow-up solely for its self-SHA |
| 45 | 9.2a | 3fe6d6d |
expose bounded index publish/retention failure telemetry and a warning alert |
| 46 | docs | resolve through Actual Git | Update-146 9.2a closure; do not add a follow-up solely for its self-SHA |
| 47 | 9.2b | 11e52f1 |
expose bounded client-visible auto verification outcomes and a zero-tolerance alert |
| 48 | docs | resolve through Actual Git | Update-147 9.2b evidence plus VER-06 baseline-test disclosure |
| 49 | VER-06 | 356a530 |
align the agentic injection safety test with the tuple-returning search_kb_docs boundary |
| 50 | docs | resolve through Actual Git | Update-148 VER-06 closure; do not add a follow-up solely for its self-SHA |
| 51 | docs | resolve through Actual Git | Update-149 next-session transparency reconciliation; no implementation change |
| 52 | 9.2c | 64f40b3 |
expose bounded escalation inbox delivery outcomes and a warning alert at the shared initial/retry boundary |
| 53 | 9.2d | 9817e89 |
expose bounded pre-response redaction/refusal outcomes and a refusal warning alert without changing safety policy |
| 54 | 9.2e | 5a2f696 |
expose label-free orphan-work lifecycle state and a warning for work stuck beyond five minutes |
| 55 | 9.2f | 344e174 |
expose bounded confirmed tenant-ownership denials without identifiers or additional foreign lookups |
| 56 | docs | resolve through Actual Git | Update-154 next-session transparency reconciliation; no implementation change |
| 57 | 9.3a | 1237f3c |
commit a portable seven-panel Grafana dashboard with bounded PromQL, zero-target thresholds, and offline contract tests |
| 58 | docs | resolve through Actual Git | Update-155 §9.3a closure; do not add a follow-up solely for its self-SHA |
| 59 | docs | resolve through Actual Git | Update-156 owner-requested post-dashboard transparency; records Actual Git, Grok terminal states, and control-artifact boundaries only |
| 60 | 9.4a | cea370b |
upgrade the docs site to Astro 7, retain supported Mermaid/whitespace behavior, and clear DEP-01 to zero audit findings |
| 61 | 9.5a | 9c207b6 |
make TraceService the injectable single owner of start/log/finish while preserving SQLite API and PII redaction |
| 62 | VER-07 | fd23317 |
align the retention audit assertion with the existing tenant-aware endpoint contract |
| 63 | 9.5b | 03057aa |
make EscalationService the durable ticket + inbox/outbox lifecycle owner |
| 64 | 9.5c1 | 84fbdf7 |
make IngestionJobService the API-side durable job lifecycle owner |
| 65 | 9.5c2 | 890155a |
extend IngestionJobService ownership through worker lease and terminal CAS entry points |
| 66 | 9.5d1 | aefcf20 |
make PipelineRunner own capacity release and orphan-future handoff |
| 67 | 9.5d2 | d865b06 |
make PipelineRunner own sync executor submission, wall deadline, and timeout handoff |
| 68 | docs | a0035bc |
record Update-164 PipelineRunner sync ownership before the canonical reconciliation |
| 69 | 9.5d3 | c53f724 |
make PipelineRunner own streaming graph/event submission, wait deadlines, and timeout handoff |
| 70 | docs | resolve through Actual Git | Update-166 §9.5d3 closure; do not add a follow-up solely for its self-SHA |
| 71 | docs | resolve through Actual Git | Update-167 VER-03 full-gate evidence and dirty-WIP routing; no implementation closure |
| 72 | docs | 4c91c8b |
commit the Update-179 GraceKelly artifact-containment handoff; no new live recovery claim |
| 73 | VER-04 | e400d88 |
pin the Starlette TestClient httpx2 backend in the dev input and hashed lock; retain direct application httpx |
| 74 | docs | resolve through Actual Git | Update-180 next-session reconciliation; no implementation, provider, migration, push, deploy, or release change |
| 75 | INDEX-DIM guard | d157b31 |
fail fast on active Chroma dimension mismatch before provider/retriever/cache/mutation; active index remains 3D |
| 76 | docs | resolve through Actual Git | Update-193 separates guard closure from the still-gated 1024D rebuild/publish residual |
| Claim | Truth |
|---|---|
| Plan closed? | No (this dev stage is closed: suite green, INDEX-DIM active on Windows, lock gate root-caused; §1, §5 live, §10 remain open) |
| Production ready? | No |
| Local quality path deep? | Yes (4.1–4.8, 5.1–5.7, 6.1–6.7, 7.1–7.8, 8.x, DEP-01, QG-01, QG-02, QG-03A, QG-03B, QG-04) |
| Graph node SSE? | Yes local (4.7) |
| Provider token stream? | Yes local (4.8; parity on + stream-capable LLM) |
| OpenCode Zen profile? | Yes local (faaa815); trial/non-sensitive only; no live evidence |
| Lightweight GraceKelly smoke complete? | Yes for the scoped smoke: committed at 99c6be5; local and one-call live acceptance green |
| Lightweight paid model | Exactly claude-sonnet-5; no silent fallback |
| Lightweight persistence | Successful SQLite row verified at 2026-08-09T15:03:21.124037+00:00; provider failure regression persists no PASS row |
| Docker/WSL for this path? | No — explicitly forbidden by owner |
| Relevance ≠ quality/100? | Yes local (5.4) |
| Child report → §5 DoD wire? | Yes local (5.6; exact sidecar, fail-closed) |
| Current child producer emits all 7 metrics? | Yes local (5.7; complete/provenanced or release fails closed) |
| QG-01 vector parent expansion fixed? | Yes local (c3ae4f4); no claim for unrelated regressions or live recovery |
| QG-02 generation failure routing fixed? | Yes local (1304ff4); provider exceptions now enter graph error handling; no live recovery claim |
| QG-03 verifier outage routing fixed? | Yes local (80c2603); answer/context are preserved and route is human via safety/log; no live recovery is claimed |
| QG-03 contextual-header grading fixed? | Yes local (5662ea7); a relevant header shell resolves to same-logical-source content; no live E20 recovery is claimed |
| QG-04 E30 retained replay fixed? | Yes local (5f8bb78 evidence over 5662ea7); disconnect evidence reaches graded context; no live E30 recovery is claimed |
| Blank child reranker selection preserved? | Yes local (3c90368); explicit live-execute flag reaches a real Windows child as present and blank; no hybrid quality replay is claimed |
vectordb lifecycle type debt closed? |
Yes local (3a37fd2); package MyPy passed 10 sources under --follow-imports=skip; VER-01/full locked CI remain open |
| Redis fallback bounded? | Yes local (db65e37): TTL, locking, and 1024-entry LRU cap; live Redis evidence remains open |
| Redis reconnect bounded? | Yes local (eb8466e): serialized 1→2→4…≤30s retry schedule resets after recovery; live Redis evidence remains open |
| Response cache namespace versioned? | Yes local (893efe3): tenant/index/prompt/model/query identity; unresolved identities fail closed; no live Redis evidence |
| Index lifecycle failures observable? | Yes local (3fe6d6d): bounded publish/retention counter and alert contract; no live metric scrape or alert-delivery evidence |
| Unverified auto-rate observable? | Yes local (11e52f1): bounded verified/unverified counter at sync/SSE delivery and zero-tolerance alert; no live scrape/alert-delivery evidence |
| Orphan work observable? | Yes local (5a2f696): label-free current-worker gauge spans all five shared capacity-transfer paths and alerts after five minutes; no live scrape/alert-delivery evidence |
| Tenant-denied access observable? | Yes local (344e174): ten confirmed session/ticket/KB-draft mismatch branches feed bounded resource labels without tenant/resource IDs; no live scrape/alert-delivery evidence |
| Seven-signal operations dashboard committed? | Yes local (1237f3c): portable DS_PROMETHEUS, seven non-overlapping panels, bounded/adaptive PromQL, and threshold contract tests; no live Grafana/import/scrape evidence |
| Astro 7 / DEP-01 closed? | Yes local (cea370b): Astro 7.2 / Starlight 0.41, supported unified Mermaid pipeline, 59-page build, and zero audit findings with no exceptions |
| Trace lifecycle has one owner? | Yes local (9c207b6): TraceService owns start/log/finish and redaction; existing SQLite module-level signatures remain compatible |
| Escalation lifecycle has one owner? | Yes local (03057aa): EscalationService owns durable ticket creation and inbox/outbox delivery lifecycle |
| Ingestion lifecycle has one owner? | Yes local (84fbdf7, 890155a): IngestionJobService owns API durable jobs plus worker lease/terminal entry points; read-only list helpers remain outside the critical lifecycle owner |
| Pipeline capacity has one owner? | Yes local (aefcf20): PipelineRunner owns release and orphan-future completion handoff; router helpers are compatibility seams |
| Sync pipeline execution has one owner? | Yes local (d865b06): PipelineRunner owns executor submission, shielded wall deadline, and timeout capacity handoff for sync /api/ask |
| Streaming pipeline execution has one owner? | Yes local (c53f724): PipelineRunner owns graph/event executor submission, queue and shielded-future deadlines, and timeout capacity handoff; router keeps SSE semantics and compatibility seams |
| Agentic injection safety test current? | Yes local (356a530): mock follows search_kb_docs(text, docs) and the full safety/agentic band is green |
| Starlette TestClient warning closed? | Repository contract yes; current host no (e400d88): httpx2 2.10.0 is pinned in the dev input and hashed lock; isolated strict-warning band 33 passed. Neither WSL nor lightweight diagnostics produced a faithful locked MyPy environment, so no host/locked closure is inferred. Full 222-package lock audit timed out and is not claimed green. |
| VER-01 exact-lock MyPy green? | Local yes / exact Ubuntu full-lock CI no. Both exact MyPy commands are green locally (72/72 and 31/31 under retained Windows Python 3.11). Exact Ubuntu execution with the full 222-package hashed dev lock remains unproved; do not equate local type-green with Linux CI or release. |
| Active index dimension safe? | Yes on Windows since Update-209 — active rag_docs-v-default-3f2b79fbe1246ab3 is 3×1024 (manifest gen 1); d157b31 guard still protects any other tenant/dir |
| Canonical restart capsule reconciled? | Yes as of Update-193 (INDEX-DIM guard vs rebuild states separated); Actual Git remains first authority and _NEXT_SESSION.md remains stale/non-authoritative |
| All known open problems indexed? | Yes in §1C as of Update-193; Actual Git/new evidence overrides the snapshot |
| Live quality metrics ×3 evidence? | No passing ×3 evidence; seed-42 child valid but FAILS; decision Update-209: candidate gracekelly-mixed unfit, no more paid seeds on Windows, §5 needs off-Windows full pipeline |
| Human calibration DoD? | No (synthetic seed; readiness gate ready) |
| Formal §7.6 live provider evidence? | Partial: one direct-Mistral seed-43 case has valid complete child evidence and release PASS; scheduled breadth and independent-judge execution remain open |
| Parity default ON? | No (STREAMING_RAG_PARITY default false) |
| WIP / active writer? | none; worktree clean apart from intentional untracked artifacts (Update-209) |