aethersdr / aethersdr/AetherSDR
Net Reminder Scheduler — post-merge follow-ups (#3684)
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 221
- Forks
- 117
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 299
Description
Non-blocking follow-ups from the review of #3684 (Net Reminder Scheduler, merged as 99824da4; RFC #3687). The feature shipped clean — these are hardening/polish items, none urgent. All are small and good newcomer tasks.
Tests (should-fix)
The recurrence edge cases are implemented correctly (verified empirically during review) but not covered by tests — easy regressions to introduce later. Add cases to tests/net_recurrence_test.cpp:
- Spring-forward gap — a local time that doesn't exist on a DST transition night (e.g.
02:30America/Chicago 2026-03-08 → should resolve to 03:30, not skip/crash). - 5th-weekday-absent —
FREQ=MONTHLY;BYDAY=5MOin a month with only 4 Mondays → advances to the next qualifying month. - Empty-BYDAY weekly — weekly rule with no weekday set (with and without an anchor date).
Polish (nits)
- Timezone combo rebuilt per open —
NetSchedulerDialogpopulates the full IANA list (~350 entries) every time the Add/Edit sheet opens (QTimeZone::availableTimeZoneIds()). Build it once / cache it. - Emoji-glyph fallback — the banner
📻(NetReminderBanner.cpp) and✓(NetSchedulerDialog.cpp) may render as tofu on minimal Linux installs without an emoji/symbol font; consider an icon or ASCII fallback. - Planner silent give-up —
NetSchedulePlanner::nextReminderAcrosscaps occurrence advancement at 64 (NetSchedulePlanner.cpp), so an absurdly long reminder lead silently yields no reminder. Document the bound or handle explicitly. - Unused signal —
NetReminderBanner::dismissed(netId)is emitted but never connected; remove it, or wire it (e.g. for a future snooze/dismiss-tracking feature).
Feature follow-ups (from the PR's own "not in this PR" list, for tracking)
- Seed nets from RepeaterBook / hamnets.org directories
- Live "net is on now" via the NetLogger feed
-
.icsexport - Banner snooze
🤖 Generated with Claude Code
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with tests/net_recurrence_test.cpp for the three recurrence cases, or inspect NetSchedulerDialog.cpp, NetReminderBanner.cpp, and NetSchedulePlanner.cpp for the listed polish items. Choose one bounded checkbox, verify the relevant existing behavior, and finish with focused tests or a clearly documented and reviewed change.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, linux
- Domain
- desktop, testing
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100