Repository navigation
fix(action): read release outputs from a --output file, not scraped stdout - #605
Merged
Merged
Conversation
goosewobbler
force-pushed
the
fix/594-tier2-output-file
branch
from
July 21, 2026 01:50
cb557e7 to
90257f4
Compare
Contributor
|
Standing release PR: #595 · v0.41.2 queued (4 packages) · open 5h 19m · ✅ ready to merge Release Preview — v0.41.1 → v0.41.2
These changes will be added to the release PR (#595) when merged: Changelogmonorepo 0.41.1 → 0.41.2
After merge — predicted release
Updated automatically by ReleaseKit |
…tdout Tier 2 of #594. The JSON-result CLI commands (release, gate, standing-pr update/publish) gain a `--output <path>` flag that writes the result JSON to a file via a shared emitResult() helper. run-action passes a temp --output file for those modes and reads the structured result from it (falling back to stdout only if the file is missing, then to Tier 1's git-derived tags). This removes the stdout-scraping fragility from ALL release outputs (has-changes / tags / version-output / release-output), not just `tags` (Tier 1, #597): a stray byte of subprocess or log noise on stdout can no longer corrupt them. Preview mode is unchanged (its markdown output stays on stdout). Addresses #594 (Tier 2). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K6CmYRXTZQYs4MNo6AETxT
goosewobbler
force-pushed
the
fix/594-tier2-output-file
branch
from
July 21, 2026 01:53
90257f4 to
53372e0
Compare
Merged
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.
Implements Tier 2 of #594 — the comprehensive fix for stdout-scraping fragility in the Action's outputs. (Tier 1, #597, already hardened just
tagsvia a git fallback.)Problem
run-action.mjsderives the Action's release-mode outputs (has-changes,tags,version-output,release-output) by parsing the CLI's stdout. Any subprocess or log noise on stdout — a single stray byte — breaksJSON.parseand silently empties them. This is the same failure class that stranded thev0.41.1action dist.Fix — write the result to a file, read it back
--output <path>flag on the JSON-result commands (release,gate,standing-pr update|publish), via a sharedemitResult()helper: when set, the result JSON is written to that file; otherwise--jsonprints to stdout exactly as before.run-actioncreates a temp--outputfile for those modes, passes it, and reads the structured result from the file — immune to stdout noise. It falls back to captured stdout if the file is missing, and Tier 1's git-derivedtagsremains the final backstop.Now every release output comes from the file, not a stdout scrape.
Validation
emitResultunit (file vs stdout vs no-op), andrun-action(readsoutputJsonfrom the file even when the fake CLI floods stdout with noise; no--outputfor preview).pnpm typecheck15/15;biomeclean; release package + action-runner suites green (870 tests).Note
This touches
packages/release/src, so — unlike the earlier action-only PRs — it should drive a natural standing-PR release itself.🤖 Generated with Claude Code
Greptile Summary
This PR moves structured Action results from captured stdout to temporary output files. The main changes are:
--outputsupport to release, gate, and standing-PR commands.Confidence Score: 5/5
This looks safe to merge.
Important Files Changed
Reviews (2): Last reviewed commit: "fix(action): read release outputs from a..." | Re-trigger Greptile