Run after pulls that touch research, Knowledge Library, proxy, V2 memory, or
Document Intelligence. Check off each row; note environment (local / Docker /
SearXNG / proxy).
Automated (offline) subset — industry CI:
Terminal window
pwsh -File scripts/industry_smoke.ps1
Runs readiness, re-index skip, session cancel, proxy helpers, golden memory
eval, and docs presence. Live network / LLM rows below still need a human.
Prerequisites (manual live rows)
App up (uvicorn / usual serve)
At least one LLM configured
Optional: SearXNG, Proxy Provider (anyIP), Neo4j
Preflight: GET /api/research/ready (add ?live=1 for a tiny live search)
Document appears; state progresses to ready (or clear fail code)
☐
D2
Open detail → content preview
Fenced/readable text; BiDi OK for Arabic if used (dir=auto)
☐
D3
Index into a library_id → search
Hits return with citations inside untrusted fence
☐
D4
Ops panel: capacity + readiness
Snapshot loads; multi-replica honesty if applicable
☐
D5
Gateway: /documents list (or /docs list)
Opaque ids + titles
☐
D6
Agent tool document_import on workspace file
Returns document_id; not a path escape
☐
D7
python scripts/certify_documents.py
overall_status not FAIL; canary_ready when core parsers ready
☐
D8
Settings → Documents → change a limit → save → re-read
Live ConfigStore update without restart (worker concurrency, leases, retry timing, storage root and the tenant quota wait for a restart: readiness policy.pending_restart)
☐
D9
(Optional) ClamAV installed → malware_scan on → upload clean file
Accept; readiness malware.available true
☐
D10
(Optional) PG + KAZMA_DOCUMENTS_METADATA_BACKEND=postgres (or auto/unset on a Postgres install)
ops/readinessmetadata_multi_replica true when pool up
☐
D11
(Optional, container profile) ops/readiness → worker_isolation, then upload a PDF
ready and image_code_matches true; the broker log shows the job with cleanup=verified
☐
D12
(Optional) Verify the newest document backup (scripts/document_pg_backup.py verify <dir> on Postgres; document-store-*manifest.jsonverification.ok on SQLite)