Draft
Harden monitor-meta workflow baseline normalization and diffing#44
Conversation
Copilot
AI
changed the title
[WIP] Fix GitHub meta monitor workflow exit code 5
Harden monitor-meta workflow baseline normalization and diffing
Jul 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
monitor-metaworkflow was failing with exit code 5 after the deterministic-hash rewrite because it compared newly normalized output against a stale pre-normalization baseline and let brittlejq/shell behavior fail the job. This change keeps the workflow structure intact while making baseline handling, hashing, and diff generation deterministic and failure-tolerant.Workflow hardening
shell: bashto everyrun:stepset -euo pipefailso failures surface at the actual command boundary instead of as an opaque step exitDeterministic baseline comparison
trimmed-meta.jsonwith stable key ordering viajq -S.meta.last.jsonwith the same sort/shape transform before any section diffing{}when the stored baseline is missing or invalid, so comparisons stay well-definedDiff generation without fragile sub-
jqfailuresadded_count/removed_countjqlength calls with single-pass value emissiongrep -c ., avoiding the non-zerojqbehavior that was bubbling into step failure under strict shell settingsBaseline persistence behavior
|| echo "Nothing to commit"to avoid failing when no commit is neededExpected next-run behavior
.meta.last.hashwas produced by the older pipeline, so the next scheduled or manual run should detect one change and rewrite.meta.last.json/.meta.last.hashinto the normalized deterministic format