# JOURNAL — cc-ci mirror-enroll Builder ## 2026-06-02 — Phase startup + Phase 0 ### Pre-flight survey ```bash ssh cc-ci 'abra recipe fetch lasuite-drive' → WARN already fetched (exit 0) ssh cc-ci 'abra recipe fetch mailu' → WARN already fetched (exit 0) ssh cc-ci 'abra recipe fetch mumble' → WARN already fetched (exit 0) ``` Gitea mirror check (via API): ``` lasuite-drive: 404 mailu: 404 mumble: 404 bluesky-pds: 200 discourse: 200 ghost: 200 immich: 200 mattermost-lts: 200 plausible: 200 ``` Upstream URLs confirmed from ~/.abra/recipes//.git/config: - lasuite-drive: https://git.coopcloud.tech/coop-cloud/lasuite-drive.git - mailu: https://git.coopcloud.tech/coop-cloud/mailu.git - mumble: https://git.coopcloud.tech/coop-cloud/mumble.git Adversary independent cold-probe in REVIEW-mirror.md confirms same results. tests/ state: All 9 unenrolled recipes already have tests//. hedgedoc absent. POLL_REPOS current: 11 entries (cc-ci + 10 enrolled recipes). ## 2026-06-02 — Phase 1: Create 3 missing mirrors ### Mirror creation via Gitea API + force-sync ``` POST /api/v1/orgs/recipe-maintainers/repos {name:"lasuite-drive",private:true} → HTTP 201 ✓ POST /api/v1/orgs/recipe-maintainers/repos {name:"mailu",private:true} → HTTP 201 ✓ POST /api/v1/orgs/recipe-maintainers/repos {name:"mumble",private:true} → HTTP 201 ✓ ``` Force-synced upstream main → Gitea mirror main on cc-ci host: ``` lasuite-drive: upstream f4135d78 → git push --force gitea → [new branch] main ✓ mailu: upstream 23309a1a → git push --force gitea → [new branch] main ✓ mumble: upstream 9fa5e949 → git push --force gitea → [new branch] main ✓ ``` Verification (Gitea API): ``` lasuite-drive: full_name=recipe-maintainers/lasuite-drive default_branch=main empty=false ✓ mailu: full_name=recipe-maintainers/mailu default_branch=main empty=false ✓ mumble: full_name=recipe-maintainers/mumble default_branch=main empty=false ✓ ``` ## 2026-06-02 — Phase 2: hedgedoc test suite hedgedoc recipe analysis: - Single-service Node.js app (quay.io/hedgedoc/hedgedoc:1.10.8), port 3000 - Default: sqlite (CMD_DB_URL=sqlite:/database/db.sqlite3), no compose.backup.yml - backupbot.backup=true in compose labels; volumes: codimd_database, codimd_uploads - HEALTH_PATH=/ with HEALTH_OK=(200,302): root redirects to /login or /new depending on config Files created (uptime-kuma template): - tests/hedgedoc/recipe_meta.py (HEALTH_PATH=/, HEALTH_OK=(200,302), DEPLOY_TIMEOUT=600) - tests/hedgedoc/functional/test_health_check.py (GET / → 200 or 302) - tests/hedgedoc/functional/test_branding.py (hedgedoc/codimd/hackmd markers in HTML) - tests/hedgedoc/PARITY.md (scope documentation) test_install.py/test_upgrade.py/ops.py deferred (generic tiers provide baseline coverage). ## 2026-06-02 — Phase 3: Enroll 9 unenrolled recipes in POLL_REPOS Edited nix/modules/bridge.nix POLL_REPOS: - Before: 11 entries (cc-ci + custom-html, custom-html-tiny, keycloak, cryptpad, matrix-synapse, lasuite-docs, lasuite-meet, n8n, hedgedoc, uptime-kuma) - After: 20 entries (+bluesky-pds, discourse, ghost, immich, lasuite-drive, mailu, mattermost-lts, mumble, plausible) All 9 newly enrolled recipes confirmed to have tests// (Adversary-confirmed). ## 2026-06-02 — A-mirror-1 resolution: hedgedoc !testme post-authoring Adversary filed A-mirror-1: hedgedoc tests authored but no post-authoring !testme run existed. Action: posted !testme on hedgedoc PR#1 (comment 13926, 00:30:30Z) via Gitea API. Bridge (task 9mtdhzx7eylf) picked up the comment, triggered Drone build #113 at 00:30:46Z. Build #113 result: ``` number: 113 status: success started: 2026-06-02T00:30:46Z finished: 2026-06-02T00:32:07Z (81s runtime) stages: - recipe-ci: success steps: - clone: success - ci: success ``` Both new test files (functional/test_health_check.py, functional/test_branding.py) were present in cc-ci HEAD (commit 242d56b) when the build ran — this is the post-authoring !testme run the plan required. Build URL: https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/113