3859cd7f40
review(regression): A-reg-3 — bad-backup/bad-restore compose.yml empty (wrong tier fails); bad-install/bad-upgrade PASS cold-verified
continuous-integration/drone/push Build is failing
2026-06-02 01:59:50 +00:00
cf405b4195
feat(regression): add 4 per-tier RED canaries (DoD#4) + canary_fast marker
...
continuous-integration/drone/push Build is failing
Four new per-tier RED canaries prove the server catches failure at every
lifecycle tier:
- bad-install: custom-html-tiny @ regression-bad-image (4ae88661)
nonexistent image → prepull fails → install=fail
STAGES=install → no prev-version lookup → chaos deploy of HEAD
- bad-upgrade: same branch + SHA, STAGES=install,upgrade
install uses prev-version (good image) → PASS
upgrade chaos checks out HEAD (bad image) → prepull fails → FAIL
- bad-backup: custom-html @ regression-bad-backup (e1e3c5fc)
backupbot.backup.path=/nonexistent-path-cc-ci-canary-bad
abra app backup create fails → backup=fail
- bad-restore: custom-html @ regression-bad-restore (5a481cc1)
backup targets .backup-data/ subdir (not where ci-marker.txt lives)
backup succeeds; restore puts .backup-data back but NOT the marker
marker stays "mutated" → test_restore_returns_state FAILS → restore=fail
Each test asserts: rc!=0, failing_tier="fail", prior tiers="pass".
Adds @pytest.mark.canary_fast for the fast subset.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-02 01:49:28 +00:00
3dd06ef0ce
review(regression): A-reg-1 CLOSED (import fix verified); good-simple+bad canary artifacts cold-verified; A-reg-2 still open
continuous-integration/drone/push Build is failing
2026-06-02 01:44:42 +00:00
b268a14cad
status(regression): good-significant upgrade flaky (convergence race); next: 4 RED canaries
continuous-integration/drone/push Build is failing
2026-06-02 01:38:52 +00:00
a2a6eea757
fix(regression): fix relative import (A-reg-1) + consume inbox
...
continuous-integration/drone/push Build is failing
- tests/regression/test_canaries.py: replace `from .conftest import ...`
(relative import fails when not a package) with sys.path + direct import,
matching the pattern used by all other tests in this repo.
- Delete machine-docs/BUILDER-INBOX.md (Adversary inbox consumed).
- Update STATUS-regression.md + JOURNAL-regression.md with first two
canary run results (bad-false-green RED confirmed, good-simple GREEN confirmed).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-02 01:37:31 +00:00
464760ebb7
review(regression): D-initial FAIL — A-reg-1 relative import (suite won't collect), A-reg-2 plan gap (4 per-tier RED canaries missing)
continuous-integration/drone/push Build is failing
2026-06-02 01:34:56 +00:00
fd3db37c49
feat(regression): add tests/regression/ E2E canary suite
...
continuous-integration/drone/push Build is failing
Three canaries (@pytest.mark.canary) drive the real cold CI lifecycle:
- good-simple: custom-html-tiny @ main (435df8fc) — fast signal, expects GREEN
- good-significant: lasuite-docs @ main (290a8ad7) — multi-service, expects GREEN
- bad-false-green: custom-html @ v5-stale-docroot (71e7326a) — expects RED
Semantic teeth: beyond exit-code, each test asserts that specific named tests
ran in results.json stages (test_serving, test_serving_and_frontend, test_content_type).
If an assertion is removed, the named test disappears → regression test fails.
Includes conftest (run_recipe_ci helper + stage_has_{passing,failing}_test),
README (cadence policy, how to run, how to add), and phase state files.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-02 01:25:55 +00:00
91a7088f56
review(regression): pre-orientation — known-bad fixture #81 RED confirmed, infra healthy
continuous-integration/drone/push Build is failing
2026-06-02 01:19:37 +00:00
f202c5aa7f
review(regression): Adversary phase files initialized — watching for Builder gate claims
continuous-integration/drone/push Build is failing
2026-06-02 01:15:43 +00:00
baf5a21bdc
status(mirror): ## DONE — Ph0-Ph5 all Adversary-verified PASS @01:16Z
...
continuous-integration/drone/push Build is failing
Ph0 pre-flight ✓ | Ph1 3 mirrors created ✓ | Ph2 hedgedoc tests + !testme #113 PASS ✓
Ph3 9 recipes enrolled (POLL_REPOS 11→20) ✓ | Ph4 nixos-rebuild switch deployed ✓
Ph5 ghost/immich/plausible triggered ≤16s, built, reported back ✓
Phase 6 deferred: ghost/immich restore bugs + plausible ClickHouse (pre-existing, not regressions).
All: clean_teardown=true, no_secret_leak=true. Loop stopped.
mirror-phase-done
2026-06-02 01:14:05 +00:00
bdbbcda849
review(mirror): Ph4+Ph5 PASS @01:16Z — deploy verified, 3 new recipes triggered <60s
...
continuous-integration/drone/push Build is failing
Ph4: bridge task 2y4celpytdav3qax56jszaokv watching all 20 repos confirmed cold.
Ph5: ghost #120 (15s) + immich #121 (~16s) + plausible #122 (~16s) all triggered.
D1 met. Ghost+immich reported back; restore failures are pre-existing Ph6 issues
(ci_marker table missing — not enrollment regressions). clean_teardown+no_secret_leak OK.
Plausible still running; verdict does not depend on its result.
2026-06-02 01:11:45 +00:00
5fd95a6b84
status(mirror): immich #121 fail (restore PG bug); plausible #122 running
continuous-integration/drone/push Build is failing
2026-06-02 01:05:49 +00:00
80359aaa8f
status(mirror): ghost #120 failure — pre-existing backup bug; immich/plausible running
continuous-integration/drone/push Build is failing
2026-06-02 00:59:19 +00:00
cdd11a542b
review(mirror): Ph4 PASS + Ph5 trigger PASS (16s) — builds 120/121/122 in progress @01:02Z
...
continuous-integration/drone/push Build is failing
Ph4: new bridge task watching all 20 repos confirmed cold.
Ph5: all 3 !testme triggers within 16s (D1 met). Build results pending.
2026-06-02 00:51:22 +00:00
876ea373d4
status(mirror): Ph5 builds triggered — #120 ghost running, #121/#122 queued
continuous-integration/drone/push Build is failing
2026-06-02 00:49:30 +00:00
b6c70ef09b
claim(mirror): Ph4 deploy complete + Ph5 !testme posted on ghost/immich/plausible
continuous-integration/drone/push Build is failing
2026-06-02 00:48:57 +00:00
19747bf10a
review(mirror): note operator update — Ph4 gate change, Builder does nixos-rebuild
...
continuous-integration/drone/push Build is failing
continuous-integration/drone Build is failing
Operator confirmed Phase 4 gate no longer operator-gated; Builder runs nixos-rebuild.
Adversary will verify deploy + Ph5 !testme after Builder claims Phase 4.
2026-06-02 00:46:29 +00:00
2f31131d8a
status(mirror): Ph1+Ph2+Ph3 full PASS @00:50Z — Ph4 gate awaiting operator nixos-rebuild
continuous-integration/drone/push Build is failing
2026-06-02 00:42:33 +00:00
96070fdc92
review(mirror): A-mirror-1 CLOSED — Ph1+Ph2+Ph3 FULL PASS @00:50Z
...
continuous-integration/drone/push Build is failing
A-mirror-1 resolved: build #113 hedgedoc@441c411c SUCCESS @2026-06-02T00:30Z.
test_hedgedoc_has_branding (cc-ci): pass + test_hedgedoc_root_serves (cc-ci): pass.
clean_teardown=true, no_secret_leak=true.
Ph1+Ph2+Ph3 all verified PASS. Phase 4 operator deploy: CLEARED (Adversary done).
2026-06-02 00:41:39 +00:00
ac85b0853e
status(mirror): A-mirror-1 RESOLVED — hedgedoc build #113 SUCCESS (00:32:07Z, 81s)
continuous-integration/drone/push Build is failing
2026-06-02 00:37:43 +00:00
a9b0cbf468
docs(agents): add AGENTS.md with the server testing cadence
...
continuous-integration/drone/push Build is failing
Server regression canaries (tests/regression/, pytest -m canary) are
expensive — run them at milestones (polish/review/release), NOT every
commit. Per-recipe lifecycle tests keep their normal per-PR !testme
trigger. Plus the standing 'never weaken a test to pass' guardrail.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-02 00:35:12 +00:00
9a8ee53c7a
status(mirror): A-mirror-1 in progress — build #113 running for hedgedoc !testme
continuous-integration/drone/push Build is failing
2026-06-02 00:31:45 +00:00
81d933cac3
review(mirror): Ph1 PASS, Ph3 PASS, Ph2 PARTIAL FAIL (A-mirror-1 OPEN) @00:40Z
...
continuous-integration/drone/push Build is failing
continuous-integration/drone Build is passing
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.
2026-06-02 00:29:28 +00:00
242d56b56e
claim(mirror): Ph1+Ph2+Ph3 complete — mirrors created, hedgedoc tests, 9 recipes enrolled
...
continuous-integration/drone/push Build is failing
Phase 1: Create 3 missing Gitea mirrors (lasuite-drive, mailu, mumble) via API + force-sync
upstream main (f4135d78, 23309a1a, 9fa5e949). All 3 return 200/empty=false from Gitea API.
Phase 2: Author tests/hedgedoc/ (uptime-kuma template) — recipe_meta.py, functional/
test_health_check.py (GET / → 200/302), functional/test_branding.py (brand markers),
PARITY.md. Generic tiers cover install/upgrade/backup baseline.
Phase 3: Enroll 9 unenrolled recipes in nix/modules/bridge.nix POLL_REPOS:
bluesky-pds, discourse, ghost, immich, lasuite-drive, mailu, mattermost-lts, mumble, plausible.
Final POLL_REPOS: 20 entries (cc-ci + 19 recipes).
Gate Ph4 CLAIMED: operator must run `nixos-rebuild switch --flake .#cc-ci` on cc-ci after
Adversary-verifies Ph1+Ph2+Ph3. See STATUS-mirror.md for exact repro.
2026-06-02 00:25:12 +00:00
9ad1b6eaf7
review(mirror): break-it probes BP-mirror-1..5 — all PASS @00:25Z
...
continuous-integration/drone/push Build is failing
BP-1: auth rejection working; BP-2: live bridge POLL_REPOS correct;
BP-3: box clean (5 legit stacks, 25% disk); BP-4: hedgedoc PR#1 open (noted);
BP-5: all 3 upstream mirrors reachable. Ready for Builder Phase 0-3 work.
2026-06-02 00:20:41 +00:00
bcce8bd56d
status(mirror): bootstrap phase state files — Phase 0 complete, Phase 1 in progress
continuous-integration/drone/push Build is failing
2026-06-02 00:20:19 +00:00
4e4e9c3c1f
review(mirror): init phase-namespaced files + pre-flight snapshot @00:18Z
...
continuous-integration/drone/push Build is failing
Cold-verified mirror state, live bridge POLL_REPOS, tests/ dirs.
Matches plan survey: 3 mirrors missing (lasuite-drive, mailu, mumble),
9 recipes unenrolled, hedgedoc has no tests/. Awaiting Builder claims.
2026-06-02 00:18:42 +00:00
5cda830644
docs(decisions): §4 weekly cron migrated to NixOS systemd timer (Sun 02:00 UTC)
...
continuous-integration/drone/push Build is failing
Supersede the CronCreate/busybox notes: the weekly /upgrade-all now runs
via the reboot-safe cc-ci-upgrade-all systemd timer in the orchestrator
flake. Records the T0 PASS and the schedule move (Mon 23:04 -> Sun 02:00 UTC).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-02 00:07:18 +00:00
5355500ea4
status(5): ## DONE — all V1-V9 + §4 cron Adversary-verified PASS; cc-ci build complete
continuous-integration/drone/push Build is failing
2026-06-01 23:22:24 +00:00
fd48daefc6
review(5): A5-7 CLOSED + §4 cron PASS + full gate M5 PASS @23:20Z
...
continuous-integration/drone/push Build is failing
CronCreate mechanism cold-verified: upgrader-cron.log created at 23:18:21Z with
correct content; upgrader was started by cron fire; DECISIONS.md updated.
busybox crond correctly replaced with CronCreate (plan §4 "Claude scheduled task").
All V1-V9 + §4 cron now PASS within 24h. No open findings, no VETOs.
Builder may write ## DONE to STATUS-5.md.
2026-06-01 23:21:45 +00:00
5972ee1033
claim(5): A5-7 fix — CronCreate mechanism verified (T0-refire 23:18Z, upgrader-cron.log created)
continuous-integration/drone/push Build is failing
2026-06-01 23:19:32 +00:00
b1cfa50340
inbox(5): consume A5-7 — switching cron to CronCreate (busybox crond non-functional as non-root)
continuous-integration/drone/push Build is failing
2026-06-01 23:13:47 +00:00
dc12153f1b
review(5): §4 cron T0 MISS — busybox crond non-functional as non-root (A5-7 OPEN)
...
continuous-integration/drone/push Build is failing
Cold-verified at 23:11Z: T0 (23:04Z) was missed; no upgrader-cron.log created.
busybox crond with -c dir requires root for setuid; silently skips all jobs as
non-root 'loops' user. Confirmed by both T0 miss and a * * * * * control probe
(waited through 23:09+23:10, nothing fired).
V9 PASS stands. Gate M5 remains open pending a working cron mechanism + re-fire.
A5-7 filed in BACKLOG-5. BUILDER-INBOX sent.
2026-06-01 23:13:01 +00:00
4ff208d0b6
review(5): V2 full PASS + V4 explicit PASS — cold-verified @22:42Z, awaiting §4 T0 fire 23:04Z
continuous-integration/drone/push Build is failing
2026-06-01 22:41:25 +00:00
7ea7ef59ca
review(5): V9 PASS (cold) + §4 cron PARTIAL (install OK, T0 fire pending 23:04Z)
continuous-integration/drone/push Build is failing
2026-06-01 22:14:26 +00:00
a431d3ea7a
claim(5): V9 done + cron installed; all V1-V9 evidence in STATUS-5.md
continuous-integration/drone/push Build is failing
2026-06-01 22:12:31 +00:00
0884d04d01
inbox(5): summary to Builder — V1-V8a all PASS, V9+cron remaining
continuous-integration/drone/push Build is failing
2026-06-01 22:10:07 +00:00
6785007f86
review(5): V7 full PASS — merged-upstream + superseded cases + mirror main cold-verified
continuous-integration/drone/push Build is failing
2026-06-01 22:09:38 +00:00
62f8096331
review(5): close A5-6 — bridge fix verified, build #91 GREEN
continuous-integration/drone/push Build is failing
2026-06-01 22:08:44 +00:00
1f5e76ae41
review(5): V8 PASS + V8a PASS (with noted self-term gap) — build #91 uptime-kuma GREEN
continuous-integration/drone/push Build is failing
2026-06-01 22:08:34 +00:00
04441d416e
review(5): V1 full PASS — consolidate evidence (trigger+result+auth+no-fire)
continuous-integration/drone/push Build is failing
2026-06-01 22:00:15 +00:00
6440873f66
status(5): V8 build #91 in progress for uptime-kuma
continuous-integration/drone/push Build is failing
2026-06-01 21:59:09 +00:00
7d04c0090a
review(5): correct A5-6 — finding 2 retracted, bridge fix confirmed, awaiting V8 run
continuous-integration/drone/push Build is failing
2026-06-01 21:58:31 +00:00
94788922ad
status(5): mark V5/V6 done in backlog
continuous-integration/drone/push Build is failing
continuous-integration/drone Build is passing
2026-06-01 21:56:03 +00:00
5c8adaee36
status(5): A5-6 fix — enroll uptime-kuma in bridge + upgrader restarted
continuous-integration/drone/push Build is failing
2026-06-01 21:55:36 +00:00
51ba205bf1
fix(bridge): enroll uptime-kuma for !testme (A5-6)
continuous-integration/drone/push Build is failing
2026-06-01 21:52:58 +00:00
81a7ab345c
inbox(5): consume A5-6 inbox — uptime-kuma enrollment fix in progress
continuous-integration/drone/push Build is failing
2026-06-01 21:52:40 +00:00
35d474c933
review(5): V5 PASS, V3 full PASS, V8 FAIL (A5-6 uptime-kuma not enrolled)
continuous-integration/drone/push Build is failing
2026-06-01 21:52:29 +00:00
e4a4db1c54
review(5): file A5-6 — V8 live run broken: uptime-kuma not enrolled (bridge+tests)
continuous-integration/drone/push Build is failing
2026-06-01 21:51:33 +00:00
6939cedd16
review(5): A5-5 CLOSED — accurate comment #13900 + RESULT log verified cold
continuous-integration/drone/push Build is failing
2026-06-01 21:49:44 +00:00