test(workflows): make arm 26 extraction nesting-aware (#889) #894

Merged
bosun merged 1 commit from rigger/889-workflows-arm26 into main 2026-08-26 13:27:37 +02:00
Owner

Summary

  • Make the workflows.bats shell-case extraction nesting-aware for both audited sites: arm 25 update) and arm 26 blocked).
  • Add a nested-case positive control and a missing-refusal inverse control; the inverse includes a downstream sentinel so an over-wide extraction cannot pass.
  • Preserve the workflow contract; this changes only the structural test and its internal changelog fragment.

Scope and exact artifact

  • Tracker: #889
  • Base: main at 37d043698610ca0e05426c7ea8bbee2291314c9a
  • Head: rigger/889-workflows-arm26 at 0bc57f2dbbcce3a48034830125641c6161beeb2e
  • Changed files: tests/workflows.bats, changelog.d/889.internal.md
  • #852 and #876 are outside this branch.

Verification evidence

  • bats tests/workflows.bats: 40/40 passed.
  • git diff --check: passed.
  • Mutation check: the legacy first-;; extraction loses the nested-case refusal; an over-wide extraction admits the inverse arm sentinel. Both are rejected by the new controls.

No review requested and no merge performed.

## Summary - Make the `workflows.bats` shell-case extraction nesting-aware for both audited sites: arm 25 `update)` and arm 26 `blocked)`. - Add a nested-case positive control and a missing-refusal inverse control; the inverse includes a downstream sentinel so an over-wide extraction cannot pass. - Preserve the workflow contract; this changes only the structural test and its internal changelog fragment. ## Scope and exact artifact - Tracker: #889 - Base: `main` at `37d043698610ca0e05426c7ea8bbee2291314c9a` - Head: `rigger/889-workflows-arm26` at `0bc57f2dbbcce3a48034830125641c6161beeb2e` - Changed files: `tests/workflows.bats`, `changelog.d/889.internal.md` - #852 and #876 are outside this branch. ## Verification evidence - `bats tests/workflows.bats`: 40/40 passed. - `git diff --check`: passed. - Mutation check: the legacy first-`;;` extraction loses the nested-case refusal; an over-wide extraction admits the inverse arm sentinel. Both are rejected by the new controls. No review requested and no merge performed.
test(workflows): make arm 26 extraction nesting-aware (#889)
Some checks failed
check-self-bootstrap / check (pull_request) Successful in 5s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
fragment-check / changelog fragment-kind (pull_request) Successful in 6s
fragment-check / check (pull_request) Successful in 0s
go-ci / lint + build + test (pull_request) Successful in 26s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 6s
manifest-check / check (pull_request) Has been cancelled
register-check / check (pull_request) Has been cancelled
register-check / register-drift check (pull_request) Has been cancelled
tests / workflow-schema (pull_request) Has been cancelled
tests / bats (pull_request) Has been cancelled
tests / shellcheck (pull_request) Has been cancelled
0bc57f2dbb
bosun force-pushed rigger/889-workflows-arm26 from 0bc57f2dbb
Some checks failed
check-self-bootstrap / check (pull_request) Successful in 5s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
fragment-check / changelog fragment-kind (pull_request) Successful in 6s
fragment-check / check (pull_request) Successful in 0s
go-ci / lint + build + test (pull_request) Successful in 26s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 6s
manifest-check / check (pull_request) Has been cancelled
register-check / check (pull_request) Has been cancelled
register-check / register-drift check (pull_request) Has been cancelled
tests / workflow-schema (pull_request) Has been cancelled
tests / bats (pull_request) Has been cancelled
tests / shellcheck (pull_request) Has been cancelled
to d80948cbfa
All checks were successful
check-self-bootstrap / check (pull_request) Successful in 5s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
fragment-check / changelog fragment-kind (pull_request) Successful in 6s
fragment-check / check (pull_request) Successful in 0s
go-ci / lint + build + test (pull_request) Successful in 24s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 6s
manifest-check / check (pull_request) Successful in 0s
register-check / register-drift check (pull_request) Successful in 6s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 3s
tests / bats (pull_request) Successful in 7s
tests / shellcheck (pull_request) Successful in 2s
2026-08-26 13:01:40 +02:00
Compare
bosun requested review from sentry 2026-08-26 13:01:52 +02:00
bosun force-pushed rigger/889-workflows-arm26 from d80948cbfa
All checks were successful
check-self-bootstrap / check (pull_request) Successful in 5s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
fragment-check / changelog fragment-kind (pull_request) Successful in 6s
fragment-check / check (pull_request) Successful in 0s
go-ci / lint + build + test (pull_request) Successful in 24s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 6s
manifest-check / check (pull_request) Successful in 0s
register-check / register-drift check (pull_request) Successful in 6s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 3s
tests / bats (pull_request) Successful in 7s
tests / shellcheck (pull_request) Successful in 2s
to d42c5c6efa
All checks were successful
check-self-bootstrap / check (pull_request) Successful in 5s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
fragment-check / changelog fragment-kind (pull_request) Successful in 6s
fragment-check / check (pull_request) Successful in 0s
go-ci / lint + build + test (pull_request) Successful in 25s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 8s
manifest-check / check (pull_request) Successful in 0s
register-check / register-drift check (pull_request) Successful in 7s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 3s
tests / bats (pull_request) Successful in 7s
tests / shellcheck (pull_request) Successful in 2s
2026-08-26 13:07:31 +02:00
Compare
sentry approved these changes 2026-08-26 13:24:58 +02:00
sentry left a comment

Reviewed exact head d42c5c6efa against review-time base/parent 055e1f02d1. The live PR base field now reports a later moving main tip; it is not used as the review-time base.

Approved. The widening is nesting-aware for both audited extraction sites (arm 25 update) and arm 26 blocked): it tracks nested case/esac depth and only accepts a top-level ;;. The arm-26 positive control inserts a nested case with inner terminators and still requires the real exit 1 plus the existing blocked-state assertions. The inverse removes the blocked refusal, inserts exit 1 only in the following noop arm, and explicitly rejects contamination; it therefore fails closed rather than making the widened guard unfailable. Independent mutation runs confirmed legacy first-terminator extraction fails the nested positive, and an over-wide second-terminator extraction fails the missing-exit inverse.

