fix(git): ci-queue-wait.sh — parse the payload it was handed, not stdin (#1019) #1023
Open
mos-dt-0
wants to merge 2 commits from
fix/1019-queue-guard-stdin into main
pull from: fix/1019-queue-guard-stdin
merge into: :main
:main
:remediation/state
:feat/rm-02-gate-registry
:fix/rm-01-reproducible-checkout
:remediation/mission-setup
:fix/hygiene-inert-format-gate
:fix/1019-queue-guard-stdin
:feat/mos-ste-writing-standard
:fix/1007-suite-hermeticity
:fix/991-comment-url-scheme-normalise
:feat/push-guard-null-case-verification
:mos-comms-live
:docs/heartbeat-framework-layering-ms-lead
:feat/869-c4-version-coupling
:feat/869-c2-install-ordering-guard
:feat/869-c5-doctor-activation-check
:feat/per-agent-gitea-identity
:fix/875-belongs-case-insensitive-slug
:fix/ci-queue-wait-404-branch-absent
:feat/869-c1-activation-probe
:feat/869-c3-broker-supervisor
:fix/865-tea-cli-comment-invocation
:feat/glpi-skills
:fix/860-deflake-mutator-lease-gate
:fix/850-detect-platform-port-normalization
:fix/856-worktree-deps-preflight
:fix/835-pr-review-approve-reject-comment-flag
:fix/848-truthful-evidence
:fix/812-pr-review-comment
:fix/849-recovery-runtime-fixture-race
:docs/758-ledger-m5-001-sync
:feat/834-tc-server-side-doc
:feat/833-constrained-recovery-command
:feat/827-gate0-probe
:governance/gate0-probe3-amendment
:fix/795-codex-pr-diff
:fix/795-ci-base-jq
:fix/795-ci-base-git
:feat/791-pr3-fleet-regen
:feat/791-pr2-snapshot-restore
:fix/807-glpi-206
:fix/808-agent-send-false-sender
:feat/791-upgrade-config-protection
:feat/790-mosaic-yolo-claudex-pr2
:feat/790-mosaic-yolo-claudex
:feat/758-v1-v2-migrator
:fix/766-exact-fleet-comms
:test/758-reconciler-lifecycle-gates
:docs/771-kbn101-db-role-split
:test/758-example-profile-dispositions
:feat/758-shared-role-resolution
:feat/mos-logical-identity-fencing
:feat/769-kbn100-unified-schema
:docs/753-kbn010-threat-gate
:feat/758-roster-v2-compiler
:feat/756-official-discord-plugin
:docs/758-fleet-config-management
:fix/mos-option2-qualification-format
:docs/issue-758-m0
:docs/mos-option2-qualification
:mos-comms
:feat/tess-interaction-agent
:fix/tess-docs-format
:next
:draft/mosaic-platform-prd
:fix/installer-provider-gate-and-local-gateway-redis
:release/mosaic-cli-0.0.37
:feat/framework-constitution-alpha
:fix/git-wrapper-repo-detection
:fix/woodpecker-wrapper-legacy-mosaic
:fix/t-a292e96f-gitea-pr-metadata
:fix/gitea-pr-metadata-login-t-a292e96f
:fix/t_a292e96f-pr-metadata-gitea
:fix/t_3a368a52-gitea-usc-login
:fix/bootstrap-hotfix
:fix/populate-known-packages-list
:fix/idempotent-init
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Fixes #1019. ci-queue-wait.sh:37,:86 use
python3 - <<'PY', which binds stdin to the program text, sojson.load(sys.stdin)EOFs, the state falls through tounknown, and the guard exits 0 on every invocation, every branch, every repo, both platforms.Passes the payload as an argument instead. pr-ci-wait.sh:38 documents this exact bug with the remedy; it was never backported to the mandatory sibling.
Built and tested previously; opened per board instruction without re-verification. Commit
505b6f7.CHANGES-REQUESTED at exact head
f6334080(fullf63340802c). Independent diff-blind review; checks were pre-registered before inspecting the diff.Blocking findings:
unknownstill exits 0. Malformed JSON maps tounknown, but ci-queue-wait.sh:291-293 groupsunknownwith terminal states and exits 0; lines 295-297 also fail open. The core defect #1019 claims to fix is therefore NOT fixed: parser/provider ambiguity can still pass the mandatory gate-6 guard.Argument list too long(ARG_MAX/MAX_ARG_STRLEN). Use transport not bounded as one exec string, such as a temporary file or separate file descriptor.unknown, but never executes/asserts the production guard control flow, so all 14 tests pass while malformed input still makes the guard exit 0. Required behavioral coverage must assert pass/block exit behavior for pending, success, failure, no-status, and malformed JSON.Adjudication: checks 1 and 2 pass; check 5 passes for parity with the sibling remedy; checks 3, 4, 6, and therefore 7 fail. Evidence: committed parser suite 14/14 passed; bash syntax passed; exact-head 150 KiB payload probe failed rc=126. Verdict: CHANGES-REQUESTED.
CHANGES-REQUESTED at exact head
f6334080(fullf63340802c). Independent diff-blind review; checks were pre-registered before inspecting the diff.Blocking findings:
unknownstill exits 0. Malformed JSON maps tounknown, but ci-queue-wait.sh:291-293 groupsunknownwith terminal states and exits 0; lines 295-297 also fail open. The core defect #1019 claims to fix is therefore NOT fixed: parser/provider ambiguity can still pass the mandatory gate-6 guard.Argument list too long(ARG_MAX/MAX_ARG_STRLEN). Use transport not bounded as one exec string, such as a temporary file or separate file descriptor.unknown, but never executes/asserts the production guard control flow, so all 14 tests pass while malformed input still makes the guard exit 0. Required behavioral coverage must assert pass/block exit behavior for pending, success, failure, no-status, and malformed JSON.Adjudication: checks 1 and 2 pass; check 5 passes for parity with the sibling remedy; checks 3, 4, 6, and therefore 7 fail. Evidence: committed parser suite 14/14 passed; bash syntax passed; exact-head 150 KiB payload probe failed rc=126. Verdict: CHANGES-REQUESTED.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.