Skip to content

fix(fleet-bump): log every per-app decision, not just the step summary - #536

Merged
rubenvdlinde merged 1 commit into
mainfrom
fix/fleet-bump-log-decisions
Aug 21, 2026
Merged

fix(fleet-bump): log every per-app decision, not just the step summary#536
rubenvdlinde merged 1 commit into
mainfrom
fix/fleet-bump-log-decisions

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Per-app verdicts went only to $GITHUB_STEP_SUMMARY, so gh run view --log showed the echo source and never the decision. The one question you ask a weekly sweep — what did it decide for each app? — was unanswerable from the log.

On 2026-08-21, establishing that a docudesk skip was the open-PR guard and not already current required cross-checking the absence of a ::notice:: annotation against the version in a remote lockfile. Nobody should have to reconstruct that, and it's exactly the shape of evidence that goes wrong quietly.

All six decision sites now route through a row() helper that writes the markdown row to the summary and a DECISION: … line to stdout. Row rendering is unchanged — verified the emitted markdown is byte-identical in shape.

Third and last of the defects found while verifying FLEET_DISPATCH_TOKEN end-to-end (after #534 npm version, #535 open-PR guard).

The per-app verdicts went only to $GITHUB_STEP_SUMMARY, so `gh run view --log`
showed the ECHO SOURCE and never the decision. The one question you ask a
weekly sweep -- what did it decide for each app? -- was unanswerable from the
log.

Concretely, on 2026-08-21 establishing that a docudesk skip was the open-PR
guard and not "already current" required cross-checking the ABSENCE of a
::notice:: annotation against the version in a remote lockfile. That is not a
diagnosis anyone should have to reconstruct, and it is exactly the shape of
evidence that goes wrong quietly.

Routes all six decision sites through a row() helper that writes the markdown
row to the summary AND a `DECISION: ...` line to stdout. Row rendering is
unchanged.
@rubenvdlinde
rubenvdlinde merged commit 6b620aa into main Aug 21, 2026
36 checks passed
@rubenvdlinde
rubenvdlinde deleted the fix/fleet-bump-log-decisions branch August 21, 2026 10:17
rubenvdlinde added a commit that referenced this pull request Aug 21, 2026
* fix(friday-merge): log every per-PR verdict, not just the step summary

This workflow MERGES pull requests unattended. Its per-PR verdicts went only to
$GITHUB_STEP_SUMMARY, so `gh run view --log` showed the echo source and never
which PRs were merged, nor why the others were not.

MEASURED 2026-08-21: a dry run reported "39 merged/would-merge, 44 skipped" and
the log could not name a single one of those 83 PRs. For an automation that
merges dozens of PRs without a human present, the audit trail then exists only
as one rendered artifact, unreadable to any script and easy to lose.

All eight verdict sites now route through srow(), which writes the markdown row
to the summary AND a `VERDICT: ...` line to stdout. Table headers are
deliberately not logged. Verified the emitted markdown is byte-identical.

* fix(fleet): log verdicts in the CVE release and drift sweep too

Completes the same fix applied to fleet-shared-dep-bump (#536) and
fleet-friday-merge (#537): per-app verdicts went only to
$GITHUB_STEP_SUMMARY, so `gh run view --log` showed the echo source and never
a decision.

fleet-cve-release merges and SHIPS security fixes across the beta and main
protections unattended. Its entire safety rests on one judgement -- is this PR
a security fix? -- so the record of how each PR was classified IS the record of
whether the workflow behaved correctly. That record should not exist solely as
a rendered artifact.

fleet-drift-sweep exists to answer "which apps are red under today's gates".
An answer no script can read is most of the way to no answer.

---------

Co-authored-by: Conduction Release Bot <release-bot@conduction.nl>
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