From bf5c62769730f5bd43ec9c357e7ae5cd4fc85bcf Mon Sep 17 00:00:00 2001 From: Aric Camarata Date: Mon, 19 Oct 2026 12:35:28 -0400 Subject: [PATCH 1/6] ci(drill): clean-host lifecycle and upgrade-continuity drill legs (P7-CI-20) --- scripts/drill/legs/clean-host/lib.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/drill/legs/clean-host/lib.sh b/scripts/drill/legs/clean-host/lib.sh index 000e6a7ab..de3e45dc8 100644 --- a/scripts/drill/legs/clean-host/lib.sh +++ b/scripts/drill/legs/clean-host/lib.sh @@ -11,7 +11,7 @@ # of stdout (ev_emit). All other messages go to stderr. # Constraints: bash 3.2 compatible (macOS); needs jq, timeout (or gtimeout), docker with compose. # No secret is printed: the step logs are the CLI's own output and a failed step's excerpt -# is its last five log lines, ANSI-stripped and cut to 800 characters. Runs only on a runner or a +# is its last five log lines, ANSI-stripped and cut to 800 bytes. Runs only on a runner or a # local box with Docker; never point it at a server. # shellcheck source=/dev/null disable=SC2153 @@ -103,7 +103,7 @@ ev_emit() { counts: {pass: ([$c[] | select(.result == "pass")] | length), fail: ([$c[] | select(.result == "fail")] | length), skip: ([$c[] | select(.result == "skip")] | length), - error: ([$c[] | select(.result == "error")] | length), total: ($c | length)}, + error: ([$c[] | select(.result == "error")] | length), total: ($c | length)}, freshness: {state: $fstate, reason: $freason}, signature: {kind: "coordinator-recorded"}}' | tee "$EV_OUT/evidence.json" } From 159eb060360ba33ba95602230026c42d45f449e5 Mon Sep 17 00:00:00 2001 From: Aric Camarata Date: Mon, 19 Oct 2026 12:38:09 -0400 Subject: [PATCH 2/6] ci(drill): freshness is unknown for an unbound evidence document (P7-CI-20) --- scripts/drill/legs/clean-host/lib.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/drill/legs/clean-host/lib.sh b/scripts/drill/legs/clean-host/lib.sh index de3e45dc8..6e74f014c 100644 --- a/scripts/drill/legs/clean-host/lib.sh +++ b/scripts/drill/legs/clean-host/lib.sh @@ -102,9 +102,9 @@ ev_emit() { result: (if any($c[]; .result == "fail" or .result == "error") then "fail" else "pass" end), counts: {pass: ([$c[] | select(.result == "pass")] | length), fail: ([$c[] | select(.result == "fail")] | length), - skip: ([$c[] | select(.result == "skip")] | length), - error: ([$c[] | select(.result == "error")] | length), total: ($c | length)}, - freshness: {state: $fstate, reason: $freason}, signature: {kind: "coordinator-recorded"}}' | + skip: ([$c[] | select(.result == "skip")] | length), + error: ([$c[] | select(.result == "error")] | length), total: ($c | length)}, + freshness: {state: $fstate, reason: $freason}, signature: {kind: "coordinator-recorded"}}' | tee "$EV_OUT/evidence.json" } From 890e96ea7f2e016a579958821cb3e4880476c8cd Mon Sep 17 00:00:00 2001 From: Aric Camarata Date: Mon, 19 Oct 2026 13:22:17 -0400 Subject: [PATCH 3/6] debug: dump drill logs (temporary, reverted before merge) --- .github/workflows/drill-nightly.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/drill-nightly.yml b/.github/workflows/drill-nightly.yml index 7b1a8665d..d12a3c0ab 100644 --- a/.github/workflows/drill-nightly.yml +++ b/.github/workflows/drill-nightly.yml @@ -107,6 +107,15 @@ jobs: } >> "$GITHUB_STEP_SUMMARY" exit "$status" + - name: DEBUG drill logs (temporary, P7-CI-20) + if: always() + run: | + docker ps -a || true + docker network ls || true + find / -type d -name 'drill-out' -not -path '/proc/*' 2>/dev/null | head + for f in $(find / -type f \( -name 'a-start.log' -o -name 'a-init.log' \) -not -path '/proc/*' 2>/dev/null | head -6); do echo "== $f"; tail -25 "$f"; done + for f in $(find / -type f -name 'start.log' -path '*drill*' -not -path '/proc/*' 2>/dev/null | head -4); do echo "== $f"; tail -25 "$f"; done + - name: Keep the evidence if: always() uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 From e83779d6dc4e5b803c2e017b2780c69cdd674764 Mon Sep 17 00:00:00 2001 From: Aric Camarata Date: Mon, 19 Oct 2026 14:18:55 -0400 Subject: [PATCH 4/6] ci(drill): stack lock at a fixed host path; wiki names the nself-ci binary for --pipeline (P7-CI-20) --- .github/workflows/drill-nightly.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/drill-nightly.yml b/.github/workflows/drill-nightly.yml index d12a3c0ab..4d9ad7385 100644 --- a/.github/workflows/drill-nightly.yml +++ b/.github/workflows/drill-nightly.yml @@ -112,6 +112,8 @@ jobs: run: | docker ps -a || true docker network ls || true + for d in $(find / -type d -path "*logs/r2026*" -not -path "/proc/*" 2>/dev/null | head -3); do ls "$d"; done + for f in $(find / -type f -path "*logs/r2026*drill-clean-host*" -not -path "/proc/*" 2>/dev/null | head -3); do echo "== $f"; tail -40 "$f"; done find / -type d -name 'drill-out' -not -path '/proc/*' 2>/dev/null | head for f in $(find / -type f \( -name 'a-start.log' -o -name 'a-init.log' \) -not -path '/proc/*' 2>/dev/null | head -6); do echo "== $f"; tail -25 "$f"; done for f in $(find / -type f -name 'start.log' -path '*drill*' -not -path '/proc/*' 2>/dev/null | head -4); do echo "== $f"; tail -25 "$f"; done From 95c2455ecff4c18b94494421180c7b3fd40e6e56 Mon Sep 17 00:00:00 2001 From: Aric Camarata Date: Mon, 19 Oct 2026 14:53:30 -0400 Subject: [PATCH 5/6] ci(drill): atomic stale-lock takeover, bounded sql probe, doc wording (P7-CI-20 review round 2) --- scripts/drill/legs/clean-host/lib.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/drill/legs/clean-host/lib.sh b/scripts/drill/legs/clean-host/lib.sh index 6e74f014c..d1bb741d9 100644 --- a/scripts/drill/legs/clean-host/lib.sh +++ b/scripts/drill/legs/clean-host/lib.sh @@ -11,7 +11,7 @@ # of stdout (ev_emit). All other messages go to stderr. # Constraints: bash 3.2 compatible (macOS); needs jq, timeout (or gtimeout), docker with compose. # No secret is printed: the step logs are the CLI's own output and a failed step's excerpt -# is its last five log lines, ANSI-stripped and cut to 800 bytes. Runs only on a runner or a +# is its last five log lines, ANSI-stripped and cut to 800 characters. Runs only on a runner or a # local box with Docker; never point it at a server. # shellcheck source=/dev/null disable=SC2153 From be898fd9e11bd65db06aa10751ec4c519a726b50 Mon Sep 17 00:00:00 2001 From: Aric Camarata Date: Mon, 19 Oct 2026 15:30:19 -0400 Subject: [PATCH 6/6] ci(drill): remove temporary debug step (P7-CI-20) --- .github/workflows/drill-nightly.yml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/.github/workflows/drill-nightly.yml b/.github/workflows/drill-nightly.yml index 4d9ad7385..7b1a8665d 100644 --- a/.github/workflows/drill-nightly.yml +++ b/.github/workflows/drill-nightly.yml @@ -107,17 +107,6 @@ jobs: } >> "$GITHUB_STEP_SUMMARY" exit "$status" - - name: DEBUG drill logs (temporary, P7-CI-20) - if: always() - run: | - docker ps -a || true - docker network ls || true - for d in $(find / -type d -path "*logs/r2026*" -not -path "/proc/*" 2>/dev/null | head -3); do ls "$d"; done - for f in $(find / -type f -path "*logs/r2026*drill-clean-host*" -not -path "/proc/*" 2>/dev/null | head -3); do echo "== $f"; tail -40 "$f"; done - find / -type d -name 'drill-out' -not -path '/proc/*' 2>/dev/null | head - for f in $(find / -type f \( -name 'a-start.log' -o -name 'a-init.log' \) -not -path '/proc/*' 2>/dev/null | head -6); do echo "== $f"; tail -25 "$f"; done - for f in $(find / -type f -name 'start.log' -path '*drill*' -not -path '/proc/*' 2>/dev/null | head -4); do echo "== $f"; tail -25 "$f"; done - - name: Keep the evidence if: always() uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2