Skip to content

Changelog: third splice — 55 entries from the #3653/#3691 waves, the Azure quad, the night queue, V137 and the post-crash repairs (66 merged PRs, 11 entries reconstructed from PR bodies) - #3843

Merged
erikdarlingdata merged 1 commit into
devfrom
chore/changelog-splice-3
Sep 21, 2026
Merged

erikdarlingdata merged 1 commit into
devfrom
chore/changelog-splice-3

Conversation

@erikdarlingdata

Copy link
Copy Markdown
Owner

What this is

Sixty-six pull requests merged to dev since #3751 (the second splice, 2026-09-19T15:51Z), and by the repository's own rule none of them touched this file — each returned its entry to a buffer instead, so that the changelog is written once rather than merged sixty-six times. This is that one splice: fifty-five entries, one file, text only, and nothing outside ## [Unreleased] and the link-definition block moves.

The waves it covers, in the order they merged:

Forty-four entries verbatim, eleven reconstructed

Forty-four bullets are verbatim from the two buffers (trailing whitespace stripped, nothing else). Those buffers were casualties of the 2026-09-20 reboot — /tmp went with it — and were recovered from session transcripts; they now live on the bus at design/pending-entries/ rather than under /tmp, which is the lesson that wipe taught.

Fourteen merged pull requests had no buffer entry at all, because their lanes died in the crash or the merging session wrote none. Rather than leave a schema rung and four shipped surfaces undocumented, those are written here from the pull requests' own bodies in this file's voice, and each is named so a reader knows which prose is reconstructed rather than a lane's own words:

Entry Section Source
Darling V137 / Lite v64: eight nullable columns Added #3813 (its buffer header was a placeholder waiting on a report that never came)
Nothing could say which databases were cluttering Query Store Added #3814 (same)
get_query_store_health skipped the one knob that names a plan-churn factory Added #3823
The store could say how big its plan dimension's TOAST file was and not how full Added #3826
The uncorroborated-finding route knob said FILE-LEVEL Added #3828
The Query Store clutter view had no viewer Added #3841
Four census pins the V137 wave outran Fixed #3806, #3821, #3822, #3825 folded into one ref-less bullet
Two counts nothing re-derived turned dev red on three checks Fixed #3837
The companion-object remedy told twenty-three clusters to UPDATE an extension none of them had Fixed #3839
A collector that STOPPED producing read as one that never produced Fixed #3840
TimescaleDB availability was decided once, by a probe whose failures last a minute Fixed #3842

The four census pins are folded rather than given four bullets because they changed no product file and nothing a reader of the product sees — but they are not omitted, because the shape they record is worth keeping: a "no reader names this column yet" pin has one honest lifetime, from the rung's merge to the first consumer's, and here that was forty minutes.

Classification

Twenty-one entries append to ### Added (new capabilities, fact families, tools, columns and rungs), eight to ### Changed — a designed behaviour that now behaves differently: two pair gates (#3741, #3691's stock sampled arm), the CONFIG_CHANGED anchor moving to the trace line (#3740), the refusal envelope's wire shape (#3739), the WAL ceiling's derivation from disk headroom (#3802), a story's root naming its consumed leaves (#3691), the second fleet read's lineage stamps (#3691) and the bad actor's own-normal grading (#3691) — and twenty-six to ### Fixed. Order within each section is ascending pull-request number, as both prior splices did.

Two entries have no issue to cite and cite none, matching the file's ninety-six other ref-less entries. Every other citation is the issue the pull request closes or partially addresses, resolved against the API rather than inferred from a branch name; twenty-three of them needed a definition, all appended to the end of the [Unreleased] run so that run stays one ascending sequence (3517..3830), never the file's tail, which belongs to an older version.

What was checked

  • python3 tools/changelog/changelog_archive.py verify — all PASS. No archive is touched and the split was not run.
  • Every ([#N]) resolves to a definition in this file; no reference is undefined in either direction; no definition is duplicated.
  • CRLF throughout, read and written as bytes — 3,494 CRLF, zero bare LF. The file is 469,093 bytes, well under the render ceiling.
  • The diff is seventy-eight pure insertions in four hunks: twenty-one, eight and twenty-six bullets appended at the end of their own sections, and twenty-three definitions. Nothing else in the file is touched, and no other file is in the commit.
  • ChangelogIndexAndArchiveTests executed locally, 5/5. A changelog-only change takes CI's docs fast path — build passes in about fifteen seconds with every compile and test step skipped — so that class does not run there. It was compiled into a one-file net10.0 xunit harness whose output directory sits inside this worktree, so the test's walk-up finds this tree's PerformanceMonitor.sln and reads this tree's CHANGELOG.md. Mutation control: deleting one definition this splice introduces reds EveryFile_ResolvesItsOwnReferencesAndRendersOnGitHub by name and by number, and restoring it returns the diff byte-identical.
  • Client hygiene: the whole [Unreleased] section was scanned for the three forbidden name families and nine structural shapes — managed-database and cloud provider hostnames, instance identifiers, account identifiers, resource names, network addresses, engine instance paths and network share paths. Zero hits. Every population statement in the reconstructed prose is a count with no name attached, in the register the file already uses.
  • Every buffer header marked [armed] was confirmed MERGED with its merge commit before its bullet was taken, and so was every other pull request in the two buffers — fifty-two of fifty-two.

What it does not do

No product file, no test file, no archive, no census. Auto-merge is deliberately not armed.

…s across the #3653/#3691 waves, the Azure quad, the night queue, V137 and the post-crash repairs, spliced once

Sixty-six PRs merged to dev since #3751 (the second splice, 2026-09-19T15:51Z)
and by rule none touched this file. Fifty-two returned an entry to a buffer;
fourteen did not, because the /tmp wipe of 2026-09-20 took their lanes with it.
This is the one splice. Text-only; one file; nothing outside ## [Unreleased] and
the definition block moves.

Forty-four entries are verbatim from the two buffers (trailing whitespace only),
recovered from session transcripts and now living on the bus rather than in /tmp.
Eleven are written here from the merged PRs' own bodies in the file's voice, and
say so in the pull request: the V137 rung and the Query Store clutter reader
(whose buffer headers were placeholders waiting on reports that never came), the
capture-mode publish, the store TOAST/checkpointer consumers, the route knob's
store home, the clutter viewers, the dev-red repair, the companion-object remedy,
the collector-regression band, the TimescaleDB availability re-probe, and one
ref-less bullet folding the wave's four orphan census pins.

Twenty-one new capabilities append to ### Added, eight designed behaviour changes
to ### Changed (two pair gates, the CONFIG_CHANGED anchor, the refusal envelope's
wire shape, the WAL ceiling's derivation, a story's consumed leaves, the second
fleet read's lineage and the bad actor's own-normal grading), twenty-six defects
to ### Fixed. Order within each section is ascending PR number, as the first two
splices did. Two entries have no issue to cite and cite none, like the file's
ninety-six other ref-less entries; every other citation is the ISSUE the PR
closes or partially addresses, checked against the API rather than the branch
name. Twenty-three definitions added at the end of the [Unreleased] run, which
stays one ascending run (3517..3830).

tools/changelog/changelog_archive.py verify: all PASS. Every (([#N])) resolves to
a definition in the same file; no duplicate definitions; CRLF throughout (read
and written as bytes); 469,093 bytes, under the render ceiling. No archive
touched; the split was not run. ChangelogIndexAndArchiveTests executed locally
5/5 through a one-file net10.0 xunit harness inside this worktree, because a
CHANGELOG-only change takes CI's docs fast path and that class does not run
there; mutation control - deleting one definition this splice introduced reds
EveryFile_ResolvesItsOwnReferencesAndRendersOnGitHub by name, and the restore is
byte-identical. Client-hygiene scan over the whole [Unreleased] section: zero
hits across three name families and nine structural shapes (managed-database and
cloud hostnames, instance ids, account ids, resource names, addresses, instance
and UNC paths).
@erikdarlingdata
erikdarlingdata merged commit abe9392 into dev Sep 21, 2026
7 of 8 checks passed
@erikdarlingdata
erikdarlingdata deleted the chore/changelog-splice-3 branch September 21, 2026 17:12
erikdarlingdata added a commit that referenced this pull request Sep 22, 2026
…across the (#3884)

startup-cadence family, the band-grid decision, the delegated pair, the gotqn
four, #3691 waves 5-6 and V138, spliced once

Thirty PRs merged to dev since #3843 (the third splice, 2026-09-21T17:12Z) and by
rule none touched this file. Twenty-nine returned an entry to one of the three
lane buffers; one did not, and is written here from its own merged body in the
file's voice, and says so in the pull request. Every one of the thirty is MERGED,
checked through the API rather than inferred from a buffer header, so nothing is
deferred to a fifth splice.

Seven new capabilities append to ### Added, nine designed behaviour changes to
### Changed (the alert pass's one retry and its seam extension, hourly store
convergence, the compression band's weight-aware seating, per-bucket daily
refreshes, the keyed plan-regression judgement, audit_config's PostgreSQL
projection, the blocking fact's 4-hour grain, and the grouped dependency bump),
sixteen defects to ### Fixed. Order within each section is ascending PR number,
as the first three splices did. One entry is test-only and cites no issue, like
the file's other ref-less entries; every other citation is the ISSUE the PR
closes or partially addresses, verified against the API. #3879 contributes three
bullets because its buffer entry carries three, the same shape the third splice
accepted. Twenty definitions added, merge-sorted into the [Unreleased] run, which
stays one ascending run (3517..3880) with no duplicates.

tools/changelog/changelog_archive.py verify: all PASS. Every ([#N]) resolves to a
definition in the same file; no duplicate definitions; CRLF throughout (read and
written as bytes); 517,177 bytes, under the render ceiling. No archive touched;
the split was not run. ChangelogIndexAndArchiveTests executed locally 5/5 through
a one-file net10.0 xunit.v3 harness inside this worktree, because a CHANGELOG-only
change takes CI's docs fast path and that class does not run there; mutation
control - deleting one definition this splice introduced reds
EveryFile_ResolvesItsOwnReferencesAndRendersOnGitHub by name, and the restore is
byte-identical. Client-hygiene scan over the added lines: zero hits across four
name families and nine structural shapes (managed-database and cloud hostnames,
instance ids, account ids, addresses, UNC and instance paths, resource ARNs).
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