Repository navigation
fix(outcomes): replay "."-marked rows; let shellcheck parse dispatch-runner - #623
Conversation
…runner Two defects in #622, reported after it merged: - audit-fix-outcomes.sh skipped every row with a non-empty `file`, but dispatch-runner.sh sends "." as the repo-root marker for repo-grain fixes, so those repo-scoped rows were dropped from the replay. Rows naming "", "." or "./" are now repo-scoped (one jq `repo_scoped` definition shared by the skip count and the replay filter). The test fixture's shell-quote row now carries file "."; without the fix, three checks fail. The E1 log has no "." rows, so E1 is unchanged. - A `# shellcheck disable` inside a case arm (SC1124) made shellcheck stop parsing dispatch-runner.sh at that line, hiding everything after it. Moved before the `case`; shellcheck findings for the file now match the pre-#622 baseline exactly. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PpQVLrCbURpoXtrdvy8V3B
|
Caution Review failedThe pull request is closed. Walkthrough
Merge Risk:
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Two checks fail on
Causes and proposed fixes are in this comment on #622. No fix PR exists yet to port. Codex reviewed this head with no findings. Generated by Claude Code |
|
Fixes for the two base-red checks are now open as separate PRs, at the owner's choice, so they are not folded in here:
This PR goes green on those two checks once both have merged. Generated by Claude Code |
…624) ## Summary `GSBot build, tests and dependency security` fails on main and on every PR (#622, #623) because of three blocking advisories. This is a lockfile-only fix in `bots/gsbot/Cargo.lock`, and every update is semver-compatible: | Crate | From | To | Advisory | |---|---|---|---| | webpki-roots | 1.0.7 | 1.0.11 | RUSTSEC-2026-0381 (fixed in ≥ 1.0.10) | | rustls-webpki | 0.103.15 | 0.103.16 | RUSTSEC-2026-0382: distrusted intermediates can be accepted | | tokio | 1.52.3 | 1.54.1 | RUSTSEC-2026-0386: `AsyncFd` I/O safety; no fixed 1.52.x release exists | This corrects the fix I proposed on #622. That proposal named only webpki-roots, and running the check showed that bump alone still fails on the other two. ## Validation - Ran the CI step with cargo-deny 0.20.2, the version CI pins: `cargo deny --locked --config deny.toml check advisories --warn unmaintained`. - On main's lock it reports `advisories FAILED` (0381, 0382, 0386). - On this lock it reports `advisories ok`. `derivative` remains as an unmaintained *warning*, which is what deny.toml intends. - `cargo test --locked --all-targets` passes. --- _Generated by [Claude Code](https://claude.ai/code/session_01PpQVLrCbURpoXtrdvy8V3B)_ Co-authored-by: Claude <noreply@anthropic.com>
|



Summary
This fixes two defects in my own change in #622. Both were reported by review bots after it merged, and I reproduced both.
audit-fix-outcomes.shdropped repo-grain rows (Codex P2).file. Butdispatch-runner.shsends.as its explicit repo-root marker for repo-grain fixes (line 247), so those repo-scoped rows were discarded.repo_scoped, now treats"",.and./as repo-scoped. Both the skip count and the replay filter use it.dispatch-runner.sh(CodeRabbit, SC1124).# shellcheck disabledirective inside acasearm is a parse error for ShellCheck, so analysis stopped at that line and everything after it went unchecked. Bash itself runs the script fine.case.Validation
tests/outcome-verdict-test.sh: 38/38 pass."file":".".dispatch-runner.shnow parses the whole file. Its findings match the pre-fix(outcomes): post-merge findings on #616 — parallel counts, aliases, file scope #622 baseline (418ba76) exactly, so the fix adds no new findings. Onaudit-fix-outcomes.shthere are no new findings; the one SC2016 is annotated, because$fthere is a jq variable.fileis.or./, and those are the only values whose classification changed. The replay selection is therefore identical, and the doc's byte-for-byte claim still holds.check-lock-sync.shis clean.Not done here
CodeRabbit also suggested an integration test that runs the real
--paralleldispatch loop; it labelled this Trivial and a heavy lift. Section 8 currently tests the tally and fold helpers on their own. The suggestion has merit, but the loop shells out to Hypatia and the fixers, so a deterministic harness needs stubs for both. I'll raise that separately instead of growing this fix.The two red checks on #622 come from outside this diff: canon pin drift on rhodibot, and the webpki-roots advisory on gsbot. They are described with proposed fixes in #622's comment. I expect them to stay red here.
🤖 Generated with Claude Code
https://claude.ai/code/session_01PpQVLrCbURpoXtrdvy8V3B
Summary by CodeRabbit
.or./, as well as entries without a file specified. Entries that name a specific file are skipped and reported, clarifying which results are included.