Skip to content

Lite's get_query_trend carries the same source/effective_start/truncated block its Darling twin has had since #2353, so the last cross-SKU envelope mismatch in the trend family closes (#3541 A2 follow-up) - #3599

Merged
erikdarlingdata merged 1 commit into
devfrom
fix/3541-lite-get-query-trend-disclosure
Sep 18, 2026
Merged

erikdarlingdata merged 1 commit into
devfrom
fix/3541-lite-get-query-trend-disclosure

Conversation

@erikdarlingdata

Copy link
Copy Markdown
Owner

Lite's get_query_trend carries the disclosure block its Darling twin has had since #2353

#3590 gave the duration-trend trio one six-key disclosure block — source, effective_start, effective_hours_back, truncated, bucket, aggregate_note — on both SKUs. The bot review of that PR pointed at the one tool left where the SKUs' envelopes still disagreed: Darling's get_query_trend has published the block since #2353, Lite's returned the bare {server, database_name, query_hash, hours_back, data_points, trend}. This is that fix, taken in-lane rather than filed. It was pushed to #3590's branch as its fifth commit, but auto-merge fired on the fourth commit's green checks a minute earlier, so it rides here on its own.

What changes

Lite McpQueryTools.GetQueryTrend's DATA envelope writes the same block between hours_back and data_points, through the WriteDisclosure helper #3590 added one screen up: source always raw (Lite has one tier), bucket per-collection, effective_start the first point the store held, truncated by the shared 90-minute slack. Its empty branch stays a bare status, exactly like Darling's get_query_trend empty branch, so the twins now match on both paths. The Lite instructions row says so.

What it does NOT do

Nothing on Darling; nothing to any reader. No CHANGELOG entry of its own — it belongs under #3590's entry (partial #3541, A2).

Test plan

Compile-verified here (Lite + Lite.Tests, zero warnings); first executed in CI. TrendEmptyParityToolTests.QueryDurationTrend_NeverCollected_AndAQuietWindow_AreDifferentAnswers now also reads get_query_trend over the same seeded query and asserts source, bucket, effective_start = the first point's collection_time, truncated (a series beginning ten minutes ago in a four-hour window starts past the slack) and data_points.

Which component(s) does this affect?

  • Lite
  • Darling
  • Lite Tests
  • Darling Tests
  • SQL collection scripts
  • Documentation
  • Full Dashboard (deprecated)
  • CLI Installer (deprecated)

How was this tested?

Compile-verified on Lite and Lite.Tests with zero warnings; the assertion above is the same shape the sibling tools' assertions in the same file already use over the same DuckDB fixture.

Checklist

  • I have read the contributing guide
  • My code builds with zero warnings (dotnet build -c Debug)
  • I have tested my changes against at least one SQL Server version
  • I have not introduced any hardcoded credentials or server names

@erikdarlingdata
erikdarlingdata enabled auto-merge (squash) September 18, 2026 16:14

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — verified the disclosure block wiring in McpQueryTools.GetQueryTrend matches Darling's field order/semantics (source, effective_start, effective_hours_back, truncated, bucket, aggregate_note), confirmed the empty branch correctly stays bare (matching Darling's empty branch), checked rows[0] is safe since the empty-count path returns early, verified rows are ordered ascending by collection_time so effective_start is computed from the true first point, and confirmed the new test's truncation assertion is consistent with TruncationSlack. No other Lite call sites needed updating (McpAnalysisTools/McpInstructions only reference the tool name in text). No Darling changes needed since Darling already had this block since #2353.

@erikdarlingdata
erikdarlingdata merged commit 6aa67c2 into dev Sep 18, 2026
8 checks passed
@erikdarlingdata
erikdarlingdata deleted the fix/3541-lite-get-query-trend-disclosure branch September 18, 2026 16:26
erikdarlingdata added a commit that referenced this pull request Sep 19, 2026
…spliced once

Fifty-nine PRs merged to dev today across the coordinator's lanes and the wave-2
worker's; each lane returned its entry to a buffer instead of touching this file,
so that fifty-plus PRs did not each rebase the same twenty lines. This is the one
splice. Every entry is one line (the archiver's compact() and the pins read them
that way); riders fold into their parent's entry (#3599 under #3590, #3619 under
#3611, #3623 under #3616, #3640 under #3633; #3617 test-only and #3661 re-cut as
#3666 carry none); #3657's entry is in because it MERGED to dev - the twin to main
is what is still pending.

[Unreleased] gains a `### Added` above `### Fixed` (Keep-a-Changelog order) for the
six new capabilities: per-user theme colours (#3606 / #3577 arm B), routed alert
families (#3668 / #3598), the PostgreSQL logging audit tool (#3643 / #3607), the
service-side wait sampler (#3645 / #3604), and the log-event classifier with its
temp-file / autovacuum parser families (#3646 / #3601, #3664 / #3602 #3603). The
other forty-eight are honesty fixes to existing surfaces and append to `### Fixed`
after the wave-1 bullets, in PR-number order.

Thirty-six reference definitions added for the issues the new entries cite and the
index did not yet define; the [Unreleased] group is one ascending run again, which
moves [#3557] into its slot (the one deleted line). Nothing under ## [3.8.0] or
older is touched; the archive script was not run. One editorial touch: the #3585
entry ended in a dangling "Darling" and now reads "Darling only." (the tool exists
only in the Darling MCP host).

tools/changelog/changelog_archive.py verify: all PASS (1420 bold entries, floor
1,329; 1,358 distinct refs resolve; CRLF throughout; 356,539 bytes under the
750 KiB ceiling). ChangelogIndexAndArchiveTests: 5/5 pass via a net10.0 harness.
erikdarlingdata added a commit that referenced this pull request Sep 19, 2026
…spliced once (#3672)

Fifty-nine PRs merged to dev today across the coordinator's lanes and the wave-2
worker's; each lane returned its entry to a buffer instead of touching this file,
so that fifty-plus PRs did not each rebase the same twenty lines. This is the one
splice. Every entry is one line (the archiver's compact() and the pins read them
that way); riders fold into their parent's entry (#3599 under #3590, #3619 under
#3611, #3623 under #3616, #3640 under #3633; #3617 test-only and #3661 re-cut as
#3666 carry none); #3657's entry is in because it MERGED to dev - the twin to main
is what is still pending.

[Unreleased] gains a `### Added` above `### Fixed` (Keep-a-Changelog order) for the
six new capabilities: per-user theme colours (#3606 / #3577 arm B), routed alert
families (#3668 / #3598), the PostgreSQL logging audit tool (#3643 / #3607), the
service-side wait sampler (#3645 / #3604), and the log-event classifier with its
temp-file / autovacuum parser families (#3646 / #3601, #3664 / #3602 #3603). The
other forty-eight are honesty fixes to existing surfaces and append to `### Fixed`
after the wave-1 bullets, in PR-number order.

Thirty-six reference definitions added for the issues the new entries cite and the
index did not yet define; the [Unreleased] group is one ascending run again, which
moves [#3557] into its slot (the one deleted line). Nothing under ## [3.8.0] or
older is touched; the archive script was not run. One editorial touch: the #3585
entry ended in a dangling "Darling" and now reads "Darling only." (the tool exists
only in the Darling MCP host).

tools/changelog/changelog_archive.py verify: all PASS (1420 bold entries, floor
1,329; 1,358 distinct refs resolve; CRLF throughout; 356,539 bytes under the
750 KiB ceiling). ChangelogIndexAndArchiveTests: 5/5 pass via a net10.0 harness.
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