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-bot and Claude 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-bot and Claude 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-bot and Claude 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-bot and Claude 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-bot and Claude 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