Record the CHANGELOG entries for eighteen changes across eleven merged pull requests, and strike an unsound claim from #3199's - #3232
Merged
Conversation
…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.
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.
#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].
…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.
|
Reviewed. This PR touches only Spot-checked the claims in the PR description against the actual diff and file state:
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Applies the collected
[Unreleased]entries for the pull requests merged todevafter #3213, and strikes an arithmetic claim that pass shipped which #3226 has since shown to be unsound. Lanes do not editCHANGELOG.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.mdonly, 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 ownmergedAt. 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
devafter #3213's own merge at2026-09-09T14:29:33Z. Ten were there when this was cut, counted three ways that fail differently --gh pr list --base dev --state mergedfiltered onmergedAt, the search API onis:merged base:dev merged:>=, andgit log --first-parentover 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 listreturned 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'stotal_countand 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/noroutbox/holds entry text for any of them -- #3223's own lane report says only "NoCHANGELOG.mdedit", 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 textblock 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 atc9f04f3fe, before #3227's rebase movedViewerDataService.Deadlock.cs LastTranStartedLocalontoFormatServerClock, which took that member out of both the inventory and its string-literal subset.KnownTruncatedRangesships 30 entries -- verified by counting the array two ways that agree, atTsqlConventionGuardTests.cs:1414, closing at 1447, withLastTranStartedLocalabsent -- 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 isCHANGELOG.mdonly.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, oneAdded, 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_requestfield rather than guessed: 12 are issues and 5 are pull requests (#3223, #3224, #3226, #3230, #3231), and the 5 use the modern/pull/Nform --/issues/Nfor a pull request is a third of the file's population but the split is by age, and the highest such is #2928.CONTRIBUTING.mdpaths, three deleted.cmdscripts) has no issue behind it and cites the pull request,[#3226]. The fifth is thedependabot.ymlbump-review note, and an issue does exist for its subject -- Azure.Identity is unpinned and transitive, so #3218's broker-free guarantee rests on a dependency-graph fact nothing tracks #3219, "Azure.Identity is unpinned and transitive" -- so it cites that, which is the file's rule rather than my preference. Azure.Identity is unpinned and transitive, so #3218's broker-free guarantee rests on a dependency-graph fact nothing tracks #3219 is consequently cited twice, since Record which credential DefaultAzureCredential selected, on an event-id allowlist (#3218 follow-up) #3224's own entry also references it; that is precedented rather than a collision, as 32 numbers already lead more than one entry and 133 NpgsqlCommand sites still inherit Npgsql's undocumented 30s default timeout #2874 leads fifteen.[#3223]likewise leads both of its entries. No definition is duplicated.[#3218], the pull request it is a follow-up to -- which is the lane's own wording, but in the citation position it resolves a reader to a different change. No issue exists behind Record which credential DefaultAzureCredential selected, on an event-id allowlist (#3218 follow-up) #3224, so the rule above puts its own number there, with the follow-up relationship kept as prose. It was the only one of the ten with no issue behind it whose number went uncited, and that is now checked as a property rather than spot-read: for each of the eleven, either an issue exists and is cited in its place, or the pull-request number is cited, with no exceptions -- which is also what placed[#3230]. The[#3218]definition is swapped for[#3224]rather than added, since nothing else cited it -- so the count stays at 15 and the run stays ascending. Found by the review bot; the finding was verified independently before it was acted on.### Addedversus### Fixedfor the doc-shaped changes is decided on measured precedent, not taste. Five instruments that assert something other than what they check (#3211, #3204, #3217) #3226'sdependabot.ymlnote goes underAddedbecause Pin the README's extension-dependent collector list to PgExtensionAvailabilityCollector's roster #3187 -- aREADME.mdparagraph, "declared rather than described" -- already sits there. Scope the de-skew's accuracy claim where the column outlives a DST transition #3231 is doc-only and goes underFixedon Document the PostgreSQL grant and extensions that decide whether a collector returns anything #3184's precedent, which Record the CHANGELOG entries for thirty-three changes across twenty-six merged pull requests #3213 recorded: the prose did not merely lack detail, it left an accuracy claim unscoped in the direction that fails silently, which is Scope the de-skew's accuracy claim where the column outlives a DST transition #3231's own account of itself.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.mdis not a lane's file to edit.Before:
After:
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 carryingSerialLoopSecondsrather than of the chain, while the same thread also awaitsCollectionSweepSeconds,AlertPassCommandTimeoutSeconds,AnalysisCommandTimeoutSecondsand two 300 s budgets -- so10 × 5understated 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
buildin 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:git diff --numstat origin/devreports 35 insertions and 1 deletion, andCHANGELOG.mdis the only path in the diff, and the single removed line is asserted to be the Store disk-pressure check's pg_database_size times out in bursts: 5s deadline sized on a 4.05 GB store, beating against the 300s checkpoint cycle #3199 entry. A CRLF renormalize -- which this file has suffered twice, in Fix CHANGELOG.md: restore CRLF after an accidental LF renormalize (#2694 fallout) #2696 and Fix CHANGELOG.md: restore CRLF after a second accidental LF renormalize (#2695 fallout) #2697 -- would show as thousands of both. The file is read and written as bytes, and CRLF integrity is asserted before and after: 3,591 CRLF, zero bare LF, no BOM..gitattributesnormalizes the blob to LF, so LF there is expected and is not evidence of anything.- **prefix: 19 lines, which is 18 new entries plus the re-added Store disk-pressure check's pg_database_size times out in bursts: 5s deadline sized on a 4.05 GB store, beating against the 300s checkpoint cycle #3199. By a leading-([#N])-citation match, which would undercount any malformed lead: also 19. The second method is what caught an off-by-one in my own first reconciliation -- I had added the Store disk-pressure check's pg_database_size times out in bursts: 5s deadline sized on a 4.05 GB store, beating against the 300s checkpoint cycle #3199 line twice, once as an entry and once as itself. Re-parsing the written file per section independently gives a delta of exactly 6 / 0 / 12.[#N]on a line rather than the first -- three of these entries cite two numbers and a first-match extractor would report false orphans. Every citation added resolves, every definition added is cited, no number is defined twice anywhere in the file's 1,247 definitions, and none of the 16 already existed. The only definitions cited by nothing remain Charts should show visible flat line at zero instead of empty #85 and Deadlock pipeline latency: too many sequential hops before data reaches charts #86, which pre-date this change, and the set of dangling citations is empty before and after.## [headings and 81###headings, identical as ordered lists before and after, and[Unreleased]'s three subsections stillAdded,Changed,Fixedin that order.**, a bold lead followed by a citation group, and a plain-hyphen separator on every one. All 16 definitions match^\[#N\]: .../(issues|pull)/N$with the number equal to the URL tail.3.3.0.0, a product version from Declare the product version once, and pin every reader to it (#3222) #3225's own text, and the check asserts that the only such token is that known literal in version context rather than waiving the pattern -- a new address would still red.One red attempt, diagnosed rather than re-run on hope
Darling whole-tree guardsfailed on attempt 1 of the final head withDarling.Tests Total: 8386, Errors: 0, Failed: 2, Skipped: 337, Not Run: 0-- twoDarlingDeployRollbackRetentionTestscases, 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 throughpowershell.exe; the diff containsCHANGELOG.mdand 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.mdlines. 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/devat5b6ad87a9(#3231) in a fresh worktree.origin/devthen moved once, when #3230 merged, and it was merged in rather than rebased, soe45953960stays 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.