Release notes
Changelog
Currently running v2.7.2. About this app.
Show:
v2.7.2
2026-05-13- ImprovementSettings — the Club Passphrase 'Test' button now gives clear visual feedback: it turns green with a ✓ on a successful test, red with an ✗ on failure, and resets to neutral when you edit the field. Added a show/hide eye toggle inside the passphrase input so you can confirm what you typed before saving.
- ImprovementAudit Log — added an 'Actors' chip filter (with per-call-sign counts) and made the When/Actor column headers clickable to sort, so managers can quickly scan everything done by a specific operator.
v2.7.1
2026-05-12- FeatureNet Runner — 'Switch Repeater' action: a new amber-outlined button in the Net Actions panel on the live net page lets the N/C document a mid-net move from the primary repeater to a secondary one. The dialog defaults to '145.190 Repeater (secondary)' (the most common fallback for our club) and also offers '146.985 Repeater (primary)', 'Simplex', or a custom value. Submitting writes a timestamped 'REPEATER SWITCH — From X · To Y · Reason: …' line to the top of net notes, updates the net's frequency field (so followers and the public listen page reflect the new value automatically), and broadcasts an inbox item ('Net moved to {freq}') to every registered N/C with a deep link to the live follow page. Hidden when the net is closed.
- ImprovementHelp menu — N/C Training Slide Deck now downloads as a PDF instead of a .pptx, so operators can open it directly in any browser or phone without needing PowerPoint/Keynote. The Settings-page deck manager still accepts the editable .pptx for managers who want to remix the source.
v2.7.0
2026-05-12- FeatureMy Inbox — every registered N/C now has a personal inbox panel on the home page (and a full-page version at /inbox). It aggregates per-recipient, state-bearing items that previously only existed scattered across other surfaces: pending schedule confirmations for your slot, incoming swap requests where you're the recipient, @mentions and direct replies in N/C Chat, application status updates while you're pending approval, and direct/broadcast notes from managers. Items live in three states (unread / read / done): hovering reads them, action buttons resolve them inline (Confirm / Accept swap / Decline / Open in chat), and a 'Mark all read' batch op clears the badge in one tap. The unread count badges the panel header. Self-healing realtime (10s poll + visibilitychange refresh + per-table channel subscriptions) so the badge stays accurate after reconnects — same pattern as the live follow view.
- FeatureManager / Co-Manager / Editor — 'Send N/C note' composer: a new 'Send N/C note' action appears on the My Inbox panel header for editors. Pick a single recipient from the active controller list, or toggle 'Broadcast to all N/Cs' to fan out the note to every registered operator. Optional title, body, and link target — recipients see it as a persistent inbox item (not a chat message that scrolls away). Useful for things like 'can you cover next Tuesday' or 'reminder: SET drill prep this week' that don't belong in the public manager-message inbox or the group chat.
- ImprovementSystem emitters — schedule-change notifications: when a swap is accepted, both swapped operators automatically get a 'Your schedule changed' inbox item linking to the schedule page (auto-expires after 14 days). When a manager approves or rejects a pending N/C application, the applicant gets an inbox item with the outcome.
v2.6.5
2026-05-12- FeatureOpen Nets panel — Listener view shortcut for non‑N/Cs: when a live net is in progress, viewers who are not registered N/C operators now see a small 'Listener view' button on the Open Nets panel that takes them straight to the read‑only follow page (/net/$netId/follow). Registered N/Cs continue to see the existing operator entry point unchanged, so there's no risk of accidentally landing in the live console.
- FixAudit log — every net operation is now recorded reliably: the public club‑write handler used to fire‑and‑forget its audit writes, which meant intermediate operations (most visibly `net.setCurrentPreambleStep` broadcasts from the guided runner, plus check‑in writes during high‑traffic moments) could be dropped when the serverless request terminated before the write completed. The handler now awaits the audit write before returning, so each Next‑step click, check‑in, and other club‑write op is persisted. This gives Net Managers a definitive after‑the‑fact record to confirm whether primary broadcasts actually reached the server during a net (directly addressing the diagnosis from the 2026‑05‑11 follower freeze investigation). Audit writes still swallow their own errors, so a logging failure can't break the underlying operation.
v2.6.4
2026-05-12- FixLive follow view — self-healing realtime: the follower hook (useLiveNet) no longer depends solely on the realtime websocket. It now runs a 10-second polling safety net (paused while the tab is hidden), forces a fresh resubscribe + reload on tab focus / laptop wake, and uses exponential backoff (1s/2s/5s/10s, capped at 15s) when the channel drops. If no successful refresh has happened in 30 seconds, channel status flips to 'stale'. Fixes the issue reported during the 2026-05-11 net where followers (including a backup N/C in live follow mode) saw the preamble step and check-in groups freeze even though the primary's broadcasts were writing correctly to the database.
- ImprovementLive follow view — staleness banner: the /net/$netId/follow page now surfaces a visible amber 'Live updates paused' banner above the header whenever the channel is reconnecting or stale, showing the last refresh time and a 'Refresh now' button that forces an immediate reload. The existing live status pill also gained explicit 'Reconnecting…' and 'Live updates paused' states so the operator always knows whether what they're seeing is fresh.
- FeatureNet Control safeguards — takeover guard for non-scheduled N/Cs: opening /net/$netId as a registered N/C operator who is NOT the scheduled primary or backup now shows a full-screen amber warning gate before any operator controls render. The gate names the scheduled primary and backup, explains that any change here (advancing the preamble, adding/removing check-ins, closing the net) is broadcast immediately and will disrupt the active net, and offers two clear choices: 'View as Follower' (read-only at /net/$netId/follow) or 'Assume Net Control' (unlocks the live console). Acknowledgement is per-net and stored in sessionStorage, so a refresh during a legitimate handoff doesn't re-prompt. Closed nets bypass the guard.
- ImprovementLive follow view — 'Assume Net Control' button clarified: the takeover button on /net/$netId/follow is now disabled when the net is closed; for assigned operators (primary/backup) it goes straight to the live console; for everyone else it shows a lock icon labeled 'Assume Net Control' (amber outline) with a tooltip explaining that they'll be prompted before any controls become active.
v2.6.3
2026-05-08- FeatureN/C Schedule — manual edits in Generate Rotation: each row in the rotation Preview now exposes Primary and Backup dropdowns plus a Skip checkbox, so editors can tweak individual weeks (e.g. swap a substitute in for one date, or skip a holiday/no-net week) before clicking Generate. Edited weeks are persisted as one-off overrides so the rotation anchor for future generations stays on the original alphabetical pattern. A 'reset' link per row reverts the row back to the auto-rotation default, and the Generate toast now reports how many weeks were written, skipped because they already exist, and skipped manually.
- FeaturePublic N/C Schedule — projected rotation preview: a new 'Show projected future rotation' toggle below the upcoming schedule reveals the same auto-rotation generator the editor sees, but read-only and clearly labeled 'tentative'. Viewers can pick how many weeks to project (4 / 8 / 12 / 16 / 26 / 52). Dates already on the confirmed schedule above are marked 'confirmed'; the rest are flagged 'tentative' so it's obvious nothing past the last finalized week is set in stone yet. Hidden by default and excluded from the printable view so it doesn't change the default at-a-glance schedule.
- ImprovementStale-tab safeguards — version polling: every signed-in tab now quietly polls a new /api/public/version endpoint every 5 minutes (and on tab focus / laptop wake). When the server reports a newer build than the one bundled into the tab, a sticky toast appears with a Reload button so N/Cs who leave the console open across deploys can refresh before a stale bundle bites them mid-net. Duplicate toasts for the same server version are suppressed.
- FeatureStale-tab safeguards — pre-net readiness check: clicking 'Start New Net' now opens a pre-flight dialog that runs four checks in parallel before the net is created: bundled app version vs server (warn + Reload if stale), auth session present (blocking), database reachable via a small RLS-respecting read against `nets` (blocking), and a throwaway realtime channel reaches SUBSCRIBED within 5s (warn — writes still work, check-ins just won't live-update). Blocking failures disable the Start button; warnings let the N/C proceed with the issue clearly flagged. Includes a Re-check button so the N/C can retry without closing the dialog, and the realtime probe is torn down on close to avoid leaking channels.
- FeatureN/C Operator Expectations — one-time affirmation for new applicants: when a new applicant saves their Profile for the first time, a dialog now presents the full list of N/C operator expectations (schedule reliability, pre-net signal check, testing both repeaters, preamble review, console familiarity, reliable equipment, no Echolink for N/C operation, covering the Echolink segment, real-time coordination via N/C Chat / Telegram). The applicant must check an affirmation box with their call sign before the application is submitted to the Net Managers for approval. Existing roster members are not asked to re-affirm. Acknowledgement is recorded per-call-sign and versioned, so the prompt can be re-shown in the future if the expectations are updated.
- FeatureHelp & Guides — N/C Operator Expectations guide: the same expectations list is now available as a public guide at /guides/expectations (linked from the Help & Guides index), so operators and prospective applicants can review the commitments any time and managers can point to a single source of truth.
v2.6.2
2026-05-08- FeatureAnnouncements editor — 'Remind me to update' date: each announcement can now carry an optional review reminder timestamp (separate from the auto-remove date). Useful for recurring-event announcements like the monthly meeting where the text should be refreshed after each occurrence. The editor exposes a new datetime field in both the create form and the per-announcement edit form, with the same datetime-local control and a Clear shortcut.
- ImprovementAnnouncements editor — 'Needs update' badge: once an announcement's reminder date has passed, the card shows an amber 'Needs update' badge with the original reminder timestamp until an editor saves a new reminder date (or clears it). Future reminders show as a quieter 'Reminder to update <date>' line so editors can see what's pending without visual noise.
- FeatureManager Inbox — surfaces overdue announcement reminders: any announcement whose review date has passed now appears in the Manager Inbox panel on the home page as an 'Update Reminder' row (BellRing icon, amber label) alongside emergency/routine traffic, announcement notes, and manager messages. Clicking opens a dialog with the current announcement text and an 'Edit announcement →' link straight to the editor. Mark handled / Dismiss / Restore work the same as other inbox items, and the inbox re-polls every 5 minutes so freshly-overdue reminders surface even when no table change occurs. Each reminder's inbox id is keyed off the review_at timestamp, so changing the date in the editor automatically generates a new inbox item the next time it's due — no need to manually clear the old one.
v2.6.1
2026-05-08- FeatureContact Net Manager — in-app messaging instead of mailto: the mail icon in the app header (and a new 'Contact Net Manager' button on the public schedule page) now opens a built-in dialog that captures the sender's name, optional call sign, optional reply contact (email/phone), and message body. Messages are stored in a new manager_messages table and surfaced inside the existing Manager Inbox panel on the home page, so the Net Manager AND every Co-Manager / Editor sees them immediately — no more relying on a single personal mailbox or losing notes between successions. Anyone can submit (no login required), making this work as a true public 'contact us' channel from the public schedule page.
- ImprovementManager Inbox — folds in member messages: the Manager Inbox panel now shows member messages alongside emergency/routine traffic and announcement notes, with a Mail icon and a 'Manager Message' label. Each row exposes the same handled/dismiss/restore controls as other inbox items, with status (open/handled/dismissed) tracked server-side on the manager_messages row itself and synced in realtime so all managers see the same state. The detail dialog shows the full message and surfaces the reply-to contact (with a clickable mailto: link when an email was provided).
v2.6.0
2026-05-08- FeaturePublic N/C Schedule page (/public/schedule) — Next Net highlight banner: the top of the public schedule now leads with a prominent amber 'Next Net' banner showing the next scheduled date (with friendly 'Tonight' / 'Tomorrow' labels), the primary and backup operators with their names, and any per-night note. Pulled from the same upcoming-rows query that drives the table, so it always matches the schedule below — including one-time overrides and last-minute swaps. Hidden from the printable PDF export so it doesn't duplicate the table header.
- FeaturePublic N/C Schedule page — Add to my calendar (.ics): a new 'Add to my calendar' button opens an inline panel that downloads an iCalendar (.ics) file for every upcoming N/C shift. Optionally enter your call sign to filter the file down to just the shifts where you're listed as primary or backup. Events are written as floating local times (no embedded timezone), so Apple Calendar / Google Calendar / Outlook all interpret them in the viewer's local zone, and each event includes a built-in 30-minute pre-net reminder so you get a heads-up to get on frequency. Stable per-shift UIDs mean re-importing later updates the same events instead of duplicating them.
- FeaturePublic N/C Schedule page — Confirm-availability reminder: a blue reminder panel below the schedule now asks Net Controllers to sign in to the app and review both the Upcoming and N/C Availability panels in the N/C Schedule, so the published rotation stays accurate and backups can be lined up early. Designed to be paired with the weekly Groups.io reminder, which can now link straight to /public/schedule instead of embedding a hand-maintained table that goes stale.
v2.5.9
2026-05-05- FeatureNet log exports — Announcement Notes section: any 'Announcement note' entries the N/C captured during the net (via the Announcement Note dialog, which prepends timestamped lines to the net's notes field) are now extracted and rendered as a dedicated section at the bottom of both the PDF and XLSX net log exports. Lines are pulled in chronological order as written and shown verbatim so the Net Manager can review them after the fact without opening the live net.
- FeatureNet log exports — Formal Traffic Received section: both the PDF and XLSX net log now include a 'Formal Traffic Received' section that summarizes how many emergency and routine messages the N/C handled during the net (parsed from the structured Traffic dialog entries written into the net notes). When no formal traffic was handled the section simply shows 'N/A'. The actual message text is intentionally not duplicated in this section — a future release will add a proper ARRL Radiogram export for the message contents.
- ImprovementManager Notifications panel — emergency-first ordering: items flagged as emergency traffic now always sort to the very top of the manager inbox queue, regardless of recency, so urgent items can't get pushed down by routine activity. Sorting still respects unread/handled state and timestamp within each tier.
- FeatureManager Notifications panel — test-net visibility with TEST flag: the manager inbox now also surfaces notable activity from test nets (previously suppressed). Test-sourced one-liners are clearly prefixed with a 'TEST' tag at the start of the row so managers can distinguish drills from real-net activity at a glance.
- FeatureManager Notifications panel — shared 'handled' flag: a new shared action lets any net manager (or co-manager) mark an inbox item as handled. Handled items stay in the list but are dimmed with a strike-through and labeled 'Handled by [Call] · [Time]', and they sink to the bottom of the queue. Unread/emergency counts ignore handled items. The flag is stored server-side in a new manager_inbox_actions table with realtime sync, so every manager sees the same state instantly. A toggle on each row (and inside the detail dialog) lets managers undo the flag.
- FeatureManager Notifications panel — dismiss/restore: managers can now also dismiss inbox items entirely with a trash button on each row. Dismissed items are hidden from the default view; a 'Show dismissed (N)' toggle in the panel header reveals them so they can be restored. Like the handled flag, dismiss state is shared across all managers via the manager_inbox_actions table and syncs in realtime.
v2.5.8
2026-05-05- FixStale-deploy auto-recovery: when the app is freshly redeployed and an open browser tab tries to lazy-load a code chunk that no longer exists at the previous URL, the resulting 'Failed to fetch dynamically imported module' error used to surface as a 'Something went wrong' screen. The app now detects this specific failure (both inside the TanStack error boundary and at the global window level for unhandled promise rejections) and triggers a single page reload to fetch the new build. A sessionStorage guard prevents reload loops if the error is genuinely persistent. The 'Try again' button on the error screen also forces a hard reload for chunk-load errors instead of just re-running loaders, since invalidation alone can't recover from a missing module.
- FixN/C Chat realtime: the floating/docked N/C Chat used a single hardcoded realtime channel name. On the live net page, two chat instances mount simultaneously (the docked one inside the Net Rail and the floating fallback used on tablet/mobile), and they collided on the same channel — unmounting one could disturb the other's subscription. The channel name is now per-instance (derived from the chat's storageKey), so each chat owns its own realtime channel cleanly.
- FixCheck-in entry bug fixes: tabbing through the check-in form no longer leaves the call-sign autocomplete dropdown lingering on screen — both the call-sign and location suggestion lists now close when their input loses focus, so they can't block view of the Time and Notes fields. After clicking 'Add Check-in' (or submitting via Enter), focus is now correctly returned to the Call Sign field instead of jumping to Location and reopening that field's dropdown — the active element is explicitly blurred and both dropdowns are force-closed before refocusing Call.
- FeatureAck-all per group: every check-in table now shows a small 'Ack all (N)' button above the rows whenever the group has unacknowledged stations and acknowledgement is enabled. Clicking it bulk-marks every unacked check-in in that group — useful for small groups where you want to mark everyone at once. Already-acked stations are left alone.
- FeatureNet Runner keyboard shortcuts: power users can now drive the guided runner without leaving the keyboard. Alt+A focuses the Call Sign field from anywhere on the page, Alt+N advances to the next step (or 'Done with Group · Next'), Alt+B goes back, and Alt+K acknowledges every unacked check-in in the current step's group. Pressing ? opens an in-runner shortcuts panel. Bound buttons show the shortcut in their tooltip, and Back/Next/Add Check-in display a small Kbd hint chip beneath them on md+ screens. Alt-combos are deliberately used (instead of bare letters) so they fire safely even while typing in Notes/Name/Location fields.
- FeatureNew Help & Guides page: 'Keyboard Shortcuts' is now a top-level guide listing every shortcut in the app — global navigation (Cmd/Ctrl+K command palette, Cmd/Ctrl+B sidebar toggle), Net Runner controls, check-in entry (Enter to submit, ↑/↓ to navigate suggestions, Tab order), and Chat composer (Cmd/Ctrl+Enter to send, Esc to cancel reply, ↑/↓ + Enter/Tab in the @mention picker). The Tips page has a new highlighted entry covering the runner shortcuts and the Ack-all button, with a link to the new guide.
v2.5.7
2026-05-05- ImprovementNet Rail (desktop): the rail now stays pinned in view as the N/C scrolls down the runner — it sticks to the top of the viewport with its own internal scroll if the content is taller than the screen, so Glance stats and N/C Chat are always one glance away without scrolling back up.
- ImprovementNet Runner: the Net Details panel has been restructured to make use of its previously empty right side. Primary and Backup N/C call signs and names are now compacted into two tight rows, Begin/End/Frequency share a single row, and the freed space on the right hosts the Net Actions cluster (Emergency, Routine, Announcement Note, Hand Off to Backup, Export, Close Net, and Delete). The top action bar now only carries the view-mode tabs (Guided / Free-form / Review All), reducing visual clutter and making the runner controls easier to scan. The contextual buttons added in earlier 2.5.7 changes (Emergency/Routine inside the EchoLink step, Announcement Note inside the Announcements step, and Stamp Time & Close Net inside the Close step) remain in place.
- ImprovementNet Runner: Emergency Traffic and Routine Traffic buttons are now also placed directly below the EchoLink & Repeater Notes step in the guided runner, so they're clearly visible to the N/C right when that portion of the preamble is read. The buttons in the top action bar remain available at any step.
- ImprovementNet Runner: the Announcement Note button is now also placed directly below the Announcements step in the guided runner, so the N/C can capture a note without scrolling back to the action bar at the top of the page.
- ImprovementEmergency Traffic and Routine Traffic capture now opens a structured dialog with three fields — From, Route to, and Message (resizable for long messages) — instead of a single browser prompt. The logged entry in the net notes is timestamped and includes all three fields. The Announcement Note button now opens a similar dialog with From and a resizable Message field.
- ImprovementNet Runner Close the Net step: the separate 'Stamp Close Time' and 'Mark Done' actions are now combined into a single 'Stamp Time & Close Net' button at the bottom of the Close step card (and the bottom Next button on the final step). It opens the existing close-confirmation dialog showing any groups with no check-ins and any check-ins missing recommended fields, requiring confirmation before stamping the close time and closing the net. The Close Net button in the top action bar remains available.
- ImprovementNet Rail: the floating N/C Chat pill no longer overlaps the runner's buttons and fields on desktop. The chat now docks inside the Net Rail's Chat tab, which auto-switches and pulses when a new inbound message arrives so the N/C is alerted without losing access to the controls underneath. The floating chat window is still shown on tablet and narrower viewports where the rail is collapsed into a side sheet.
- ImprovementNet Rail: the Preamble tab has been removed from the rail since the same step list is already visible on the left side of the Net Runner. The rail now focuses on Glance (stats) and Chat.
v2.5.6
2026-05-05- FixBug fix: the Primary N/C and Backup N/C dropdowns on the home page now pre-fill from the next upcoming scheduled net when there is no net scheduled for today, instead of falling back to the signed-in operator with an empty backup. Previously the labels showed the next-net date (e.g. 'For: Mon, May 11') while the dropdowns showed a different operator pulled from a later week.
- ImprovementCheck-in entry flow improvements (in response to several N/C bug reports): the Call Sign field is now visually highlighted with a primary-colored border, label, and subtle tinted background so it's easy to find with the mouse. After a successful check-in, focus automatically returns to the Call Sign field — no more clicking back into the input between entries. Typing a complete call sign no longer hides it from the suggestion list, so the operator gets visual confirmation that the entry is recognized; pressing Enter still submits and clicking the suggestion still works. The check-in entry form now sits below the check-in list rather than above it, reducing the amount of scrolling between input and the growing list of logged stations.
v2.5.5
2026-05-05- FixPreamble {CALL} / {NAME} / {LOCATION} placeholders now resolve from the active net's primary N/C instead of each viewer's local profile. Backup N/Cs following the runner and Live Follow viewers now see exactly what the primary is saying on the air. Location is looked up from the N/C roster by call sign, with a fallback to the device's profile when no net is in scope (standalone preamble editor still works as before).
- FeatureNet controllers can now be marked Inactive instead of removed. The Controllers page has a new Mark Inactive / Reactivate action (Net Manager and Co-Managers only) that flips an `is_active` flag on the roster record. Inactive controllers keep their history — historical nets, schedule rows, and {LOCATION} lookups in old preambles still resolve — they're just visually flagged in the roster.
- ImprovementInactive controllers are filtered out of every active picker: the home page primary/backup dropdowns, the test-net dropdowns, the Schedule page operator pickers (including auto-rotation eligibility), the N/C Chat mention list, and the floating chat's @CALL autocomplete.
v2.5.4
2026-05-05- FixLive sync fixes for backup N/Cs and the Live Follow page: the `/net/$netId` page now subscribes to realtime updates, so a backup N/C viewing the same net sees check-ins, notes, handoffs, and net close/reopen as they happen instead of needing a manual refresh. Optimistic local edits are protected from being clobbered by the incoming snapshot.
- FixCurrent preamble step is now persisted: the Net Runner writes the active step to the database whenever the operator advances, jumps from the sidebar, or steps back. Refreshing the runner mid-net no longer snaps you back to step 1, and the Live Follow page now shows exactly which preamble step the primary is broadcasting (with title, body, and 'Step X / Y' badge).
- ImprovementLive Follow connection health: a small 'Updated Ns ago' pill in the Live Follow header makes the realtime status visible at a glance, with an amber 'Reconnecting…' state and automatic resubscription if the WebSocket drops. After a reconnect, the page resyncs so nothing is missed.
- FeatureEmergency Traffic and Routine Traffic capture: two new buttons in the Net Runner action bar let the N/C quickly log emergency or routine traffic. Each prompts for a brief description and prepends a timestamped entry to the net notes, so the traffic is captured in the log and exports. Handling procedures will be refined in a follow-up.
- FeatureAnnouncement Note button: the Net Runner now has an Announcement Note button so the N/C can capture a question, concern, fill, or a suggested addition mid-net. Entries are timestamped and prepended to the net notes for the Net Manager to review later.
- FixOp Roster fix: editing or adding an operator no longer increments their check-in count. The counter is now maintained only by actual check-ins on real (non-test) nets. A one-time recompute reconciled existing roster counts against the real check-in history, so net statistics are accurate again.
- ImprovementPassphrase safeguards (in response to a recent two-nets-at-once incident): new passphrases entered in Settings are now verified against the server before being stored, so a wrong value is rejected at save time instead of silently failing later when an N/C tries to start a net. A new Test button next to Save re-checks the saved passphrase on demand. The home page now shows a red banner to any registered N/C whose stored passphrase is missing or invalid, with a one-click link to Settings.
- FixAlready-open net guard on the Active Nets page: clicking Start New Net now re-checks for an open net for today and shows a clear error instead of creating a duplicate. (The home page already had this guard.)
- FixStart Net pre-fill no longer rolls forward to a future scheduled date once tonight's net has been closed. If a net needs to be reopened or restarted after close, the dropdowns now default to the signed-in N/C as primary (with backup blank) instead of next week's scheduled operators — preventing accidental nets being created under the wrong N/Cs.
v2.5.3
2026-05-04- FeatureNew N/C approval queue (Tier 1 security): operators who set up a profile with a brand-new call sign are now added to a `pending_controllers` table instead of being granted Net Control access immediately. Until a Net Manager or Co-Manager approves them, the app runs in read-only mode and a yellow 'Pending approval' banner appears at the top of every page explaining the wait. The previous self-service controller registration is gone — privileged writes are gated server-side, not just hidden in the UI.
- FeatureManager alerts for pending approvals: the **Net Controllers** sidebar item now shows a live count badge whenever there are pending requests (visible only to the Net Manager and Co-Managers, with realtime updates). The Home page also shows a 'Pending N/C Approvals' card listing the first few requests with a one-click 'Review & approve' button, and a one-time toast fires on app load if anything is waiting.
- FeaturePending Approvals queue on the Controllers page: managers see a dedicated panel above the controller roster listing each pending operator with their submitted name, location, email, and request timestamp, plus Approve / Reject buttons. Approving moves the row into `net_controllers`; rejecting discards it.
- ImprovementPublic Announcements and Preamble pages now render completely bare — no app header, sidebar, footer, or Net Reminder dialog — so they can be embedded or shared with non-N/C audiences without exposing the rest of the console. The Download PDF buttons on those pages also got a contrast fix so the label is readable on the white public background instead of black-on-black until hover.
- ImprovementSettings page now shows the latest 'As of' timestamp next to each public link (Announcements and Preamble), so editors can confirm at a glance that the public-facing copy is current before sharing the URL.
- FeatureAudit Log filter chips: a new row of category chips above the Audit Log (Nets, Check-ins, Announcements, Preamble, Schedule, Controllers, Approvals, Chat, Feedback, Settings, Manager transfer, Editors) lets you narrow the log to a single area or any combination. Chips are derived dynamically from the data with per-category counts, multi-select, and a Clear button. They combine with the existing free-text filter.
- FeatureNew public link for the Net Control Schedule: a clean `/public/schedule` page lists upcoming primary/backup assignments with a Download PDF button, matching the bare layout of the Announcements and Preamble public pages. The Settings → Public Embed Links card now includes Schedule alongside the others (with its own 'As of' timestamp) so editors can copy or share the URL with the club web manager.
- FeatureNew **N/C Training Slide Deck**: a 13-slide .pptx walkthrough (profile setup, roster approval, settings, starting and running a net, guided runner, check-in groups, App Relay, closing the net, Primary ↔ Backup handoff, schedule/history/public links, and where to get help) is now available to every N/C from the Help menu (graduation-cap icon → 'N/C Training Slide Deck'). Editors can upload a new version of the deck from Settings → Administrators → N/C Training Deck; the upload replaces the current file in storage and is immediately downloadable by everyone at the same Help-menu link. Backed by a public `training-deck` storage bucket with write access restricted to authenticated editors and a fixed `current.pptx` filename.
v2.5.2
2026-05-04- ImprovementFloating N/C Chat now docks to the upper-right corner by default (just below the header) instead of the bottom-right, keeping it out of the way of the action bar and bottom-of-page controls in the Net Runner.
- FeatureClosing a net now opens a 'Where would you like to go next?' dialog with Net History (or Test History for test nets), Home, and Cancel buttons — replacing the previous automatic redirect so the operator can stay on the closed net page if they want to review or export before navigating away.
- ImprovementReopening a closed net now lands on the Review All view by default, so every check-in across every group is visible at once. Previously the page opened in Guided mode, which only shows the active group's check-ins and could give the false impression that other groups were missing.
- FeaturePre-close confirmation dialog: clicking Close Net now opens a summary of any groups with zero check-ins and any logged check-ins missing recommended fields (Name, Location, Station type, Short/Regular). The operator can keep editing, jump straight to Review All, or confirm and close. Reopening a net is still one click.
- ImprovementNet History and Test History tables now show Start and End time columns (formatted HH:MM, with '—' when not stamped), making it easier to scan past nets at a glance without opening each one.
v2.5.1
2026-05-04- ImprovementNet Runner check-ins: a horizontal divider now appears between acknowledged and unacknowledged stations in the Log Check-Ins panel (both desktop and phone), making it easy to see at a glance which stations the N/C still needs to call on air.
- ImprovementNet Runner announcements: a divider also appears between checked and unchecked announcements, and the next announcement to read is highlighted with a primary-colored ring, a subtle background tint, bolder text, and a small 'Next' label so the N/C never loses their place.
- FeatureAuto-roster updates: when a station that isn't in the Operator Roster checks in to a real net, they are automatically added (with name and location captured from the check-in form). Existing operators get their check-in count incremented and last-seen timestamp refreshed. Test nets are skipped so practice data never pollutes the directory.
- ImprovementSmart call-sign autofill on the Add Check-In form: hitting Enter on a complete call sign that exactly matches a roster entry now auto-fills the name and location fields before the row is logged — matching the behavior of picking from the dropdown. Manually entered values are always preserved.
- FeatureTest net start dialog: clicking Start Test Net now opens a small dialog requiring explicit Primary and Backup N/C call signs (with a 'Pick from roster' dropdown beside each free-text input). Test nets no longer inherit tonight's scheduled controllers, so practice runs are clearly separated from live operations. The Primary field pre-fills with the operator's own call sign as a convenience.
- ImprovementSmarter net begin times: live nets default to the scheduled 19:30 start time, since N/Cs often open the runner up to an hour early to prep. If the runner is opened after 19:30, the actual click moment is stamped instead so late starts are recorded accurately. Test nets always stamp the actual click time, since they can be started any time of day.
- ImprovementLive follow simplified: the 'Show in live follow' checkbox under the Start Test Net button has been removed. Every net — live or test — is now followable in the Live Net panel and via Follow Live by default. One less decision to make at start time.
- ImprovementQuick menu reorganized: View Preamble and View Announcements moved off the main start-net area and into the home-page quick menu (between Statistics and Bugs & Requests), tightening the start-a-net section to just its core action buttons.
- FeatureSingle-net lock on the home page: the Start a New Live Net and Start Test Net buttons are now disabled (with an explanatory tooltip) whenever any net — live or test — is already open. This prevents two nets from competing for the same Live Net panel, listener feed, check-in requests, NC chat, and auto-roster sync. Close the in-progress net from Net History or Test History before starting another.
v2.5.0
2026-04-30- FeaturePhone mode: a streamlined single-column interface that activates automatically on phone-sized viewports (under 640px) and can be forced on or off from Settings → Display. The sidebar collapses into a slide-over drawer, a bottom tab bar surfaces the most-used screens (Home, Active Net, Schedule, Chat, More), N/C Chat goes full-bleed with a sticky composer, the Active Net runner uses a streamlined PhoneNetRunner with one task at a time, dense tables (Net History, Op Roster, Schedule) re-flow into stacked cards, and the floating chat panel docks to the bottom of the screen so it never crowds the script.
- FeatureTablet mode: tap targets, inputs, and menu items grow to a comfortable 44px+ minimum on tablet-sized viewports, table padding loosens, the sidebar defaults to closed to maximize working area, and any sticky tablet action bar reserves bottom padding so content never hides under it. Auto-detected; can be overridden from Settings → Display.
- ImprovementAdministrators section in Settings: Net Manager Email, Add Operator, and Operator Roster are now grouped under a single collapsible Administrators card. Managers, Co-Managers, and Editors see it expanded with a Shield icon; everyone else sees it collapsed with a Lock icon and a note that the section is restricted — discoverable but clearly gated.
- ImprovementListen mode header polish: the public /listen page header now keeps the title and On/Off Air badge on a single line on phone-width viewports, with responsive type sizes and tighter gaps under 640px.
- FeatureNew in-app guide — Phone & Tablet Mode for N/Cs: covers when each mode activates, how to override it from Settings, what changes in the Active Net runner, the bottom tab bar, the chat dock, and tips for running a net from a phone in the field. Linked from the Help menu.
v2.4.0
2026-04-30- FeatureHelp & Guides converted to in-app pages: the five PDF help documents (N/C Operator Onboarding, Net Scheduler Guide, Primary ↔ Backup Handoff Walkthrough, N/C Chat Guide, and the privileged Manager / Co-Manager / Editor Guide) are now native routes under /guides/* with full SEO metadata, no PDF download required. Content has been reviewed and updated against the current app — including the Home-page Unread N/C Chat panel, header chat icon, threaded replies, quick reactions, App Relay tray on the Active Net runner, the /audit page in the sidebar Admin group, the Co-Manager role and emergency-transfer flow, the 'Validate now' announcements step, and the corrected Editor scope (preamble + announcements only). The Help menu now links to these pages directly, with the Manager guide still gated to operators who hold one of the privileged roles.
v2.3.6
2026-04-30- ImprovementDocumentation accuracy pass on Features and Tips: corrected the Editor privileges scope (preamble + announcements only — not roster or net data); clarified that the Net Manager and Co-Managers (not the Manager alone) manage the controller roster; updated the Audit Log location to reflect that it lives at /audit in the sidebar's Admin group with a shortcut card on the Settings page; and dropped 'now has' wording on the PDF export feature since it is no longer new.
v2.3.5
2026-04-30- ImprovementDocumentation refresh — Features and Tips pages now reflect everything added since v2.1: persistent left sidebar with ⌘B / Ctrl+B collapse, Tonight strip, Command Palette (⌘K / Ctrl+K), Right Rail on the Active Net runner, Net History saved filter chips with the Refine popover, inline pencil edit of logged check-ins, Location autocomplete on the Add Check-in form, App Relay check-ins with the relay-requests tray, Amend closed nets, Occasional N/C flag, and the new Sparkles (Features) / Lightbulb (Tips) header shortcuts. The in-app Help menu listing was also updated to mention the Manager / Co-Manager / Editor Guide for privileged operators. The bundled PDF guides themselves are unchanged in this release; ask the Net Manager if a PDF needs to be revised to match a recent feature.
v2.3.4
2026-04-30- ImprovementAbout page split into Features and Tips: the long About page is now a short overview with two cards that link to dedicated /features and /tips pages, each with its own SEO metadata. The full feature catalog and the day-to-day tips list moved to those pages unchanged.
- FeatureHeader shortcuts for Features and Tips: two new icon buttons in the top bar — a Sparkles icon for Features and a Lightbulb icon for Tips — give one-click access from any screen, with hover tooltips and aria-labels for accessibility.
v2.3.3
2026-04-30- FeatureNet History saved filter chips: the history page now opens to the last 90 days by default and offers one-click filter chips across the top — Last 90 days, Last 30 days, My nets (when an N/C profile is set), Open only, Backfilled, Live-logged, and All time. The active chip is highlighted; click another to switch. A 'Refine' popover gives precise control over date range, status (open / closed), type (live-logged / backfilled), and an N/C call-sign filter that matches either Primary or Backup. The result count ('X of Y nets') shows next to the page title, an inline 'backfilled' tag now appears next to dates of paper-log nets, and your filter selection persists per device so you don't have to re-pick it each visit.
v2.3.2
2026-04-30- FeatureRight Rail on Active Net (Guided mode): a new pinned column on the right side of the Active Net runner gives the Primary at-a-glance situational awareness without scrolling. Three tabs: Glance shows total check-ins, elapsed time, average gap between check-ins, repeat call signs, a station-mix bar (Base / Mobile / Portable / Other), and a per-group breakdown. Preamble shows a compact stepper of every preamble step — current step highlighted, completed steps checkmarked — and clicking any step jumps the main view to it. Chat surfaces the current Primary/Backup and a pointer to the docked N/C chat. The rail pins to the right on screens ≥1280px wide and slides over from the right via a 'Rail' button on smaller screens. Hideable on desktop via the X in the rail header.
v2.3.1
2026-04-30- FeatureCommand palette (⌘K / Ctrl+K): a global search-and-jump palette is now available on every screen. Press ⌘K (Mac) or Ctrl+K (Windows/Linux), or click the new 'Search…' button in the top bar. Type to fuzzy-match any page (Active Net, Schedule, Audit Log, Quick Checklist, etc.), trigger quick actions (open the live runner if a net is in progress, jump to your next shift, open the Quick Checklist), or search the operator roster by call sign or name and jump straight to it. Scales much better than menu hunting now that the app has 20+ screens.
v2.3.0
2026-04-30- FeatureNew navigation shell: a persistent left sidebar replaces the top navigation row. Items are grouped into Tonight, Schedule, Coordination, People, Records, and Admin so frequently used screens stay one click away regardless of which page you're on.
- FeatureCollapsible to icons: click the panel toggle in the top bar (or press ⌘B / Ctrl+B) to shrink the sidebar to a 3rem icon strip. Each icon shows its full label as a tooltip on hover, freeing horizontal space without losing navigation.
- ImprovementAuto-collapse during a live net: when an operator opens the Active Net runner while a net is live, the sidebar automatically collapses to icons once per session to maximize the logging area. You can pin it back open at any time.
- FeatureTonight strip: a new status bar lives directly under the top header. When a net is live it shows a pulsing LIVE indicator with elapsed time, frequency, Primary/Backup N/Cs, and a one-click Open Runner button. When idle it shows the next scheduled date with the assigned operators (and a 'You · Primary/Backup' chip when it's your shift).
- ImprovementLIVE badge in the sidebar: the Active Net entry shows a green pulsing LIVE pill while a net is open, visible from any screen.
- ImprovementN/C Chat unread badge: the chat icon in the top bar and the Coordination → N/C Chat sidebar entry both show an unread count badge so you don't miss messages from another tab.
- ImprovementQuick Home button: every screen except Home now has a Home icon next to the sidebar toggle so returning to the dashboard is always one click away. Tooltip-labelled and keyboard-accessible.
- ImprovementOperator identity in the sidebar footer: registered N/Cs see their call sign, name, and a tinted avatar at the bottom of the sidebar; unregistered visitors see a 'Set up profile' shortcut.
v2.2.2
2026-04-30- FeatureInline edit during the live net: every logged check-in now has a pencil icon next to its trash icon. Click it to fix a mistyped call sign, name, location, station type, time type, or notes without deleting the entry. Works in both the Guided Runner and the freeform tabbed view; available to anyone running the net (Primary or Backup N/C). Edits save immediately and are recorded in the audit log.
- FeatureLocation autocomplete: the Location field on the Add Check-in form now suggests previously seen locations from the roster as you type. Use ↑/↓ + Enter (or click) to pick. Cuts down on typos and keeps location strings consistent across nets.
v2.2.1
2026-04-30- FeatureAmend closed nets: any registered N/C can now correct a closed net's check-in log without reopening it. New 'Amend' button on Net History rows and on the closed-net detail page deep-links to the Backfill screen with the net pre-selected. Edits, deletions, and newly added check-ins flow through to roster statistics and the Op Roster automatically. Use sparingly — for missed check-ins, typos, or wrong groups.
- ImprovementAmend mode treats added check-ins as normal entries (no Backfilled badge), since the net itself was run live. Every change is still recorded in the audit log with the actor's call sign.
v2.2.0
2026-04-29- FeatureN/C Chat: a private, real-time chat channel for registered Net Controllers, available app-wide and as a floating panel on the Active Net runner and Live Follow pages. Collapses to an unread badge so it stays out of the way; remembers per-net open/collapsed state.
- Feature@CALL mentions: type @VE3ABC to ping a specific operator. They get a highlighted notification even if their chat is collapsed — useful for quietly asking the running N/C for an action without going on-air.
- FeatureRELAY fills (structured): a one-tap RELAY button lets a monitoring N/C send a structured fill (call sign, name, location, optional note) directly to the active Primary N/C. Renders as a distinctive emerald 'RELAY' card in chat and posts visibly so other backups won't repeat the same info.
- FeatureQuiet mode for the active Primary: while you're running the net, your chat only surfaces pinned notices, @mentions to your call, and RELAYs directed at you — backups and other registered N/Cs see the full feed. Minimizes interference while still letting urgent fills through.
- FeaturePinned notices: the Net Manager and Co-Managers can pin a chat message (e.g. propagation issue, repeater outage) so it stays visible to everyone in chat.
- FeatureThreaded replies: each chat message now has a Reply button that quotes the first line of the parent message and nests a tappable preview above your response, so multi-topic conversations stay readable during a busy net.
- FeatureMention autocomplete: typing '@' opens a popover of registered N/C call signs you can navigate with ↑/↓ and confirm with Enter or Tab — no more guessing or mistyping a callsign when pinging another operator.
- FeatureUnread divider: when you return to chat, a 'New' divider line is rendered above the first message posted since your last visit, so you can see exactly what you missed without re-reading the whole feed.
- FeatureQuick reactions: tap 👍 ✅ 📡 or ❓ on any message to acknowledge without typing. Reactions sync in realtime and show pill-style counts — perfect for the Primary to confirm a RELAY mid-net without breaking script.
- ImprovementOnboarding & help refreshed: the N/C Onboarding Guide PDF (v5) now covers the chat function, a new N/C Chat Guide is available from the Help menu, and the printable N/C Quick Checklist includes a chat reminder during a net.
- FeatureOccasional N/C flag: Net Manager and Co-Managers can mark any operator on the Net Controllers roster as 'Occasional'. Occasional ops are skipped by the Generate Rotation tool but remain selectable as manual substitutes in the Primary/Backup pickers (where they show a '· Occasional' tag), making it easy to keep someone on the roster without putting them in the regular rotation.
- FeatureManager, Co-Manager & Editor Guide: a new combined PDF reference (with scenario-based playbooks) is now linked from the Help menu — visible only to current Managers, Co-Managers, and Editors — covering roster management, schedule generation, preamble/announcements editing, role succession, and audit logs.
v2.1.0
2026-04-29- FeatureCo-Manager role: the Net Manager can now designate up to 2 trusted operators as Co-Managers. Co-Managers have full parity with the Net Manager — they can manage the controller roster, grant or revoke editor privileges, edit the preamble and announcements — with the single exception of initiating a direct role transfer.
- FeatureManager succession (direct transfer): the Net Manager can transfer the role to another registered controller from a new 'Manager Succession' card on the Net Controllers page. A typed 'TRANSFER' confirmation prevents accidents, with an option to be auto-demoted to Co-Manager (if there's room) so continuity is preserved.
- FeatureEmergency transfer (quorum): if the Net Manager becomes unreachable, a Co-Manager can initiate an emergency transfer that requires the *other* Co-Manager (different from the initiator) to second within 24 hours. While pending, a site-wide amber banner shows the request with Approve / Cancel buttons for eligible operators, and the home screen surfaces the recent transfer for 7 days afterward.
- FeatureWelcome line now shows your next 3 scheduled N/C shifts: registered controllers see 'Next N/C shifts: <date> [Primary] · <date> [Backup] …' under the Welcome banner, with a one-click link to the full schedule. Helpful at-a-glance reminder of what's coming up.
- ImprovementAudit log: every Co-Manager designation, removal, and transfer (direct or emergency) is recorded with the actor's call sign for full traceability.
v2.0.1
2026-04-29- FeatureAccidental live-net safeguards: starting a live net now opens a confirmation dialog that requires typing 'START' before the action button enables, eliminating fat-finger and double-click mistakes.
- FeatureDuplicate-net guard: if an open live net already exists for today, the dialog warns and offers a primary 'Resume Tonight's Net' button so operators naturally rejoin the existing net instead of creating a second one. A secondary 'Start Another Anyway' option is available for the rare case it's actually needed.
- FeatureUndo toast: after a live net is created, a 10-second toast offers an Undo action that fully deletes the net (and any check-ins) and returns you home — a quick safety net for the moment right after the click.
- ImprovementLive net button relabeled to 'Start a New Live Net' with a red 'Only for Monday 19:30 live net' notice underneath, making the intended use unmistakable and steering practice sessions to 'Start Test Net'.
- ImprovementThe not-Monday warning is preserved as part of the same unified confirmation dialog, so operators still get that nudge on off-days without an extra prompt.
- FixAnnouncements step in the Net Runner now correctly shows the interactive numbered, checkable announcement list (matching the Preamble page) instead of a plain text fallback, with checks tracked separately for the Preamble view and the Net Runner view.
v2.0.0
2026-04-28- FeatureApp Relay check-ins: listeners on the public /listen page can now submit a check-in request directly from the app when they're monitoring the net but cannot reach net control on the 146.985 repeater or via EchoLink. The form lives in a collapsed 'Can't reach the repeater?' card at the bottom of the listener view, requires an explicit acknowledgment that RF and EchoLink were tried first, and only appears while a net is on the air.
- FeatureN/C Relay Requests tray: while running a net, net control sees a quiet count pill ('📡 N relay requests waiting') in earlier preamble steps so the script isn't disrupted, and a full review tray with Acknowledge / Approve & Log / Reject actions during the Group 6 (Late Check-ins) and Close steps. Realtime — new requests chime in as they arrive.
- FeatureApprove-and-log writes a check-in to a new 'App Relay' group with station type 'App', so app-relayed check-ins flow into the net log, exports, and stats just like any other check-in.
- FeatureListener-side live status: after submitting, the listener sees their request transition from Pending → Acknowledged → Approved (or Declined with a reason) in realtime, no refresh needed.
- ImprovementLate preamble step now reminds N/C to check pending app-relay requests before final last call.
v1.5.2
2026-04-28- FeatureNew Listener View at /listen — a public, no-login page that lets club members and guests follow the live net in realtime: On Air / Off Air status, current N/C, preamble progress with the 'Now Reading' script body, check-ins grouped with locations, and announcements.
- FeatureLive preamble streaming: when net control advances a step, the listener page swaps in the new step title and body in one box (no scrolling list), with a smooth transition.
- FeatureIdle state: when no net is on the air, the listener page shows the next scheduled net (date + N/C) and the current announcements so visitors aren't left with an empty screen.
- FeatureRealtime bandwidth toggle: a Live / Paused button in the listener header lets devices on metered connections pause realtime updates and refresh manually. Setting persists per device.
- ImprovementLast-updated indicator: a small 'Updated Xs ago · HH:MM:SS' line under the header shows when data was last received from the server.
- ImprovementHelp menu and tooltips on every header control of the Listener View, plus a collapsible Announcements pane (collapsed by default) with the 'Current as of' date inline next to the title.
v1.5.1
2026-04-28- FeatureWelcome banner: the home page now greets you under the title with 'Welcome {CALL}' when your profile call sign matches a registered net controller, or 'Welcome Guest' otherwise — a quick at-a-glance check that the right operator is signed in on this device.
- FeatureContact Net Manager: a new Quick Link on the home screen opens a pre-filled email to the Net Manager (subject and your call sign / name included). The Net Manager's address is now stored centrally in Lovable Cloud and synced to every device in realtime, and only the Net Manager (N4MI) can change it from Settings.
- ImprovementN/C Onboarding PDF (v4): handoff section trimmed and now points to the in-app help guide for full instructions; tips call out checking the N/C schedule with a pointer to the Scheduler guide; the tools section is reorganized to follow the actual N/C workflow (preamble → logging → announcements integrated end-to-end).
- FeaturePrintable N/C Quick Checklist: a new one-page route summarizing the onboarding flow with links to the Preamble, Logging, Announcements, and N/C Schedule guides.
- FixBug fix: realtime subscription for the Net Manager email no longer crashes the home page on remount.
v1.5.0
2026-04-28- FeatureHelp menu in the header: a new help (?) dropdown next to the theme toggle gives every operator one-click access to the latest PDF guides — Primary ↔ Backup Handoff Walkthrough, N/C Onboarding Guide, and Net Scheduler Guide. Guides open in a new tab and are bundled with the app so they're always available.
- FeatureExport Preamble as PDF: a new 'Export PDF' button on the Preamble page renders the full step-by-step preamble script as a polished PDF for printing or offline reference. Announcements are shown as a placeholder so the export reflects the script structure rather than a snapshot of tonight's list.
- FeatureExport Announcements and Schedule as PDF: similar one-click PDF exports are now available for the announcements list and the upcoming N/C schedule.
v1.4.0
2026-04-28- FeatureCheckable announcements in the preamble: the announcements step now renders the numbered list with a checkbox per item so Net Control can tick items off as they're read on-air. Progress shows as 'Announcements (x/y)', a green '✓ All announcements read' badge appears when complete, and a 'Reset checks' link clears them. Checks are saved per device for the current net night and reset automatically the next day.
- FeatureTwo new EchoLink reminders for tonight's scheduled Primary and Backup N/Cs: a first nudge at 19:20 local and a final reminder at 19:23 local to log into the K4KNS-R EchoLink node before the net opens at 19:30. These join the existing 19:15 'get ready' and 19:25 'start the pre-net announcement' reminders.
- FeatureReminder notification controls in Settings: a new 'Reminder Notifications' card with independent on/off toggles for the chime, browser tab title flashing, and OS taskbar/dock notification, plus 'Test Chime', 'Test Title Flash', 'Test OS Notification', and 'Test All' buttons so operators can verify everything works ahead of net night. Notifications are on by default; preferences are saved per device.
v1.3.3
2026-04-27- FeatureNet controller reminders: tonight's scheduled Primary and Backup N/Cs now get an in-app popup at 7:15 PM local time to get ready, and a second popup at 7:25 PM to begin the pre-net announcement. Both reminders include an 'Open Preamble' shortcut and only fire on Mondays for users whose call sign matches that day's net_schedule entry.
- ImprovementReminders are dismissible per-night (each kind tracked separately) and run app-wide, so the prompt fires no matter which page the operator is on.
v1.3.2
2026-04-27- FeaturePreamble editor now shows a Live Preview panel beneath the Body field that renders placeholders in real time as you type, using your current N/C profile (and injecting the announcements list on the announcements step).
- FeatureNew collapsible Placeholder help section in the editor lists every available token ({CALL}, {CALL_PHONETIC}, {NAME}, {LOCATION}, plus {ANNOUNCEMENTS} on the announcements step) with a description and a sample rendered from your N/C profile.
- ImprovementHome page: the K4KNS club logo now appears beside the page title and links out to www.arccc.org.
- ImprovementHome page: a green 'Live Follow Active' caption now appears under the Start a New Net button whenever an open real net has live follow enabled, so operators can see at a glance that the home and follow views are mirroring a live session.
v1.3.1
2026-04-27- FeatureTest nets can now opt in to live follow: a 'Show in live follow' checkbox under Start Test Net controls whether the test net appears in the home Live Net panel and is reachable from the follow page. Real nets remain always-followable.
- ImprovementFollow page shows a clear 'Live follow not enabled' notice if someone navigates to a test net that was started without the option.
- ImprovementHome page layout: the 'Announcements current as of…' line now sits directly under the Next Net countdown for quicker at-a-glance freshness checks.
v1.3.0
2026-04-27- FeatureLive net follow page: registered net controllers can open a read-only mirror of an in-progress net to watch step progress and check-ins update in realtime, with a one-click 'Take Over as N/C' to switch to the editable console.
- FeatureHome-screen Live Net panel: when a net is open, registered N/Cs see a realtime stream of recent check-ins on the home page, with an 'Expand by group' toggle for a full grouped roster.
- FeatureRealtime sync: the nets and check-ins tables are now broadcast over Lovable Cloud realtime so the backup N/C and home panel stay in sync without refreshing.
- FeatureLive views are gated to operators listed in the N/C roster.
v1.2.1
2026-04-27- FeatureBug reports & feature requests: a new Quick Link opens a public board where anyone can submit and view reports; editors with the club passphrase can change status (Open, In progress, Resolved, Closed, Duplicate, Won't fix), post responses, and delete entries. All actions are recorded in the audit log.
- FeatureAnnouncements can now have an optional auto-remove date — expired announcements drop off the home screen automatically and appear dimmed with an 'Expired' badge in the editor for cleanup.
- FeatureQuick Links reordered: N/C Profile and N/C Schedule on the top row, N/C Roster and Operator Roster on the second row.
- FeatureN/C Profile Quick Link is now color-coded — green when your local profile (call sign, name, location) is complete, red when fields are missing.
v1.2.0
2026-04-27- FeatureRetroactive net entry: backfill paper logs after a power or internet outage by creating a past-dated net or adding check-ins to an existing net.
- FeatureBulk paste workflow accepts tab- or comma-separated rows for fast transcription, with a spreadsheet-style grid for editing before saving.
- FeatureBackfilled nets and check-ins are clearly flagged with a 📝 Backfilled badge in the UI and recorded in the audit log.
- FeatureClosed nets can be reopened in backfill mode so late paper entries can still be transcribed.
- FeatureProfile page validates required fields (call sign, name, location) inline and disables saving until they're filled — helpful when signing in from a new computer or browser.
- FeatureHome screen shows an amber reminder banner to registered net controllers whose local profile is missing fields used by preamble placeholders ({CALL}, {NAME}, {LOCATION}).
- FeatureAnnouncements freshness line on the home screen now credits the call sign (and name) of the operator who last validated the announcements.
v1.1.0
2026-04-27- FeatureSchedule page now shows a preview of the upcoming primary/backup rotation before generating.
- FeatureAudit log moved into Settings as a nested page for tidier top-level navigation.
- FeatureCheck-in panel autocompletes call signs from the operator roster, with a 'last seen' hint and full keyboard navigation.
- FeatureActive nets can hand off from primary to backup N/C in one click, with the swap announced in the net notes and audit log.
- FeatureNew theme toggle in the header: System, Light, Dark, and a red-on-black Night mode for vision preservation.
v1.0.1
2026-04-27- FeatureEditors can add custom steps to the preamble script, inserted after a chosen built-in step.
- FeatureStart a New Net now warns the N/C if today isn't Monday and suggests opening a Test Net instead.
- FeatureHome screen shows a live local date and clock (with timezone) alongside the current UTC time.
- FeatureApp version number is now displayed on the home screen.
v1.0.0
2026-04-27- FeatureFirst public release.
- FeatureRun live nets with primary and backup N/C, six check-in groups, and per-station notes.
- FeatureStep-by-step preamble script with editor permissions for the Net Manager and designated editors.
- FeatureAnnouncements module with a Net Manager / editor 'validate as current' workflow and freshness date on the home screen.
- FeatureNet history with per-net Excel export in the club's standard format.
- FeatureTest Net mode — practice nets are stored separately and excluded from real statistics.
- FeatureN/C roster with the ability for the Net Manager to grant or revoke editor privileges per operator.
- FeatureRead-only Operator Roster on the home screen; full editing in Settings.
- FeatureN/C schedule that pre-selects the scheduled primary and backup operators when starting a net.
- FeatureStatistics dashboard: nets led, top operators, monthly trends, per-net duration, and on-demand year export.
- FeatureAutomatic year-end snapshot generated every January 1, archived in-app and downloadable as a 4-sheet .xlsx.
- FeatureBulk roster import from spreadsheet with duplicate handling.
- FeatureAbout page and this changelog.
New entries will be added here with each future update.