/design seed from the 2026-09-10 repository review (R08). Ruling 2026-09-15: becomes an epic, sequenced after gh-#649.
Problem. .github/workflows/ci.yml:49 runs --filter "Category!=Integration"; the real-Postgres migration probes (Story346) and the Kokoro/engine fixtures never run in CI. tools/smoke_test.sh and tools/onair_gate.sh are manual. Architecture tests pin SQL text and statement order, which proves conventions, not executable migrations or role grants. A green PR run says nothing about a migration that only breaks on a real database or an audible fallback.
Proposed shape (for /design, not decided).
- A scheduled (nightly) job:
Category=Integration on a clean runner with unique compose projects, cleanup on failed init, artifacts retained (logs, schema version, trx).
- A release-gate job: fresh install + upgrade-from-previous-tag migration against real Postgres; captured-audio gate measuring gaps, not HTTP 200.
- Audit the 102 skipped tests into: manual acceptance spec, obsolete, automation candidate.
Acceptance (epic-level).
- Fresh and upgrade migrations execute against real Postgres in CI, including the role boundary.
- API-down, DB-down, engine-reconnect and return-from-safe have cross-process coverage.
- Release notes state what ran, what was skipped, and what needs manual evidence.
Blocked by: gh-#649 (address-pool exhaustion), gh-#710 (temp-dir leak), gh-#723 (wall-clock flake).
/design seed from the 2026-09-10 repository review (R08). Ruling 2026-09-15: becomes an epic, sequenced after gh-#649.
Problem.
.github/workflows/ci.yml:49runs--filter "Category!=Integration"; the real-Postgres migration probes (Story346) and the Kokoro/engine fixtures never run in CI.tools/smoke_test.shandtools/onair_gate.share manual. Architecture tests pin SQL text and statement order, which proves conventions, not executable migrations or role grants. A green PR run says nothing about a migration that only breaks on a real database or an audible fallback.Proposed shape (for /design, not decided).
Category=Integrationon a clean runner with unique compose projects, cleanup on failed init, artifacts retained (logs, schema version, trx).Acceptance (epic-level).
Blocked by: gh-#649 (address-pool exhaustion), gh-#710 (temp-dir leak), gh-#723 (wall-clock flake).