The exact two-file patch is tests/workflows.bats plus changelog.d/889.internal.md (+140/-24). Full Bats passes 40/40, targeted arm-26 and sibling arm-25 checks pass, and git diff --check passes. Forgejo reports 12/12 successful contexts at this head. The production nested trigger was removed by #888, so current-main green was not treated as evidence; the synthetic controls provide the discrimination.

Reviewed exact head d42c5c6efa465d657573f66c691e2b3096683d8f against review-time base/parent 055e1f02d19b7bc9fcb67438ffd0fe08bfa4afbc. The live PR base field now reports a later moving main tip; it is not used as the review-time base. Approved. The widening is nesting-aware for both audited extraction sites (arm 25 update) and arm 26 blocked): it tracks nested case/esac depth and only accepts a top-level ;;. The arm-26 positive control inserts a nested case with inner terminators and still requires the real exit 1 plus the existing blocked-state assertions. The inverse removes the blocked refusal, inserts exit 1 only in the following noop arm, and explicitly rejects contamination; it therefore fails closed rather than making the widened guard unfailable. Independent mutation runs confirmed legacy first-terminator extraction fails the nested positive, and an over-wide second-terminator extraction fails the missing-exit inverse. The exact two-file patch is tests/workflows.bats plus changelog.d/889.internal.md (+140/-24). Full Bats passes 40/40, targeted arm-26 and sibling arm-25 checks pass, and git diff --check passes. Forgejo reports 12/12 successful contexts at this head. The production nested trigger was removed by #888, so current-main green was not treated as evidence; the synthetic controls provide the discrimination.
sentry approved these changes 2026-08-26 13:24:58 +02:00
sentry left a comment

Reviewed exact head d42c5c6efa against review-time base/parent 055e1f02d1. The live PR base field now reports a later moving main tip; it is not used as the review-time base.

Approved. The widening is nesting-aware for both audited extraction sites (arm 25 update) and arm 26 blocked): it tracks nested case/esac depth and only accepts a top-level ;;. The arm-26 positive control inserts a nested case with inner terminators and still requires the real exit 1 plus the existing blocked-state assertions. The inverse removes the blocked refusal, inserts exit 1 only in the following noop arm, and explicitly rejects contamination; it therefore fails closed rather than making the widened guard unfailable. Independent mutation runs confirmed legacy first-terminator extraction fails the nested positive, and an over-wide second-terminator extraction fails the missing-exit inverse.

The exact two-file patch is tests/workflows.bats plus changelog.d/889.internal.md (+140/-24). Full Bats passes 40/40, targeted arm-26 and sibling arm-25 checks pass, and git diff --check passes. Forgejo reports 12/12 successful contexts at this head. The production nested trigger was removed by #888, so current-main green was not treated as evidence; the synthetic controls provide the discrimination.

Reviewed exact head d42c5c6efa465d657573f66c691e2b3096683d8f against review-time base/parent 055e1f02d19b7bc9fcb67438ffd0fe08bfa4afbc. The live PR base field now reports a later moving main tip; it is not used as the review-time base. Approved. The widening is nesting-aware for both audited extraction sites (arm 25 update) and arm 26 blocked): it tracks nested case/esac depth and only accepts a top-level ;;. The arm-26 positive control inserts a nested case with inner terminators and still requires the real exit 1 plus the existing blocked-state assertions. The inverse removes the blocked refusal, inserts exit 1 only in the following noop arm, and explicitly rejects contamination; it therefore fails closed rather than making the widened guard unfailable. Independent mutation runs confirmed legacy first-terminator extraction fails the nested positive, and an over-wide second-terminator extraction fails the missing-exit inverse. The exact two-file patch is tests/workflows.bats plus changelog.d/889.internal.md (+140/-24). Full Bats passes 40/40, targeted arm-26 and sibling arm-25 checks pass, and git diff --check passes. Forgejo reports 12/12 successful contexts at this head. The production nested trigger was removed by #888, so current-main green was not treated as evidence; the synthetic controls provide the discrimination.
bosun merged commit f5d52784d5 into main 2026-08-26 13:27:37 +02:00
Sign in to join this conversation.
No description provided.