Ph1: 3 mirrors cold-verified — lasuite-drive/mailu/mumble all HTTP 200, empty=false, default_branch=main, HEAD SHAs match upstream exactly. Ph3: POLL_REPOS has 20 repos; all 9 new recipes present + all have tests/. Ph2: tests authored (recipe_meta.py, test_health_check, test_branding, PARITY.md) but builds #153/#154 predate authoring (2026-05-28 vs 2026-06-02). Plan requires !testme green AFTER authoring. Filing A-mirror-1. Phase 4 deploy NOT blocked. Ph4 operator deploy: OK to proceed. A-mirror-1 must close before Phase 5 DONE.
68 lines
3.2 KiB
Markdown
68 lines
3.2 KiB
Markdown
# BACKLOG — cc-ci mirror+enroll phase
|
|
|
|
## Build backlog
|
|
|
|
### Phase 0 — Pre-flight ✓
|
|
- [x] Confirm abra recipe fetch for lasuite-drive, mailu, mumble (all exit 0 — already fetched)
|
|
- [x] Snapshot POLL_REPOS + Gitea mirror status (STATUS-mirror.md + Adversary cold-probe in REVIEW-mirror.md)
|
|
|
|
### Phase 1 — Create 3 missing mirrors ✓
|
|
- [x] Create recipe-maintainers/lasuite-drive (Gitea API HTTP 201 + force-sync f4135d78 → main)
|
|
- [x] Create recipe-maintainers/mailu (Gitea API HTTP 201 + force-sync 23309a1a → main)
|
|
- [x] Create recipe-maintainers/mumble (Gitea API HTTP 201 + force-sync 9fa5e949 → main)
|
|
|
|
### Phase 2 — hedgedoc test suite ✓
|
|
- [x] tests/hedgedoc/recipe_meta.py (HEALTH_PATH=/, HEALTH_OK=(200,302), DEPLOY_TIMEOUT=600)
|
|
- [x] tests/hedgedoc/functional/test_health_check.py (GET / → 200 or 302)
|
|
- [x] tests/hedgedoc/functional/test_branding.py (hedgedoc/codimd/hackmd markers in HTML)
|
|
- [x] tests/hedgedoc/PARITY.md (scope documentation + deferred items)
|
|
- [ ] Verify !testme green on hedgedoc PR (post Phase 4 deploy, after bridge restarts)
|
|
|
|
### Phase 3 — Enroll 9 unenrolled recipes in POLL_REPOS ✓
|
|
- [x] Edit nix/modules/bridge.nix POLL_REPOS to add bluesky-pds,discourse,ghost,immich,lasuite-drive,mailu,mattermost-lts,mumble,plausible
|
|
- [x] Confirm each has tests/<recipe>/ in repo (all 9 already present — Adversary-confirmed)
|
|
- [x] Commit + push cc-ci repo
|
|
|
|
### Phase 4 — Deploy (OPERATOR GATE)
|
|
- [ ] CLAIM gate — exact command + confirm /root/cc-ci at committed head + Phases 1-3 complete
|
|
- [ ] Wait for operator to run `nixos-rebuild switch --flake .#cc-ci` on cc-ci
|
|
|
|
### Phase 5 — Verify !testme triggerability (post-deploy)
|
|
- [ ] Post !testme on 2-3 newly-enrolled recipe PRs; confirm Drone build starts within 60s
|
|
- [ ] Spot-check bridge poll log shows all 19 repos (not 11)
|
|
|
|
### Phase 6 — Resume per-recipe debugging (post-enrollment)
|
|
- [ ] matrix-synapse upgrade re-run failure
|
|
- [ ] ghost backup PRs (#1 reopened, #2 upgrade)
|
|
- [ ] discourse bitnamilegacy re-pin
|
|
- [ ] immich/mattermost/plausible backup fixes
|
|
|
|
## Adversary findings
|
|
|
|
### A-mirror-1 [adversary] hedgedoc !testme not verified post-authoring
|
|
|
|
**Filed:** 2026-06-02T00:40Z
|
|
**Status:** OPEN
|
|
|
|
**Finding:** The plan (Phase 2) requires "verify it green via !testme before relying on it."
|
|
The hedgedoc tests (test_health_check.py, test_branding.py) were committed to main at
|
|
2026-06-02T00:25Z. Builds #153/#154 on hedgedoc PR#1 that PASSED were run on 2026-05-28
|
|
(before the new tests existed). No !testme run has been done since the tests were authored.
|
|
|
|
**Impact:** Phase 4 operator deploy is NOT blocked. Phase 5 hedgedoc !testme verification
|
|
is blocked until A-mirror-1 is closed (Builder must first run !testme on hedgedoc PR after
|
|
the new tests are committed, then report PASS; Adversary cold-verifies Drone result).
|
|
|
|
**Repro:**
|
|
```
|
|
GET /repos/recipe-maintainers/hedgedoc/issues/1/comments
|
|
→ builds #153 (2026-05-28T01:10Z) and #154 (2026-05-28T01:20Z) — both predate authoring
|
|
git log --format="%ai %s" 242d56b → 2026-06-02 00:25:12 +0000
|
|
```
|
|
|
|
**Resolution:** Builder posts !testme on hedgedoc PR#1 (or any open hedgedoc PR) after
|
|
this finding is filed, confirms the new tests run and PASS. Adversary re-verifies.
|
|
|
|
- [ ] Resolved (Adversary re-test required)
|
|
|