Skip to content

Fix Rhodibot CI formatting failures - #569

Merged
hyperpolymath merged 9 commits into
mainfrom
coderabbit/changes/b669491d
Sep 23, 2026
Merged

hyperpolymath merged 9 commits into
mainfrom
coderabbit/changes/b669491d

Conversation

@coderabbitai

@coderabbitai coderabbitai Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Apply consistent Rust formatting across Rhodibot’s fleet, compliance, sanitization, webhook, and integration test code. Normalize imports, line wrapping, trailing commas, and match arms without changing behavior.

Validation was not run.

View coding task

hyperpolymath and others added 8 commits September 22, 2026 18:48
GitHub refuses a run at startup, creating zero jobs, when a workflow
carries a `uses:` ref that the lockfile does not record under that
workflow's own path. It matches by LITERAL STRING; `gh actions-lock`
matches by resolved commit, so a lock entry naming a tag that
dereferences to the pinned SHA passes the tool and still kills the run.

Regenerate the lock, make it transitively closed, and add a lock-sync
gate carrying no `uses:` of its own so it cannot be disabled by the
desync it detects. No workflow YAML is modified.

Refs: hyperpolymath/standards#968

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X3hgXxWm6umMgZkjYyHnnm
A workflow absent from actions.lock can be rejected at startup (startup_failure,
jobs=0) even when it carries zero real 'uses:' refs and so has nothing to pin.
The gate is deliberately zero-'uses:', which is exactly why it had no entry.

Measured on two repos in this batch: adding this single line flipped the gate
from 7 consecutive startup_failure runs to success on hyperpolymath/verisimdb
(two successes since, nothing else changed) and from 2 of 2 startup_failure to
success on hyperpolymath/blocky-writer.

Enforcement is not uniform across repos — 13 of the 14 repos in this batch start
the byte-identical gate today with the same gap. A repo that passes now is not
evidence its lock is complete, only that the behaviour has not reached it. This
closes the gap before it bites.

Zero-'uses:' workflows take the empty list, matching the entries actions.lock
already carries for other zero-'uses:' workflows such as labels.yml.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X3hgXxWm6umMgZkjYyHnnm
The gate could not defend the fix this PR ships. Clauses 1-3 ask "is every
`uses:` locked under its own workflow path?" GitHub asks a DIFFERENT question:
"is every workflow FILE represented in the lock?" A workflow with no `uses:`
satisfies clauses 1-3 vacuously and GitHub still refuses to start it - which is
exactly how lock-sync-gate.yml failed here 7 times running while the checker
reported the lock in sync. Thirteen other repositories passed the gate with the
same gap present, so a green gate was not evidence of a complete lock.

Clause 4 diffs the set of files under .github/workflows/ against the set of
lockfile keys, fails on any file with no key, names it, and quotes the
empty-list form to add. Remediation step 4 warns that re-running
`gh actions-lock` may not fix it, because omitting the file is the tool's own
defect.

Mutation-tested both ways: deleting the lock-sync-gate key fails the gate, and
deleting the unrelated labels.yml key fails it too; the unmutated tree passes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X3hgXxWm6umMgZkjYyHnnm
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
Detect quoted keys and flow mappings, and fail on parsing errors or unsafe values to prevent missed action references.
@coderabbitai

coderabbitai Bot commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor Author

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Essentials

Run ID: b86d5089-2691-4bac-8fb9-2f87adb723a0

📥 Commits

Reviewing files that changed from the base of the PR and between 9bf5a37 and 4c8c6b7.

⛔ Files ignored due to path filters (1)
  • .github/workflows/actions.lock is excluded by !**/*.lock
📒 Files selected for processing (45)
  • .github/workflows/lock-sync-gate.yml
  • bots/rhodibot/canon/pin.toml
  • bots/rhodibot/canon/rsr-criteria-v2.a2ml
  • bots/rhodibot/canon/template-capability-gates.toml
  • bots/rhodibot/src/canon.rs
  • bots/rhodibot/src/canon/profile.rs
  • bots/rhodibot/src/canon/report.rs
  • bots/rhodibot/src/fleet.rs
  • bots/rhodibot/src/rsr.rs
  • bots/rhodibot/src/sanitize.rs
  • bots/rhodibot/src/webhook.rs
  • bots/rhodibot/tests/canon_lockstep.rs
  • bots/rhodibot/tests/integration_tests.rs
  • dashboard/src/main.rs
  • robot-repo-automaton/src/catalog.rs
  • robot-repo-automaton/src/confidence.rs
  • robot-repo-automaton/src/detector.rs
  • robot-repo-automaton/src/exclusion_registry.rs
  • robot-repo-automaton/src/fixer.rs
  • robot-repo-automaton/src/fleet.rs
  • robot-repo-automaton/src/github.rs
  • robot-repo-automaton/src/hooks.rs
  • robot-repo-automaton/src/hypatia.rs
  • robot-repo-automaton/src/lib.rs
  • robot-repo-automaton/src/main.rs
  • robot-repo-automaton/src/skeleton.rs
  • robot-repo-automaton/tests/catalog_tests.rs
  • robot-repo-automaton/tests/fixer_tests.rs
  • scripts/check-lock-sync.sh
  • security.txt
  • shared-context/benches/fleet_benchmarks.rs
  • shared-context/src/bot.rs
  • shared-context/src/context.rs
  • shared-context/src/exclusion_registry.rs
  • shared-context/src/finding.rs
  • shared-context/src/health.rs
  • shared-context/src/lib.rs
  • shared-context/src/panel.rs
  • shared-context/src/panel_checker.rs
  • shared-context/src/reporting.rs
  • shared-context/src/storage.rs
  • shared-context/tests/context_tests.rs
  • shared-context/tests/e2e_fleet_coordination_test.rs
  • shared-context/tests/fleet_coordination_test.rs
  • shared-context/tests/property_tests.rs
 ________________________________________________________________
< Fully armed and operationally intelligent code reviewer bunny. >
 ----------------------------------------------------------------
  \
   \   (\__/)
       (•ㅅ•)
       /   づ

Comment @coderabbitai help to get the list of available commands.

Base automatically changed from fix/actions-lock-desync to main September 22, 2026 21:56
@hyperpolymath
hyperpolymath merged commit 98865a1 into main Sep 23, 2026
35 of 37 checks passed
@hyperpolymath
hyperpolymath deleted the coderabbit/changes/b669491d branch September 23, 2026 09:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant