Commit c166756
authored
ci(openshell): accept optional SDK package decision (#10568)
<!-- markdownlint-disable MD041 -->
## Outcome
Pull request CI now treats a valid base-controlled `required: false` SDK
package decision as a successful no-package result. Invalid inspector
output still stops the locator before it writes workflow output.
Unblocks PR #10562.
## Reason
`jq -e` treated Boolean `false` as a command failure. This blocked PR
#10562 before its dependency jobs could run. The locator must preserve
`false` as valid data while keeping the trusted decision boundary fail
closed.
## Changes
- Require exactly one trusted inspector JSON object with a Boolean
`required` field, then convert that Boolean to a string before `jq -e`
evaluates it.
- Add workflow-shell regression tests for valid `false`, non-Boolean,
empty, and multiple-document inspector output.
## Verification
- `/Users/rsliter/Projects/NemoClaw/node_modules/.bin/vitest run
--project integration
test/automation/pull-requests/pr-workflow-contract.test.ts`: 1 file
passed, 39 tests passed.
- Normal `pre-commit` and `commit-msg` hooks passed, including YAML
validation, repository checks, source-shape budgets, growth guardrails,
secret scanning, formatting, linting, and commitlint.
- `git diff --check origin/main...HEAD`: passed.
- The diff contains no secrets, API keys, or credentials.
## Documentation Writer Review
- [x] Documentation writer subagent reviewed the completed
implementation
- Result: `no-docs-needed`
- Evidence: The change is limited to internal pull request CI parsing
and workflow-shell regression tests. It does not change user commands,
configuration, supported product behavior, or documentation routes.
- Agent: Codex Desktop
<!-- docs-review-head-sha: f1f683d -->
<!-- docs-review-agents-blob-sha: dd3528f -->
## Review notes
Independent security review passed all nine categories. The
base-controlled checkout, same-repository gate, artifact identity
checks, job permissions, and credential isolation remain unchanged.
Negative tests confirm that invalid inspector output does not write
workflow state.
---
Signed-off-by: Rebecca Sliter <571084+rsliter@users.noreply.github.com>
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved SDK package decision handling by requiring a single, valid
JSON decision with a boolean requirement.
- Invalid, empty, or ambiguous decisions now fail clearly instead of
being misinterpreted.
- Artifact lookup is skipped when no SDK package is required.
- **Tests**
- Added coverage for valid custom inspection results, non-boolean
requirements, missing decisions, and multiple decision outputs.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Signed-off-by: Rebecca Sliter <571084+rsliter@users.noreply.github.com>
Co-authored-by: Rebecca Sliter <571084+rsliter@users.noreply.github.com>1 parent 6c255a0 commit c166756
2 files changed
Lines changed: 63 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
214 | 214 | | |
215 | 215 | | |
216 | 216 | | |
217 | | - | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
218 | 226 | | |
219 | 227 | | |
220 | 228 | | |
| |||
Lines changed: 54 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
160 | 160 | | |
161 | 161 | | |
162 | 162 | | |
| 163 | + | |
| 164 | + | |
163 | 165 | | |
164 | 166 | | |
165 | 167 | | |
| |||
178 | 180 | | |
179 | 181 | | |
180 | 182 | | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
181 | 189 | | |
182 | 190 | | |
183 | | - | |
| 191 | + | |
184 | 192 | | |
185 | 193 | | |
186 | 194 | | |
| |||
674 | 682 | | |
675 | 683 | | |
676 | 684 | | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
677 | 730 | | |
678 | 731 | | |
679 | 732 | | |
| |||
0 commit comments