Skip to content

Define the 38 issue link references the CHANGELOG used but never declared - #2889

Merged
erikdarlingdata merged 2 commits into
devfrom
fix/changelog-undefined-issue-refs
Sep 4, 2026
Merged

erikdarlingdata merged 2 commits into
devfrom
fix/changelog-undefined-issue-refs

Conversation

@erikdarlingdata

@erikdarlingdata erikdarlingdata commented Sep 4, 2026 •

Copy link
Copy Markdown
Owner

What

CHANGELOG.md uses Markdown shortcut references like ([#2794]) throughout, with the definitions collected in append-ordered blocks toward the bottom. Some are used in prose but never defined, so GitHub renders them as literal [#1696] bracket text instead of links. This PR adds the missing definitions.

This is worst where the reference is the citation and there is no other link to the work:

plan_correction collector: OPTION(RECOMPILE) restored ... - [#2760] removed both hints on the theory that ...

The count is 38, not 37 — re-derived on current dev

The original measurement (37) was taken at 13:06Z. dev has since moved by eleven merges. Re-derived on dev at 6e9d9a1b:

$ git show origin/dev:CHANGELOG.md | tr -d '\r' > dev.md
$ grep -o -P '^\[#[0-9]+\]:'  dev.md | grep -o -P '[0-9]+' | sort -u > defined.txt
$ grep -o -P '\[#[0-9]+\](?!:)' dev.md | grep -o -P '[0-9]+' | sort -u > used.txt
$ wc -l < defined.txt   # 1061
$ wc -l < used.txt      # 1097
$ comm -23 used.txt defined.txt | wc -l
38

38 undefined, not 37. The new one is [#2847], cited by the [#2902] bullet that merged to dev today without its own definition. The other 37 are unchanged:

1696, 1944, 2018, 2026, 2061, 2266, 2538, 2543, 2544, 2545, 2547, 2561, 2565, 2566, 2567, 2593, 2595, 2599, 2603, 2612, 2617, 2623, 2625, 2626, 2629, 2630, 2633, 2636, 2638, 2640, 2641, 2643, 2645, 2651, 2686, 2689, 2760, 2847

On the merged result: 1097 used; 1099 defined; 0 undefined.

All 38 confirmed to exist via the API — 34 issues, 4 pull requests (#2018, #2026, #2547, #2686), none missing. No false positives: zero [#N](url) inline links anywhere in the file, and zero of the 38 appear only inside code fences, so all 38 really were rendering as dead text.

Note grep -E (and git grep -E) do not implement \b/\s here and return zero matches silently; every count above was taken with grep -P and cross-checked against an independent Python pass, each with a positive control.

Why uniform /issues/NNNN, including for the 4 PRs

The file holds both forms (770 /issues/, 294 /pull/ on current dev) and the distinction is not maintained: /issues/ definitions that are themselves PRs are routine (#2773, #2785, #2792, #2796, #2803, #2822). GitHub redirects /issues/N to /pull/N, so all 38 resolve either way, and uniform /issues/ matches the file's dominant practice.

Correction to the earlier revision of this description, which claimed the /pull/ form "stops at #2770": that is no longer true. dev now carries [#2890]: .../pull/2890 and [#2901]: .../pull/2901. The form is still not consistently applied, so the reasoning above stands, but the specific claim did not.

Merged dev in and resolved additively

dev was merged in (this repo's convention — no rebase, no force-push). The single conflict was in CHANGELOG.md, where both sides appended to the tail definition block: this branch 37 definitions, dev 10. Resolution keeps every definition and every bullet from both sides. Net effect versus dev is 38 insertions, 0 deletions, 1 file.

Bullet resolution takes dev's wording wholesale, which is the correct additive result here and worth spelling out: this branch is a byte-exact 37-line pure append onto the merge base and changes no bullet, so its bullet set is the base's. A literal union-of-content would therefore have reverted four bullets dev has since edited — and two of those still carry fleet identifiers that dev has since scrubbed. Verified structurally: zero conflict markers (CR-tolerant grep, positive control passed), [Unreleased] retains exactly one each of ### Added / ### Changed / ### Fixed, bullet set equality against both merge parents, definition set equality against both parents with exactly one addition ([#2847]), and byte-identical first three bytes (232043, no BOM) against origin/dev.

What was deliberately left alone

  • Pre-existing duplicate definitions are untouched. There are three, not two: [#828], [#887], and [#2860]. [#2860] is duplicated on dev itself (absent from the merge base and from this branch before the merge), so it arrived from dev today; both of its lines are byte-identical. Not in scope here.
  • Nothing reordered or deduped. The definitions are appended at the end, after dev's own newest ones, preserving the file's append order.
  • No CHANGELOG entry for this change. An entry would add another [#NNNN] reference needing its own definition, which is the thing being fixed; a link-reference repair with no behaviour change doesn't warrant one.

Line endings

Staged with a plain git add, no hash-object escape hatch — that hatch re-commits a CRLF blob and would reintroduce what #2858 fixed. Verified: blob stays pure LF (0 CR bytes, 3244 → 3282 lines), working copy stays pure CRLF per .gitattributes * text=auto eol=crlf (3282 of 3282 lines), and the file gains no BOM.

Provenance

Pre-existing; found incidentally while landing #2885, not caused by it. Docs-only — no code, no tests, no schema rung.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com

🤖 Generated with Claude Code

…ared

CHANGELOG.md cited 1083 distinct [#NNNN] shortcut references against
1048 link-reference definitions, so 37 of them had nothing to resolve
to and GitHub rendered them as literal "[#1696]" bracket text instead
of links - in prose where the reference IS the citation, e.g. "[#2760]
removed both hints on the theory that..." reads as a dead footnote.

Appended the 37 missing definitions in the existing form. Nothing in
the existing block was reordered or deduped: the duplicate [#828] and
[#887] definitions are left exactly as they were, and the file's own
bytes are unchanged ahead of the append - the diff is 37 insertions
and no deletions.

All 37 numbers were confirmed to exist in the repo (33 issues, 4 pull
requests). They are written uniformly as /issues/NNNN, which is what
recent practice already does for both kinds - the /pull/ form stops at
#2770, six of the 60 most recent /issues/ definitions are PRs, and
GitHub redirects /issues/N to /pull/N anyway.

Pre-existing, and found incidentally while landing #2885 rather than
caused by it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@claude

claude Bot commented Sep 4, 2026

Copy link
Copy Markdown

Reviewed. This is a docs-only, purely additive change to CHANGELOG.md (37 insertions, 0 deletions per the raw diff) — no code, so the T-SQL style guide and Lite/Darling parity requirements don't apply here.

Verified independently:

  • All 37 newly-defined [#NNNN]: references land inside the existing (already non-numerically-sorted) trailing link-reference block, consistent with how that block is already ordered elsewhere (e.g. #2871, #2828, #2837, #2870, #2884, #2864... right before this addition) — appending in ascending order isn't a deviation from any enforced convention.
  • No new duplicate definitions introduced: grep -oE '^\[#[0-9]+\]:' CHANGELOG.md | ... | uniq -d still returns only the pre-existing #828/#887 dupes called out in the PR description.
  • All 37 added numbers are present in the file's definition list, and the diff contains zero removed lines, matching the PR's stated intent of leaving prior bytes untouched.

No correctness, security, or performance concerns. Nice reproducible verification script in the description.

Resolves the CHANGELOG.md link-definition conflict additively: both sides
appended to the tail definition block (this branch 37 backfilled
definitions, dev 10 new ones). Kept every definition and every bullet from
both sides.

The undefined-reference count was re-derived on current dev and is now 38,
not the 37 measured at 13:06Z: dev's [#2902] bullet cites [#2847] without
defining it. [#2847] is added here, so the merged file has 0 undefined
references (1097 used, 1099 defined).

Bullet resolution takes dev's wording wholesale. This branch is a
byte-exact 37-line pure append onto the merge base and changes no bullet,
so its bullet set is the base's; a literal union of content would have
reverted four bullets dev has since edited, two of which dev scrubbed real
fleet identifiers out of.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
erikdarlingdata added a commit that referenced this pull request Sep 4, 2026
My CHANGELOG entry cites [#2849] for the cadence model, but that issue had
no link-reference line, so it rendered as literal text rather than a link.
[#2862] and [#2843] were added with the entry; this is the third.

Note for whoever touches that block next: [#2860], [#828] and [#887] each
have DUPLICATE reference lines, and those predate this branch (confirmed
against origin/dev). Left alone - #2889 is rewriting the block.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@erikdarlingdata erikdarlingdata changed the title Define the 37 issue link references the CHANGELOG used but never declared Define the 38 issue link references the CHANGELOG used but never declared Sep 4, 2026
@claude

claude Bot commented Sep 4, 2026

Copy link
Copy Markdown

Reviewed. This is a clean, low-risk, docs-only fix — no T-SQL, no Lite/Darling code touched, so the usual style/parity/security/perf checks don't apply here.

Verified independently:

  • git diff origin/dev HEAD -- CHANGELOG.md is exactly 38 insertions / 0 deletions, all appended at the tail — matches the PR description precisely.
  • None of the 38 new numbers collide with an existing [#NNNN]: definition (no new duplicates introduced).
  • Spot-checked several of the newly-defined refs (#1696, #2547, #2760) against their prose usage — they're genuine in-text citations that were previously rendering as dead [#NNNN] text, now correctly resolve.
  • File stays pure CRLF (file CHANGELOG.md confirms), consistent with the .gitattributes policy from Renormalize the five CRLF blobs to match .gitattributes (Fixes #2857) #2858.

One minor nit on the PR description, not the diff itself: it says "[#828] and [#887] are still duplicated" as the only pre-existing dupes left alone. There's actually a third one, [#2860], also pre-existing on dev (confirmed via git show origin/dev:CHANGELOG.md), also untouched by this PR, also a harmless dupe (identical URL both times). Doesn't affect the change — just flagging so the description's inventory is accurate if anyone relies on it later.

No blocking issues found.

@erikdarlingdata erikdarlingdata mentioned this pull request Sep 4, 2026
@erikdarlingdata
erikdarlingdata merged commit 3284464 into dev Sep 4, 2026
7 checks passed
pull Bot pushed a commit to ehtick/PerformanceMonitor that referenced this pull request Sep 10, 2026
PR erikdarlingdata#2889 defined the 37 issue link references the CHANGELOG used but
never declared. It did not check the other direction: three issues were
each defined twice.

- erikdarlingdata#2860 was defined twice inside the same bottom block (both copies in
  the [1.0.0] block, 10 lines apart)
- erikdarlingdata#828 and erikdarlingdata#887 were each defined once in a newer release section's
  block and again in an older one

All duplicates pointed at identical URLs, so rendered output never
changed - this is cosmetic only.

Which copy was kept follows the file's existing convention rather than
file order. Of the 77 issue refs used in prose across more than one
release section, 75 are defined exactly once, and in 74 of those the
single definition sits in the block of the OLDEST section referencing
it, with newer sections reusing it (link reference definitions are
document-scoped in Markdown). So the bottom-most copy was kept for erikdarlingdata#828
and erikdarlingdata#887; for erikdarlingdata#2860, where both copies shared one block, the first was
kept.

Verified with the same command in both directions - a planted duplicate
is still detected by the identical command form, and the real file now
comes back empty:

  grep -oE '^\[#[0-9]+\]:' CHANGELOG.md | sort | uniq -d

Every bracketed [#NNNN] reference still resolves: 1102 definition lines
and 1102 unique definitions, zero used-but-undefined, zero defined more
than once. Working tree stays all-CRLF (3283 CRLF, 0 bare LF) and the
committed blob all-LF.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@erikdarlingdata
erikdarlingdata deleted the fix/changelog-undefined-issue-refs branch September 12, 2026 20:30
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