fix(release): act on the fourth Codex pass

- wrapText left a word longer than the line budget intact, so a valid
  60-character unbroken highlight rendered past the edge of the 1200px card
  and was cropped. Overlong words are now broken at the budget, and a test
  asserts no returned line can exceed it. The previous test asserting the
  old behavior encoded the bug.
- The announcement commands are documented as `pnpm --silent run`:
  reproduced that plain `pnpm run release:notes:telegram > post` writes
  pnpm's lifecycle banner into the file ahead of the post, so the
  advertised paste-ready output was not paste-ready.

186 tests passing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
4grayandClaude Fable 5 committed 2026-08-27 10:11:37 +02:00
1 parent 8c3aebecac
commit 62359c80fc
8 files changed
+60 -11

No files matched your search

+5
View File
@@ -30,6 +30,11 @@ chosen deliberately by bumping `package.json`.
| Highlight cards | `release:cards:generate` | `dist/release-highlight-cards/v<version>/` |
| Screenshots | `release:screenshots` | `apps/website/public/blog/<vX-Y>/screenshots/` |
Run the two stdout commands as `pnpm --silent run …` whenever the output is
redirected to a file or a clipboard. Without it pnpm prints its lifecycle
banner (`> iptvnator@0.23.0 release:notes:telegram …`) to the same stdout, and
the saved post starts with two lines of build noise.
### The ordering constraint that matters
`build-release-notes.mjs --consume` is the destructive boundary: it deletes the