Skip to content

CI never builds or boots the app image — packaging/runtime bugs slip through #84

Description

@JumpTechCode

Summary

CI runs the app from a host virtualenv (pip install -e ".[dev]") and compose only starts postgres/redis/kafka — the app image is never built or booted in CI. The non-editable production image therefore has no automated coverage, and two real bugs reached main because of it:

Both are invisible to the source-tree test suite (the files exist in the checkout) and to a build_app() import smoke (the crash is in the lifespan). Only a real container boot surfaces them.

Proposed fix

Add a CI job (PR or nightly) that:

  1. docker builds the image, then runs it and asserts /healthz (or /readyz) — i.e. the lifespan actually starts (load_settings() + PromptBundle.load succeed).
  2. Optionally runs the README "See it run" demo end-to-end against the built image as a contract test (matches the CLAUDE.md quality bar: "docker compose up boots the entire stack … returns a diagnosis … CI-verified contract").

Cost: a Docker build per run (the embedding-model preload dominates; cache it). Nightly is a reasonable cadence if per-PR is too slow.

Related, smaller

make compose-up is docker compose up -d --wait with no --build, so re-running after code changes silently reuses a stale app image. Consider --build (or a make compose-rebuild) and/or a README note.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions