Skip to content

Record the CHANGELOG entries for eighteen changes across eleven merged pull requests, and strike an unsound claim from #3199's - #3232

Merged
erikdarlingdata merged 5 commits into
devfrom
lane/changelog-batch2-0909
Sep 9, 2026
Merged

Record the CHANGELOG entries for eighteen changes across eleven merged pull requests, and strike an unsound claim from #3199's#3232
erikdarlingdata merged 5 commits into
devfrom
lane/changelog-batch2-0909

Conversation

@erikdarlingdata

@erikdarlingdata erikdarlingdata commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Applies the collected [Unreleased] entries for the pull requests merged to dev after #3213, and strikes an arithmetic claim that pass shipped which #3226 has since shown to be unsound. Lanes do not edit CHANGELOG.md -- every one of them appends to the same [Unreleased] block, so a per-PR edit conflicts with whichever sibling merges first -- and the entry text rides each pull request's own description instead.

What is in the diff

CHANGELOG.md only, 35 insertions and 1 deletion: 18 entries prepended inside ## [Unreleased] -- 6 under ### Added, 12 under ### Fixed, none under ### Changed -- plus the 16 link-reference definitions those entries need, plus the one edited line described below. Entries are ordered newest-merge-first within each section, matching the file's existing order and asserted against each pull request's own mergedAt. Nothing else already in the block was edited, reworded or reordered.

