# STATUS — phase `prevb` (dynamic upgrade base + per-recipe `previous/`) SSOT: `/srv/cc-ci/cc-ci-plan/plan-phase-prevb-previous-dynamic-base.md`. State files: this + BACKLOG-prevb.md, REVIEW-prevb.md (Adversary), JOURNAL-prevb.md. DECISIONS.md shared. ## Phase Started 2026-06-17. Gates: **M1** (implemented + green locally), **M2** (proven in real CI + spot-check). ## Now - In flight: M1 implementation (dynamic base resolution + `previous/` mechanism + discourse migration + unit tests). - No gate CLAIMED yet. ## Ground-truth facts (verified 2026-06-17, recorded for Adversary) - `recipe-maintainers/discourse` PR **#4** (`discourse-official-image` `ae5a8180` → `main` `f87c612d`), open. - **main** (`compose.yml`): `app`/`sidekiq` image = `bitnamilegacy/discourse:3.5.0`; `app` healthcheck `start_period: 20m`; `app.deploy.update_config.order: start-first`; `sidekiq` service present. - **PR #4 head**: `app.image = discourse/discourse:3.5.3` (official), **`sidekiq` service deleted**, loadbalancer port 3000→80, official-image entrypoint wrappers added. (PR `.diff` confirms both.) - Published tags max = `0.7.0+3.3.1`; main (3.5.0) is AHEAD of all tags → main-tip is a branch ref, not a tag. - Current `tests/discourse/compose.ccci.yml` re-pins `app`+`sidekiq` to `bitnamilegacy/discourse:3.3.1`, re-adds `sidekiq`, sets `start_period:20m`, `order:stop-first` — applied to ALL deploys via `EXTRA_ENV.COMPOSE_FILE` → forces the PR head back to bitnamilegacy:3.3.1 + sidekiq (the bug). - Note vs plan §3 prose: main is `bitnamilegacy:3.5.0`, not `3.3.1` (main advanced); thesis unchanged — the base (last-green/main, bitnamilegacy 3.5.0) deploys clean, NO `previous/` needed for discourse. ## Blocked (none)