* fix(#2494): capture stderr and guard empty output on the claude and gemini reviewer legs The gemini and claude blocks in gsd-core/workflows/review.md were the only two of the ten prompt-fed reviewer legs with both `2>/dev/null` and no empty-output guard. Any failure that wrote no stdout — CLI missing, unauthenticated, rate-limited, crashed — left a zero-byte review file with the only diagnostic evidence already discarded. write_reviews substitutes each file's raw content into a `## <Reviewer> Review` section with no marker separating "empty/failed" from "ran cleanly, nothing to report", so a failed lane silently degraded the advertised N-reviewer consensus to N-1 while present_results reported success. Both /gsd:review and /gsd:plan-review-convergence share the invoke_reviewers step, so both were affected. Both legs now redirect stderr to a `.err` sidecar and write a diagnostic stub with the captured stderr appended when the review file comes back empty — the same shape the codex and cursor legs already use. Scope limit, noted in the block comment: the guard only runs if the block itself completes. A host Bash-tool timeout that kills the whole block skips it, the same hard bound the OpenCode block already documents. The existing timeout guidance (#2194) covers that case and is unchanged. Regression test extracts the two dispatch blocks verbatim from the workflow and runs them under bash against a failing CLI stub, asserting the review file is non-empty and carries a diagnosable message plus the captured stderr. It fails against pre-fix review.md (4 of 5 cases). Golden install-parity fixtures and the workflow size baseline are regenerated: one review.md hash per fixture, one size entry. Fixes #2494 * fix(#2494): stamp the changeset fragment with the filed PR number The fragment was authored with the documented `pr: 0` placeholder because the PR number does not exist until `gh pr create` returns. Now that this PR is #2592, stamp it — scripts/changeset/parse.cjs requires pr > 0, so the placeholder would fail the Changeset Required check.
This commit is contained in:
@@ -299,7 +299,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "23b9eb0858a2535e",
|
||||
"gsd-core/workflows/remove-workspace.md": "1058d1d3160eb120",
|
||||
"gsd-core/workflows/resume-project.md": "98e2cf8908e73a52",
|
||||
"gsd-core/workflows/review.md": "cb4ed7b2b77bba35",
|
||||
"gsd-core/workflows/review.md": "73ea346aebf61b77",
|
||||
"gsd-core/workflows/scan.md": "46c5a73f6f682023",
|
||||
"gsd-core/workflows/secure-phase.md": "9564c529052d1d36",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
|
||||
@@ -370,7 +370,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "df9a45f0b1880999",
|
||||
"gsd-core/workflows/remove-workspace.md": "f67860c795fb4bfe",
|
||||
"gsd-core/workflows/resume-project.md": "f28da1200e4545f4",
|
||||
"gsd-core/workflows/review.md": "d4f26b05b3eff7f6",
|
||||
"gsd-core/workflows/review.md": "ed04746925ea035f",
|
||||
"gsd-core/workflows/scan.md": "e1c12d542e61720d",
|
||||
"gsd-core/workflows/secure-phase.md": "fda2361739e511ee",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
|
||||
@@ -369,7 +369,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "8effc8742d58a11a",
|
||||
"gsd-core/workflows/remove-workspace.md": "64b73daff58b9aec",
|
||||
"gsd-core/workflows/resume-project.md": "af9761bcec0f6fe9",
|
||||
"gsd-core/workflows/review.md": "9eb81c7c61cfe50e",
|
||||
"gsd-core/workflows/review.md": "7838e12644bf808a",
|
||||
"gsd-core/workflows/scan.md": "686e787d3704db90",
|
||||
"gsd-core/workflows/secure-phase.md": "a7272ff8163a61ac",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
|
||||
@@ -298,7 +298,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "ada8a0546c686483",
|
||||
"gsd-core/workflows/remove-workspace.md": "015cde237c75be39",
|
||||
"gsd-core/workflows/resume-project.md": "7f8dc986f0f35d96",
|
||||
"gsd-core/workflows/review.md": "bba666ebc5e13130",
|
||||
"gsd-core/workflows/review.md": "fa72c8f343102dba",
|
||||
"gsd-core/workflows/scan.md": "a71e3009998cfc57",
|
||||
"gsd-core/workflows/secure-phase.md": "ba807b4862d7f3c9",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
|
||||
@@ -302,7 +302,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "e336350f8113a328",
|
||||
"gsd-core/workflows/remove-workspace.md": "79d3669cc9eb0b10",
|
||||
"gsd-core/workflows/resume-project.md": "e23981178fa37b3d",
|
||||
"gsd-core/workflows/review.md": "b1c5ebc05398ca45",
|
||||
"gsd-core/workflows/review.md": "2a95ced731e6d14c",
|
||||
"gsd-core/workflows/scan.md": "f0bd2f64f5530598",
|
||||
"gsd-core/workflows/secure-phase.md": "1a2e389991fc6263",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
|
||||
@@ -370,7 +370,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "df9a45f0b1880999",
|
||||
"gsd-core/workflows/remove-workspace.md": "f67860c795fb4bfe",
|
||||
"gsd-core/workflows/resume-project.md": "f28da1200e4545f4",
|
||||
"gsd-core/workflows/review.md": "d4f26b05b3eff7f6",
|
||||
"gsd-core/workflows/review.md": "ed04746925ea035f",
|
||||
"gsd-core/workflows/scan.md": "e1c12d542e61720d",
|
||||
"gsd-core/workflows/secure-phase.md": "fda2361739e511ee",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
|
||||
@@ -405,7 +405,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "9ee0fddd11a0d9d4",
|
||||
"gsd-core/workflows/remove-workspace.md": "d0160c5d05bcb2bb",
|
||||
"gsd-core/workflows/resume-project.md": "9965f87eb278f7f8",
|
||||
"gsd-core/workflows/review.md": "6c74f7151f41df8b",
|
||||
"gsd-core/workflows/review.md": "9987e9fd8f7e5adb",
|
||||
"gsd-core/workflows/scan.md": "dcd6aac25ef39251",
|
||||
"gsd-core/workflows/secure-phase.md": "3ba89719288dd3f3",
|
||||
"gsd-core/workflows/session-report.md": "dd8fa011c9394075",
|
||||
|
||||
@@ -300,7 +300,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "e262654e319d1bc4",
|
||||
"gsd-core/workflows/remove-workspace.md": "e7e5b5b1e0cc9d81",
|
||||
"gsd-core/workflows/resume-project.md": "40db7f350f5866d8",
|
||||
"gsd-core/workflows/review.md": "31d6ec81b8c8dddc",
|
||||
"gsd-core/workflows/review.md": "6aad3c5254932206",
|
||||
"gsd-core/workflows/scan.md": "76aad4e70281c364",
|
||||
"gsd-core/workflows/secure-phase.md": "d60aa4053154e52f",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
|
||||
@@ -370,7 +370,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "ada8a0546c686483",
|
||||
"gsd-core/workflows/remove-workspace.md": "0572a83d71650937",
|
||||
"gsd-core/workflows/resume-project.md": "7f8dc986f0f35d96",
|
||||
"gsd-core/workflows/review.md": "28a82741e3e8616d",
|
||||
"gsd-core/workflows/review.md": "f5972bbe92dc5f0c",
|
||||
"gsd-core/workflows/scan.md": "a71e3009998cfc57",
|
||||
"gsd-core/workflows/secure-phase.md": "b008216148d2afac",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
|
||||
@@ -299,7 +299,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "fce799aae3ab2715",
|
||||
"gsd-core/workflows/remove-workspace.md": "42029a7559f1d8fb",
|
||||
"gsd-core/workflows/resume-project.md": "a0443839f1f83c2d",
|
||||
"gsd-core/workflows/review.md": "9a7fd3c1c2bd617d",
|
||||
"gsd-core/workflows/review.md": "b7aa706def0b93d6",
|
||||
"gsd-core/workflows/scan.md": "5c2370d6a8118b6c",
|
||||
"gsd-core/workflows/secure-phase.md": "c087131f1dd12901",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
|
||||
@@ -370,7 +370,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "ada8a0546c686483",
|
||||
"gsd-core/workflows/remove-workspace.md": "f5dc82bb63e2efa4",
|
||||
"gsd-core/workflows/resume-project.md": "7f8dc986f0f35d96",
|
||||
"gsd-core/workflows/review.md": "9299d96d44252a8a",
|
||||
"gsd-core/workflows/review.md": "c5c59f2bb70396ab",
|
||||
"gsd-core/workflows/scan.md": "c039d3e40d26b606",
|
||||
"gsd-core/workflows/secure-phase.md": "5a8fbf603d218100",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
|
||||
@@ -327,7 +327,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "df9a45f0b1880999",
|
||||
"gsd-core/workflows/remove-workspace.md": "f67860c795fb4bfe",
|
||||
"gsd-core/workflows/resume-project.md": "f28da1200e4545f4",
|
||||
"gsd-core/workflows/review.md": "d4f26b05b3eff7f6",
|
||||
"gsd-core/workflows/review.md": "ed04746925ea035f",
|
||||
"gsd-core/workflows/scan.md": "e1c12d542e61720d",
|
||||
"gsd-core/workflows/secure-phase.md": "fda2361739e511ee",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
|
||||
@@ -363,7 +363,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "df9a45f0b1880999",
|
||||
"gsd-core/workflows/remove-workspace.md": "f67860c795fb4bfe",
|
||||
"gsd-core/workflows/resume-project.md": "f28da1200e4545f4",
|
||||
"gsd-core/workflows/review.md": "d4f26b05b3eff7f6",
|
||||
"gsd-core/workflows/review.md": "ed04746925ea035f",
|
||||
"gsd-core/workflows/scan.md": "e1c12d542e61720d",
|
||||
"gsd-core/workflows/secure-phase.md": "fda2361739e511ee",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
|
||||
@@ -370,7 +370,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "dea4661e8f89596f",
|
||||
"gsd-core/workflows/remove-workspace.md": "21a8581add5f31ae",
|
||||
"gsd-core/workflows/resume-project.md": "ad9f06a10bab8cc0",
|
||||
"gsd-core/workflows/review.md": "a2c5d053c8ef6e27",
|
||||
"gsd-core/workflows/review.md": "486bc0f9ab4c24f4",
|
||||
"gsd-core/workflows/scan.md": "cbfb79df855e5e61",
|
||||
"gsd-core/workflows/secure-phase.md": "ef09f40dfd4d2424",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
|
||||
2
tests/fixtures/golden-install-parity/pi.json
vendored
2
tests/fixtures/golden-install-parity/pi.json
vendored
@@ -266,7 +266,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "df9a45f0b1880999",
|
||||
"gsd-core/workflows/remove-workspace.md": "f67860c795fb4bfe",
|
||||
"gsd-core/workflows/resume-project.md": "f28da1200e4545f4",
|
||||
"gsd-core/workflows/review.md": "d4f26b05b3eff7f6",
|
||||
"gsd-core/workflows/review.md": "ed04746925ea035f",
|
||||
"gsd-core/workflows/scan.md": "e1c12d542e61720d",
|
||||
"gsd-core/workflows/secure-phase.md": "fda2361739e511ee",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
|
||||
@@ -299,7 +299,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "e8ae4fbbfac700f0",
|
||||
"gsd-core/workflows/remove-workspace.md": "ae520235f4d1f4a5",
|
||||
"gsd-core/workflows/resume-project.md": "7f20769f302e5427",
|
||||
"gsd-core/workflows/review.md": "5b59389282a276fc",
|
||||
"gsd-core/workflows/review.md": "3db704f47d7a5bde",
|
||||
"gsd-core/workflows/scan.md": "b7efd0d381a3b8a5",
|
||||
"gsd-core/workflows/secure-phase.md": "f7bfa7175102af31",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
|
||||
@@ -299,7 +299,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "a46c2fe853bf4e86",
|
||||
"gsd-core/workflows/remove-workspace.md": "8ddc5f04f7c48d6c",
|
||||
"gsd-core/workflows/resume-project.md": "f242e4c8aba18ea2",
|
||||
"gsd-core/workflows/review.md": "2e10545b307c867c",
|
||||
"gsd-core/workflows/review.md": "b02dae5c743b1797",
|
||||
"gsd-core/workflows/scan.md": "3b14bcb51d3a4de8",
|
||||
"gsd-core/workflows/secure-phase.md": "267393d5b02b5334",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
|
||||
@@ -299,7 +299,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "e7a6af429b36e77b",
|
||||
"gsd-core/workflows/remove-workspace.md": "30ca05fe4a3efc25",
|
||||
"gsd-core/workflows/resume-project.md": "82cfe1b8cb17c085",
|
||||
"gsd-core/workflows/review.md": "ac0c02f11e2ae1dc",
|
||||
"gsd-core/workflows/review.md": "f3fdf577dbc08f5f",
|
||||
"gsd-core/workflows/scan.md": "4a910da5e34f2685",
|
||||
"gsd-core/workflows/secure-phase.md": "d5d811bc468ce7f2",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
|
||||
@@ -370,7 +370,7 @@
|
||||
"gsd-core/workflows/remove-phase.md": "df9a45f0b1880999",
|
||||
"gsd-core/workflows/remove-workspace.md": "f67860c795fb4bfe",
|
||||
"gsd-core/workflows/resume-project.md": "f28da1200e4545f4",
|
||||
"gsd-core/workflows/review.md": "d4f26b05b3eff7f6",
|
||||
"gsd-core/workflows/review.md": "ed04746925ea035f",
|
||||
"gsd-core/workflows/scan.md": "e1c12d542e61720d",
|
||||
"gsd-core/workflows/secure-phase.md": "fda2361739e511ee",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
|
||||
Reference in New Issue
Block a user