15 definitions are appended in ascending order at the foot of the file. [#3189] is below [#3196] and joins the same run at its own ascending position, between [#3188] and [#3192], so all 15 definition runs keep exactly the ordering they had -- 9 of 15 ascending, before and after.

The range, recomputed rather than inherited

Eleven pull requests merged to dev after #3213's own merge at 2026-09-09T14:29:33Z. Ten were there when this was cut, counted three ways that fail differently -- gh pr list --base dev --state merged filtered on mergedAt, the search API on is:merged base:dev merged:>=, and git log --first-parent over the merge commits, all returning the same set: #3212, #3216, #3218, #3220, #3223, #3224, #3225, #3226, #3227, #3231. #3230 then merged at 19:31:55Z while this was being verified and is absorbed, which makes it the newest merge in the range and the first entry under ### Added.

The three-way count is not ceremony here. gh pr list returned exactly 200 records against a --limit 200, so that enumeration was truncated at the boundary and sorted by creation date -- the shape that silently drops an old pull request merged late. The search API's total_count and the first-parent walk are what make the set trustworthy rather than the list command.

The boundary is checked from the other side too: the highest citation anywhere in [Unreleased] is #3200, and none of the eleven pull requests, nor any of the 17 numbers this diff cites, was already cited or already defined. Nothing merged inside the range is uncovered, and nothing is covered twice.

#3213 itself earns no entry, on the precedent it recorded: no batch pass is cited anywhere in the file. Nothing else is open against dev.

Where the text came from

Seven of the ten carry their own entry text under a ## CHANGELOG … heading in the body, and it is used as written: #3216, #3218, #3220, #3224, #3225, #3226 and #3227. Shaping is limited to what the block's existing entries require -- bolding the opening clause where a lane wrote a plain bullet (#3220, #3226, #3227), moving a trailing (#NNNN) into the ([#NNNN]) position after the bold lead, and terminating a sentence that ends mid-thought (#3218 and #3224 both do; a period is added and nothing else).

Three carry none: #3212, #3223 and #3231, and #3230's arrived late -- see below. The queue directories were searched rather than assumed empty, since #3213's pass had to be corrected for missing a handoff file and #3150 records that 11 of its 66 entries came from one. Neither inbox/ nor outbox/ holds entry text for any of them -- #3223's own lane report says only "No CHANGELOG.md edit", and the files that mention #3212 are audits of it. Those four entries are therefore written here from the pull request descriptions, which is stated rather than left to look like lane prose. Measured rather than asserted: normalising away the shaping and matching every entry against the long bullets in the bodies that do carry text, 14 of 18 score >= 0.995 against their source and exactly 4 score < 0.04 -- and those 4 are precisely the ones above.

#3230's entry is the lane's own block, and the first version of it was not. When its description was read at 19:43 it carried no entry-ready block, so the entry was written from the description like the other three. The lane added a ## CHANGELOG entry text block at 20:00:22Z, and that block replaces the entry wholesale rather than the entry being patched -- it names only what shipped. What the description did lead with was a measurement section taken at c9f04f3fe, before #3227's rebase moved ViewerDataService.Deadlock.cs LastTranStartedLocal onto FormatServerClock, which took that member out of both the inventory and its string-literal subset. KnownTruncatedRanges ships 30 entries -- verified by counting the array two ways that agree, at TsqlConventionGuardTests.cs:1414, closing at 1447, with LastTranStartedLocal absent -- while the retired entry said 31, and carried 13, 544, 510, 2,238 and 42,927 besides. The 544 and 510 predate the content-trim and cannot be recomputed from shipped code at all; the file and declaration totals move with every commit, and a release note should not carry a number that drifts.

The staleness is in the merged code too, not only in the description. KnownTruncatedRanges' own doc comment says "Editing 31 member bodies", "the current 31" and "Thirteen of these strand a string literal", against an array of 30 -- so both sources a lane could have read agree on the wrong number. That is a counted claim welded to a numeral, in a file whose entire subject is instruments that report something other than what they check. Reported rather than touched here, since this diff is CHANGELOG.md only.

The entry's one surviving quantity is cross-checked against the shipped array by the verification battery, so it cannot restate a count the code does not have. That check is what this class needed: the retired figures were all internally consistent with each other and with the prose they came from, so nothing short of reading the array would have caught them.

Four pull requests contributed more than one entry because they did more than one thing: #3226 five (its own five staged bullets), #3227 three (two Fixed, one Added, as its lane assigned them), and #3223 two, one per guard -- they are two different suites with two different defects, and merging them would have buried the second.

Two citation judgements

Citations are issue numbers where an issue exists and pull-request numbers where one does not, which is what the file already does. Each of the 17 was resolved against the API's own pull_request field rather than guessed: 12 are issues and 5 are pull requests (#3223, #3224, #3226, #3230, #3231), and the 5 use the modern /pull/N form -- /issues/N for a pull request is a third of the file's population but the split is by age, and the highest such is #2928.

The #3199 correction, which is the one deletion

#3213's pass shipped the #3199 entry containing a claim that PR #3226 removed the pin for, and #3226's lane filed a note about it precisely because CHANGELOG.md is not a lane's file to edit.

Before:

Raising the deadline was arithmetically closed rather than merely unattractive: the shared constant is pinned at 10 sites × N < 60 s, so N < 6, and a private constant for this one call caps at 14 s with nothing measured saying 14 is enough.

After:

A private constant for this one call caps at 14 s with nothing measured saying 14 is enough.

Both operands were wrong, not just the framing. DarlingWorker.SweepWatchdogSeconds -- the 60 -- is fed timestamps stamped at per-server collection-body launch and only selects a log level; it never observes the serial loop and cancels nothing. And the 10 is a census of the commands carrying SerialLoopSeconds rather than of the chain, while the same thread also awaits CollectionSweepSeconds, AlertPassCommandTimeoutSeconds, AnalysisCommandTimeoutSeconds and two 300 s budgets -- so 10 × 5 understated it. No replacement inequality is added, because #3226 established that nothing bounds that chain in aggregate; the entry it landed alongside in this same diff says so. The surviving clause is untouched and sufficient on its own, and the rest of that line is asserted byte-identical.

Verification

CI takes the docs fast path on a change that ships no code, so a green build in seconds has run nothing and is not the evidence here. What was checked, all of it re-parsed from the written file by a script that imports nothing from the assembler:

One red attempt, diagnosed rather than re-run on hope

Darling whole-tree guards failed on attempt 1 of the final head with Darling.Tests Total: 8386, Errors: 0, Failed: 2, Skipped: 337, Not Run: 0 -- two DarlingDeployRollbackRetentionTests cases, both reporting "powershell.exe did not exit within 60 seconds running the extracted functions". Those tests extract functions from the deploy script and run them through powershell.exe; the diff contains CHANGELOG.md and nothing else, so there is no path from it to a PowerShell runner timeout.

Three facts placed it before the re-run rather than after: the same job was green on both earlier heads carrying 33 of these 35 lines; #3230's own head was 8/8 green including this job, so the merged content is not implicated either; and the only delta between the last green head and the red one is that merge plus two CHANGELOG.md lines. Attempt 2 passed in 231 s. Recorded rather than quietly re-run, because a red attempt in the history is something a later reader will otherwise have to re-diagnose.

Base

Cut from origin/dev at 5b6ad87a9 (#3231) in a fresh worktree. origin/dev then moved once, when #3230 merged, and it was merged in rather than rebased, so e45953960 stays intact in the history and #3230's entry lands in a commit of its own on top -- an entry omitted because it arrived mid-batch is how a backlog restarts, and the batch's purpose is to make [Unreleased] current at its own merged base.

Four commits, and each later one is a new commit rather than an amend: the earlier heads' eight checks had already run green, and rewriting them would have meant a force-push.

…pull requests

Applies the [Unreleased] entries for the pull requests merged to dev after
#3213's batch pass, and strikes an unsound arithmetic claim from the #3199
entry that pass shipped.

CHANGELOG.md only: 17 entries prepended inside [Unreleased] -- 5 under
Added, 12 under Fixed -- plus the 15 link-reference definitions they need,
and one edited line. Entry text comes from each pull request's own body
where it carried one.
Comment thread CHANGELOG.md Outdated
@claude

claude Bot commented Sep 9, 2026

Copy link
Copy Markdown

Reviewed. This is a CHANGELOG.md-only PR (33 insertions / 1 deletion), so the T-SQL style, Lite/Darling parity, and security-review criteria don't have surface area to bite on here — no code changed.

Verified against the actual repo state:

One real issue found — left as an inline comment on line 13: the Added entry for the Azure credential-recording feature cites [#3218], but that number belongs to a different, already-separately-cited PR (the auth-mode change, cited via [#3214] in the entry above it). The actual implementing PR is #3224, which never gets a citation or definition anywhere in the file — contradicting this PR's own claim of full coverage over the ten merged PRs. Recommend citing [#3224] instead (no issue exists for it, so per the PR's own citation rule it should get its own PR-number citation).

The Azure credential-recording entry led with [#3218], the pull request it
is a follow-up to, which resolves to a different change. No issue exists
behind #3224, so under the file's rule -- issue numbers where an issue
exists, pull-request numbers where one does not -- its own number belongs
in the citation position, with the follow-up relationship kept as prose.

#3224 was the only one of the ten merged pull requests with no issue behind
it whose number went uncited. The [#3218] definition is swapped for
[#3224] rather than added, since nothing else cited it.
@claude

claude Bot commented Sep 9, 2026

Copy link
Copy Markdown

Reviewed. This PR only touches CHANGELOG.md (33 insertions / 1 deletion), so the T-SQL style / Lite-Darling parity guidance in CONTRIBUTING.md doesn't apply here — there's no code, no collectors, no C#. I focused the review on verifying the PR description's own claims against the actual GitHub state, since the description makes very specific, checkable assertions about the merge range, citations, and ordering.

Diff mechanics check out. Cross-checked against the GitHub API:

One real problem: the "#3230 is still open" claim is now false, and this batch is missing its entry.

The PR body states twice that #3230 was excluded because it's still open ("#3230 is still open and is not absorbed" / "#3230 was open at the cut and still open at push"). Per the GitHub API, #3230 ("Report the member ranges that stop short of their own content") merged to dev at 2026-09-09T19:31:55Z. This PR's own commit timeline is:

So #3230 had already been on dev for ~4.5 minutes by the time the second commit was pushed — the "still open at push" premise doesn't hold for the push that actually shipped. Since this PR's own stated boundary is "ten pull requests merged to dev after #3213," and #3230 merged after #3213 (and even after #3231, the PR's own stated cut point), it's in-range and has no entry here.

Given the file's own rule that "lanes do not edit CHANGELOG.md" and batches are periodic, this could just roll into the next batch — but as written, the PR's stated verification ("nothing merged inside the range is uncovered") is factually incorrect as of the second commit, and whoever runs the next batch needs to know to pick up #3230 specifically (it merged in the gap between this PR's two commits, which is an easy case to miss if the next batch's range-detection just looks at "after #3232's base"). Worth either adding #3230's entry now or flagging it explicitly for the next pass rather than leaving the stale "still open" claim as the record.

🤖 Generated with Claude Code

#3230 was open when this batch was cut and merged at 19:31:55Z while it was
being verified, making it the newest merge in the range. origin/dev is
merged in rather than rebased, so e459539 stays intact in the history.

Its body carries no entry text and neither queue directory holds any, so
the entry is written here from the description. No issue exists behind it,
so it cites its own number, and its definition takes its ascending place
between [#3226] and [#3231].
@erikdarlingdata erikdarlingdata changed the title Record the CHANGELOG entries for seventeen changes across ten merged pull requests, and strike an unsound claim from #3199's Record the CHANGELOG entries for eighteen changes across eleven merged pull requests, and strike an unsound claim from #3199's Sep 9, 2026
@claude

claude Bot commented Sep 9, 2026

Copy link
Copy Markdown

Reviewed. This PR only touches CHANGELOG.md (35 insertions / 1 deletion), so the T-SQL style and Lite/Darling parity checks don't apply to the diff itself — no source files changed.

Independent verification performed (without relying on the PR description's own claims):

No correctness, security, or parity issues found in the diff.

…prose

The entry was written from #3230's description before that description
carried an entry-ready block, and the description's measurement section was
taken at c9f04f3 -- before #3227's rebase moved Deadlock.cs
LastTranStartedLocal onto FormatServerClock, which took it out of both the
inventory and the string-literal subset.

KnownTruncatedRanges has 30 entries; the retired entry said 31, and carried
13, 544, 510, 2,238 and 42,927 besides. The 544 and 510 predate the
content-trim and cannot be recomputed from shipped code at all, and the file
and declaration totals move with every commit. The lane's own block names
only what shipped, so it replaces the entry wholesale rather than the
numbers being patched.

Its one quantity is cross-checked against the shipped array by the
verification battery, so the entry cannot restate a count the code does not
have.
@claude

claude Bot commented Sep 9, 2026

Copy link
Copy Markdown

Reviewed. This PR touches only CHANGELOG.md (35 insertions, 1 deletion) — no T-SQL, no Lite/Darling C# code, no config. The style/parity/security review categories in the brief don't apply here since no code changed.

Spot-checked the claims in the PR description against the actual diff and file state:

  • Citation/definition integrity: every new bracket citation added ([#3230], [#3207], [#3219], [#3224], [#3208], [#3214], [#3231], [#3221], [#3211], [#3204], [#3217], [#3226], [#3206], [#3222], [#3223], [#3189]) has a matching link-reference definition, and vice versa. No duplicate [#N]: definitions.
  • #3218 handling: confirmed there is no [#3218] bracket anywhere in the file (citation or definition) — it was correctly demoted to plain prose (a follow-up to #3218) in the #3224 entry rather than left as an orphaned link.
  • #3223 and #3219 double-leads: confirmed #3223 leads both of its entries (the two guard fixes) and #3219 is referenced 3 times (1 definition + 2 citations, from #3226's dependabot note and #3224's entry), matching the description.
  • #3199 correction: confirmed the old sentence containing the 10 sites × N < 60 s arithmetic claim is removed and the surrounding text is otherwise byte-identical; [#3199]'s definition itself is untouched (pre-existing, still points at /issues/3199).
  • Definition ordering: [#3189] is correctly inserted ascending between [#3188] and [#3192]; the new run at the file's end (3204...3231) is ascending.
  • PR vs. issue citation choice: verified via gh pr view that #3223, #3224, #3226, #3230, #3231 are actually pull requests (not issues), consistent with using /pull/N link targets for those five and /issues/N for the rest.
  • Counts match: 6 new Added entries, 12 new Fixed entries, 16 new definitions, 35/1 insertions/deletions — all as claimed.

No factual or formatting problems found. Nothing to flag for Lite/Darling parity, T-SQL conventions, or security since no code is in this diff.

@erikdarlingdata
erikdarlingdata merged commit db4d971 into dev Sep 9, 2026
10 checks passed
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