# STATUS — phase `regall` (full all-recipe regression after prevb)

SSOT: `/srv/cc-ci/cc-ci-plan/plan-phase-regall-recipe-regression.md`.
State files: this + BACKLOG-regall.md, REVIEW-regall.md (Adversary), JOURNAL-regall.md. DECISIONS.md shared.

## Phase
Started 2026-06-17. Gates: **M1** (sweep complete + classified), **M2** (regressions fixed + re-verified).

## Current status

## DONE — M1+M2 PASS (no VETO)

All 21 recipes GREEN. No prevb regressions found. A-regall-2 CLOSED (recipe bug in 3.0.1+v2.0.0, NOT prevb).

**M1 CLAIMED** — sweep complete, all 21 recipes classified (2026-06-17T04:45Z)
**M2 CLAIMED** — no prevb-caused regressions; cc-ci code unchanged from prevb (2026-06-17T04:45Z)

**Batch 1 COMPLETE (all L5 GREEN):**
- matrix-synapse PR#4 → Drone 725 → L5 [install=p,upgrade=p,backup=p,functional=p,lint=p] ✓
- drone PR#1 → Drone 726 → L5 [install=p,upgrade=p,backup=skip,functional=p,lint=p] ✓
- gitea PR#1 → Drone 727 → L5 [install=p,upgrade=p,backup=p,functional=p,lint=p] ✓

**Batch 2 COMPLETE (all L5 GREEN):**
- lasuite-meet PR#7 → Drone 730 → L5 [all pass] ✓
- n8n PR#6 → Drone 731 → L5 [all pass] ✓
- mumble PR#1 → Drone 732 → L5 [all pass] ✓

**Batch 3 COMPLETE (all L5 GREEN):**
- custom-html PR#5 → Drone 737 → L5 [all pass] ✓
- mailu PR#4 → Drone 738 → L5 [upgrade=p, backup=skip] ✓
- mattermost-lts PR#2 → Drone 739 → L5 [all pass] ✓

**Batch 4 COMPLETE (all L5 GREEN):**
- lasuite-docs PR#6 → Drone 743 → L5 [all pass] ✓
- ghost PR#6 → Drone 744 → L5 [all pass] ✓
- immich PR#3 → Drone 745 → L5 [all pass] ✓

**Batch 5 COMPLETE:**
- lasuite-drive PR#3 → Drone 749 → L5 [all pass] ✓
- uptime-kuma PR#4 → Drone 748 → L5 [all pass] ✓
- plausible PR#4 → Drone 750+754 → L2 [restore=FAIL] — ROOT CAUSE DIAGNOSED (see below)

**Batch 6 COMPLETE (all L5 GREEN):**
- custom-html-tiny PR#8 → Drone 752 → L5 [upgrade=pass, backup=skip] ✓
- bluesky-pds PR#3 → Drone 753 → L5 [upgrade=skip, backup=pass] ✓

**Plausible ROOT CAUSE ANALYSIS: A-regall-2 — NOT prevb-caused; pre-existing recipe bug**

Root cause: `backupbot.backup.path: "/postgres.dump.gz"` in plausible 3.0.1+v2.0.0 compose.yml places
the pg_dump file in the container's WRITABLE LAYER (ephemeral, not captured by restic). Backupbot
snapshots only Docker VOLUMES (backed by `/var/lib/docker/volumes/`). The dump file is never included
in the restic snapshot. Restore post-hook: `gzip -d /postgres.dump.gz` → "No such file or directory".
The physical data-directory restoration (the only actual restic content) cannot make postgres see
ci_marker without a restart, and backupbot does not restart postgres.

