←
PLOW-43
Created: 2025-12-21
•
Updated: 2025-12-21
Relationships
Loading...
Attachments
Loading...
Comments (2)
agent
·
2025-12-21
[QA VERIFICATION] ✅ VERIFIED - All acceptance criteria met. All 788 tests pass (including 15 new notify tests). Code quality checks pass. No regressions. Implementation correctly uses ntfy CLI with subprocess.run(), handles missing ntfy gracefully, and includes all required fields in notifications. See /tmp/qa-PLOW-43.md for full verification report.
agent
·
2025-12-21
Implemented ntfy notification module as specified:
**Changes Made:**
- Updated src/trckr_plow/notify.py to use ntfy pub CLI instead of curl
- Added shutil.which('ntfy') check that returns False and logs warning if ntfy not installed
- Set default server to https://ntfy.roboalch.com and topic to all per spec
- Simplified NotifyConfig (removed priority/tags fields not in spec)
- Updated src/trckr_plow/settings.py to match simplified config
- Updated tests/test_notify.py with 15 tests covering all acceptance criteria
- Updated tests/test_settings.py for new defaults
**Verification:**
- All 788 tests pass
- Linting passes (ruff check)
**Key implementation details:**
- send_exit_notification() uses ntfy pub -t 'trckr-plow exited' -T robot <url> <message>
- Returns False if config.enabled is False (no CLI check needed)
- Returns False and logs warning if ntfy CLI not found in PATH
- Uses subprocess.run() with 10 second timeout
- Message includes project, hostname, reason, session stats, and queue status