v1.8.1
Fixed
-
Credit card PII detection false positives — Luhn check alone is insufficient (Issue #694)
- Added IIN/BIN prefix validation after Luhn check in
_redact_credit_card() - Numbers starting with 0, 1, 7, 8, 9 (no major card network) are no longer flagged
- Valid prefixes retained: Visa (4), Mastercard (51-55, 2221-2720), Amex (34, 37), Discover (6011, 65, 644-649), JCB (35), Diners Club (30, 36, 38, 39)
- All-zeros and coincidental numeric IDs no longer trigger false positives
- Added IIN/BIN prefix validation after Luhn check in
-
Pause state not visually indicated — no countdown, no icon change, no CLI remaining time (Issue #684)
- Tray icon now dims (50% alpha) when daemon is paused, reverts to normal on resume
- Tray "Resume" menu item shows live countdown:
Resume (3m 42s left) - Pause/Resume menu items are now mutually exclusive (Pause hidden when paused, Resume hidden when running)
ai-guardian daemon statusnow shows remaining time:(PAUSED — 3m 42s left)or(PAUSED — indefinite)- Console TUI daemon panel shows remaining time when paused
- Connected existing
_start_pause_timer()infrastructure to pause/resume actions - Added
_sync_pause_state()to detect external pause/resume (e.g., via CLI) during periodic stats refresh
-
macOS .app tray shortcut does not show menu bar icon on macOS 26.5 (Issue #691)
- Set
NSApplicationActivationPolicyAccessoryexplicitly before pystray creates the status bar item - Replaced bash wrapper script with Python wrapper to avoid exec chain losing bundle association
- Added
NSPrincipalClass: NSApplicationto the .app bundle's Info.plist - Re-install shortcut with
ai-guardian tray --uninstall && ai-guardian tray --installto apply
- Set
-
Desktop shortcut/autostart launches tray with minimal PATH — scanners not found (Issue #689)
- Added
ensure_scanner_path()utility that augments PATH with common binary locations - Probes well-known directories (
/opt/homebrew/bin,/usr/local/bin,~/.local/bin) for scanner binaries - Reads user's login shell PATH as fallback for non-standard install locations
- Called early in both daemon and tray startup
- Fixed macOS
.appwrapper script to augment PATH before exec - Fixed macOS launchd plist to include
EnvironmentVariableswith augmented PATH
- Added
-
Tray pause does not work for local daemon (Issue #683)
- Added
pauseandresumemessage handlers to daemon socket protocol inserver.py - Fixed tray routing to use
multi_clientfor local daemon targets instead of no-op callback - Replaced no-op
pause_callbacklambda in standalone tray with proper socket-based callback - Fixed auto-resume timer to route through
multi_clientwhen available
- Added
Changed
- Pattern research reminder frequency (Issue #681)
- Changed from monthly (1st of month) to twice-monthly (1st and 15th)
- Updated workflow cron schedule, issue title, and reminder text
- Updated AGENTS.md documentation to reflect new frequency