Skip to content

docs(changelog): fold Unreleased into 0.7.0 again, and record the drift guards - #368

Merged
rainmanjam merged 1 commit into
mainfrom
docs/fold-unreleased-0.7.0
Aug 15, 2026
Merged

docs(changelog): fold Unreleased into 0.7.0 again, and record the drift guards#368
rainmanjam merged 1 commit into
mainfrom
docs/fold-unreleased-0.7.0

Conversation

@rainmanjam

Copy link
Copy Markdown
Owner

Second time today, and that's the finding rather than the fix.

[Unreleased] sits above [0.7.0], so under Keep a Changelog its contents are newer than the release below them — and every PR correctly appended there. Nothing folds it forward, so the gap reopens after each merge and is only ever caught by somebody reading the file.

What was stranded

Nine entries that a tag would have silently omitted:

From
#366 all seven security fixes
#365 the VOD audio mix UI, and the EXPERIMENTAL convention

Plus #367 had no entry at all — zero mentions of the ten recovered drift guards.

Why this isn't cosmetic

GHSA-7jqx points at these release notes. The fix for its worst defect — 0.7.0's own seal-at-rest migration leaving plaintext stream keys legible in the WAL, which is true on every upgraded install and needs no attacker — was in a section the tag would not have included.

An operator following the advisory to the notes would not have found it.

The #367 entry

Written to say what actually justifies those ten guards: not that they pass, but that each was watched to fail against the defect it names. It also records the two real defects found in the recovered code before it landed — the comment-defeat, where deleting the feature and leaving its text in a // was: … comment kept the test green, and the unguarded strings.Index that turned a rename into a slice-bounds panic instead of a readable message.

And it records what was not fixed: the two internal/oauth guards remain comment-defeatable, because that package has no comment stripper and copying a 40-line helper between packages is the wrong repair.

Verification — the prose is moved, not retyped

old lines dropped:               0
0.6.0-and-older byte-identical:  True
[Unreleased]:                    'Nothing yet.'
0.7.0 entries:                   90  (was 80)
malformed links:                 0
conflict markers:                0

Worth fixing properly

This fold belongs in the release procedure, not in review. Twice in one day is a process gap, not two mistakes — the natural home is a check that fails a release build when [Unreleased] is non-empty, which this repo would call a guard and would expect to be able to fail.

https://claude.ai/code/session_01HeLrWaDmsNeeNSbHQfEofX

…ft guards

SECOND TIME TODAY, and that is the finding rather than the fix. [Unreleased]
sits ABOVE [0.7.0], so under Keep a Changelog its contents are NEWER than the
release below them -- and every pull request correctly appended there. Nothing
folds it forward, so the gap reopens after each merge and is only ever caught
by somebody reading the file.

Stranded this time: all seven security fixes from #366, the VOD editor and the
EXPERIMENTAL convention from #365. Nine entries.

THE SECURITY FIXES ARE WHY THIS IS NOT COSMETIC. GHSA-7jqx-76vq-hvfc points at
these release notes, and the fix for its worst defect -- 0.7.0's own seal-at-
rest migration leaving plaintext stream keys legible in the WAL, which is true
on every upgraded install and needs no attacker -- was in a section a tag would
not have included. An operator following the advisory to the notes would not
have found it.

#367 had no entry at all. Added under Testing, and written to say what actually
justifies those ten guards: not that they pass, but that each was watched to
fail against the defect it names, and that two real defects were found in the
recovered code before it landed -- a comment-defeat where deleting the feature
and leaving its text in a `// was:` comment kept the test green, and an
unguarded strings.Index that turned a rename into a slice-bounds panic.

Verified the same way as the first fold: the prose is MOVED, not retyped. Zero
lines of the previous file are absent from this one, 0.6.0 and older are
byte-identical, [Unreleased] is empty, 90 entries in 0.7.0 against 80 before,
no malformed links, no conflict markers.

WORTH FIXING PROPERLY: this fold belongs in the release procedure, not in
review. Twice in one day is a process gap, not two mistakes.

Claude-Session: https://claude.ai/code/session_01HeLrWaDmsNeeNSbHQfEofX
Copilot AI lite review requested due to automatic review settings August 15, 2026 03:33
@sonarqubecloud

Copy link
Copy Markdown

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR corrects release note drift by moving previously “stranded” [Unreleased] entries into the [0.7.0] section, ensuring the 0.7.0 tag’s notes include all intended changes and the newly added drift-guard work.

Changes:

  • Resets the [Unreleased] section to “Nothing yet.”
  • Moves the previously-unreleased entries back under ## [0.7.0] — 2026-08-14, including the “Ten UI-drift guards” testing note and other recovered content.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@rainmanjam
rainmanjam merged commit 5aad9c3 into main Aug 15, 2026
29 checks passed
@rainmanjam
rainmanjam deleted the docs/fold-unreleased-0.7.0 branch August 15, 2026 03:52
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.

2 participants