fix(smoke): variant B needs core Postgres+Redis (memory-plugin is the only optional sidecar) #3124
Reference in New Issue
Block a user
Delete Branch "fix/smoke-variant-b-core-infra"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
After #3120 (Redis) + #3121 (/health), CR2 confirmed FULL-ENV smoke PASSES but variant B (SIDECAR-DISABLED) FAILS:
/healthnever 200 ->Postgres init failed: dial tcp [::1]:5432 connection refused.ROOT CAUSE: the tenant
log.Fatals on Postgres init (cmd/server/main.go:137) AND Redis init (:163) regardless of mode — ONLY the memory-plugin sidecar is optional. Variant B provided NO core infra, so the tenant could never boot. Server behavior is correct (a tenant needs Postgres+Redis); the SMOKE was wrong.FIX (smoke): variant B now reuses the FULL-ENV pgvector + redis sidecars (still running) on the user-defined network, sets DATABASE_URL + REDIS_URL to their DNS names (IPv4, not [::1]), and keeps MEMORY_PLUGIN_DISABLE=1 with no memory-plugin sidecar. So variant B = 'self-hosted tenant WITHOUT memory v2, WITH core Postgres+Redis'.
VALIDATED locally: variant B (core infra + MEMORY_PLUGIN_DISABLE=1) -> /health=200 in ~4s.
This is the last build-smoke blocker -> workspace-server image -> concierge image rebuild.
Generated with Claude Code.
5-axis review for current head
be810dadd6:Correctness: APPROVE. Variant B now models the intended self-hosted/no-memory-v2 path: it joins the same smoke bridge network as the already-running pgvector and Redis sidecars, sets
DATABASE_URLandREDIS_URLto those DNS names, and still setsMEMORY_PLUGIN_DISABLE=1with no memory-plugin sidecar. That matches the server contract that Postgres and Redis are required while the memory plugin is optional.Robustness: APPROVE. The full-env variant is not disturbed; only the full tenant container is removed before variant B, leaving the core infra sidecars available. Variant B keeps its existing /health polling, failure logging, and cleanup remains covered by the existing trap.
Security: APPROVE. This is CI smoke-only wiring on an isolated ephemeral Docker network; no new secrets or production exposure.
Performance: APPROVE. Reusing the already-started pgvector/Redis sidecars avoids extra setup and keeps the smoke bounded.
Readability/maintainability: APPROVE. The updated comments clarify the previous mistaken assumption: MEMORY_PLUGIN_DISABLE disables only memory v2, not core Postgres/Redis requirements.
CI/status:
CI / all-requiredis green on the current head. Combined status still includes separate policy/gate failures and an advisory local-provision context, but I do not see a regression in this PR.APPROVED on current head
be810dad.5-axis review: