Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
301 commits
Select commit Hold shift + click to select a range
f90a5a2
Update the MCP tool-inventory pins for the custom-alert tools (#3285)
erikdarlingdata Sep 11, 2026
ab6d289
Merge pull request #3301 from erikdarlingdata/feature/3285-pg-catalog…
erikdarlingdata Sep 11, 2026
372269b
Merge pull request #3300 from erikdarlingdata/feature/3285-mcp-custom…
erikdarlingdata Sep 11, 2026
2f7d9e7
Deliver the alert's detail text on every channel (#3297)
erikdarlingdata Sep 11, 2026
67eb559
Pin the email hop to the wire, not to the payload builder (#3297)
erikdarlingdata Sep 11, 2026
7b74d7c
Make the empty-details sentinel an array, not a shared mutable list
erikdarlingdata Sep 11, 2026
460d71a
Scope the never-on-a-webhook T-SQL rule, and pin its boundary
erikdarlingdata Sep 11, 2026
06b7ce9
Stop two engine alerts delivering their facts twice, and offer the ne…
erikdarlingdata Sep 11, 2026
7f9226a
Build the database-state fields once and append the conditional one
erikdarlingdata Sep 11, 2026
6ad67b1
Show the rule name in custom-alert notification titles (#3303)
erikdarlingdata Sep 11, 2026
a220d21
Merge pull request #3308 from erikdarlingdata/feature/3303-custom-ale…
erikdarlingdata Sep 11, 2026
0f6df99
Resolve the Proc [Database Id = N Object Id = M] placeholder to schem…
erikdarlingdata Sep 11, 2026
c7d2cec
Merge dev: the delivery seam carries both the prose detail and the di…
Sep 11, 2026
8f0bba3
Merge remote-tracking branch 'origin/dev' into fix/3307-resolve-proc-…
erikdarlingdata Sep 11, 2026
ede9135
Qualify the resolved procedure the way the rest of the alert qualifie…
erikdarlingdata Sep 11, 2026
34de49f
Name the two renamed pins for what they now assert
erikdarlingdata Sep 11, 2026
91b446a
Pin the merged seam: prose AND display name survive one fan-out
Sep 11, 2026
702701d
Decline text that merely opens with the placeholder
erikdarlingdata Sep 11, 2026
747c001
Stop the pending database-state alert stating its missing baseline twice
Sep 11, 2026
c0aacdb
Surface broken / never-firing custom alert rules as self-health (#3304)
erikdarlingdata Sep 11, 2026
2bef0be
Merge pull request #3311 from erikdarlingdata/feature/3304-custom-ale…
erikdarlingdata Sep 11, 2026
70aa2d4
Force-resolve + reconcile custom-alert state on disable/delete (#3305)
erikdarlingdata Sep 11, 2026
6572fbe
Merge pull request #3302 from erikdarlingdata/fix/3297-detail-to-deli…
erikdarlingdata Sep 11, 2026
5e5f3bc
Merge origin/dev: retest against the landed delivery-detail work (#3302)
Sep 11, 2026
2a52dd5
Merge pull request #3312 from erikdarlingdata/feature/3305-custom-ale…
erikdarlingdata Sep 11, 2026
6890ddf
Stop analysis-finding alerts delivering their Diagnosis facts twice
erikdarlingdata Sep 11, 2026
2d67905
Pin the analysis-finding seam: facts once on the wire, prose whole in…
erikdarlingdata Sep 11, 2026
8318a38
Merge dev: custom-alert resolve-on-delete (#3305)
erikdarlingdata Sep 11, 2026
6551c92
Name the regression by the PR that shipped it, not by a guessed issue…
erikdarlingdata Sep 11, 2026
4fe105e
Merge pull request #3310 from erikdarlingdata/fix/3307-resolve-proc-p…
erikdarlingdata Sep 11, 2026
46e9641
Add test_custom_alert_rule evaluate-now MCP tool via a shared seam (#…
erikdarlingdata Sep 11, 2026
fa844f4
Add the #3307 CHANGELOG entry for the merged proc-placeholder resolution
erikdarlingdata Sep 11, 2026
3c7dab1
Drop two numerals no test derives
erikdarlingdata Sep 11, 2026
037b4e3
Merge pull request #3318 from erikdarlingdata/chore/changelog-3307
erikdarlingdata Sep 11, 2026
ef02580
Merge pull request #3319 from erikdarlingdata/feature/3299-custom-ale…
erikdarlingdata Sep 11, 2026
0546c30
Merge pull request #3317 from erikdarlingdata/fix/3302-analysis-prose…
erikdarlingdata Sep 11, 2026
1ae28d2
Add the CHANGELOG entry for the analysis-prose delivery gate
erikdarlingdata Sep 11, 2026
94e0996
Add the custom-alert feature CHANGELOG entry (#3285)
erikdarlingdata Sep 11, 2026
f0fd1c7
Merge pull request #3320 from erikdarlingdata/chore/changelog-3302-an…
erikdarlingdata Sep 11, 2026
015c7f7
Merge pull request #3321 from erikdarlingdata/docs/3285-changelog-cus…
erikdarlingdata Sep 11, 2026
9ec9665
Require a cost regression to be worth reporting, not just real
erikdarlingdata Sep 11, 2026
d097271
Skip mute-from-history pre-fill parsing for custom alerts (#3309)
erikdarlingdata Sep 11, 2026
3791787
Bump the config_version beacon on every config_mute_rules write (#3315)
erikdarlingdata Sep 11, 2026
9704568
Render only the incidents outside their own cooldown window (#3313)
erikdarlingdata Sep 11, 2026
752b990
Assert both incident orders in the #3313 fixtures
erikdarlingdata Sep 11, 2026
ec80bce
Merge pull request #3323 from erikdarlingdata/feature/3309-custom-ale…
erikdarlingdata Sep 11, 2026
07132cc
Port the built-in High CPU alerts onto AlertPersistenceGate (#3282)
erikdarlingdata Sep 11, 2026
7a0ca28
Say that two triggers rest on the mcp role's beacon column grant
erikdarlingdata Sep 11, 2026
2d694c6
Keep the #3297 detailText doc accurate, and drop an unread tuple element
erikdarlingdata Sep 11, 2026
04c3c1a
Merge remote-tracking branch 'origin/dev' into fix/3315-mute-rules-bu…
erikdarlingdata Sep 11, 2026
e45dc9f
Pin the CPU persistence-gate wiring on both SKUs (#3282)
erikdarlingdata Sep 11, 2026
ba5e1e0
Make the shared endpoints file's rationale a block comment, not a sta…
erikdarlingdata Sep 11, 2026
01e56f9
Merge pull request #3322 from erikdarlingdata/fix/3316-cost-regressio…
erikdarlingdata Sep 11, 2026
8c8c1fd
Merge remote-tracking branch 'origin/dev' into fix/3282-builtin-persi…
erikdarlingdata Sep 11, 2026
dd14dd7
Add the #3316 CHANGELOG entry for the cost-regression materiality floor
erikdarlingdata Sep 11, 2026
66e0d74
Read the probe with its comments stripped, so the scan sees the query
erikdarlingdata Sep 11, 2026
cf70ee2
Name the beacon grant's dependents instead of counting them
erikdarlingdata Sep 11, 2026
388b6e8
Name the guard the comment relies on, not a variable that is gone
erikdarlingdata Sep 11, 2026
3a7a08f
Merge pull request #3327 from erikdarlingdata/chore/changelog-3316
erikdarlingdata Sep 11, 2026
293281a
Close two gaps the batch read opened on the PostgreSQL CPU path (#3282)
erikdarlingdata Sep 11, 2026
e98e1d5
Add starter custom-alert templates + drift-guard + list tool (#3285)
erikdarlingdata Sep 11, 2026
b731b70
State the persistence rule in the alert catalog, and pin the count to…
erikdarlingdata Sep 11, 2026
da7ef3c
Merge pull request #3324 from erikdarlingdata/fix/3313-cooldown-filte…
erikdarlingdata Sep 11, 2026
4dd543c
Keep the gate's write off the swallowed-read counter (#3282)
erikdarlingdata Sep 11, 2026
eb5ad9a
Say why poison wait stays outside the gate, next to the contrast it d…
erikdarlingdata Sep 11, 2026
d7288c8
Merge pull request #3329 from erikdarlingdata/feature/3285-custom-ale…
erikdarlingdata Sep 11, 2026
f87e3c3
Merge pull request #3326 from erikdarlingdata/fix/3315-mute-rules-bum…
erikdarlingdata Sep 11, 2026
1776742
Add the #3315 and #3313 CHANGELOG entries
erikdarlingdata Sep 11, 2026
2b8a450
Register the new catch and the new LF reader, and fix two Lite tests …
erikdarlingdata Sep 11, 2026
36c1f5d
Take at most one gate edge per pass, so no edge sequence can be flatt…
erikdarlingdata Sep 11, 2026
8c1231a
Merge origin/dev, renumbering this rung to V118
erikdarlingdata Sep 11, 2026
cc155e3
Put back the summary tag the merge resolution dropped
erikdarlingdata Sep 11, 2026
d861bfc
Merge pull request #3331 from erikdarlingdata/chore/changelog-3313-3315
erikdarlingdata Sep 11, 2026
f0dddc7
Ask the reminder for the latest known level, not only a newly-arrived…
erikdarlingdata Sep 11, 2026
6fafa22
Add the custom-alert web API mirroring /api/views (#3285)
erikdarlingdata Sep 11, 2026
1a3a928
Say what the capacity-less sample actually does, not what it would be…
erikdarlingdata Sep 11, 2026
1dafa32
Reach the delivery cooldown through the control plane as delivery.coo…
erikdarlingdata Sep 11, 2026
a95d4fe
Merge pull request #3333 from erikdarlingdata/feature/3285-custom-ale…
erikdarlingdata Sep 11, 2026
8b91543
Take the store-command shape the deadline scanner recognises, and rou…
erikdarlingdata Sep 11, 2026
a91fa23
Merge remote-tracking branch 'origin/dev' into fix/3314-delivery-cool…
erikdarlingdata Sep 11, 2026
6eed22c
Record why neither statement bumps modified_at
erikdarlingdata Sep 11, 2026
98c551a
Merge pull request #3328 from erikdarlingdata/fix/3282-builtin-persis…
erikdarlingdata Sep 11, 2026
58065fa
Assert each write plane is non-empty before comparing column counts
erikdarlingdata Sep 11, 2026
bf1fdd2
Add the #3282 CHANGELOG entry for the High CPU persistence gate
erikdarlingdata Sep 11, 2026
9b5c435
Merge remote-tracking branch 'origin/dev' into fix/3314-delivery-cool…
erikdarlingdata Sep 11, 2026
82490d9
Say in darling.sample.json that emailCooldownMinutes is not email-only
erikdarlingdata Sep 11, 2026
71c74da
Cap enabled custom alert rules to bound sweep cost (#3285)
erikdarlingdata Sep 12, 2026
030be3b
Read both config tables under one REPEATABLE READ snapshot
erikdarlingdata Sep 12, 2026
41c9e66
Point every rung citation for alert_persistence_state at V118, and pi…
erikdarlingdata Sep 11, 2026
0135421
Merge pull request #3337 from erikdarlingdata/chore/changelog-3282
erikdarlingdata Sep 12, 2026
c98f989
Merge pull request #3339 from erikdarlingdata/feature/3285-custom-ale…
erikdarlingdata Sep 12, 2026
dfb72fc
Merge remote-tracking branch 'origin/dev' into fix/3282-rung-citations
erikdarlingdata Sep 12, 2026
9f4f80e
Drop the unused using the pin added, and sort the rest
erikdarlingdata Sep 12, 2026
10c40bc
Merge pull request #3336 from erikdarlingdata/fix/3314-delivery-coold…
erikdarlingdata Sep 12, 2026
ed1eac8
Add the #3314 CHANGELOG entry for the control-plane delivery cooldown
erikdarlingdata Sep 12, 2026
d31307f
Carry the forensic attachment per incident so each card attaches its …
erikdarlingdata Sep 12, 2026
af99118
Report a mute rule that has outlived its reason
erikdarlingdata Sep 12, 2026
ffa2ab3
Scramble the ordering fixture's ages so a missing sort is discriminable
erikdarlingdata Sep 12, 2026
2f72ac2
Pin the webhook byte-identity in per-event mode, where the attachment…
erikdarlingdata Sep 12, 2026
b0e99d5
Merge remote-tracking branch 'origin/dev' into fix/3330-per-incident-…
erikdarlingdata Sep 12, 2026
859f113
Merge pull request #3338 from erikdarlingdata/fix/3282-rung-citations
erikdarlingdata Sep 12, 2026
9bd98e3
Merge pull request #3340 from erikdarlingdata/chore/changelog-3314
erikdarlingdata Sep 12, 2026
281c1da
Pin that every self-alert condition is reached, and on the right gate
erikdarlingdata Sep 12, 2026
1f81dd3
Pin that the decorate hook receives the graph and keeps it
erikdarlingdata Sep 12, 2026
5109d41
Re-state the stale-mute alert daily, not on the shared alert cooldown
erikdarlingdata Sep 12, 2026
0f424a8
Scope the per-event claim to re-delivery, which is the only half it c…
erikdarlingdata Sep 12, 2026
6d4d2cb
Merge remote-tracking branch 'origin/dev' into fix/3306-stale-mute-vi…
erikdarlingdata Sep 12, 2026
6792b14
State the comments' reasons in the present tense, and not the live mu…
erikdarlingdata Sep 12, 2026
963d457
Merge pull request #3342 from erikdarlingdata/fix/3330-per-incident-a…
erikdarlingdata Sep 12, 2026
4970285
Add the #3330 CHANGELOG entry for per-incident forensic attachments
erikdarlingdata Sep 12, 2026
ef6c587
Drop the counts and the change narration from the new comments
erikdarlingdata Sep 12, 2026
9bb0645
Merge remote-tracking branch 'origin/dev' into fix/3306-stale-mute-vi…
erikdarlingdata Sep 12, 2026
ccea95f
Take the fixture clock from the harness instead of restating it
erikdarlingdata Sep 12, 2026
1f88dfa
Deliver custom-alert severity escalation on an open incident (#3341)
erikdarlingdata Sep 12, 2026
29af060
Merge pull request #3344 from erikdarlingdata/chore/changelog-3330
erikdarlingdata Sep 12, 2026
303322c
Register the stale-mute catch block's swallowed-read exemption
erikdarlingdata Sep 12, 2026
734edc3
Merge pull request #3345 from erikdarlingdata/feature/3341-custom-ale…
erikdarlingdata Sep 12, 2026
c753509
Merge pull request #3343 from erikdarlingdata/fix/3306-stale-mute-vis…
erikdarlingdata Sep 12, 2026
e6dbdbe
Add the #3306 CHANGELOG entry for the stale-mute self-alert
erikdarlingdata Sep 12, 2026
90b0729
Resolve custom-alert incidents on delete via a SECURITY DEFINER funct…
erikdarlingdata Sep 12, 2026
95a2f17
Merge pull request #3347 from erikdarlingdata/feature/3334-custom-ale…
erikdarlingdata Sep 12, 2026
b452e1b
Let an explicit mute answer the stale-mute self-alert
erikdarlingdata Sep 12, 2026
d7e127b
Note starter templates in the changelog; correct the resolve function…
erikdarlingdata Sep 12, 2026
a6062df
Pin the explicit mute's expiry on the evaluator's clock, not the wall…
erikdarlingdata Sep 12, 2026
c089bad
Merge remote-tracking branch 'origin/dev' into fix/3348-explicit-mute…
erikdarlingdata Sep 12, 2026
52deadb
Reach the Retention Held tiers through the control plane (V119)
erikdarlingdata Sep 12, 2026
db7fed6
Merge pull request #3349 from erikdarlingdata/chore/custom-alert-doc-…
erikdarlingdata Sep 12, 2026
cca860f
Read the pinned sources through the raw repo reader
erikdarlingdata Sep 12, 2026
83c71ff
Merge remote-tracking branch 'origin/dev' into fix/3348-explicit-mute…
erikdarlingdata Sep 12, 2026
e8298fc
Annotate the seed INSERT above the statement, not inside its column list
erikdarlingdata Sep 12, 2026
d8a92e7
Keep the seed's column list comment-free, and state comments as curre…
erikdarlingdata Sep 12, 2026
9596897
State what no blanket mute can do, not what no mute can do
erikdarlingdata Sep 12, 2026
065ac8f
Merge pull request #3352 from erikdarlingdata/fix/3348-explicit-mute-…
erikdarlingdata Sep 12, 2026
74af446
Merge pull request #3353 from erikdarlingdata/fix/3297-retention-hold…
erikdarlingdata Sep 12, 2026
03f467d
Add the #3297 and #3348 CHANGELOG entries
erikdarlingdata Sep 12, 2026
61c954b
Add the custom-alert web authoring editor (#3285, Component 7)
erikdarlingdata Sep 12, 2026
25bae3e
Merge pull request #3357 from erikdarlingdata/feature/3285-custom-ale…
erikdarlingdata Sep 12, 2026
f1faa12
Reflect the shipped web editor and drop the deferred tag-scope claim …
erikdarlingdata Sep 12, 2026
22437e9
Merge pull request #3358 from erikdarlingdata/chore/custom-alert-chan…
erikdarlingdata Sep 12, 2026
3717862
Merge remote-tracking branch 'origin/dev' into chore/changelog-3306
erikdarlingdata Sep 12, 2026
9dbe4b6
Resolve the CHANGELOG merge properly: my entry plus dev's expanded one
erikdarlingdata Sep 12, 2026
1d69047
Merge pull request #3346 from erikdarlingdata/chore/changelog-3306
erikdarlingdata Sep 12, 2026
de0be4e
Merge remote-tracking branch 'origin/dev' into chore/changelog-3297-3348
erikdarlingdata Sep 12, 2026
8f29517
Merge pull request #3356 from erikdarlingdata/chore/changelog-3297-3348
erikdarlingdata Sep 12, 2026
69f664f
Stamp webhook payloads from an injected clock (#3355)
erikdarlingdata Sep 12, 2026
5e5b13c
Keep the mute rules in force when a reload fails (#3354)
erikdarlingdata Sep 12, 2026
4369028
Add the #3355 CHANGELOG entry (#3364)
erikdarlingdata Sep 12, 2026
49b3072
Add the #3354 CHANGELOG entry (#3365)
erikdarlingdata Sep 12, 2026
35d8fe4
Add tag scope to custom alert rules (#3350)
erikdarlingdata Sep 12, 2026
7997378
Merge pull request #3366 from erikdarlingdata/feature/3350-custom-ale…
erikdarlingdata Sep 12, 2026
6177881
get_collection_log: filter in SQL, rank by duration, and disclose the…
erikdarlingdata Sep 12, 2026
c0c0258
Show each custom-alert rule's last-fired time on the rule cards (#3360)
erikdarlingdata Sep 12, 2026
8b3496b
Merge pull request #3370 from erikdarlingdata/feature/3360-custom-ale…
erikdarlingdata Sep 12, 2026
f7b12ca
Add between/outside range predicate operators for custom alert rules …
erikdarlingdata Sep 12, 2026
62180b5
Merge pull request #3371 from erikdarlingdata/feature/3351-custom-ale…
erikdarlingdata Sep 12, 2026
53155aa
Fold the custom-alert follow-ups (tag scope, range operators, last-fi…
erikdarlingdata Sep 12, 2026
339a88a
Merge pull request #3374 from erikdarlingdata/chore/custom-alert-foll…
erikdarlingdata Sep 12, 2026
ebb8a6e
Refuse a non-finite min_duration_ms (#3287)
erikdarlingdata Sep 12, 2026
3776f9d
Add the #3287 CHANGELOG entry (#3375)
erikdarlingdata Sep 12, 2026
db0e8f6
Guard COUNT range-op alerts against a stalled-collector no-data 0 (#3…
erikdarlingdata Sep 12, 2026
e1768ed
Resolve custom-alert tag scope to the tag's whole subtree (#3367)
erikdarlingdata Sep 12, 2026
337a0a8
Add the v3.7.0 migration-ladder fixture
erikdarlingdata Sep 12, 2026
72a5a99
Merge pull request #3378 from erikdarlingdata/feature/3373-range-coun…
erikdarlingdata Sep 12, 2026
e1a7bd8
Merge pull request #3379 from erikdarlingdata/feature/3367-tag-subtre…
erikdarlingdata Sep 12, 2026
9792a7e
Add an optional Critical tier for between/outside range alert predica…
erikdarlingdata Sep 12, 2026
b306f89
Merge pull request #3380 from erikdarlingdata/feature/3372-range-crit…
erikdarlingdata Sep 12, 2026
d0753fc
Fold the custom-alert deferral refinements into the changelog
erikdarlingdata Sep 12, 2026
1ce529a
Band deadlocks on a rate, not a raw count (#3368)
erikdarlingdata Sep 12, 2026
260131a
Merge pull request #3381 from erikdarlingdata/chore/custom-alert-defe…
erikdarlingdata Sep 12, 2026
28a1057
Add the #3368 CHANGELOG entry (#3382)
erikdarlingdata Sep 12, 2026
11eed9b
Sign the executables Velopack generates, after packing (#3288)
erikdarlingdata Sep 12, 2026
f867835
Correct the ExplainThroughGucSql safety comment: binding does not pro…
erikdarlingdata Sep 12, 2026
0972a00
Correct the #3288 CHANGELOG entry to what actually ships (#3384)
erikdarlingdata Sep 12, 2026
3653e8d
Merge pull request #3386 from erikdarlingdata/fix/3385-explain-guc-co…
erikdarlingdata Sep 12, 2026
81bdbc0
Refuse a statement that is not exactly one statement (#3385)
erikdarlingdata Sep 12, 2026
4d4e4ac
Split CHANGELOG.md into a compacted index plus per-minor prose archiv…
erikdarlingdata Sep 12, 2026
3ab91a7
Derive the nightly stamp once per run instead of per job (#3390)
erikdarlingdata Sep 13, 2026
dcd374c
Fix query_store probe re-examination and query_stats/procedure_stats …
erikdarlingdata Sep 13, 2026
16a4e10
Resolve gzip plan content in the analysis engine's two plan-XML reads…
erikdarlingdata Sep 13, 2026
06baf61
Collect the plan XML the capture cap declines, out of band (#3392)
erikdarlingdata Sep 13, 2026
dd26309
Stop a cleanup race in the cross-app guard test from failing the nigh…
erikdarlingdata Sep 13, 2026
3002d8d
Leave a durable run record for the oversized-plan backlog sweep (#3399)
erikdarlingdata Sep 13, 2026
14d3b61
Give the oversized-plan backlog a read surface (#3400)
erikdarlingdata Sep 13, 2026
7b7fe81
Give an empty read of the sentinel log its own three sentences (#3402)
erikdarlingdata Sep 13, 2026
cacac4d
Pin the two public tool-count and miss-message strings that had drift…
erikdarlingdata Sep 13, 2026
cebe012
Distinguish the two causes of an empty oversized-plan sweep target li…
erikdarlingdata Sep 13, 2026
5ef10f9
Read both path separators in two test guards' build-output skips (#3407)
erikdarlingdata Sep 13, 2026
eebba14
Add Microsoft Entra device-code sign-in to Lite (#3408)
erikdarlingdata Sep 14, 2026
ab6b020
Bump xunit.v3 from 3.2.2 to 4.0.1 (#3412)
dependabot[bot] Sep 14, 2026
b8d95cd
Take the PostgreSQL log directory from log_directory rather than assu…
erikdarlingdata Sep 14, 2026
9ff107d
Attribute a device code to the acquisition that produced it (#3415)
erikdarlingdata Sep 14, 2026
c0a70cd
Bump Microsoft.Data.SqlClient to 7.0.3 with every lock file regenerat…
erikdarlingdata Sep 14, 2026
6037de4
Return the reason a device code's attribution degraded, rather than o…
erikdarlingdata Sep 14, 2026
bac7034
Drain the oversized-plan backlog at 40 plans per server per hour inst…
erikdarlingdata Sep 14, 2026
3cc0b28
Return get_plan_corrections' four DMV timestamps as stored: the sourc…
erikdarlingdata Sep 14, 2026
a7134e0
Declare the clock frame of every timestamp an alert body carries (#34…
erikdarlingdata Sep 14, 2026
0aa1975
Report every alerting-read count with the stamp and name that identif…
erikdarlingdata Sep 14, 2026
1bc5fff
Declare a gated-off collector by recency, not by whether a log row ex…
erikdarlingdata Sep 14, 2026
eb12930
Make the answered rows of get_pg_index_bloat and the install census o…
erikdarlingdata Sep 14, 2026
7e24d61
Pin which degradation message each device-code degradation gets (#3433)
erikdarlingdata Sep 14, 2026
3d829d8
Bound alert delivery per metric across the fleet, not only per finger…
erikdarlingdata Sep 14, 2026
f5be345
Make PgCappedRead.RankedTail unreachable from a grouped ordering (#34…
erikdarlingdata Sep 14, 2026
5297ad1
Reach the answered indexes from the graphical index-bloat grids (#343…
erikdarlingdata Sep 15, 2026
3d29467
Measure Collector Cost Regression against the baseline's upper edge, …
erikdarlingdata Sep 15, 2026
bc61f29
Name every party's statement and isolation level in a deadlock alert …
erikdarlingdata Sep 15, 2026
f3d7086
Expose set_mute_rule_enabled so a headless deployment can disable a m…
erikdarlingdata Sep 15, 2026
1ac5f2c
Name the three conditions a stored 'undelivered' could not tell apart…
erikdarlingdata Sep 15, 2026
78e6fb0
Take the PostgreSQL deadlock and blocking thresholds off their hardco…
erikdarlingdata Sep 15, 2026
f246167
Expose update_mute_rule so a headless deployment can edit a mute rule…
erikdarlingdata Sep 15, 2026
d721484
Tell a permissions fault from a missing log file, and logging_collect…
erikdarlingdata Sep 15, 2026
ed5093a
Expose the running build on get_collection_health: a service block wi…
erikdarlingdata Sep 15, 2026
602211f
Route collector cost regression to a daily digest except when it is f…
erikdarlingdata Sep 15, 2026
a1031ec
Never answer one cooldown key's question with another key's history (…
erikdarlingdata Sep 15, 2026
5469f17
Put the nightly stamp in the binaries, not just around them (#3455) (…
erikdarlingdata Sep 15, 2026
b7d8862
Give the web dashboard the mute-rule writes its admin seat was always…
erikdarlingdata Sep 15, 2026
914cf2c
Floor collector-cost regressions on what a day of them actually costs…
erikdarlingdata Sep 15, 2026
7a09c4a
Make alerts_enabled the master switch its contract claims: gate every…
erikdarlingdata Sep 15, 2026
e698e22
Persist the sweep's memory: the V123 fleet-sweep state store, with wa…
erikdarlingdata Sep 16, 2026
1772add
Page on a same-statement pileup while it is happening, from the colle…
erikdarlingdata Sep 16, 2026
efeccbd
The sweep with memory: verdicts, differencing, liveness, and the woul…
erikdarlingdata Sep 16, 2026
fc0b399
Render the sweep's memory: the Fleet Sweeps page (#3466, lane 3 of 4)…
erikdarlingdata Sep 16, 2026
49a912a
Deliver the sweep's memory: the daily rollup ceiling and get_sweep_re…
erikdarlingdata Sep 16, 2026
3674415
Scope the pileup to the database whose plan it is: the group key, the…
erikdarlingdata Sep 16, 2026
639a80a
Review riders: the INFO carve-out, the honest census window, the trac…
erikdarlingdata Sep 16, 2026
4c528a3
Remember the auto-refresh toggle and interval, the way the time range…
erikdarlingdata Sep 16, 2026
87e03e1
The stored sweep document claims the would-have-paged check exactly w…
erikdarlingdata Sep 16, 2026
cd5545b
The watch-item worklist names its servers, off the whole retained his…
erikdarlingdata Sep 16, 2026
7206288
Support non-interactive Entra auth (Service Principal + Managed Ident…
erikdarlingdata Sep 16, 2026
6743353
Merge remote-tracking branch 'origin/dev' into feature/3484-darling-e…
erikdarlingdata Sep 16, 2026
47f93fe
Merge pull request #3486 from erikdarlingdata/feature/3484-darling-en…
erikdarlingdata Sep 16, 2026
582aade
Spell tick-scale sweep ids as JSON strings on the wire, both surfaces…
erikdarlingdata Sep 16, 2026
fbb613e
The web path's degradation lines land in the service log, where the M…
erikdarlingdata Sep 17, 2026
efc220d
Correct the tempdb mechanics prose, and hold the INFO lockstep by cen…
erikdarlingdata Sep 17, 2026
af14f5e
Viewer add-server dialogs: Service Principal + Managed Identity (GUI …
erikdarlingdata Sep 17, 2026
7b15700
Split oversized Slack prose across section blocks, inside the 50-bloc…
erikdarlingdata Sep 17, 2026
09dbb3e
A substantive review finding becomes a failed check, not a comment au…
erikdarlingdata Sep 17, 2026
c23b037
Order the recent-runs read by the column the chunks can, id as the ti…
erikdarlingdata Sep 17, 2026
898fb33
Refresh the README screenshots: live shots under load, plus the featu…
erikdarlingdata Sep 17, 2026
b28a05d
The Add Server dialog can say PostgreSQL (#3499) (#3504)
erikdarlingdata Sep 17, 2026
9292297
Clarify the blocked-process-threshold bootstrap log so it reads as be…
erikdarlingdata Sep 17, 2026
b9bb636
A per-collector database allow-list on the schedule row, so a fan-out…
erikdarlingdata Sep 17, 2026
8be9539
Stage index_object_stats definition metadata instead of correlating p…
erikdarlingdata Sep 17, 2026
dd09213
A store's self-alerts can name the store they came from, opt-in via p…
erikdarlingdata Sep 17, 2026
6295459
The fanout block publishes the slowest item's share of the pass, the …
erikdarlingdata Sep 17, 2026
5062b60
The High CPU and Long-Running Query cards name the maintenance and th…
erikdarlingdata Sep 17, 2026
6cfbaa3
The batched changelog entries for the parallel-lane train: five entri…
erikdarlingdata Sep 17, 2026
4161958
The PostgreSQL Add Server dialog hides the lone SQL-auth radio (follo…
erikdarlingdata Sep 17, 2026
5785e9c
Web TLS certificate expiry raises a service self-alert, not just a st…
erikdarlingdata Sep 17, 2026
c4b5ec9
Clear the web-TLS-cert snapshot when the dashboard stops serving, so …
erikdarlingdata Sep 17, 2026
07cb5a9
Cut 3.8.0: version bump, CHANGELOG archive, zero-warning cleanup (#3518)
erikdarlingdata Sep 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
17 changes: 16 additions & 1 deletion .claude/skills/release-checklist/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,21 @@ If a week of parallel PRs left duplicate section headers in `[Unreleased]` (two

If the previous version's changelog entry is missing, add that too.

### 2a. Archive and compact the cut version

`CHANGELOG.md` is an **index**: from 3.0.0 on, each released entry is reduced to its bold title and the issues it references, and the prose lives in `docs/changelog/<major>.<minor>.md`. The single file had reached 2,160,009 bytes, which GitHub refuses to render. `[Unreleased]` keeps its full prose because that is where entries are written, so once the heading is renamed to the new version its prose has to move:

```
python3 tools/changelog/changelog_archive.py split # rewrites the index and the archives
python3 tools/changelog/changelog_archive.py census # the counts and hashes the CI pin reads
python3 tools/changelog/changelog_archive.py verify # counts, reference resolution, size ceilings
python3 tools/changelog/changelog_archive.py roundtrip # byte identity against the pre-split revision
```

`split` is idempotent — run it on an already-split tree and only the newly-released version moves. **Regenerating the census is the step to remember**: `ChangelogIndexAndArchiveTests` reads `tools/changelog/archive-census.txt`, so a new archive with no row there fails CI, and so does a row that no longer matches its archive.

Pre-3.0 versions are deliberately **not** archived: those entries carry no prose to move, and an empty file beside them would be one more thing to maintain that says nothing.

### 2b. README Sync

Cross-reference `README.md` against the changelog and ensure all user-facing changes are reflected:
Expand Down Expand Up @@ -171,7 +186,7 @@ gh release create v{version} --title "v{version}" --notes "See CHANGELOG.md for

The build workflow will then run, compile all artifacts, sign them (if SignPath is configured), and attach them to the release. Monitor at https://github.com/erikdarlingdata/PerformanceMonitor/actions

SignPath blocks on **four** approval requests as of v3.3.0: **Lite** (zip), **Darling** (service + viewer apphost exes), **Lite (Velopack)**, and **Darling Viewer (Velopack)** — the Dashboard/Installer signing steps left with their artifacts. The `Darling` artifact-configuration slug on signpath.io signs the two apphost exes (`PerformanceMonitor.Darling.Service.exe` at the root and `viewer/PerformanceMonitor.Darling.Viewer.exe`) and leaves the `PerformanceMonitor.*` / third-party dlls and `pg-runtime.zip` alone; if it ever goes missing the single `Sign Darling` step fails the release. The Darling zip (`PerformanceMonitorDarling-{version}.zip` — service at root with `pg-runtime.zip` beside the exe, viewer in `viewer\`) joins the release assets; the pg-runtime build downloads ~340MB on a cold cache (cached across re-releases on the fetch script's content hash). Verify the Darling zip is attached and listed in `SHA256SUMS.txt`, alongside the Lite zip/Setup.exe and the Viewer Setup.exe.
SignPath blocks on **five** approval requests: **Lite** (zip), **Darling** (service + viewer apphost exes), **Lite (Velopack)**, **Darling Viewer (Velopack)**, and **the executables Velopack generates** — the Dashboard/Installer signing steps left with their artifacts. The fifth (#3288) comes after `vpk pack` and carries both products in one request: each `Setup.exe`, and the root launcher and `Update.exe` inside each `Portable.zip`. It uses the `SignTemplate` artifact configuration, whose `**/*.exe` and `**/*.dll` includes both need `min-matches="0"` because the batch contains no dll. Two executables per product stay unsigned by design and only inside the `.nupkg` — `lib/app/<App>_ExecutionStub.exe` and `lib/app/Squirrel.exe` — because `releases.<channel>.json` records that package's SHA256 and the delta patches against those bytes; the release guard allowlists exactly those, keyed on the container as well as the path. The `Darling` artifact-configuration slug on signpath.io signs the two apphost exes (`PerformanceMonitor.Darling.Service.exe` at the root and `viewer/PerformanceMonitor.Darling.Viewer.exe`) and leaves the `PerformanceMonitor.*` / third-party dlls and `pg-runtime.zip` alone; if it ever goes missing the single `Sign Darling` step fails the release. The Darling zip (`PerformanceMonitorDarling-{version}.zip` — service at root with `pg-runtime.zip` beside the exe, viewer in `viewer\`) joins the release assets; the pg-runtime build downloads ~340MB on a cold cache (cached across re-releases on the fetch script's content hash). Verify the Darling zip is attached and listed in `SHA256SUMS.txt`, alongside the Lite zip/Setup.exe and the Viewer Setup.exe.

## Notes

Expand Down
Loading
Loading