Commit Graph
100 Commits
Author SHA1 Message Date
autonomic-bot f6058b9a00 review(bsky): post-verdict DECISIONS consult — pin-choice + EXPECTED_NA entries consistent (digest-pin rejected for abra tooling); verdict unchanged
continuous-integration/drone/push Build is passing
2026-06-11 15:49:33 +00:00
autonomic-bot 42eabbaa24 review(bsky): M2 PASS @5b0e42a — fresh independent !testme re-trigger (comment 14344) → build 435 level 5 at PR head f7b6c8df, real functional tests (account/post/auth), clean teardown, no leak, screenshot real==427; DEFERRED both entries closed w/ pointers; operator summary crisp; 0.5.x has NO release tag (re-pin fully justified); no canonical to reseed; PR open/unmerged. Both M1+M2 fresh PASS, no VETO — Builder cleared for ## DONE.
continuous-integration/drone/push Build is passing
2026-06-11 15:48:53 +00:00
autonomic-bot 369f4f486b review(bsky): M1 PASS @73889ed — root cause reproduced cold (:0.4=0.5.1/index.ts crash, :0.4.219=index.js fix); PR#2 minimal +2/-2 unmerged; run 427 genuine drone !testme at PR head = level 5 (upgrade=declared intentional skip, premise verified: both published tags pin broken moving :0.4); negative control 423 red @ level 0 (teeth); 253 unit tests + repo lint PASS cold; screenshot real PDS landing credential-free (sha256 published==disk); no secret leak. No gate weakening — EXPECTED_NA scoped per-recipe-per-rung. No VETO.
continuous-integration/drone/push Build is passing
2026-06-11 12:03:04 +00:00
autonomic-bot cfda9e72db review(bsky): EXPECTED_NA['upgrade'] premise verified cold — both published tags (0.1.1/0.2.0+v0.4) pin broken moving :0.4, no deployable base; recorded scoping/teeth checks for the claim
continuous-integration/drone/push Build is passing
2026-06-11 11:56:07 +00:00
autonomic-bot f88c6bc78d review(bsky): cold image probe reproduces root cause both halves (:0.4 ships index.ts/node24, :0.4.219 ships index.js/node20); recorded M1 scrutiny points; no claim yet
continuous-integration/drone/push Build is passing
2026-06-11 11:44:26 +00:00
autonomic-bot 8d5bf305e8 review(bsky): seed REVIEW-bsky + cold baseline recon (image :0.4 moving tag, entrypoint runs relative index.js); awaiting first claim
continuous-integration/drone/push Build is passing
2026-06-11 11:32:20 +00:00
autonomic-bot 9ce987188a status(lvl5): ## DONE — M1 (cfc87fd) + M2 (13cad1f) both PASS, no VETO; L5 lint rung + de-capped levels live end-to-end; cleanup complete
continuous-integration/drone/push Build is passing
2026-06-11 11:29:32 +00:00
autonomic-bot a521d43a17 claim(lvl5): M2 — P4 proven in real CI: L5 (398/406/407/413), lint-blocked L4 verdict-neutral (405), N/A-skip climb (399), drone !testme ×3, canaries red @ re-derived L1 (415/416), unver-blocks synthesized run L2, old artifacts render, durations at baseline, visuals verified
continuous-integration/drone/push Build is passing
2026-06-11 11:18:26 +00:00
autonomic-bot dc924c679b status(lvl5): before/after table real values (398/399/405/406/407/413) + canary designed-level re-derivation (415/416 red @ L1)
continuous-integration/drone/push Build is passing
2026-06-11 11:15:31 +00:00
autonomic-bot 763f8d1a47 journal(lvl5): P4 wave 2 — PR-path lint fix proven, L4-blocked + 2×L5 PR proofs green, visuals verified
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is failing
2026-06-11 11:04:21 +00:00
autonomic-bot 68c3486216 fix(lvl5): lint executor PR-path — abra lint selects+checks out the repo DEFAULT BRANCH; scratch clone of a detached per-run tree has none (FATA, live 400-402), and a stale default would be silently linted instead of the PR head. Force local main AT the tested ref + repoint origin to the scratch itself (offline tag fetch, no drift). Regression test with detached two-commit source proves exact-ref content is linted. 247 unit tests green; real-abra detached-source smoke pass.
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
2026-06-11 10:56:56 +00:00
autonomic-bot 1fb70aafa6 journal(lvl5): P4 wave 1 — hedgedoc L5 + custom-html-tiny N/A-skip climb green; lint-demo PR4 + 3 testme builds in flight
continuous-integration/drone/push Build is passing
2026-06-11 10:50:00 +00:00
autonomic-bot 29047a8dec status(lvl5): M1 PASS consumed — merged 08e6cc8, suite green on merged main, dashboard rolled + live-verified; starting P4
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
2026-06-11 10:46:03 +00:00
autonomic-bot 08e6cc8273 feat(lvl5): merge phase-lvl5 → main after M1 PASS (review cfc87fd) — implementation content taken verbatim from the Adversary-verified branch tip 3d8d286
continuous-integration/drone/push Build is passing
2026-06-11 07:56:34 +00:00
autonomic-bot 5ce813e910 journal(lvl5): P3 sweep evidence
continuous-integration/drone/push Build is passing
2026-06-11 07:54:50 +00:00
autonomic-bot 40caaab8fb status(lvl5): P3 sweep complete — 19/19 enrolled recipes lint PASS (warn-only misses), no mirror PRs needed; before/after baseline table assembled
continuous-integration/drone/push Build is passing
2026-06-11 07:54:35 +00:00
autonomic-bot 24baac559c claim(lvl5): M1 — P1+P2 complete on phase-lvl5 @ 3d8d286; 246 unit tests cold-green on cc-ci venv, repo lint PASS, real-abra smoke pass+R014-fail, verdict-neutral by construction; main holds reverts pending pre-merge PASS
continuous-integration/drone/push Build is passing
2026-06-11 07:51:13 +00:00
autonomic-bot 3d8d286cf3 chore(lvl5): ruff format lint.py
continuous-integration/drone/push Build is passing
2026-06-11 07:49:47 +00:00
autonomic-bot 1d3b61c6c2 fix(lvl5): lint table parser — abra renders HEAVY box verticals (┃ U+2503); accept both; meta registry EXPECTED_NA/BACKUP_CAPABLE wording → regenerated doc table
continuous-integration/drone/push Build is failing
Found by real-abra smoke on cc-ci: hedgedoc clean → pass; +lightweight tag →
fail R014. Full suite 246 passed on cc-ci venv.
2026-06-11 07:49:29 +00:00
autonomic-bot cd62743055 Revert "feat(lvl5): P1 — 5-rung ladder (L5=abra recipe lint) + de-capped level semantics"
continuous-integration/drone/push Build is passing
This reverts commit e219a7891d.
2026-06-11 07:46:57 +00:00
autonomic-bot 589943f46e Revert "docs(lvl5): results-ux.md → 5-rung de-capped ladder + schema 2; recipe-customization.md EXPECTED_NA/BACKUP_CAPABLE rows to new semantics"
This reverts commit af7488a498.
2026-06-11 07:46:57 +00:00
autonomic-bot af7488a498 docs(lvl5): results-ux.md → 5-rung de-capped ladder + schema 2; recipe-customization.md EXPECTED_NA/BACKUP_CAPABLE rows to new semantics
continuous-integration/drone/push Build is passing
2026-06-11 07:45:18 +00:00
autonomic-bot 392f7df48f decisions(lvl5): level-semantics de-cap record, N/A classification table, lint mirror-context decision
continuous-integration/drone/push Build is passing
2026-06-11 07:43:25 +00:00
autonomic-bot e219a7891d feat(lvl5): P1 — 5-rung ladder (L5=abra recipe lint) + de-capped level semantics
continuous-integration/drone/push Build is passing
level.py: RUNGS += lint; statuses {pass,fail,skip,unver}; compute_level = max passed
rung with all below pass-or-skip (fail/unver block); cap_reason/capped DELETED.
harness/lint.py: lint executor — pristine scratch clone of the per-run tree at the
exact tested ref (mirror-origin + untracked-overlay pollution solved by context, no
rule filtered), PTY via script -qec, 60s hard budget, lint.txt artifact, table-parse
classifier (rc only signals FATA), unver on any non-run (never silent pass).
results.py: derive_rungs classifies every N/A source (structural/declared → skip,
else unver), lint rung + synthetic lint stage + lint block in results.json, schema 2,
cap fields removed. run_recipe_ci.py: lint call before tiers (double-wrapped,
verdict-neutral), badge = level only. card/dashboard: 0-5 ramp, cap line → 'level N
of {4|5}', unverified rows, badge number+colour only, lint.txt servable, old schema-1
artifacts render untouched. Unit suite rewritten: 245 passed on cc-ci venv.
2026-06-11 07:42:30 +00:00
autonomic-bot df301a5917 status(lvl5): phase open — state files bootstrapped, orientation done, probing abra lint next
continuous-integration/drone/push Build is passing
2026-06-11 07:22:53 +00:00
autonomic-bot 4822115b2b status(shot): ## DONE — M1 (ae10b55) + M2 (2b54adb) both PASS, A1 closed, no VETO; phase complete
continuous-integration/drone/push Build is passing
2026-06-11 07:19:09 +00:00
autonomic-bot 2b54adbe46 review(shot): M2 PASS — all 19 enrolled cold-verified. 18/18 final PNGs Read (real, representative, credential-free; every login/setup form EMPTY-field, mattermost real login NOT interstitial, keycloak/immich/etc SPA paint-race fixed); no verdict/level regression (all pass at baseline); 2 GENUINE drone !testme (370 immich#2 comment 14321 + 371 plausible#3 comment 14322, bridge-triggered per ccci-bridge logs, NOT manual); durations 199→198/209→166 no balloon; R7 intact (call site outside-deploy+double-wrapped+untouched by shot phase, capture swallows, 60s budget); dashboard/screenshot/badge live 200; screenshot 12/12 + card 10/10 unit tests GREEN cold on real harness; no_secret_leak=true. bluesky N/A re-confirmed; mumble N/A-variant AGREED (reverses M1 on new evidence: connect-dialog DOM absent + perpetual spinner). A1 closed. No VETO — DoD handshake satisfied, Builder may write ## DONE.
continuous-integration/drone/push Build is passing
2026-06-11 07:18:05 +00:00
autonomic-bot 196156e497 claim(shot): M2 — all 19 recipes OK or documented-N/A (bluesky-pds upstream-broken; mumble best-available loader + DEFERRED); fixes on main (harness settle+keep-larger retry, plausible 62→68ch SECRET_KEY_BASE root-cause, mattermost click-through hook); 10 fresh proof runs incl drone !testme 370+371, levels=baselines, durations 198/166s vs 199/209s; every PNG Builder-Read, credential-free; dashboard/card/badge verified
continuous-integration/drone/push Build is passing
2026-06-11 07:06:04 +00:00
autonomic-bot 2b2a7ba823 status(shot): M2 evidence assembled — P3/P4 ledgers complete, proof table, durations, dashboard checks
continuous-integration/drone/push Build is passing
2026-06-11 07:05:52 +00:00
autonomic-bot 6104a9970d chore(shot): DEFERRED — mumble-web client never paints for anonymous visitors (upstream question; loader frame is the honest web-surface view; voice fully tested via protocol tests)
continuous-integration/drone/push Build is passing
2026-06-11 07:02:49 +00:00
autonomic-bot 3c33129ebd fix(shot): mattermost hook v2 — interstitial appears on ANY first-visit route incl /login (proven byte-identical PNG); click 'View in Browser' best-effort then settle; unit test covers click + no-interstitial fallback; 207 pass, lint PASS
continuous-integration/drone/push Build is passing
2026-06-11 06:45:43 +00:00
autonomic-bot 5fc86991dd review(shot): finding A1 CLOSED — fix 7ad7d1f re-verified cold by independent probe (filed case [9999,4801]->keeps 9999, no temp leak; 4 original cases intact; R7 preserved). 5/5 pass.
continuous-integration/drone/push Build is passing
2026-06-11 06:33:02 +00:00
autonomic-bot 58d3505ea7 journal(shot): proof sweep progress + A1 fix + mumble probe plan
continuous-integration/drone/push Build is passing
2026-06-11 06:32:42 +00:00
autonomic-bot 7ad7d1f20d fix(shot): A1 — blank-retry keeps the LARGER frame (retry snapped to temp path, os.replace only if >= first; worse late frame discarded + temp cleaned); regression test [9999,4801]->9999; 207 unit tests pass, lint PASS
continuous-integration/drone/push Build is passing
2026-06-11 06:24:01 +00:00
autonomic-bot ea0e3e9d2f review(shot): finding A1 [adversary] — blank-retry overwrites unconditionally, can REGRESS a larger frame (9999B->4801B) to a worse one; LOW/non-blocking (R7 holds, visual M2 check is backstop); trivial max(first,retry) guard suggested. Independent cold probe, 9/9 R7 checks otherwise pass.
continuous-integration/drone/push Build is passing
2026-06-11 06:20:12 +00:00
autonomic-bot 80e5713c5c feat(shot): mattermost-lts SCREENSHOT hook → /login (default lands the desktop-or-browser interstitial; watch-list wants the real sign-in form) + public screenshot.settle() for hooks; unit test via real loader; 206 unit tests pass, lint PASS
continuous-integration/drone/push Build is passing
2026-06-11 06:19:39 +00:00
autonomic-bot b8414a8fdb journal(shot): plausible root-cause story + P4 proof-run kickoff
continuous-integration/drone/push Build is passing
2026-06-11 06:00:11 +00:00
autonomic-bot b98a471dac fix(shot): plausible SECRET_KEY_BASE 62→68 chars — Phoenix cookie store requires >=64 bytes, so EVERY HTML render 500'd (the real cause of screenshot:null on all runs; /api/* unaffected which is why tiers passed). Default capture now lands the real registration page; verified: shot-fix-plausible run install=pass, screenshot.png 64132B real form, no hook needed
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
2026-06-11 05:55:43 +00:00
autonomic-bot ce50f641cc feat(shot): harness default capture fix — bounded networkidle settle after domcontentloaded + blank-frame retry (≤60s wait budget, R7 best-effort preserved); 6 unit tests; lint PASS, 205 unit tests pass via cc-ci-run
continuous-integration/drone/push Build is passing
2026-06-11 01:31:03 +00:00
autonomic-bot e005897cb9 claim(shot): M1 — audit matrix 19/19 (every PNG visually inspected), all non-OK rows root-caused with evidence (plausible 500-by-design via drone build-357 log; blank/loading = domcontentloaded paint race, 4801B fingerprint; bluesky-pds deploy-gated N/A; mumble NOT N/A), N/A candidates argued
continuous-integration/drone/push Build is passing
2026-06-11 01:26:50 +00:00
autonomic-bot 8978fa6ae3 status(shot): phase open — P1 audit matrix complete (19/19 recipes, every PNG visually inspected) + P2 root causes (plausible /-500s-by-design via build-357 log; blank/loading = domcontentloaded paint race; bluesky-pds deploy-gated; mumble has real web UI; custom-html nginx-welcome is honest fresh-install content)
continuous-integration/drone/push Build is passing
2026-06-11 01:26:23 +00:00
autonomic-bot 1bcb2ed8fe status(rcust): ## DONE — M1 (01f9f70) + M2 (3245150) both PASS, no VETO; phase complete
continuous-integration/drone/push Build is passing
2026-06-11 01:16:27 +00:00
autonomic-bot 3245150982 review(rcust): M2 PASS — merged-main regression sweep cold-verified. Canaries 7/7 (re-ran myself incl. false-green detector); all 21 recipes reconciled (every baseline deviation proven rcust-neutral via same-ref old-vs-new A/B or stale-schema w/ coverage preserved, all in DEFERRED); drone-path 356/357 custom success; customizations execute (manifest 21/21, mumble tcp, ghost overlay+chaos, immich seeds); zero leaks; both fix-forwards cleared. M1+M2 both PASS → DoD handshake satisfied, Builder may write ## DONE. No VETO.
continuous-integration/drone/push Build is passing
2026-06-11 01:15:45 +00:00
autonomic-bot f7b9b6f167 status(rcust): Current section → M2 CLAIMED
continuous-integration/drone/push Build is passing
2026-06-11 01:07:13 +00:00
autonomic-bot d7f85c3f28 claim(rcust): M2 — merge+2 approved fix-forwards green, canaries 7/7, 21/21 reconciled vs corrected baseline (3 lasuite via accepted L5≡L4+OIDC equivalence, bluesky-pds justified exclusion), drone path covered (356/357), zero leaks
continuous-integration/drone/push Build is passing
2026-06-11 01:06:48 +00:00
autonomic-bot 89dec5188f inbox(rcust): consumed 01:12Z be2026a-cleared note; bluesky-pds filed in DEFERRED.md as non-rcust upstream image breakage (justified M2 exclusion, A/B-proven harness-neutral)
continuous-integration/drone/push Build is passing
2026-06-11 01:00:32 +00:00
autonomic-bot 24a203a098 review(rcust): be2026a fix-forward CLEARED (all 3 conditions met, independently verified) + ACCEPT L5≡L4+OIDC-pass equivalence — lasuite-* L5 baselines stale (c51cd84 4-rung predates rcust, git-proven), rcust innocent, OIDC coverage preserved. Consumed 01:10Z inbox. M2 still open: bluesky upstream-breakage note, drone-path runs, zero-leak, my sample re-check
continuous-integration/drone/push Build is passing
2026-06-11 00:59:29 +00:00
autonomic-bot f359069d40 inbox(rcust): m2p2 GREEN rc=0 3m19s (both fix-forwards exercised end-to-end; OIDC+MinIO pass) — level=4 vs condition-1 'L5' explained: 6-rung ladder removed on MAINLINE 06-09 (46e2cdb/c51cd84 PR#6) pre-merge; equivalence proposed (L4 all-pass + requires_deps OIDC PASSED)
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
2026-06-11 00:57:12 +00:00
autonomic-bot a13a83a775 status(rcust): discourse A/B CLOSED — old==new byte-identical upgrade-HC1 at baseline ref+invocation (harness-neutral, env drift since 06-05; branch-tip/tag/abra-pin drift eliminated); m2p2 lasuite-drive binding proof started
continuous-integration/drone/push Build is passing
2026-06-11 00:51:10 +00:00
autonomic-bot 4428e76f48 review(rcust): be2026a merge cold-verified — merged lifecycle.py + test file byte-identical to branch (condition #2 met); m2p-lasuite-drive L0 = diagnosed pre-fix symptom; awaiting discourse A/B + post-fix L5
continuous-integration/drone/push Build is passing
2026-06-11 00:42:54 +00:00
autonomic-bot b4505acbbd status(rcust): disclosed SIGINT shortcut of doomed m2p overlay install burn (KeyboardInterrupt at the diagnosed converge line); m2p2 is the binding proof
continuous-integration/drone/push Build is passing
2026-06-11 00:39:44 +00:00
autonomic-bot 9715ab5c50 status(rcust): be2026a merged as 6cabbe7 (build 350 green on 914c166); m2p2-lasuite-drive post-fix proof queued behind discourse A/B
continuous-integration/drone/push Build is passing
2026-06-11 00:38:06 +00:00
autonomic-bot 914c1663b5 inbox(rcust): consumed 00:31Z conditional APPROVE — merging be2026a, post-merge lasuite-drive re-run queued behind discourse A/B pair
continuous-integration/drone/push Build is passing
2026-06-11 00:33:07 +00:00
autonomic-bot 6cabbe73b7 fix(harness): merge fix/converged-oneshot @ be2026a — services_converged completed-one-shot rule (rcust M2 fix-forward #2, Adversary-approved a531746) 2026-06-11 00:33:07 +00:00
autonomic-bot a531746e53 review(rcust): APPROVE fix-forward be2026a (services_converged completed-one-shot rule) — cold-verified diff+7 tests+199 unit+lint on fresh checkout, no false-green path (HTTP floor + minio custom test independent); conditional on post-merge lasuite-drive L5 + merged-diff==branch-diff + discourse PR=2 A/B cold re-check. Consumed 00:40Z inbox
continuous-integration/drone/push Build is passing
2026-06-11 00:31:54 +00:00
autonomic-bot 49d796d9ac status(rcust): m2p-lasuite-drive WILL land L0 — second P2b regression (completed one-shot 0/1 vs services_converged) root-caused live; fix on branch be2026a awaiting approval
continuous-integration/drone/push Build is passing
2026-06-11 00:28:33 +00:00
autonomic-bot 73421dabb4 inbox(rcust): lasuite-drive SECOND P2b regression root-caused live (completed one-shot 0/1 poisons services_converged after hook moved pre-assert) — fix-forward on branch fix/converged-oneshot @ be2026a, 199 unit + lint green, awaiting approval
continuous-integration/drone/push Build is passing
2026-06-11 00:27:49 +00:00
autonomic-bot be2026aafb fix(harness): services_converged — a replica deficit explained entirely by Complete tasks is converged (triggered one-shot, rcust M2 lasuite-drive root cause)
continuous-integration/drone/push Build is passing
2026-06-11 00:26:53 +00:00
autonomic-bot 77a9415b37 inbox(rcust): consumed Builder 00:20Z reply — proof runs confirmed queued; m2b-discourse/sidekiq/bluesky facts noted for independent cold-verify (not taken on trust)
continuous-integration/drone/push Build is passing
2026-06-11 00:06:42 +00:00
autonomic-bot 4dcfb5ba96 review(rcust): M2 proof in flight — Builder running discourse PR=2 A/B (new vs old main) + lasuite-drive post-fix; self-correct my m2b L1 finding (PR=0 confound on HC1 re-checkout) — awaiting PR=2 results to cold-verify
continuous-integration/drone/push Build is passing
2026-06-11 00:06:16 +00:00
autonomic-bot 1ec0e772e8 inbox(rcust): consumed 23:53Z asks — lasuite-drive proof RUNNING, discourse same-ref 2x2 queued (new-main PR=2 + old-main PR=2 @7ae7b0f); m2b-discourse HC1 facts pinned (re-checkout persisted, eb96de94=base tag, sidekiq line benign); bluesky-pds = upstream image breakage (MODULE_NOT_FOUND x3, harness-neutral)
continuous-integration/drone/push Build is passing
2026-06-11 00:06:13 +00:00
autonomic-bot 40b59b356b review(rcust): M2 proof-run cold analysis — 3/6 (immich/mattermost/plausible) reproduce baseline L4 at baseline ref on merged main (restructure innocent); discourse L4->L1 upgrade-HC1 at baseline ref UNexplained (A/B was at wrong ref) + lasuite-drive needs fresh L5 post-fix-forward; M2 OPEN
continuous-integration/drone/push Build is passing
2026-06-10 23:54:36 +00:00
autonomic-bot 5c0676b7d0 note(rcust): M2-prep hook-port audit — only lasuite-drive flipped best-effort->fatal (fix approved); lasuite-docs exit1->exit0 is intentional P2b (F2-11-gated); all other ops.py pure mechanical ctx migration. Closes M1-method gap (key-diff missed hook bodies)
continuous-integration/drone/push Build is passing
2026-06-10 20:55:01 +00:00
autonomic-bot efd7efc32b inbox(rcust): consumed 20:53Z approval — fix-forward pushed as 57c66ad; proof re-run at baseline REF queued behind tests 2+3
continuous-integration/drone/push Build is passing
2026-06-10 20:53:52 +00:00
autonomic-botandClaude Fable 5 1357544301 fix(tests): restore best-effort semantics of lasuite-drive pre_install bucket trigger (rcust M2 regression)
continuous-integration/drone/push Build is passing
The P2b port of setup_custom_tests.sh -> ops.py::pre_install made the 90s bucket-poll timeout a
fatal AssertionError; the original shell hook fell through on timeout BY DESIGN (best-effort) and
the custom-tier MinIO storage test is the real gate for a genuinely missing bucket. Live evidence:
in both M2 sweep failures the bucket landed just after the window and every later tier including
the custom MinIO test passed. Warn loudly + continue, exactly the old semantics.

Adversary-approved fix-forward (REVIEW-rcust 57c66ad, scoped to this raise).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 20:53:31 +00:00
autonomic-bot 57c66add51 review(rcust): APPROVE lasuite-drive pre_install fix-forward (scoped to line-54 bucket-poll raise→best-effort; verified old=best-effort, custom MinIO test is real gate, no coverage loss); conditioned on L5 re-run + my diff re-verify. Auditing other shell->python hook ports for same drift
continuous-integration/drone/push Build is passing
2026-06-10 20:52:53 +00:00
autonomic-bot a95fad4fa0 inbox(rcust): lasuite-drive P2b port regression root-caused (best-effort poll became fatal assert) — trivial fix-forward proposed, awaiting Adversary approval
continuous-integration/drone/push Build is passing
2026-06-10 20:50:31 +00:00
autonomic-bot b9abf48116 inbox(rcust): consumed 20:33Z ACK — ref-mismatch independently confirmed; tests 2+3 concurred; proceeding
continuous-integration/drone/push Build is passing
2026-06-10 20:34:36 +00:00
autonomic-bot 4cb1f57e2c inbox(rcust): consumed Builder 20:35Z ref-mismatch heads-up + ACK — independently confirmed sweep ran default-branch heads (7d53d4ec/da159375) != baseline PR refs; concur tests 2+3 separate harness×content; will run own cold A/B at claim
continuous-integration/drone/push Build is passing
2026-06-10 20:33:56 +00:00
autonomic-bot e30a414ce1 inbox(rcust): heads-up — restore cluster is a REF-mismatch vs baseline (sweep ran old default heads; baselines were PR-head runs); baseline-REF re-runs + old-main A/B queued
continuous-integration/drone/push Build is passing
2026-06-10 20:32:33 +00:00
autonomic-bot 41033b4500 inbox(rcust): consumed 20:15Z follow-up — restore cluster confirmed pre-existing, VETO threat withdrawn; proceeding to satisfy the 4 M2 PASS conditions (re-runs at baseline, canary+zero-leak, log sample, !testme x2)
continuous-integration/drone/push Build is passing
2026-06-10 20:19:12 +00:00
autonomic-bot a7a558ada3 note(rcust): M2 follow-up — confirmed restore cluster is the PRE-EXISTING truncated-dump race (documented in discourse BACKUP_VERIFY docstring on pre-merge 49fb818); VETO-threat withdrawn; stated M2 PASS conditions (re-runs at baseline + spot-checks)
continuous-integration/drone/push Build is passing
2026-06-10 20:18:26 +00:00
autonomic-bot 37dcfab07d inbox(rcust): consumed Adversary 20:13Z restore-cluster heads-up — ACK: serial re-runs of all 6 already in flight (/root/m2-rerun-logs/, results m2rr-*); will ALSO run immich on OLD main (pre-merge c2508c7) serially in the same env as the requested A/B regardless of re-run outcome; no M2 claim until both legs are documented in STATUS
continuous-integration/drone/push Build is passing
2026-06-10 20:18:13 +00:00
autonomic-bot ffc88848f3 note(rcust): M2 heads-up — restore-failure cluster (discourse/immich/plausible/mattermost ci_marker-missing) blocks M2 PASS; evidence says infra/pre-existing not restructure (restore orchestration unchanged, no BACKUP_VERIFY correlation, peers pass); suggest A/B vs old main (NOT a verdict)
continuous-integration/drone/push Build is passing
2026-06-10 20:17:14 +00:00
autonomic-bot 85d14101ef status(rcust): M2 sweep first pass — canaries 7/7, 15/21 at baseline, 6 flake-shaped reds re-running serially; spot-grep evidence + zero leaks
continuous-integration/drone/push Build is passing
2026-06-10 20:14:05 +00:00
autonomic-bot 9aa0c5d624 status(rcust): fix stale Current section — M2 in progress
continuous-integration/drone/push Build is passing
2026-06-10 19:33:23 +00:00
autonomic-bot 4d342a2c5d status(rcust): M1 PASS — merged to main 01e6d49, push build 326 green; M2 canaries running, sweep driver staged
continuous-integration/drone/push Build is passing
2026-06-10 19:33:05 +00:00
autonomic-botandClaude Fable 5 01e6d497ba Merge branch 'restructure/recipe-custom' — recipe-customization restructure (rcust M1 PASS @858e0f5, REVIEW-rcust 01f9f70)
continuous-integration/drone/push Build is passing
Single registry-backed meta loader, legacy key/path deletion, uniform ctx hooks, custom-test
placement rule + fixtures, customization manifest, docs. M2 real-CI regression sweep follows.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 19:28:38 +00:00
autonomic-bot 01f9f70970 review(rcust): M1 PASS @858e0f5 — cold unit 192+conc 23+lint PASS; coverage diff 0 real deltas/21 (mumble byte-identical, deleted keys all accounted); 18=18 asserts no weakening (no VETO); validation gaps closed; R2 delivered end-to-end; HC2/F2-11/generic-floor intact; manifest secret-redaction verified surgical. DONE still gated on M2 (real-CI sweep).
continuous-integration/drone/push Build is passing
2026-06-10 19:27:49 +00:00
autonomic-bot c2508c7fd2 claim(rcust): M1 — P1–P6 complete on restructure/recipe-custom @ 858e0f5; unit 192 + concurrency 23 + lint PASS; baseline matrix committed
continuous-integration/drone/push Build is passing
2026-06-10 19:13:36 +00:00
autonomic-bot 8984b57b35 status(rcust): P6 complete (da558ca) + Adversary inbox consumed — manifest redaction landed (858e0f5); M1 prep starting
continuous-integration/drone/push Build is passing
2026-06-10 19:10:00 +00:00
autonomic-botandClaude Fable 5 858e0f582f fix(harness): redact secret-named meta values in the customization manifest (rcust)
continuous-integration/drone/push Build is passing
Adversary heads-up (inbox 2026-06-10T19:06Z): meta values are repo-public by construction, but
the manifest lands on the dashboard — a field literally named SECRET_KEY_BASE showing a value
(plausible's committed CI dummy) is needless secret-scan noise. Mask values whose key NAME is
secret-shaped (SECRET|PASSWORD|TOKEN|CREDENTIAL|word-segment KEY), top-level and nested dict
keys; the key name stays visible. Unit test pins redacted vs passthrough (KEYCLOAK_URL).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 19:09:09 +00:00
autonomic-botandClaude Fable 5 da558ca946 docs: P6 — rewrite customization docs to the restructured end state (rcust)
continuous-integration/drone/push Build is passing
recipe-customization.md: review spec -> reference. Single registry-backed loader + validation
rules + HookCtx convention (§4); generated key table kept byte-identical (sync test); §5 end-state
shape (op_state/deps fixtures, ctx ops.py, placement rule, first-class compose.ccci.yml, no
setup_custom_tests.sh); §7 manifest block + dev-only CCCI_SKIP_GENERIC*; §8 rewritten as
restructure outcomes (R1/R2/R3/R5/R6/R7/R8 resolved + how, R4 mitigated by manifest, R9
rejected-by-decision); §9 index updated to the new symbols.

testing.md: install-time deps isolation replaces the setup_custom_tests step in the invariant
(generic still never depends on custom — failure isolation via requires_deps/F2-11); ops.py
example to pre_<op>(ctx); placement rule; generic opt-out now documented LOCAL-DEV-ONLY env with
CI !! warning (declarative SKIP_GENERIC gone); partial key list points at the generated table.

enroll-recipe.md: tree + worked examples updated (lasuite-docs install-time OIDC wiring +
install_steps.sh; mumble post-F2-14c shape — UPGRADE_EXTRA_ENV native overlay, private _
constants, no CHAOS_BASE_DEPLOY); deps fixture (entry.domain) replaces deps_apps; ctx hook
signatures; compose.ccci.yml first-class bullet; key list points at the generated table.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 19:07:41 +00:00
autonomic-bot 5ccc0d1c34 note(rcust): interim pre-review of frozen P5 (68954be) — cold unit 191 + lint PASS reproduced; manifest exposes NO generated/real secrets (HC2-honoring, pure presentation); one non-blocking heads-up re plausible SECRET_KEY_BASE public-dummy on dashboard (NOT an M1 verdict)
continuous-integration/drone/push Build is passing
2026-06-10 19:07:24 +00:00
autonomic-bot 52f5266dfb status(rcust): P5 complete on branch (68954be) — unit 191 green + lint PASS; starting P6
continuous-integration/drone/push Build is passing
2026-06-10 18:58:33 +00:00
autonomic-botandClaude Fable 5 68954be53e feat(harness): P5 — customization manifest (rcust)
continuous-integration/drone/push Build is passing
One block at run start answering "what does this recipe customize?" across every surface
(non-default recipe_meta keys, ops.py pre-ops, install_steps.sh, compose.ccci.yml, lifecycle
overlays by source, custom-test counts, active CCCI_SKIP_GENERIC* env overrides — !!-flagged when
riding a CI run, P2c), printed to the run log and embedded verbatim in results.json under
"customization". Pure presentation — building/printing it never influences a verdict; the
manifest honors the HC2 repo-local gate so it never advertises code the run will not execute.

Unit tests: synthetic recipe exercising every surface -> complete + deterministic + JSON-clean;
HC2 invisibility; env-override flagging; render golden lines; build_results threads the dict
verbatim (key always present, None when absent).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 18:57:26 +00:00
autonomic-bot 270476beb3 note(rcust): interim pre-review of frozen P4 (29a28e2) — cold unit 184 + lint PASS reproduced; placement-rule claim holds (0 non-lifecycle top-level customs), HC2 intact, tests strengthened not weakened (NOT an M1 verdict)
continuous-integration/drone/push Build is passing
2026-06-10 18:53:32 +00:00
autonomic-bot ff09c4075b status(rcust): P4 complete on branch (29a28e2) — unit 184 green + lint PASS; starting P5
continuous-integration/drone/push Build is passing
2026-06-10 17:14:38 +00:00
autonomic-bot 63befd05b0 note(rcust): interim pre-review of frozen P3 — mechanical migration held (0 changed asserts), HookCtx complete, legacy-sig guard live-probed PASS, coverage diff still 0/21 (NOT M1)
continuous-integration/drone/push Build is passing
2026-06-10 17:14:37 +00:00
autonomic-bot 29a28e2028 feat(harness): P4 — custom-test ergonomics (rcust)
continuous-integration/drone/push Build is passing
Placement RULE: discovery.custom_tests covers ONLY functional/ + playwright/ —
the top-level test_*.py glob for recipe dirs is removed (top level is reserved
for lifecycle overlays; zero in-repo users of top-level custom tests, verified
by sweep). Lifecycle-name exclusion inside the subdirs stays as the double-run
safety net. HC2 default-deny unchanged (repo-local custom now pinned via
functional/ in the gate test).

New conftest fixture op_state: parses $CCCI_OP_STATE_FILE (op context: versions,
artifact paths), skipping with a clear reason when unset/absent/unparseable —
overlay tests read op facts from the fixture instead of hand-parsing env (zero
existing hand-parsers found; the fixture is the documented path forward). deps
fixture landed in P2d.

Unit tests: placement-rule discovery tests (top-level custom NOT discovered;
functional/playwright are; misfiled lifecycle names excluded), op_state fixture
contract (reads file / skips without env / skips on missing file), deps fixture
attribute sugar.

Verified on cc-ci: cc-ci-run -m pytest tests/unit -q -> 184 passed; scripts/lint.sh -> PASS.
2026-06-10 17:14:21 +00:00
autonomic-bot 802b2792a7 note(rcust): interim pre-review of frozen P1+P2 — fallout clean, typo gate PASS, coverage diff 0/21 deltas, validation gaps closed (NOT an M1 verdict; M1 unclaimed)
continuous-integration/drone/push Build is passing
2026-06-10 17:11:41 +00:00
autonomic-bot 0264af72c7 status(rcust): P3 complete on branch (fd02d9f) — unit 180 green + lint PASS; starting P4
continuous-integration/drone/push Build is passing
2026-06-10 17:10:45 +00:00
autonomic-bot fd02d9f4b8 feat(harness): P3 — uniform ctx hook convention (rcust)
continuous-integration/drone/push Build is passing
harness.meta.HookCtx (frozen): .domain, .base_url, .meta (RecipeMeta), .deps
(provisioned dep creds from $CCCI_DEPS_FILE or None), .op (current lifecycle op
or None); built via meta.hook_ctx() at each hook call site.

All recipe callables now take ctx: EXTRA_ENV(ctx), UPGRADE_EXTRA_ENV(ctx),
READY_PROBE(ctx), BACKUP_VERIFY(ctx), SCREENSHOT(page, ctx), ops.py pre_<op>(ctx).
Dict-valued EXTRA_ENV/UPGRADE_EXTRA_ENV unchanged (only the callable signature
moved). Call sites converted: deploy_app env shaping, perform_upgrade,
wait_ready_probes (gains op=), _perform_op BACKUP_VERIFY, screenshot.capture,
_run_pre_hook.

Legacy signatures fail FAST with a clear migration message: the registry carries
hook_params per hook key, enforced at meta.load() (MetaError names the old vs new
signature); ops.py pre-op hooks get the same check at the orchestrator call site
(meta.check_hook_signature) — no silent TypeError mid-run.

Migrated every in-repo user mechanically (17 ops.py files; cryptpad/lasuite-*/
mailu EXTRA_ENV; mumble+lasuite-drive READY_PROBE; ghost/discourse BACKUP_VERIFY)
— seeded values, probes and assertions byte-identical (domain -> ctx.domain;
keycloak pre_restore's meta arg -> ctx.meta).

Unit tests: hook_ctx field contract, ctx.deps from the run deps file, legacy-
signature MetaError (READY_PROBE/EXTRA_ENV/SCREENSHOT + pre-op checker), ctx
signatures accepted. Docs table regenerated (signature docs in key docs).

Verified on cc-ci: cc-ci-run -m pytest tests/unit -q -> 180 passed; scripts/lint.sh -> PASS.
2026-06-10 17:10:26 +00:00
autonomic-bot 8945d13674 status(rcust): P2 complete on branch (8cd72fd) — unit 175 green + lint PASS; starting P3
continuous-integration/drone/push Build is passing
2026-06-10 17:01:58 +00:00
autonomic-bot 8cd72fd78d feat(harness): P2 — delete legacy customization keys & paths (rcust)
continuous-integration/drone/push Build is passing
a) compose.ccci.yml is FIRST-CLASS: the harness auto-copies tests/<recipe>/
   compose.ccci.yml into the run's recipe checkout (ABRA_DIR-aware, lifecycle.
   provide_ccci_overlay) and auto-chaoses the pinned base deploy on its presence
   (kills the R7 implicit coupling). ghost/discourse install_steps.sh (copy-only
   boilerplate) deleted; CHAOS_BASE_DEPLOY removed from both metas + the registry.

b) install-time deps wiring is the ONLY mode: deps with DEPS provision BEFORE the
   single deploy; legacy post-deploy provisioning + the setup_custom_tests.sh
   invocation machinery deleted. lasuite-docs migrated to install_steps.sh OIDC
   wiring (same env names/values as the old hook — only the timing moved);
   lasuite-drive's remaining post-deploy MinIO bucket one-shot moved to ops.py
   pre_install; both setup_custom_tests.sh files deleted; OIDC_AT_INSTALL removed
   from drive/meet metas + the registry.

c) SKIP_GENERIC meta key deleted (zero users). Env form CCCI_SKIP_GENERIC* stays
   as the documented dev-only escape hatch; when active in a drone CI run the
   orchestrator prints a loud !! warning (manifest embedding lands in P5).

d) conftest cleanup: dead pre-deploy-once fixtures deployed/deployed_app deleted
   (zero users), app_domain + _short + _wait_healthy dropped (only users were the
   deleted fixtures); deps_apps+deps_creds consolidated into ONE deps fixture
   (entries expose .domain etc. as attributes; dict access intact); the 6 lasuite
   test files renamed deps_creds->deps (fixture name only — assertions and flows
   byte-identical). requires_deps marker + F2-11 skip-report plumbing unchanged.

Registry is now exactly the 14 final keys; docs §4 table regenerated. Stale
setup_custom_tests/OIDC_AT_INSTALL prose in docstrings/comments/assert MESSAGES
updated (no assert logic or expected value touched).

Verified on cc-ci: cc-ci-run -m pytest tests/unit -q -> 175 passed; scripts/lint.sh -> PASS.
2026-06-10 17:01:33 +00:00
autonomic-bot f5119a9703 status(rcust): P1 complete on branch (472a68b) — unit 175 green + lint PASS; starting P2
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
2026-06-10 16:47:35 +00:00
autonomic-bot 472a68b32c feat(harness): P1 — single registry-backed meta loader (rcust)
continuous-integration/drone/push Build is passing
One loader: runner/harness/meta.py::load(recipe) -> RecipeMeta (frozen dataclass,
attribute access), backed by the declarative KEYS registry (14 final keys + 3
P2-deprecated). The ONLY exec() of tests/<recipe>/recipe_meta.py. Validation per
the locked decision: unknown ALL-CAPS top-level name or type mismatch = MetaError
(hard error at load); underscore-prefixed names recipe-private; callables only on
hook-typed keys.

Migrated all six legacy loaders (spec §4 L1–L6):
- run_recipe_ci.py::_load_meta deleted; orchestrator loads once, passes meta down
- tests/conftest.py::_recipe_meta deleted; meta fixture returns full RecipeMeta (R3)
- lifecycle.py::_recipe_extra_env/_recipe_meta_flag deleted; deploy_app takes meta
- deps.py::declared_deps deleted; callers read meta.DEPS
- canonical.py::is_enrolled reads through meta.load()
- screenshot.py now actually receives SCREENSHOT through the orchestrator path (R2
  fix; proven by unit test through the real load path)

Mumble private constants underscore-prefixed (_WELCOME_TEXT_MARKER/_MAX_USERS) +
importers fixed. New tests/unit/test_meta.py (all-recipes-load-clean typo gate,
MetaError cases, spec §2 baseline defaults, underscore exemption, doc sync). Docs
§4 key table now GENERATED from the registry (scripts/gen-meta-docs.py); drift
fails CI.

Verified on cc-ci: cc-ci-run -m pytest tests/unit -q -> 175 passed; scripts/lint.sh -> PASS.
2026-06-10 16:46:58 +00:00
autonomic-bot 49fb818c60 status(rcust): bootstrap phase state files — P1 starting on branch restructure/recipe-custom
continuous-integration/drone/push Build is passing
2026-06-10 16:29:44 +00:00
autonomic-bot 12318582aa review(rcust): seed Adversary ledger — phase start, awaiting M1 claim
continuous-integration/drone/push Build is passing
2026-06-10 16:29:26 +00:00
autonomic-bot 6060086c01 status(conc): ## DONE — M1+M2 both Adversary-PASS, no open veto; phase complete
continuous-integration/drone/push Build is passing
2026-06-10 08:56:02 +00:00