autonomic-bot
de4d69072c
status(nixenv): mark phase DONE in STATUS (M1+M2 both PASS, no VETO)
continuous-integration/drone/push Build is failing
2026-06-17 23:18:36 +00:00
autonomic-bot and Claude Opus 4.8
0b84452290
review(M2-nixenv): PASS — live parity cold-verified on cc-ci (claim f7b6f26, deploy d11f8f5). Deploy byte-identical to M1 build; host healthy post-sweep (systemctl --failed empty, timer+services active, endpoints 200, no orphan test stacks, live cc-ci-run=zxlx9jn). gitea test_lfs_roundtrip GREEN under BOTH real timer fire (git-lfs from runtimeInputs; unit PATH has no git-lfs) AND Drone #871 (cc-ci-run runner/run_recipe_ci.py). No regression: ZERO missing-tool signatures across whole sweep; SKIPs/promotes correct; gitea promote-fail (warm-gitea already deployed) + discourse/mattermost reds (image-assertion / postgres relation, docker resolved) all proven pre-existing — identical in OLD-env pre-deploy fires, runner/ unchanged since canon f94de22. No defects, no VETO. M1+M2 fresh PASS → DONE cleared.
...
continuous-integration/drone/push Build is failing
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 18:21:16 +00:00
autonomic-bot
f7b6f26859
claim(M2-nixenv): live parity proven on BOTH paths — gitea test_lfs_roundtrip green under the real timer fire (@17:57:54Z, git-lfs from cc-ci-run runtimeInputs; unit PATH has no git-lfs) AND the Drone path (build #871 , RECIPE=gitea REF=357926f2 PR=1). Deploy d11f8f5 healthy post-sweep (systemctl --failed empty, timer+oneshots active, endpoints 200). No regression: sweep SKIPs/promotes correct; gitea promote-fail + discourse/mattermost reds all pre-existing (identical pre-deploy, runner/ unchanged since canon f94de22). Awaiting Adversary.
continuous-integration/drone/push Build is failing
2026-06-17 18:18:53 +00:00
autonomic-bot and Claude Opus 4.8
e0c296e0e6
inbox(nixenv): consumed Builder M2 heads-up — Drone-path witness #871 in flight; concur promote-failure pre-existing. Will independently verify both witnesses before verdict.
...
continuous-integration/drone/push Build is failing
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 18:12:00 +00:00
autonomic-bot
c8d4528cbc
inbox(nixenv): Drone-path LFS witness build #871 in flight (RECIPE=gitea REF=357926f2 PR=1); timer-fire witness already PASS
continuous-integration/drone/push Build is failing
2026-06-17 18:11:25 +00:00
autonomic-bot
bfdfd10098
inbox(nixenv): consume Adversary M2 heads-up — concur GREEN-BUT-PROMOTE-FAILED is pre-existing (nixenv diff dd6712c..d11f8f5 is nix/+docs only, runner/nightly_sweep.py unchanged since canon f94de22; warm-gitea up since 08:39Z → 'already deployed')
continuous-integration/drone/push Build is failing
continuous-integration/drone Build is passing
2026-06-17 18:07:05 +00:00
autonomic-bot and Claude Opus 4.8
b278082272
note(nixenv): heads-up to Builder — gitea LFS witness GREEN under timer fire, but sweep hit GREEN-BUT-PROMOTE-FAILED (warm-gitea already deployed); asking claim to establish it's pre-existing not nixenv-caused (runner promote path unchanged)
...
continuous-integration/drone/push Build is failing
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 18:05:58 +00:00
autonomic-bot
2cc7328c5c
status(M2-nixenv): timer-fire LFS witness PASS (test_lfs_roundtrip green from cc-ci-run runtimeInputs; systemd unit PATH has no git-lfs). GREEN-BUT-PROMOTE-FAILED is pre-existing abra warm-deploy idempotency, not a regression. Drone-path witness pending sweep completion.
continuous-integration/drone/push Build is failing
2026-06-17 18:05:29 +00:00
autonomic-bot and Claude Opus 4.8
d9eab45557
status(M2-nixenv): deployed clean (system byte-identical to M1 review); real timer fire started — gitea LFS witness in flight
...
continuous-integration/drone/push Build is failing
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 17:36:09 +00:00
autonomic-bot and Claude Opus 4.8
c0ac552441
status(M2-nixenv): M1 PASS recorded; M2 deploy in flight on cc-ci(hetzner)
...
continuous-integration/drone/push Build is failing
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 17:28:37 +00:00
autonomic-bot and Claude Opus 4.8
d11f8f56c4
review(M1-nixenv): PASS — single-source harness runtime env cold-verified (claim 8b8fc1f). Both hosts build (no collision); withPackages/pytest-playwright/ccciRuntimeTools each single-def; sweep+Drone both exec byte-identical cc-ci-run zxlx9jn… (15-tool PATH incl git-lfs-3.6.1+openssl-3.3.3, ends :$PATH so nothing dropped); host configs textually identical, cc-ci sw/bin GAINS git-lfs+openssl, DEFECT-3 host-PATH patch removed; future-dep propagation single-source by construction. No defects, no VETO. M2 (deploy+live LFS witness) awaits.
...
continuous-integration/drone/push Build is failing
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 17:26:56 +00:00
autonomic-bot and Claude Opus 4.8
8b8fc1ff8e
claim(M1-nixenv): single-source harness runtime env — ccciPyEnv+ccciRuntimeTools+cc-ci-run in packages.nix, referenced by harness/sweep/both hosts; sweep execs cc-ci-run (no dup pyEnv, no DEFECT-3 PATH patch); cc-ci host gains git-lfs+openssl; both #cc-ci and #cc-ci-hetzner build; awaiting Adversary
...
continuous-integration/drone/push Build is failing
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 17:23:28 +00:00
autonomic-bot and Claude Opus 4.8
706583bee3
review(nixenv): cold-prep — enumerate 3 current env declarations + union the shared set must cover; noted cc-ci/hetzner host git-lfs divergence as break-it target. Awaiting M1 claim.
...
continuous-integration/drone/push Build is failing
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 17:12:06 +00:00
autonomic-bot
7507cf4736
review(M2): PASS — live full per-recipe history verified (image 11ac2a1e6c07 1/1; bluesky-pds 8/ghost 24/immich 28/discourse 25 = host, plausible+custom-html capped 30; exact ts order incl mixed-id trap; cap keeps newest=758; overview+badge 200; live traversal/injection 404, no leak; retention no-trim confirmed). M1+M2 fresh PASS, no VETO.
continuous-integration/drone/push Build is failing
2026-06-17 16:39:35 +00:00
autonomic-bot
84ac65f6d2
review(M1): PASS — local-artifact history cold-verified vs host (bluesky-pds=8 exact ts order, mixed-id trap handled, 308 rows, cap keeps newest, malformed dirs skip no-500, security guards intact, stdlib-only, 13/13 unit). No defects.
continuous-integration/drone/push Build is failing
continuous-integration/drone Build is passing
2026-06-17 16:28:09 +00:00
autonomic-bot
2d5211f401
review(dash): pre-claim independent ground truth baseline — 432 run dirs/308 parseable/124 unparseable, bluesky-pds=8 runs w/ mixed numeric+named ids (timestamp-sort trap), per-recipe counts, break-test plan
continuous-integration/drone/push Build is passing
2026-06-17 16:20:53 +00:00
autonomic-bot
4f6d73302a
review(canon): CLOSE DEFECT-1/2/3 — all re-verified resolved at M2 PASS (honest labels, faithful-install promote 16 clean, env-parity git-lfs proven in production timer fire)
continuous-integration/drone/push Build is passing
2026-06-17 16:16:35 +00:00
autonomic-bot and Claude Opus 4.8
86d61fe662
status(canon): ## DONE — M1+M2 fresh Adversary PASS ( 8149a2c, no VETO), §5 DoD fully cold-verified
...
continuous-integration/drone/push Build is passing
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 16:16:02 +00:00
autonomic-bot
8149a2cd4a
review(M2): PASS — canonical sweep proven end-to-end, no VETO. 16 canonicals commit==tag (cold re-derived), real non-hollow timer fire (Result=success, single serial, custom-html 1.11→1.13 advance), determinism 2nd sweep 15-skip/5-documented-exception-run (no overlap, launched 14:41 after 14:37 fire end), tagged-gate both ways, samever step-back never fires in-sweep, UPGRADE_BASE_VERSION retired (plausible dynamic base 3.0.1 re-derived), my own --quick warm reattach reuses retained volume + 200, all 6 exceptions in DECISIONS, AI-free. DEFECT-3 CLOSED (parity byte-match + gitea lfs PASS in prod fire). M1+M2 fresh PASS → Builder may write ## DONE
continuous-integration/drone/push Build is passing
2026-06-17 16:15:28 +00:00
autonomic-bot
a4f1df435b
claim(M2): canonical sweep proven end-to-end — real timer fire promoted 16 canonicals (custom-html 1.11→1.13 live advance), determinism 2nd sweep clean (15 at-latest SKIP, only documented exceptions RUN), tagged-promote/samever-orthogonality/disk-budget/UPGRADE_BASE_VERSION-retirement all proven; 6 exceptions in DECISIONS; AI-free runtime
continuous-integration/drone/push Build is passing
2026-06-17 16:07:18 +00:00
autonomic-bot
29ca9b92a1
status(canon): stage M2 claim body (all sub-items WHAT/HOW/EXPECTED/WHERE) — finalizing on determinism 2nd sweep completion
continuous-integration/drone/push Build is passing
2026-06-17 15:59:05 +00:00
autonomic-bot
009bc60dc0
decisions(canon): record M2.7 warm-volume disk budget — 38G free, all-enrolled sustainable, no recipe dropped
continuous-integration/drone/push Build is passing
2026-06-17 15:57:14 +00:00
autonomic-bot
245c937ed7
chore(canon): consume ADVERSARY-INBOX — clean determinism 2nd sweep heads-up (M2.3 evidence in flight, pid 2248547); staying off-node, will verify SKIP/RUN partition + single-serial at M2 claim
continuous-integration/drone/push Build is passing
2026-06-17 14:42:52 +00:00
autonomic-bot
5c67543f6d
inbox(canon): heads-up — clean determinism 2nd sweep in flight (M2.3 evidence), single node, ~96m
continuous-integration/drone/push Build is passing
2026-06-17 14:42:07 +00:00
autonomic-bot
e8822165dd
journal(canon): production re-fire COMPLETE (Result=success, gitea cold-green via lfs PASS under parity PATH) — DEFECT-3 closed; launched clean determinism 2nd sweep (custom-html now at 1.13.0 → all 16 promoted at-latest)
continuous-integration/drone/push Build is passing
2026-06-17 14:41:45 +00:00
autonomic-bot
cf0659fc1f
review(canon): production-env real timer fire COMPLETED clean (Result=success, single serial) — custom-html promoted 1.11→1.13, 14 SKIP, 6 documented exceptions; DEFECT-3 prod re-validation favorable, closes at M2 claim
continuous-integration/drone/push Build is passing
2026-06-17 14:39:43 +00:00
autonomic-bot
1fd89dbaa1
review(canon): DEFECT-3 parity REAL (sweep PATH byte-matches Drone, git-lfs present) + live timer re-fire re-validating — gitea lfs PASSED cold-green, custom-html 1.11→1.13 promoted, promoted set SKIPs; favorable but M2 unclaimed, won't close until fire completes
continuous-integration/drone/push Build is passing
2026-06-17 14:28:34 +00:00
autonomic-bot
1cc14aa98e
journal(canon): resume reconstruction — parity fix deployed, real timer re-fire in flight (custom-html 1.11→1.13 promoted)
continuous-integration/drone/push Build is passing
2026-06-17 13:20:26 +00:00
autonomic-bot
cd897a1885
review(canon): assess DEFECT-3 env-parity fix ( 2c61f2f, host PATH=Drone parity) — right fix; DEFECT-3 stays OPEN until nixos-rebuild + real-timer re-fire re-validates promoted set in production env (verify parity real, gitea flips cold-green)
continuous-integration/drone/push Build is passing
2026-06-17 13:10:14 +00:00
autonomic-bot and Claude Opus 4.8
2c61f2fadf
fix(canon): sweep runs with host PATH = Drone-runner env parity (DEFECT-3 git-lfs etc.)
...
continuous-integration/drone/push Build is passing
The real timer fire redded gitea at the custom tier (git: 'lfs' is not a git command) — the
nightly-sweep writeShellApplication had a clean nix-only PATH, while Drone's recipe-CI runner runs
with PATH=/run/current-system/sw/bin:/run/wrappers/bin (where git-lfs + all host tooling live). My
manual sweeps used a login PATH that masked this. Prepend the host system PATH so the timer sweep
validates recipes in the SAME environment as Drone — one fix for git-lfs/bash/openssl/etc. parity.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 13:00:18 +00:00
autonomic-bot
c387ee1dd8
chore(canon): consume BUILDER-INBOX (DEFECT-3 git-lfs/env-parity — fixing sweep PATH, will re-fire as M2.2 evidence)
continuous-integration/drone/push Build is passing
2026-06-17 12:59:27 +00:00
autonomic-bot
bd0a565680
review+inbox(canon): DEFECT-3 — real timer fire reds gitea on MISSING git-lfs in nightly-sweep.service runtimeInputs (same class as bash gap); manual sweep env (had git-lfs, gitea cold-green) != production timer env → M2.2 promote evidence must be re-validated under the real timer; heads-up sent
continuous-integration/drone/push Build is passing
2026-06-17 12:57:58 +00:00
autonomic-bot
7f2e256866
review(canon): §2.G strip code-level CONFIRMED complete (no live UPGRADE_BASE_VERSION; only removal comments; KEYS 15->14; plausible dynamic base 3.0.1) — M2.8 favorable, re-run units+plausible at claim; M2.5 bash-fix needs redeploy+fresh fire
continuous-integration/drone/push Build is passing
2026-06-17 12:35:14 +00:00
autonomic-bot and Claude Opus 4.8
cebd293c5a
fix(canon): add bash to nightly-sweep runtimeInputs (real timer fire caught missing bash)
...
continuous-integration/drone/push Build is passing
The deployed sweep service (writeShellApplication) sets a clean PATH from runtimeInputs only;
mirror_sync shells out via subprocess.run(['bash', recipe-mirror-sync.sh, r]) → FileNotFoundError
'bash' on the real systemd fire (manual ssh runs had bash on PATH and masked it). Add bash.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 12:34:03 +00:00
autonomic-bot and Claude Opus 4.8
83c183d985
feat(canon): §2.G strip UPGRADE_BASE_VERSION entirely (plausible verified dynamic-base green)
...
continuous-integration/drone/push Build is passing
Gate satisfied — live: with the pin removed, plausible's upgrade tier resolves base 3.0.1+v2.0.0 via
the same-version step-back (canonical 3.1.0 == head 3.1.0 → newest-older = 3.0.1, NOT the broken
3.0.0) and passes install+upgrade green (level 5/5). The pin is redundant, so removed everywhere:
- meta.py KEYS entry (RecipeMeta field auto-drops; 15→14 keys).
- run_recipe_ci.resolve_upgrade_base override branch + docstrings.
- tests/unit/test_meta.py (count 15→14, dropped None-assert), test_upgrade_base.py (override test).
- docs/recipe-customization.md (regenerated table + mentions), docs/testing.md.
- tests/plausible/recipe_meta.py (pin removed), tests/bluesky-pds (re-enable note → dynamic base).
294 unit tests pass; lint clean.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 12:31:53 +00:00
autonomic-bot and Claude Opus 4.8
f611dda893
feat(canon): §2.G remove plausible UPGRADE_BASE_VERSION pin (dynamic base resolves 3.0.1 via step-back)
...
continuous-integration/drone/push Build is passing
plausible's canonical is established at 3.1.0+v2.0.0 (latest), so the dynamic resolver no longer
needs the explicit pin: a same-version head steps back to newest-older = 3.0.1+v2.0.0 (NOT the
broken 3.0.0). Verifying live before stripping the key globally (§2.G gate).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 12:26:25 +00:00
autonomic-bot
8e15def15d
review(canon): acceptance bar for gitea-exception (VERIFY custom-html advance really promoted + gitea app.ini-RO is recipe not machinery mount) + M2.3 reframing (accept IFF 2nd sweep: 15 skip / only documented exceptions run; flag as literal-DoD deviation for operator)
continuous-integration/drone/push Build is passing
2026-06-17 12:22:52 +00:00
autonomic-bot
bdc2ec4773
decisions(canon): gitea 3.6.0 warm-advance exception (app.ini read-only, recipe issue; 3.5.3 valid) + M2.3 determinism framing
continuous-integration/drone/push Build is passing
2026-06-17 12:19:04 +00:00
autonomic-bot
9ffbba57e3
review(canon): authoritative sweep DONE rc=0 @12:00:03Z (single serial, 11:25:57->12:00:03); determinism preview visible (promoted recipes SKIP); awaiting gitea fix + M2.3/5/6/7/8 proofs before claim
continuous-integration/drone/push Build is passing
2026-06-17 12:10:44 +00:00
autonomic-bot
930335972a
chore(canon): consume BUILDER-INBOX (gitea 3.6.0 advance — fixing; drone promoted clean)
continuous-integration/drone/push Build is passing
2026-06-17 12:00:53 +00:00
autonomic-bot
a6c506844a
review+inbox(canon): final-sweep crux — drone PROMOTED CLEAN (residue fix works, DEFECT-2 closing) but gitea 3.6.0 advance FAILED AGAIN (GREEN-BUT-PROMOTE-FAILED, canon kept 3.5.3) → CLAIM-BLOCKER for M2.6 (advance undemonstrated) + M2.3 (green recipe re-runs, not a red); heads-up sent
continuous-integration/drone/push Build is passing
2026-06-17 11:59:14 +00:00
autonomic-bot
35d629452b
decisions(canon): record 4 recipe RED exceptions (discourse upstream-compose / mattermost+mumble test-red / bluesky warm-routing) — genuine, tests unmodified, left intact
continuous-integration/drone/push Build is passing
2026-06-17 11:37:33 +00:00
autonomic-bot
31fbed13b6
review(canon): CONFIRMED final authoritative sweep @12acf94 contains both ca89d44+d072d7e (recency criterion MET); list red-diagnosis verifications (discourse/mattermost-lts/mumble/bluesky) — verify genuine+not-weakened+DECISIONS-recorded at claim
continuous-integration/drone/push Build is passing
2026-06-17 11:35:51 +00:00
autonomic-bot
2ce31b4035
status(canon): FINAL authoritative M2.2 sweep launched (post-fix /etc/cc-ci@12acf94, enrolled=20, serial); red diagnoses recorded
continuous-integration/drone/push Build is passing
2026-06-17 11:26:19 +00:00
autonomic-bot
12acf94b91
review(canon): pre-fix sweep DONE (15 canonicals); NEW red mumble rc=1 (must fix-or-document); plausible promoted 3.1.0+v2.0.0 not 3.0.1 → §2.8 retirement must re-derive dynamic base vs actual canonical
continuous-integration/drone/push Build is passing
2026-06-17 11:23:53 +00:00
autonomic-bot
32c9703ffe
review(canon): VERIFIED fresh-seed-teardown × live-keycloak footgun MITIGATED — keycloak de-enrolled (enrolled=20, not in set), live warm-keycloak 200 + 1/1 unharmed by pre-fix sweep; carry: check no other recipe domain collides with a live service
continuous-integration/drone/push Build is passing
2026-06-17 11:12:25 +00:00
autonomic-bot
618ac1ef6f
status(canon): M2 snapshot — 10 clean promotes incl. lasuite-* (warm dep works); plan for authoritative post-fix sweep
continuous-integration/drone/push Build is passing
2026-06-17 11:03:00 +00:00
autonomic-bot
3bcc11f7b5
review(canon): note residue fix ( ca89d44, likely drone root cause) + keycloak de-enroll ( d072d7e, §2.B exception, enrolled=20); set M2-evidence recency criterion — accepted sweep must postdate both fixes, single serial, drone promotes-or-exception
continuous-integration/drone/push Build is passing
2026-06-17 11:00:24 +00:00
autonomic-bot and Claude Opus 4.8
d072d7e2c2
fix(canon): de-enroll keycloak (live-warm OIDC provider) — §2.B exception
...
continuous-integration/drone/push Build is passing
keycloak is the always-on shared OIDC dep provider at warm-keycloak.ci..., the SAME stable domain a
data-warm canonical would use → the sweep's promote would collide with the live provider that
lasuite-*/drone depend on. keycloak is kept current by roll_warm_infra (WC1.1) instead.
WARM_CANONICAL=False; exception recorded in DECISIONS. Enrolled set now 20.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 10:54:14 +00:00
autonomic-bot and Claude Opus 4.8
ca89d44c05
fix(canon): promote clears stale warm-stack on a fresh seed (failed-promote secret residue)
...
continuous-integration/drone/push Build is passing
A once-failed promote left swarm secrets (e.g. drone's gitea client_secret_v1) behind; the retry's
install_steps 'abra app secret insert' then FATAd 'already exists', so a recipe could never recover
its canonical. promote_canonical now teardown_app()s the warm domain when there is NO existing
canonical (fresh seed) — clearing leftover secrets/.env/partial volumes — while a re-promote
(canonical exists) still reattaches its retained known-good volume untouched.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 10:51:01 +00:00
autonomic-bot
d32940d3e1
review(canon): clean-serial sweep obs — drone STILL promote-fails clean (lock fix cured hang, not promote; M2 risk); gitea new-tag 3.5.3->3.6.0 advance = live M2.6 evidence
continuous-integration/drone/push Build is passing
2026-06-17 10:48:12 +00:00
autonomic-bot
d4a053dfcc
chore(canon): consume ADVERSARY-INBOX (concurrent sweeps killed, drone tainted-canonical discarded, ONE clean serial sweep relaunched pid1741209); carry to claim — verify 7 kept canonicals' ts outside concurrency window
continuous-integration/drone/push Build is passing
2026-06-17 10:25:01 +00:00
autonomic-bot
1f4aa25a2b
inbox+status(canon): killed concurrent sweeps, cleaned residue, cleared concurrency-tainted drone canonical; ONE clean serial sweep relaunched
continuous-integration/drone/push Build is passing
2026-06-17 10:24:06 +00:00
autonomic-bot
fb2fe307dc
chore(canon): consume BUILDER-INBOX (concurrent-sweep alert — killing wedged old sweep, will re-run clean serial)
continuous-integration/drone/push Build is passing
2026-06-17 10:21:42 +00:00
autonomic-bot
4d5b03b485
inbox+review(canon): TWO concurrent sweeps — wedged old sweep (PID1712141, drone deadlock child ~46m) still alive alongside new re-run (PID1736506); violates §4 serial + breaks release_app_locks precondition; M2 evidence from overlapping run not acceptable
continuous-integration/drone/push Build is passing
2026-06-17 10:20:49 +00:00
autonomic-bot
88293702b2
status(canon): mirror-sync master-detection + cold-dep lock-release fixes deployed; validating drone
continuous-integration/drone/push Build is passing
2026-06-17 10:05:13 +00:00
autonomic-bot and Claude Opus 4.8
655a9998be
fix(canon): release cold-run app/dep locks before promote (cold-dep self-deadlock)
...
continuous-integration/drone/push Build is passing
drone (DEPS=[gitea], a COLD dep) deadlocked in promote: the cold test holds the gitea dep's
app-lock for the whole process lifetime, and promote's _provision_deps re-acquires the same lock
in the same process → blocks forever. By promote time the cold test + its deps are torn down
(dep teardown runs in the run finally, before promote), so the locks are stale. New
lifecycle.release_app_locks() frees them at promote start; the serial sweep guarantees no
concurrent run relies on them. lasuite-* (warm keycloak dep) were unaffected (no cold deploy).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 10:04:14 +00:00
autonomic-bot and Claude Opus 4.8
24579383f4
fix(canon): mirror-sync detects upstream default branch (master vs main)
...
continuous-integration/drone/push Build is passing
Adversary-flagged: drone/gitea mirror-sync hit rc=128 ('couldn't find remote ref main') —
coopcloud/coop-cloud/{drone,gitea} use `master`, not `main`. The script hardcoded
`git fetch upstream main` → sync skipped (non-fatal) so the mirror wasn't reconciled (the trigger
still used correct upstream tags from the local abra-fetch clone, so the version tested was right;
only the mirror push was missed). Now resolves the upstream HEAD symref and fetches that branch,
force-pushing it to the mirror's `main`. Consumes BUILDER-INBOX.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 09:37:24 +00:00
autonomic-bot
d9987a0fbf
inbox(canon): heads-up to Builder before M2 claim — (1) drone mirror-sync rc=128 swallowed (clarify §2.C); (2) determinism run-twice-skip-all vs red/promote-failed recipes (reconcile in claim evidence)
continuous-integration/drone/push Build is passing
2026-06-17 09:35:35 +00:00
autonomic-bot
4accd22d50
review(canon): pre-claim observations — DEFECT-1 label fix live/honest; NEW mirror-sync drone rc=128 swallowed (scrutinise §2.C); determinism M2.3 run-twice-skip-all at risk for red/promote-failed recipes
continuous-integration/drone/push Build is passing
2026-06-17 09:35:11 +00:00
autonomic-bot
df26041307
chore(canon): consume ADVERSARY-INBOX (fix f94de22 validated, M2 re-run in flight); pre-claim note — scrutinise bluesky 'documented RED' as possible warm-domain routing machinery defect at claim
continuous-integration/drone/push Build is passing
2026-06-17 09:12:01 +00:00
autonomic-bot
0eca8b5089
status+inbox(canon): promote fix validated (custom-html-tiny+ghost promote); bluesky warm-routing red; full re-run in flight
continuous-integration/drone/push Build is passing
2026-06-17 09:11:07 +00:00
autonomic-bot
3393dba11e
review(M2.2): file DEFECT-1 (untrustworthy PASS label) + DEFECT-2 (promote path failing broadly) as OPEN adversary findings; close only after re-verify of fix f94de22
continuous-integration/drone/push Build is passing
2026-06-17 08:55:31 +00:00
autonomic-bot
2126747e2e
status(canon): M2.2 run-1 surfaced+fixed promote bug; validating faithful-install fix
continuous-integration/drone/push Build is passing
2026-06-17 08:51:49 +00:00
autonomic-bot and Claude Opus 4.8
f94de22234
fix(canon): promote does a FAITHFUL warm install (clean tree + deps + install_steps)
...
continuous-integration/drone/push Build is passing
M2 finding (Adversary-flagged): promote_canonical did a bare `abra app deploy` that lacked the
cold install's wiring, so recipes that passed the cold test still failed to promote:
- ghost: `abra app new` FATA 'locally unstaged changes' — the CCCI_SKIP_FETCH per-run tree was
left dirty by the tier suite. Fix: force re-checkout the tag + `git clean -fd` before deploy.
- bluesky-pds: missing pds_plc_rotation_key (install_steps inserts it, #generate=false).
- custom-html-tiny: 404 (install_steps seeds index.html). Fix: run install_steps_hook in promote.
- OIDC recipes would miss their realm. Fix: provision DEPS in promote like the cold install.
promote_canonical now: clean tree → provision deps → deploy_app with install_steps_hook + overlay +
ready-probes, then snapshot. Also: sweep result label now derives from whether the canonical was
actually written (promote is non-fatal; rc==0 did not imply promoted) — fixes the misleading
'PASS (promoted)'.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 08:50:59 +00:00
autonomic-bot
4cf1b32f4c
chore(canon): consume BUILDER-INBOX (promote failing ~4/5 + misleading PASS label — diagnosing)
continuous-integration/drone/push Build is passing
2026-06-17 08:41:28 +00:00
autonomic-bot
d933585e92
note(canon): pre-claim finding — sweep PASS-label vs actual promote failures (4/5), determinism risk; evidence captured for M2 verification
continuous-integration/drone/push Build is passing
2026-06-17 08:40:41 +00:00
autonomic-bot
ba28a8897a
inbox(canon): heads-up — sweep logs PASS(promoted) but 4/5 promotes FAILED (only cryptpad wrote a canonical); label derives from rc not record; determinism M2.3 at risk
continuous-integration/drone/push Build is passing
2026-06-17 08:40:16 +00:00
autonomic-bot
0f2f57b5ca
chore(canon): consume BUILDER-INBOX (discourse wedge heads-up; will time out → RED → sweep continues)
continuous-integration/drone/push Build is passing
2026-06-17 08:17:27 +00:00
autonomic-bot
7ca77f95ca
inbox(canon): heads-up — M2.2 sweep stuck on discourse ~51m (abra deploy hung, 0 containers, ~08:24Z timeout); canonical count 2
continuous-integration/drone/push Build is passing
2026-06-17 08:15:59 +00:00
autonomic-bot
38f9c8a30a
note(canon): pre-claim — M2.1 deploy verified live read-only (/etc/cc-ci pulled to 3bdd5d1, weekly timer deployed, sweep runs non-hollow path); M2 not yet claimed
continuous-integration/drone/push Build is passing
2026-06-17 07:20:47 +00:00
autonomic-bot
7a08f05d59
chore(canon): consume ADVERSARY-INBOX (M1 PASS ack'd; Builder starting M2.2 long sweep)
continuous-integration/drone/push Build is passing
2026-06-17 07:20:07 +00:00
autonomic-bot
b619e8168f
inbox(canon): heads-up — M2.1 deployed; starting long M2.2 full sweep
continuous-integration/drone/push Build is passing
2026-06-17 07:19:20 +00:00
autonomic-bot
3bdd5d143b
review(M1): PASS — tagged-gate + trigger + mirror-sync + all-21-enrolled + weekly timer cold-verified; live canonical records tag commit df2e273; 295 unit pass from fresh clone. No VETO
continuous-integration/drone/push Build is passing
2026-06-17 07:11:34 +00:00
autonomic-bot
8a52c16abb
journal(canon): M2-prep recon — 20 recipes will seed, runtime/disk risks noted
continuous-integration/drone/push Build is passing
2026-06-17 07:08:50 +00:00
autonomic-bot and Claude Opus 4.8
626badd333
claim(M1): canonical sweep machinery built + live-proven on custom-html
...
continuous-integration/drone/push Build is passing
M1 (machinery works locally, each piece proven) — code HEAD d4cc9e4 , unit suite 295 passed:
- M1.1 tagged-promote gate + promote-tested-version: live proof-A wrote a fresh canonical
(commit df2e273 = the tag commit, correcting samever's main-HEAD 2b82eba); live proof-C
green-untagged → 0 promotes, canonical byte-identical (tagged-gate blocks untagged).
- M1.2 sweep_decision (version-keyed trigger) + vendored faithful recipe-mirror-sync.sh
(smoke-tested: faithful no-op main/tags push, closed merged-upstream PR #2 , left PR #5 );
nightly_sweep rewritten (mirror_sync -> trigger -> run_on_tag). Live SKIP demo on custom-html.
- M1.3 all 21 used-recipes enrolled. M1.4 hollow-sweep fix (CCCI_REPO=/etc/cc-ci). M1.5 weekly timer.
- M1(A) reattach: live proof-B --quick reused the retained volume green; known-good unchanged.
Evidence + verify recipes in STATUS-canon.md; reasoning in JOURNAL-canon.md; DECISIONS appended.
Gate: M1 CLAIMED, awaiting Adversary.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 07:07:44 +00:00
autonomic-bot
69f59fdcc5
status(canon): M1 code complete + unit-tested; live M1(A) proofs in flight
continuous-integration/drone/push Build is passing
2026-06-17 06:49:53 +00:00
autonomic-bot and Claude Opus 4.8
d4cc9e4530
fix(canon): promote the TESTED release version, not a re-derived latest tag
...
continuous-integration/drone/push Build is passing
Closes the head_version-vs-latest_version divergence: should_promote gates on head_version
(code under test) but promote_canonical recorded latest_version(recipe_tags). In a manual
RECIPE=<r> run whose main checkout sits on a tag OLDER than the newest published tag, the gate
would pass on the older tag yet promote the newer (never-tested) one. promote_canonical now
takes the tested `version` (head_version, guaranteed a release tag by the tagged-gate) and
records exactly that. Sweep path unaffected (head==tag by construction).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 06:47:33 +00:00
autonomic-bot and Claude Opus 4.8
a20890a363
feat(canon): M1.2 release-tag trigger + faithful mirror-sync in the weekly sweep (§2.C/§2.D)
...
continuous-integration/drone/push Build is passing
- warm_reconcile.sweep_decision(latest_tag, canon_version): pure new-release-tag trigger
keyed on version_key (NOT commit) — new tag>canon → run; ==/older → skip no-new-version
(even with untagged main commits); no tag → skip never-released. Unit-tested.
- scripts/recipe-mirror-sync.sh: faithful mirror sync (adapted from open-recipe-pr.sh
--reconcile-only) — explicit coopcloud `upstream` remote (robust to inconsistent clone
remotes), syncs main+TAGS, closes merged-upstream PRs, leaves unrelated PRs, bot-token auth.
- nightly_sweep rewritten: per enrolled recipe → mirror_sync → fetch → sweep_decision →
run_on_tag (checkout the release tag + CCCI_SKIP_FETCH=1 so head IS the tag → tagged-promote
gate passes, REF empty → promote allowed). Skips logged; run-twice → skip-all determinism.
- smoke-tested recipe-mirror-sync.sh live on custom-html: faithful no-op main/tags push,
closed merged-upstream PR #2 , left pending PR #5 .
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 06:45:43 +00:00
autonomic-bot
f089c30040
chore(canon): pre-claim code-read notes (M1.1/1.3/1.4/1.5 landed; M1.2 outstanding; probe list)
continuous-integration/drone/push Build is passing
2026-06-17 06:42:08 +00:00
autonomic-bot and Claude Opus 4.8
f8c0e53521
feat(canon): M1.4 hollow-sweep fix + M1.5 weekly timer
...
continuous-integration/drone/push Build is passing
M1.4: run the sweep from the deployed checkout (CCCI_REPO=/etc/cc-ci, cd there, exec
$CCCI_REPO/runner/nightly_sweep.py) instead of a nix-store runner copy. The store copy
had no tests/, so enrolled_recipes() resolved TESTS_DIR to a missing dir and returned []
— the root cause of the hollow no-op sweep. /etc/cc-ci has runner/ AND tests/ and is the
same checkout run_recipe_ci already runs from.
M1.5: timer OnCalendar daily -> weekly (Sun 03:00 UTC), Persistent kept.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 06:37:39 +00:00
autonomic-bot and Claude Opus 4.8
136100f610
feat(canon): M1.3 enroll all 21 used-recipes as data-warm canonicals (§2.B)
...
continuous-integration/drone/push Build is passing
WARM_CANONICAL=True added to every recipe in cc-ci-plan/used-recipes.md (20 weekly +
uptime-kuma external). enrolled_recipes() now returns all 21. Test fixtures
(custom-html-*-bad, concurrency, regression) intentionally left unenrolled.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 06:35:30 +00:00
autonomic-bot and Claude Opus 4.8
27e06289f8
feat(canon): M1.1 tagged-promote gate — canonical only advances to a published release tag
...
continuous-integration/drone/push Build is passing
- should_promote_canonical gains a `tagged` requirement (canon §2.A): a green cold
latest run promotes only when the tested head version is a published release tag;
an untagged main commit never becomes a canonical.
- warm_reconcile.is_released_version(recipe, version): release-tag membership (exact or
by version_key). Caller computes `tagged` so the gate stays pure.
- unit tests: untagged -> no promote; is_released_version cases.
- drive-by (pre-existing reds, unrelated to canon, now green): test_warm_reconcile
traefik assertion was stale vs the phase-pxgate spec (probes /api/version, no
health_domain); meta.py UPGRADE_BASE_VERSION KEYS help synced to the prevb doc text.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 06:34:09 +00:00
autonomic-bot and Claude Opus 4.8
23c02c59b6
status(canon): bootstrap phase canon — state files, hollow-sweep root cause, M1/M2 backlog
...
continuous-integration/drone/push Build is passing
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 06:28:35 +00:00
autonomic-bot
cfb341e244
chore(canon): Adversary online + cold baseline of starting state (1 enrolled, 1 canonical from samever, daily timer)
continuous-integration/drone/push Build is passing
2026-06-17 06:19:45 +00:00
autonomic-bot
199f5b6cb8
review(samever): M2 PASS — headline step-back reproduced from own clone; version-bump + discourse #4 unaffected; teeth hold; clean teardown. No VETO; cleared for DONE
continuous-integration/drone/push Build is passing
2026-06-17 05:04:42 +00:00
autonomic-bot
96c4ad9ef3
claim(M2): samever proven in real CI — step-back base<head, version-bump unaffected, discourse #4 + hedgedoc spot-check
...
continuous-integration/drone/push Build is passing
5 real cc-ci runs (samever-deploy @ cc-ci main): Run B nightly steady-state step-back
custom-html 1.11.0+1.29.0→1.13.0+1.31.1 (base<head real delta, 5 tiers green); Run C
version-bump UNAFFECTED (last-green path); Run D PR-form step-back (ref set); discourse #4
kind=ref main-tip unaffected (migration 0.8.1→1.0.0 green); hedgedoc spot-check step-back
3.0.9→3.0.10 green. WHAT/HOW/EXPECTED/WHERE in STATUS-samever.md; logs /root/samever-*.log,
artifacts /var/lib/cc-ci-runs/samever-*/ on cc-ci.
2026-06-17 04:58:48 +00:00
autonomic-bot
8e8985b96f
journal(samever): M2 evidence — step-back (B), version-bump-unaffected (C), discourse kind=ref unaffected
continuous-integration/drone/push Build is passing
2026-06-17 04:47:53 +00:00
autonomic-bot
7902fb327d
chore(samever): consume ADVERSARY-INBOX (M2 heads-up read)
continuous-integration/drone/push Build is passing
2026-06-17 04:33:32 +00:00
autonomic-bot
aff7b14299
inbox(samever): heads-up — starting M2 e2e (custom-html two-run) on cc-ci
continuous-integration/drone/push Build is passing
2026-06-17 04:32:52 +00:00
autonomic-bot
398f559168
status(samever): M1 PASS recorded; M2 in progress (custom-html two-run on cc-ci)
continuous-integration/drone/push Build is passing
2026-06-17 04:32:51 +00:00
autonomic-bot
1310a95ac2
review(samever): M1 PASS — resolver step-back cold-verified; teeth hold (base<head), version-bump path untouched, 13/13 + own probes
continuous-integration/drone/push Build is passing
2026-06-17 04:28:22 +00:00
autonomic-bot
61c7739285
journal(samever): M2 prep notes while parked at M1 gate
continuous-integration/drone/push Build is passing
2026-06-17 04:26:27 +00:00
autonomic-bot
c5a0d204c1
claim(M1): samever resolver step-back implemented + unit-tested (13 pass)
...
continuous-integration/drone/push Build is passing
WHAT/HOW/EXPECTED/WHERE in STATUS-samever.md. Adversary: cold pytest
tests/unit/test_upgrade_base.py → 13 passed; canonical==head steps back to a
strictly-older base, canonical!=head unchanged, no-older→declared skip.
2026-06-17 04:25:16 +00:00
autonomic-bot
b29bb3f804
feat(samever): step back to older base when last-green canonical == head version
...
resolve_upgrade_base now reads the head's published version (abra.head_compose_version,
the coop-cloud.<stack>.version label) and, when the last-green warm-canonical version
equals it, steps back to the newest published version strictly older than head instead
of deploying a same-version no-op. warm_reconcile gains version_key + newest_older_version
(single coop-cloud ordering source; sort_versions refactored onto version_key, no behavior
change). Skip only when no older published predecessor exists. Step-back returns kind=version
so it inherits F1d-2 pinned-tag checkout. Extends tests/unit/test_upgrade_base.py (13 pass).
2026-06-17 04:24:14 +00:00
autonomic-bot
279d84d229
fix(STATUS-regall): bare ## DONE marker so watchdog detects phase complete
continuous-integration/drone/push Build is passing
2026-06-17 04:14:14 +00:00
autonomic-bot
f97ed0299a
review(samever): Adversary orientation — samever phase started; awaiting M1 claim
continuous-integration/drone/push Build is passing
2026-06-17 04:11:09 +00:00
autonomic-bot and Claude Sonnet 4.6
eff8b1a93f
review(regall): M1 PASS + M2 PASS — full sweep 21/21 GREEN, no prevb regressions, no VETO
...
continuous-integration/drone/push Build is passing
M1: All 21 recipes cold-verified from results.json. Classification table accurate.
Zero prevb regressions. A-regall-2 (plausible) = recipe bug in 3.0.1+v2.0.0, not prevb.
BPs 1-5 complete. No flake misclassifications found.
M2: Trivially satisfied — no prevb-caused regressions, no cc-ci code fixes needed.
Both M1+M2 PASS. regall phase DONE.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 03:04:38 +00:00
autonomic-bot and Claude Sonnet 4.6
3403309136
status(regall): ## DONE — M1+M2 Adversary-verified PASS (no VETO); all 21 GREEN
...
continuous-integration/drone/push Build is passing
21/21 recipes GREEN post-prevb. 0 prevb regressions. A-regall-2 closed
(plausible backup_restore=fail was recipe bug in 3.0.1+v2.0.0, NOT prevb;
run 758 / PR#3 / 3.1.0+v2.0.0 confirms L5 pass with fixed backup mechanism).
All batches 1-6 complete. M1+M2 both claimed 2026-06-17T04:45Z.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 03:03:06 +00:00
autonomic-bot and Claude Sonnet 4.6
848e0c6b1e
review(regall): A-regall-2 CLOSED — plausible L5 via PR#3 (run 758); recipe bug NOT prevb
...
continuous-integration/drone/push Build is passing
Builder diagnosis (a3d115d ) accepted:
- backupbot.backup.path in 3.0.1+v2.0.0 places dump in writable layer (not restic volume)
- PR#4 (trivial regall trigger at 3.0.1+v2.0.0) exposes the bug; PR#3 (3.1.0+v2.0.0) fixes it
- Baseline run 658 used PR#3 (d77adba4698b) — same passing ref as run 758
Cold-verified: run 758 (PR#3, d77adba4698b) → level=5, backup_restore=pass ✓
Plausible regall result = L5 GREEN. Sweep now 21/21 complete.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 03:01:55 +00:00