Skip to content

Release v1.7.7 — D3 content strip + legacy marker + drop Rule 21#267

Merged
erikdarlingdata merged 1 commit intomainfrom
dev
Apr 23, 2026
Merged

Release v1.7.7 — D3 content strip + legacy marker + drop Rule 21#267
erikdarlingdata merged 1 commit intomainfrom
dev

Conversation

@erikdarlingdata
Copy link
Copy Markdown
Owner

Summary

Three Joe-feedback items from #215:

  • D3 — stripped AI-drafted wait stat descriptions / fix text. Pipeline ready to render expert-written content when you fill it in.
  • Framework marker — `IsLegacy` bool; old rules tagged, new rules clean. Renders a "legacy" badge across web/HTML/Avalonia/text.
  • Rule 21 removed — CTE multi-ref pattern-matching not useful when actual plans already show where time went.

See PR #266.

🤖 Generated with Claude Code

… D3) (#266)

* Strip AI-drafted wait-stat descriptions + legacy marker + remove Rule 21 (#215 D3, framework marker, Joe's categorization refinements)

D3: WaitStatsKnowledge Description / HowToFix text was AI-drafted without
expert review. Joe flagged the SOS_SCHEDULER_YIELD fix text as misleading
and asked that creative copy come from SQL Server experts, not AI. Stripped
all Description and HowToFix content; kept the file structure and the
ShowEffectiveLatency flag (structural, not creative). Entries are still
emitted but the warning message now shows only the wait name, observed ms
and wait count, and — for PAGEIOLATCH_* — effective latency. Erik / Joe
fill in content over time; the pipeline is ready to render it when they do.

BenefitScorer.EmitWaitStatWarnings now omits the description separator and
sets ActionableFix to null when the entry has no HowToFix, so the renderers
don't print empty "Fix:" prefixes.

Framework marker (option a, flipped): PlanWarning + WarningResult grow an
IsLegacy bool. Joe's preference: tag old rules so new ones don't need
re-tagging when the rest get migrated. A LegacyWarningTypes set in
PlanAnalyzer lists rules that haven't been folded into the benefit-scoring
framework yet; MarkLegacyWarnings post-pass sets IsLegacy = true on matches.
Renderers (web strip, HTML export, Avalonia plan + node warnings,
TextFormatter statement + grouped operator paths) all show a "legacy" badge
or " [legacy]" tag when set.

Rule 21 (CTE referenced multiple times) removed per Joe's feedback —
actual plans already show where time goes; statement-text pattern matching
on CTE references is guessing. Removed the rule, its regex, the rule map
entry, and DetectMultiReferenceCte helper.

TextFormatter operator-warning benefit % now also uses the N1-except-100
formatter so grouped operator output is consistent with the rest of the UI.

Version bump 1.7.6 -> 1.7.7.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Restore CRLF line endings in PlanViewerControl.axaml.cs

Prior commit's Python patch script wrote LF line endings. This file is
checked in with CRLF; restoring. No code change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Drop Rule 21 test — rule was removed in prior commit

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@erikdarlingdata erikdarlingdata merged commit 754b184 into main Apr 23, 2026
3 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