Repository navigation
Fix release highlights apostrophe encoding guidance - #71272
Conversation
Align release publishing instructions with the configured safe-output transport and cover the CLI example with a Bash-to-JSON regression test. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
✅ PR Code Quality Reviewer completed the code quality review.
|
|
✅ Ponytail Reviewer completed successfully! Ponytail ReviewerOutcome: The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
|
🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅
|
|
✅ Design Decision Gate 🏗️ completed the design decision gate check. See the comment below for the result and any generated ADR draft. Design Decision Gate 🏗️Outcome: The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
|
✅ Test Quality Sentinel completed test quality analysis. Test Quality SentinelOutcome: The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
There was a problem hiding this comment.
Review: no blocking issues
The documentation now gives a correctly quoted safe-output CLI example, and the regression test verifies that Bash preserves the apostrophe, escaped newlines, and Unicode after JSON decoding. I did not identify an actionable defect in the changed lines. Static review only; no code or tests were executed in this review.
🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt50 · ~3 AIC · ⌖ ~1 AIC · ⊞ 1.6K
Comment /review to run again
There was a problem hiding this comment.
Skills-Based Review 🧠
Applied /diagnosing-bugs and /tdd — this is a solid, well-targeted bug fix. Approving.
📋 Key Themes & Highlights
Root cause addressed, not just symptom
The fix doesn't just correct the example text — it adds an explicit explanation of why the bug happens ("Closing and reopening shell quotes around the escape strips its backslash") directly in the agent-facing instructions. This is exactly the kind of causal instrumentation /diagnosing-bugs calls for: future agents reading the doc get the mental model, not just a corrected string.
Regression test executes real behavior, not string matching
scripts/release-workflows.test.cjs doesn't just assert the doc text looks right — it extracts the documented bash example via regex, executes it through a real Bash subprocess with a stubbed safeoutputs function, and asserts the resulting JSON parses correctly with apostrophes, newlines, and emoji preserved. I verified this independently: reproducing the described quote-reopening bug does in fact strip the backslash and produce the broken u0027 text, while the documented form parses correctly. The test is a genuine regression guard, not a tautology.
Verified in a clean checkout
I confirmed node --test scripts/release-workflows.test.cjs passes 15/15 against the actual committed tree (via a detached worktree at the PR's HEAD commit), and that the lock file diff is a pure regeneration of the hash corresponding to the release.md body change — no unrelated drift.
Minor, non-blocking observation
The new test also asserts release.md no longer contains legacy MCP-call phrasing. That's a reasonable belt-and-suspenders check, but it slightly couples the test to incidental wording rather than only to behavior. Not worth blocking on — just flagging for awareness if the doc prose is revised again later.
Positive highlights
- ✅ Instructions now correctly reflect the actual safe-output CLI transport instead of a nonexistent MCP call syntax
- ✅ Test exercises the documented example end-to-end through Bash + JSON.parse rather than asserting on prose
- ✅ Lock file regeneration is scoped and traceable to the doc hash change
🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · copilot · sonnet50 · ~61 AIC · ⌖ ~15 AIC · ⊞ 10.2K
Comment /matt to run again
There was a problem hiding this comment.
🟢 Approval recommended
The focused changes preserve existing controls, match runtime guidance, and pass an isolated Bash/JSON round-trip check.
No open issues 🎉
What changed in this PR
Aligns release-highlight publishing instructions with the runtime’s safe-output transport and prevents shell quoting from corrupting apostrophes.
Changes:
- Replace MCP-only requirements with transport-aware publishing guidance.
- Provide a correctly quoted JSON example and explain the apostrophe-escaping pitfall.
- Add a Bash/JSON regression test and refresh generated workflow hashes.
| File | Description |
|---|---|
scripts/release-workflows.test.cjs |
Verify the documented command preserves apostrophes, newlines, and Unicode. |
.github/workflows/release.md |
Correct transport instructions and explain safe JSON quoting. |
.github/workflows/release.lock.yml |
Update generated metadata and admission hashes for the revised instructions. |
Review effort: Max
Summary
The v0.93.1 release highlights published
Whatu0027s Newbecause the agent closed and reopened shell quotes around a JSON Unicode escape. The release workflow also contradicted the runtime's CLI transport guidance by requiring direct MCP calls.Align the publishing instructions with the configured safe-output transport, provide a correctly quoted inline JSON example, and explicitly explain the apostrophe-escaping pitfall. Regenerate the workflow lock and add a regression test that executes the documented example against a stub through Bash, then verifies the decoded JSON preserves apostrophes, newlines, and Unicode.
The published v0.93.1 heading was repaired separately; this PR prevents recurrence.
Validation
node --test scripts/release-workflows.test.cjs(15 tests passed)make fmt-cjs && make lint-cjsmake recompile(346 workflows compiled)make agent-report-progressNo workflow was dispatched.