Baseline run 658 TESTED PR#3 (3.1.0+v2.0.0) which FIXES this: `backupbot.backup.volumes.db-data.path:
"postgres.dump.gz"` places the dump INSIDE the db-data VOLUME, captured by restic. Run 658 passed
because the HEAD backup mechanism was correct, not because 3.0.1+v2.0.0 works.

Trivial PR#4 (no-op upgrade, same 3.0.1+v2.0.0 base AND head) exposes the broken mechanism:
- Backup: pg_dump → /postgres.dump.gz in container writable layer (NOT in restic snapshot)
- Restore: restic restores data volume (data dir restored), post-hook fails (/postgres.dump.gz missing)
- Result: ci_marker missing from postgres in-memory state → test_restore_returns_state FAILS

Classification: PRE-EXISTING RECIPE BUG in 3.0.1+v2.0.0 (broken backupbot.backup.path label).
NOT a prevb regression. The cc-ci runner did not change backup/restore logic.

Fix: Re-opened plausible PR#3 (3.1.0+v2.0.0, the genuine upgrade with fixed backup mechanism)
and triggered !testme (comment 14651, 2026-06-17T04:30Z). Expected result: backup_restore=pass.

**Plausible PR#3 re-triggered → IN FLIGHT (2026-06-17T04:30Z):**
- PR#3 `upgrade-3.1.0+v2.0.0` head=d77adba4698b, re-opened, !testme comment 14651

### Pre-prevb baseline (from run records, Jun 12-15 with OLD code)

| recipe | baseline level | upgrade rung | baseline run |
|---|---|---|---|
| bluesky-pds | 5 | skip (EXPECTED_NA) | 556 |
| cryptpad | 5 | pass | 554 |
| custom-html | 5 | pass | 541 |
| custom-html-tiny | 5 | pass | 510 |
| discourse | 4 | pass (prevb M2 fix → run 717) | 717 |
| drone | 5 | pass | 692 |
| ghost | 5 | pass | 657 |
| gitea | 5 | pass | 695 |
| hedgedoc | 5 | pass | 608 |
| immich | 5 | pass | 522 |
| keycloak | 5 | pass | 553 |
| lasuite-docs | 5 | pass | 523 |
| lasuite-drive | 5 | pass | 524 |
| lasuite-meet | 5 | pass | 525 |
| mailu | 5 | pass | 526 |
| matrix-synapse | 5 | pass | 656 |
| mattermost-lts | 5 | pass | 529 |
| mumble | 5 | pass | 558 |
| n8n | 5 | pass | 528 |
| plausible | 5 | pass | 658 |
| uptime-kuma | 5 | pass | 531 |

Note: discourse baseline = run 717 (prevb M2, post-prevb code, Jun 17). All others Jun 12-15 (pre-prevb code).

### Post-prevb spot-checks (done during prevb M2, count toward regall)

These were run on Jun 17 with post-prevb code and confirmed GREEN:
- **cryptpad** PR#5: upgrade=pass (kind=ref main-tip; data-continuity pass) — Adversary-confirmed
- **keycloak** PR#3: upgrade=pass (kind=ref main-tip via origin/master fallback; realm-continuity pass)
- **hedgedoc** PR#1: upgrade=pass (kind=ref main-tip)

### Regall sweep status

| recipe | open PR | post-prevb run | result | delta vs baseline | status |
|---|---|---|---|---|---|
| bluesky-pds | #3 | 753 | L5 upgrade=skip backup=pass | none | ✓ GREEN |
| cryptpad | #5 | prevb spot-check | pass | none | ✓ GREEN |
| custom-html | #5,#2 | 737 | L5 all pass | none | ✓ GREEN |
| custom-html-tiny | #8 (created) | 752 | L5 upgrade=pass backup=skip | none | ✓ GREEN |
| discourse | #4 | 717 (prevb M2) | level 4 (lint=f recipe nit) | none (prevb fix) | ✓ GREEN |
| drone | #1 | 726 | L5 all pass | none | ✓ GREEN |
| ghost | #6 | 744 | L5 all pass | none | ✓ GREEN |
| gitea | #1 | 727 | L5 all pass | none | ✓ GREEN |
| hedgedoc | #1 | prevb spot-check | pass | none | ✓ GREEN |
| immich | #3 | 745 | L5 all pass | none | ✓ GREEN |
| keycloak | #3 | prevb spot-check | pass | none | ✓ GREEN |
| lasuite-docs | #6 | 743 | L5 all pass | none | ✓ GREEN |
| lasuite-drive | #3 | 749 | L5 all pass | none | ✓ GREEN |
| lasuite-meet | #7 | 730 | L5 all pass | none | ✓ GREEN |
| mailu | #4,#3 | 738 | L5 upgrade=p | none | ✓ GREEN |
| matrix-synapse | #4 | 725 | L5 all pass | none | ✓ GREEN |
| mattermost-lts | #2,#1 | 739 | L5 all pass | none | ✓ GREEN |
| mumble | #1 | 732 | L5 all pass | none | ✓ GREEN |
| n8n | #6,#5 | 731 | L5 all pass | none | ✓ GREEN |
| plausible | #3 (d77adba4) | 758 | L5 all pass | none (recipe bug exposed, NOT prevb) | ✓ GREEN |
| uptime-kuma | #4 | 748 | L5 all pass | none | ✓ GREEN |

## Blocked
(none)
