Skip to content

Add check for updates feature#3

Merged
erikdarlingdata merged 1 commit into
devfrom
feature/1-check-for-updates
Feb 12, 2026
Merged

Add check for updates feature#3
erikdarlingdata merged 1 commit into
devfrom
feature/1-check-for-updates

Conversation

@erikdarlingdata
Copy link
Copy Markdown
Owner

Summary

  • Both Dashboard and Lite now check GitHub releases API (/releases/latest) for new versions
  • Automatic startup check (once per 24h, cached, configurable via preferences)
  • On-demand check via About dialog — shows result inline with clickable download link
  • Simplified Dashboard About dialog credits section to match Lite

Closes #1

Test plan

  • Dashboard builds clean (0 warnings, 0 errors)
  • Lite builds clean (0 warnings, 0 errors)
  • About > Check for Updates shows "You're up to date (1.0.0)"
  • Startup notification works when update is available
  • Verify no crash when GitHub is unreachable

🤖 Generated with Claude Code

Both Dashboard and Lite now check the GitHub releases API for new versions.
On startup (once per 24h, configurable), a notification appears if an update
is available. The About dialog's "Check for Updates" link now performs a live
check and shows the result inline with a clickable download link.

Also simplified the Dashboard About dialog credits section to match Lite.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@erikdarlingdata erikdarlingdata merged commit 24b2d5a into dev Feb 12, 2026
@erikdarlingdata erikdarlingdata deleted the feature/1-check-for-updates branch February 12, 2026 13:06
@erikdarlingdata erikdarlingdata mentioned this pull request Mar 11, 2026
4 tasks
dphugo pushed a commit to dphugo/PerformanceMonitor that referenced this pull request May 6, 2026
…P95, not a snapshot

Both the Memory right-sizing check (erikdarlingdata#3) and the VM right-sizing memory
prescription (erikdarlingdata#12) read instantaneous values, which produced misleading
"buffer pool uses 0%" findings on servers that were either freshly restarted
or under genuine memory pressure where plan cache / workspace memory
dominate.

- Check erikdarlingdata#3 now reads P95 of collect.memory_stats.total_memory_mb over 7 days
  instead of TOP(1) buffer_pool_mb at the latest collection.
- Check erikdarlingdata#12 replaces the live perfmon "Database Cache Memory (KB)" read
  (data-cache slice only, instantaneous) with the same 7-day P95 of
  total_memory_mb. CPU side already uses 7-day P95.
- Both checks require >= 500 samples (~1 day at 1/min) before firing.
- Recommendation text now says "P95 SQL memory" rather than "buffer pool"
  to reflect what is actually being measured.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
dphugo pushed a commit to dphugo/PerformanceMonitor that referenced this pull request May 6, 2026
… 7-day P95, not a snapshot

Mirrors the Dashboard fix in 7cc2265 for the Lite collector. Both the
Memory right-sizing check (erikdarlingdata#3) and the VM right-sizing memory prescription
(erikdarlingdata#12) read util.BufferPoolMb — a single-sample reading of perfmon
"Database Cache Memory", which is only the data-cache slice of the buffer
pool and could trigger right after a service restart or on servers where
plan cache / workspace memory dominates.

- Both checks now query DuckDB for the 7-day P95 of total_server_memory_mb
  (perfmon "Total Server Memory" — the full set of memory SQL has
  committed) from v_memory_stats.
- Both require >= 500 samples (~1 day at 1/min) before firing.
- Recommendation text now says "P95 SQL memory" rather than "buffer pool"
  to reflect what is actually being measured.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
dphugo pushed a commit to dphugo/PerformanceMonitor that referenced this pull request May 6, 2026
…ests

PRs erikdarlingdata#918 and erikdarlingdata#920 added a sample-count guard (>= 500) to the new 7-day P95
memory recommendation logic. 500 was overly conservative and broke the
Lite FinOps test OverProvisionedEnterprise_MemoryRightSizingFires, which
seeds a single memory_stats row.

The real protection added by those PRs was switching from TOP 1 to P95;
the sample minimum is just a sanity check against degenerate single-point
inputs. ~16 samples is enough to compute a meaningful P95 and matches the
shape of SeedCpuUtilizationAsync's 16-row fixture, so tests can fire the
recommendation without artificial inflation.

- Lower threshold from 500 to 16 in both Dashboard and Lite (checks erikdarlingdata#3
  and erikdarlingdata#12) so the value reflects the actual ask: "more than one reading"
  rather than "8+ hours of data."
- Update Lite's SeedMemoryStatsAsync to insert 16 rows across the test
  period (matching SeedCpuUtilizationAsync's pattern). This makes
  OverProvisionedEnterprise_MemoryRightSizingFires pass again and keeps
  CleanServer_NoDuckDbRecommendations green (still no rows seeded for
  the clean scenario → P95 returns NULL → no recommendation).

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