Skip to content

docs(changelog): record NodeHost.console_error (#113) - #116

Merged
codetalcott merged 1 commit into
mainfrom
docs/changelog-console-error
Sep 17, 2026
Merged

codetalcott merged 1 commit into
mainfrom
docs/changelog-console-error

Conversation

@codetalcott

Copy link
Copy Markdown
Owner

#113 added a public framework method (NodeHost.console_error) and a new addon export (hostConsoleError) with no CHANGELOG entry. #114's d7c18cb likewise added none.

Why this is a deviation, not house style

I initially assumed this repo wrote its changelog at release time, because CHANGELOG.md had no ## Unreleased section when I looked. That was wrong, and the history says so plainly:

  • 9238631 — the 0.15.1 closure fix, a feature commit — created ## Unreleased with ### Added / ### Fixed itself.
  • 6f7c915 — the release commit — renamed ## Unreleased to ## 0.15.1 — 2026-09-13.

So ## Unreleased is the mechanism, not something to invent at release time. It was simply absent because 6f7c915 had just consumed it one commit earlier.

Why now rather than at release time

The alternative is reconstructing a feature's rationale from git log while cutting a release. That is the same failure mode CLAUDE.md already warns about for prose counts — "nothing updates numbers embedded in prose" — and it is how a release ships with notes that omit a public API addition.

Deliberately not adding a gate

check-exports-doc.mjs can prove an export is documented in EXPORTS.md, which is mechanical. "Does this change deserve a changelog entry" is a judgment call: a gate demanding one per commit would fire on every codegen regeneration and doc tweak, and a noisy gate gets routinely bypassed — which is worse than none, because it then reads as green. This repo's gates are all mechanical for a reason.

Left as a judgment call

d7c18cb from #114 — "fix(runtimes): stop asserting the outcome of a documented race" — changes a non-required CI gate and nothing a consumer can observe. The CHANGELOG does carry CI items sometimes (0.9.0 has the Node 24 matrix job), so this is arguable either way; I did not add it, since it is your call whether gate-script fixes belong in consumer-facing notes.

Docs-only. 816 tests, exports-doc and sync-versions gates green.

🤖 Generated with Claude Code

#113 added a public framework method and a new addon export with no CHANGELOG
entry. That is a deviation from this repo's convention, not a house style:
`9238631` (the 0.15.1 closure fix) shows feature commits writing their own
`## Unreleased` section with `### Added` / `### Fixed`, which the release
commit then renames to the version heading. So `## Unreleased` is not
something to invent at release time — it is the mechanism, and it was simply
absent from CHANGELOG.md between 0.15.1's release and this cycle because
`6f7c915` had just consumed it.

Writing it now rather than at release time, because the alternative is
reconstructing the rationale from `git log` while cutting a release — the same
failure mode as the prose counts CLAUDE.md already warns about, where nothing
updates a number once it is embedded.

Deliberately not adding a gate for this. The exports-doc gate can prove an
export is DOCUMENTED, but "does this change deserve a changelog entry" is a
judgment call, and a gate that demands one for every commit would be noise
that gets routinely bypassed.

Still unrecorded and left as a judgment call: `d7c18cb` from #114
("fix(runtimes): stop asserting the outcome of a documented race"), which
changes a non-required CI gate rather than anything a consumer can observe.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@codetalcott
codetalcott merged commit 5eac1a2 into main Sep 17, 2026
10 checks passed
@codetalcott
codetalcott deleted the docs/changelog-console-error branch September 17, 2026 21:56
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