Skip to content

4.1.0 - #100

Merged
dan-snelson merged 14 commits into
mainfrom
development
Aug 17, 2026
Merged

4.1.0#100
dan-snelson merged 14 commits into
mainfrom
development

Conversation

@dan-snelson

Copy link
Copy Markdown
Owner

4.1.0 (17-Aug-2026)

  • Refactored checkBluetoothSharing() to recognize the macOS 27 missing-domain response as the disabled default, preventing false-positive Bluetooth Sharing findings while preserving enabled-state detection on macOS 26 and macOS 27
  • Updated detached Inspect Mode Preset 6 dialogs to remain on top and allow users to move the window (thanks for the suggestion, @TechTrekkie!)
  • Hardened staged macOS update snapshot detection to use APFS-native diskutil with timeout-safe fallback behavior (thanks for PR Update staged macOS update check #99, @HowardGMac!)
  • Updated checkUptime() with new functionality (thanks for PR Update checkuptime function with new functionality #96, @HowardGMac!)
  • Standardized checkUptime()

HowardGMac and others added 13 commits July 17, 2026 06:15
Extends the Uptime check with a Maximum uptime setting. This allows uptime to show as warning after 7 days for example, and show a failure after 30 days.

The Maximum uptime can be turned off if desired by setting the value as `maxUptimeMinutes=""`
Added suggested additional checks and fixes to the checkUptime() function
Updated 'checkUptime()' with new functionality (thanks for PR #96, @HowardGMac)
Standardized 'checkUptime()'
Updated the system call that is used to check for staged macOS updates to prevent a possible conflict if Time Machine is ever blocked.
Updated 'Improved in version 4.1.0'
Copilot AI lite review requested due to automatic review settings August 17, 2026 17:03

Copilot AI 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.

Pull request overview

Updates Mac Health Check to version 4.1.0, refining macOS compliance detection and the Inspect Summary UX while improving reliability of staged-update discovery and extending uptime policy support.

Changes:

  • Adjusts Bluetooth Sharing detection to treat macOS 27 “missing domain” output as the disabled default.
  • Updates Inspect Mode Preset 6 launch behavior (always-on-top + moveable) and increases inspect window height.
  • Reworks staged update snapshot detection to use diskutil apfs listsnapshots with a timeout-based wrapper, and extends checkUptime() with max-uptime functionality.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 6 comments.

File Description
README.md Bumps documented version/feature notes and updates Development-mode example snippet.
Mac-Health-Check.zsh Implements 4.1.0 behavior changes: Inspect Summary options, staged-update snapshot detection hardening, uptime max-threshold logic, and Bluetooth Sharing detection updates.
CHANGELOG.md Adds 4.1.0 release notes covering the above changes.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread Mac-Health-Check.zsh Outdated
Comment thread Mac-Health-Check.zsh Outdated
Comment thread Mac-Health-Check.zsh Outdated
Comment thread Mac-Health-Check.zsh
Comment thread Mac-Health-Check.zsh Outdated
Comment thread README.md Outdated
Post-Copilot review of PR #100
Copilot AI review requested due to automatic review settings August 17, 2026 17:23

Copilot AI 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.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Suppressed comments (3)

Mac-Health-Check.zsh:6678

  • excessiveUptimeAlertStyle="error" appears to be a supported/intentional configuration, but the warning text currently labels it as an “Error in configuration” and suggests it should be “warning”. If the intent is simply that maxUptimeMinutes is ignored when alert style is error, the log message should describe that behavior (without implying the user made a mistake).
            elif [[ "${excessiveUptimeAlertStyle}" == "error" ]]; then
                warning "${humanReadableCheckName}: Error in configuration: Variable excessiveUptimeAlertStyle is set to error instead of warning. Maximum uptime check disabled."
                effectiveMaxUptimeMinutes=""

README.md:7

  • The README now references 4.1.0, but the hero image still points to a version-specific 4.0.0 screenshot, which can confuse readers. Consider switching to the version-agnostic hero image (or updating screenshots) so the header/version and imagery stay consistent.
# Mac Health Check (4.1.0)

> Mac Health Check 4.1.0 sharpens macOS compliance reporting with smarter Bluetooth Sharing detection, safer staged-update checks, richer uptime insight and a more user-friendly reporting summary

<img src="images/MHC_4.0.0.png" alt="Mac Health Check Hero" width="800"/>

Mac-Health-Check.zsh:401

  • This comment is a bit ambiguous: excessiveUptimeAlertStyle="error" is otherwise presented as a valid option, but here it’s described as disabling max uptime without clarifying the interaction. Rewording it to explicitly say that maxUptimeMinutes is ignored when alert style is error would make configuration behavior clearer.

This issue also appears on line 6676 of the same file.

# Should excessive uptime result in a "warning" or "error" ?
# Setting this to error will disable the max uptime check above
excessiveUptimeAlertStyle="warning"

@dan-snelson

Copy link
Copy Markdown
Owner Author

┌──── ○○○ ────┐
│ Semgrep CLI │
└─────────────┘

Scanning 61 files (only git-tracked) with 1978 Code rules:
            
  CODE RULES
                                                                                                                        
  Language      Rules   Files          Origin      Rules                                                                
 ─────────────────────────────        ───────────────────                                                               
  <multilang>      78      61          Pro rules    1577                                                                
  yaml             12       7          Community     401                                                                
  json              5       5                                                                                           
                                                                                                                        
                    
  SUPPLY CHAIN RULES
                                                       
  💎 Run `semgrep ci` to find dependency
     vulnerabilities and advanced cross-file findings. 
                                                       
          
  PROGRESS
   
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00                                                                                                                        
                
                
┌──────────────┐
│ Scan Summary │
└──────────────┘
✅ Scan completed successfully.
 • Findings: 0 (0 blocking)
 • Rules run: 95
 • Targets scanned: 61
 • Parsed lines: ~99.9%
 • Scan skipped: 
   ◦ Files larger than  files 1.0 MB: 12
 • Scan was limited to files tracked by git
 • For a detailed list of skipped files and lines, run semgrep with the --verbose flag
Ran 95 rules on 61 files: 0 findings.

@dan-snelson
dan-snelson merged commit dfced95 into main Aug 17, 2026
20 of 24 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.

3 participants