Changelog - DXping

Changelog

All notable changes to this project will be documented in this file.

[Unreleased]

[v2.9.3] - 2026-07-22

Added

  • Club member invitations: club owners and administrators can invite an existing DXping member by callsign. Invitees receive an email plus phone/web notification when enabled, can review the invitation from the Clubs section, and must accept before they are added to the club.
  • Invitation management: club administrators can see and cancel pending invitations, while invited members can accept or decline them from the club page.

[v2.9.2] - 2026-07-22

Added

  • Android wanted-alert parity: the Android beta can now refine wanted callsigns, DXCC entities and CQ zones by band, Phone/CW/Digital mode and All Spots or DXai Workable Only. The app also exposes and preserves the Wanted CQ Zones alert toggle.

[v2.9.1] - 2026-07-22

Changed

  • Wanted Calls editing: every Wanted, Spotted and Logged callsign card now shows its current alert rule and includes an Edit Alert button. Bands, Phone/CW/Digital modes and All Spots/Workable Only can be refined without leaving the Wanted Calls page or resetting the callsign’s chase date.

[v2.9.0] - 2026-07-22

Added

  • Workable-only wanted alerts: every wanted callsign, DXCC entity, CQ zone, US state and Canadian province can independently alert on either every matching spot or only when DXai confirms that the spotted band and mode are workable from the member’s station.
  • Per-target band and mode rules: choose amateur bands plus Phone, CW or Digital for each wanted target. These rules work alongside the account-wide alert filters, delivery channels, quiet hours and repeat interval.
  • Wanted CQ Zones: select any of the 40 CQ zones, customize its alert rules and enable the new Wanted CQ Zones alert type. A dedicated page is available from the Wanted navigation menu.

Changed

  • Callsign alert rules are linked directly from Wanted Calls, and the state/province page now uses consistent click-to-select band and mode controls instead of free-form text.

[v2.8.0] - 2026-07-22

Added

  • DXping Clubs: members can create amateur radio clubs, add themselves to open clubs or request entry to moderated clubs, belong to multiple clubs and leave whenever they choose. Clubs have a callsign, location, description, optional website and optional Club Log link.
  • Club membership management: club creators become owners and can assign club administrators, approve or reject requests and remove members. Public club pages show the roster and combined QSO, distinct-call, DXCC and band activity; recent member contacts remain visible only to active members.
  • Club directory: a new Clubs item in the navigation opens a searchable directory and highlights clubs the signed-in member owns, has joined or is waiting to join.

[v2.7.9] - 2026-07-22

Added

  • Android beta tester signup: a new Beta Test link in the main navigation explains the testing commitment and lets signed-in users apply with their device, Android version, experience and availability. Applicants must agree to install pre-release builds and provide feedback.
  • Beta applicant tracking: applicants receive an email confirmation and can revisit the page to update their information or see their current status. Administrators can review applications, record private notes, track pending/invited/active testers and email status changes.

[v2.7.8] - 2026-07-22

Added

  • Android update notices: beginning with Android 0.4.0-beta.2, DXping checks for newer published releases when the app opens and shows a clear update dialog with the new version, release notes and an update button. Dismissing it hides that notice without blocking the next release.
  • Connected-phone versions: Profile now identifies the app version on each connected phone, while the admin dashboard shows installed-version distribution, active devices, users and older builds.

Changed

  • Server-controlled mobile releases: administrators can publish the current Android version, download or Play Store URL and user-facing release notes without another website code deployment.

[v2.7.7] - 2026-07-22

Added

  • Live spots in the Android app: Android 0.4.0-beta.1 adds a native Dashboard and an All Spots browser with callsign wildcards, band and mode filters, wanted markers, bearings, qualitative DXai verdicts, expandable spot details, and full path checks for the selected station. Older spots load in bounded pages so incoming activity does not shift or duplicate the list.

Changed

  • Safer mobile sessions and offline data: expired app sessions return cleanly to sign-in, offline snapshots stay isolated to the account that loaded them, private session data is excluded from Android backup and restore, and newer station/DXai refreshes cannot be overwritten by older requests finishing late.

[v2.7.6] - 2026-07-22

Added

  • Complete Help & Feature Guide: the Help page has been rebuilt around current DXping workflows, with sections for station locations, spots, wanted lists, every alert channel, the complete DXai toolset, logbook imports, awards, maps, satellites, Telegram commands, mobile apps and support.
  • Multiple station locations: add named home and remote stations to one account, choose the active station from the navigation bar, and let DXping recalculate bearings, maps, satellite passes, and DXai for that location. Each station can independently participate in lightning, DXai digest, band-opening, greyline, target, watchlist-workable, and satellite pass/digest alerts, and additional operating callsigns can be assigned to the station they belong to.
  • DXping mobile apps: the public homepage now previews the upcoming native Android and iOS apps. The Android beta is currently being tested with real-time alerts, DXai tools and maps, station switching, wanted lists, logbook access and a home-screen widget; iPhone and iPad support is planned next.

Fixed

  • Android station switching: choosing another saved station in the Android beta now refreshes DXai conditions, maps, path checks, target openings, and the Profile grid for that location immediately. The corrected build is Android 0.3.0-beta.2.
  • Station-location setup: accounts that had a legacy profile grid but no visible station can now add or relabel that station normally, instead of receiving an incorrect duplicate-grid message.
  • Faster All Spots browsing: the All Spots page now retrieves only the current 100-row page from the database. It no longer groups and counts the complete historical spot archive before displaying each page, and its mode filter reuses the shared cached option list.
  • All Spots mode filtering: selecting FT8, CW, SSB or another mode now returns the matching paginated rows promptly instead of stalling while the database transformed the full archive.

[v2.7.5] - 2026-07-20

Added

  • Privacy controls and disclosure: a unified privacy policy now covers DXping.com and the native Android app, including collected data, connected phones, service providers, retention, user choices, and a clear account/data deletion request process.

Fixed

  • Dashboard filters can stay put: pin a band/mode selection with Keep filters and DXping restores it whenever you return to the dashboard. Pinning or unpinning applies immediately; users who do not opt in keep the original all-bands/all-modes behavior.

[v2.7.4] - 2026-07-17

Added

  • Wanted DXCC, bulk edition: the Wanted DXCC page grew up — band and mode are now click-to-select pills (no more typing “160m, 80m” and hoping), Add ALL my still-needed entities seeds your wanted list from your DXCC progress in one click (select 10m + Phone first and you've built a 10m-SSB chase list), and checkboxes with Select all/none let you prune the list in bulk. Mode filters now understand Phone/CW/Digital groups on top of exact modes.
  • Band & mode award views: chasing DXCC 10m, DXCC Phone, or 10m SSB? Pick a band and/or mode at the top of DXCC Progress and the whole page re-slices — worked, still needed, the progress bar, and “Needed & on the air now” (which then only shows spots on that band and mode). Modes group ARRL-endorsement style: Phone, CW, Digital.
  • Hand-editable DXCC progress: your worked/needed lists are no longer chained to your uploaded log. On DXCC Progress, click any still-needed entity to mark it worked by hand (paper logs and pre-computer QSOs finally count), or click the × on a worked entity to stop counting it. Hand-marked entities show a pen icon, your hidden log credits are amber, and every view agrees — the progress bar, the “Needed & on the air now” list, the world map, and the PDF report. Hand-marks respect the award views too: mark Bhutan as worked while viewing 10m · Phone and it counts toward 10m, Phone, and Mixed — but not 20m.

[v2.7.3] - 2026-07-15

Added — DXai v1.11.0

  • Storm early warning: Band Conditions now watches the solar wind at the L1 monitor, 30–60 minutes upstream of Earth. When the interplanetary magnetic field swings strongly southward at speed — the trigger for geomagnetic storms — DXai tells you a storm is likely before the K index reacts: time enough to work the polar paths while they're still open.
  • Greyline alerts (opt-in, on the Alerts page): a heads-up about 30 minutes before sunrise and sunset at your QTH — the daily window when the terminator gives 160/80/40 m long-path DX its boost. Computed from your grid square; delivered on your usual channels; quiet hours respected.

[v2.7.2] - 2026-07-14

Added — DXai v1.10.0

  • Solar context on Band Conditions: live solar and geomagnetic indices — solar flux, sunspot number, A and K indices, and X-ray flare status — now sit right above your band grades, with hover explanations and a plain-English read of what the space weather means for your bands ("Solar flux 185 with quiet geomagnetics — strong support for the high bands" / "Geomagnetic storm — polar paths degraded"). The measured grades stay the ground truth; this explains the weather behind them. Also included in the Telegram /bands command. Data: NOAA Space Weather Prediction Center, refreshed every 30 minutes — and archived alongside your band history, so DXai can learn how your bands actually respond to the solar cycle.

[v2.7.1] - 2026-07-14

Added

  • On-air badge: an embeddable status badge for your QRZ bio, club site, or blog — a live image that shows when you're on the air (green within an hour of being spotted) and when you were last heard. Grab your copy-paste snippet on your profile, one per claimed callsign.
  • Wanted Calls multi-select: tick any number of callsigns and remove them in one click, with Select all/none.
  • Weather on the spot map: toggleable Rain, Clouds, and live Lightning layers on the DX spot map (layer control, top right). Lightning strikes appear within seconds of hitting — bright yellow when fresh, fading as they age — courtesy of the Blitzortung.org volunteer network; weather tiles by OpenWeatherMap. Your layer choices are remembered.

[v2.7.0] - 2026-07-14

Changed — award accuracy overhaul

  • DXCC entities are now resolved date-aware, powered by Club Log: a QSO counts for the entity the callsign belonged to when you made it. Old prefixes land correctly (a 1995 T9 contact is Bosnia; a 2005 PJ2 contact is Netherlands Antilles), special-event and exception callsigns are recognized individually, maritime mobile no longer credits a country, and known-busted calls count for nothing. Expect your DXCC Progress numbers to shift — usually up.
  • DXCC reconciliation tools: hover any worked entity to see exactly which of your logged callsigns credited it. A new "Your log vs Club Log" panel lists every call your logging software assigns differently — re-import your ADIF and DXping reads the DXCC/COUNTRY fields your logger exports. The summary now also shows your LoTW-confirmed entity count, so you can compare like-for-like with LoTW (which counts confirmed, not worked).
  • WAZ zones are now real zones: US stations are placed in their actual CQ zone from their FCC address instead of guessed from the callsign — a K6 living in Florida finally counts as zone 5. Zones also resolve as of the QSO date.
  • Wanted DXCC now picks from the official current entity list.
  • DXCC World Map now colors countries with the same date-aware entity resolution as DXCC Progress — the worked count matches everywhere, and a few mis-keyed territories (Monaco, West Malaysia, Amsterdam & St. Paul) light correctly.

Added

  • Password reset: "Forgot your password?" on the login page — enter your callsign or email and set a new password from the emailed link.
  • Refer a friend: your personal referral link lives on your profile (friends can also just type your callsign into the new "Referred by" field when they register). Confirmed referrals are tracked and credited to you — what the credit unlocks is coming.
  • Grid square map picker: on your profile, click your station's location on a map and your Maidenhead grid fills in automatically.
  • Callsign search on All Spots: the filter is a type-ahead search box now, with wildcards — K2 finds every K2 station, ABC finds calls ending in ABC.
  • WPX (Worked All Prefixes) tracker joins the awards lineup, and every award page now links to the official award rules.
  • New-user check-in: a personal note from Jeff a few days after you join, with a one-minute way to tell us what's working and what isn't. We read every reply.

Changed

  • A fresh coat of paint: the whole site now wears the DXai navy & cyan palette in light mode too, with a redesigned home page to match.
  • Band Conditions Now: the trend arrow moved into its own Trend column; steady bands show a dash.
  • Wanted Calls: add several callsigns at once (comma-separated); the "Logged" status now only counts QSOs made after you added the call.
  • 13 Colonies map now leads with the colonies you still need.

Fixed

  • Feedback and feature-request submissions no longer error after saving; admin status changes to Completed/Duplicate stick.

[v2.6.0] - 2026-07-08

Added — DXai v1.9.0

  • Daily DXai Digest: opt in on the DXai page and get a short morning band outlook for your QTH by email — which bands open, when, and how strong — written entirely from your own measured history. No forecasts, no invented openings; just what your grid actually does, in one of several rotating writing styles. Also delivered to Telegram, Discord or push if you've connected them.

Added — DXai v1.8.0

  • 48-hour Live Reach timelapse: the Live Reach map can now play back the last two days hour by hour — press Play and watch your coverage field grow and fade as propagation changes, or drag the scrubber to any moment. The band filter works during playback, so you can watch a single band open and close across the day. Available on both the windowed map and the full-screen shack view.

Added — DXai v1.7.0

  • Target Openings: pick a country and see when it has actually been reaching you — an hour-by-hour history of real arrivals over the last 48 hours, so you know when to be on the air for it.
  • Sked Finder: planning a contact with a specific station? Enter their callsign or grid and DXai grades the path between your two QTHs for every band and hour of the day, then names the best band and time.
  • Contest Planner: which continents each band delivers from your QTH, hour by hour — plan your band changes from measurements instead of folklore.
  • Antenna health monitoring: My Station now charts your measured per-band performance day by day, and DXai sends an alert if a band suddenly drops below your own normal — water in the coax shows up here before you'd notice it on the air.
  • Country-opening alerts: from the Best Band tool, ask DXai to alert you the moment a country you're chasing opens on your mode from your QTH.

Added — DXai v1.6.0

  • Best Band: pick a mode and a target — a country or a whole continent — and DXai names the band with the best odds of working it right now, graded from live signal paths between there and your antenna, with a verdict for every band.

Added

  • DX by Country pages: public activity pages for every DXCC entity — who's on the air now, the busiest bands, and the best times — at dxping.com/dx.
  • Live in-app support chat: a support bubble to chat with the DXping team in real time when they're online.
  • ADIF export: download your full or filtered logbook as a standard ADIF file anytime — your log is never locked in.
  • CQ DX Marathon tracker and a Worked All Continents map join the awards lineup.

[v2.5.0] - 2026-07-05

Added — DXai v1.5.0

  • My Station — measured station factor: DXai now measures how your station actually performs compared to typical stations in your area, band by band, from your own transmissions — a hamstick and a big Yagi finally get different answers. Every DXai verdict (spot badges, alerts, the checker) is automatically adjusted to your station where a measurement exists.
    • See the new My Station card on the DXai page: your per-band standing (above/below typical), the measured numbers, and how your verdicts are being adjusted.
    • No setup needed — transmit FT8/FT4 and DXai measures overnight. Change your antenna and watch the numbers move; the Antenna Lab is the controlled version of that experiment.
    • Note: measurements reflect your transmit performance; your local receive noise still applies.

[v2.4.1] - 2026-07-05

Added

  • Trend arrows on Band Conditions (DXai v1.4.1): each band now shows ↗ when it has been strengthening over the last hour or ↘ when it's fading — so you know whether to run to the radio now or whether the opening has peaked.

[v2.4.0] - 2026-07-05

Changed — DXai v1.4.0

  • VHF-aware grading: every band is now judged by its own propagation character. 6m is graded on its sporadic-E range, 2m and up on tropo distances, 160m on its shorter night skip — instead of applying 20m-style expectations everywhere. In practice: 6m and especially 2m now show real openings that were previously invisible, direction chips and confidence levels are scaled to each band's reach, and "busy" on 2m means busy for 2m.

[v2.3.1] - 2026-07-05

Changed

  • DXai is now a hub: the DXai page opens with a card for each tool — Band Conditions Now, Live Reach Map, Can I work…?, Last 48 Hours, Typical Openings, and the Antenna Lab — each opening in its own focused view instead of one long page.

[v2.3.0] - 2026-07-05

Added — DXai v1.3.0

  • DXai Antenna Lab (Tools → DXai Antenna Lab, or from the DXai page): compare antennas or transmitters with real on-air data. Define labeled runs (e.g. Vertical / Dipole / Yagi), pick a run length and switch-over gap (auto-advance or wait-for-ready), optionally repeat the sequence to average out changing conditions — then transmit FT8/FT4 during each timed run while DXai listens.
    • Results as map layers: every station that heard each setup, one toggleable colored layer per antenna — flip layers to compare radiation patterns directly. Per-setup numbers too: reports, unique receivers, best/median signal, farthest reach, top directions.
    • Live view shows a big countdown, "SWITCH TO…" prompts between runs, and per-run heard-counts ticking up as you transmit.
    • The Lab listens only — it never keys your radio.

[v2.2.0] - 2026-07-05

Added — DXai v1.2.0

  • Band-opening alerts: DXai now tells you the moment a band opens from your QTH for CW or SSB — with the best direction — on Telegram, Discord, email, or push. Opt in under Alerts → "DXai — band openings from my QTH"; your band filter and quiet hours apply.
  • Watchlist-workable alerts: DXai continuously checks the path from each of your wanted callsigns' locations to yours and alerts you when one becomes workable — they don't need to be on the air. Uses each call's band/mode preferences from your watchlist. Opt in under Alerts.
  • Live Reach map: a world map on the DXai page showing every station whose signals are reaching your area right now, colored by strength, with band filters — plus a pop-out full-screen view designed for a dedicated shack monitor (dark theme, auto-refreshing).
  • Typical Openings: DXai learns your QTH over time and shows when each band usually opens from your location, hour by hour in your local time — measured from real signals, not predictions. Appears after about a week of learning.

[v2.1.0] - 2026-07-05

Added

  • DXai Propagation Center (DXai v1.1.0) — a dedicated DXai page (new DXai link in the navbar) showing live, measured propagation from your station:
    • Band Conditions Now: every band graded for the last hour — open for SSB, open for CW, digital-only, or quiet — with the best directions from your QTH (N/NE/E/…) and live activity counts. Refreshes automatically.
    • Last 48 Hours: an hour-by-hour heatmap of band openings from your location, in your local time — see exactly when 17m opened yesterday and plan today around it.
    • Can I work…?: type any callsign and get the DXai verdict for your QTH, with a per-band breakdown.
    • Requires your grid square (Profile → Grid Square).
  • Wanted Callsigns page redesigned to match the rest of the site: cleaner status cards (Spotted / Wanted / Logged) with counts, a streamlined add-and-import card, and the most recent spot shown per call.

[v2.0.0] - 2026-07-05

DXping 2.0 — the DXai release. The propagation engine is significant enough to carry its own version, starting today at DXai v1.0.0; site and engine versions will move independently from here.

Added

  • DXai propagation intelligence (DXai v1.0.0): every spot on the dashboard now carries a DXai verdict — a live prediction of whether you can work that station from your QTH, on the mode it's operating. DXai continuously analyzes live on-air signal activity around the world and measures the real radio path between the spotted station and your location, as conditions change minute by minute.
    • Verdicts match the spot's mode: GOOD (strong path with headroom), OK (workable), WEAK (marginal — might squeak through), POOR (unlikely), or — (no data yet). An FT8 spot with a very strong path reads GOOD; an SSB spot over a marginal path reads POOR.
    • Works for CW and SSB operators too: the station doesn't need to be transmitting a digital mode — DXai can read the path itself and estimate your odds (estimated verdicts show a dashed outline).
    • On the dashboard: a DXai column in Recent Spots and a DXai line on each watchlist card with a plain-English verdict ("Good odds on FT8", "Unlikely on SSB").
    • In your alerts: wanted-call alerts on Telegram, Discord, email, and push now include the DXai verdict — know whether to run to the radio before you get up.
    • Requires a grid square on your profile (Profile → Grid Square).
  • DXai showcase on the landing page (index.php): new section explaining what DXai tells you, with a live-style spot card mockup and a DXai nav link.
  • Band filter on the dashboard: a new Band multi-select next to the mode filter. Both filters now apply to the Recent Spots table as well as the watchlist cards, and selections persist across the 30-second auto-refresh.
  • DXCC prefix data from Big CTY (admin_update_cty.php): entity/prefix resolution is now driven by AD1C's authoritative cty.dat with a one-click admin refresh. Fixes resolution of modern Russian series (R*, UB–UI), UK secondary licenses, and dozens of alternate prefixes; deleted entities are preserved.

    [v1.27.0] - 2026-07-01

Added

  • 13 Colonies Special Event map (colonies.php, Maps → 13 Colonies Event): public Leaflet map showing all 13 colony stations (K2A–K2M) and bonus stations (WM3PEN, GB13COL, TM13COL) with live spot status color-coded green/orange/grey. Logged-in users see worked status from their personal log with a progress counter (X/13 colonies, X/3 bonus). Recent spots sidebar and a per-station table with last-heard frequency, mode, and age.
  • K4C self-spot page (k4c_selfspot.php): public password-protected page for WC2026 K4C station operators to self-spot with frequency, mode, and operator callsign. Submits the spot to the local database (updates the WC2026 map) and simultaneously pushes a DX command to the AR-Cluster (k1ttt.net:7373) so the spot propagates to the wider DX cluster network. Rate-limited to one spot per callsign per 15 minutes.
  • Admin K4C self-spot log: admin dashboard shows the last 50 self-spots from the K4C page including station, operator callsign, frequency, mode, cluster push success/fail, and IP address (IP visible to admin only).
  • Who's Online panel on admin dashboard: shows all users whose last_login heartbeat is within the last 10 minutes — green dot, username, and time-since-active.
  • Navbar activity heartbeat (navbar.php): every page load updates the user's last_login timestamp at most once per 5 minutes via a session-rate-limited DB write, so the Who's Online panel reflects real browsing activity across all pages — not just login time.
  • Grid square warning banner on dashboard: users with no grid square set see an amber alert above the watchlist with a "Set Grid Square" button linking to their profile. Beam bearings on spots require a grid square to be meaningful.

[v1.26.0] - 2026-07-01

Added

  • QRZ Logbook Import (Log → QRZ Import, qrz_import.php): import your full QRZ.com logbook directly from the API using your stored API key. A two-phase chunked process handles large logs without timeouts — Phase 1 downloads and parses the entire log (including UTF-8 normalisation for accented name and QTH fields), Phase 2 inserts 200 records at a time so no single request exceeds the server time limit.
  • QRZ API key storage: your QRZ API key is stored per-user on your profile page and used automatically by all QRZ features. Only the last 4 characters are ever shown in the browser.
  • QRZ ADIF export diagnostic: a "Download raw ADIF from QRZ" button lets you save exactly what the API is returning — useful for comparing record counts against a direct QRZ log export.
  • Import anomaly log — QRZ and LoTW: after every import, a collapsible log lists every Duplicate, Unmatched, Invalid or Failed record with callsign, date, band, mode and the reason it was flagged. Duplicate rows have a Compare button that expands a side-by-side before/after table with amber highlighting on every differing field.
  • LoTW import anomaly log: LoTW Upload and LoTW Fetch now include the same badge-coded anomaly log, including Unmatched confirmations (LoTW record could not be paired with a QSO in your log).

Fixed

  • LoTW qso_qsl=yes not marking QSOs as confirmed: QSOs where the ADIF line carried qso_qsl=yes but no explicit LOTW_QSL_RCVD=Y field were being treated as unconfirmed during sync. Either flag now marks the contact as LoTW confirmed.

Changed

  • Navbar Log dropdown: logbook links are now grouped under a single Log menu — My Log, QSL Cards, Import ADIF, LoTW Import, and QRZ Import. Admin users also see the Log & Spot Manager in the same dropdown.
  • Duplicate import wording: "N already in your log" changed to "N duplicate skipped" to clarify the record may be a pre-existing QSO or a QRZ-side duplicate.

[v1.25.0] - 2026-06-27

Added

  • Live satellite tracker (amsat_map.php): click Track on any satellite to follow its real-time position; a live chip shows the satellite name, current elevation, and a countdown to next AOS or time until LOS. Orbit track and ground footprint update every second.
  • Background tracks toggle: checkbox in the map toolbar hides all pre-computed orbit lines so only the live bird being tracked is visible — reduces clutter when monitoring a single pass. The QTH home marker is always pinned regardless of toggle state.
  • QTH home marker on satellite map: your grid square is now shown as a 🏠 emoji with a grid label overlay, pinned on a permanent layer that is never hidden by the background tracks toggle.
  • AOS / LOS timing in live chip: the live tracking chip now shows "AOS in Xm Ys" when a pass is approaching, or "LOS in Xm Ys" during a pass, so you know exactly when to get on the radio.
  • Satellite section on landing page (index.php): new feature block alongside POTA and DX Alerts, with feature bullets (pass predictions, heard/not-heard status, pre-pass alerts, real-time live tracking) and an interactive mockup showing the Track button, Live badge, and live countdown chip.
  • Frosted-glass landing page navbar: scrolled state darkens the background; nav links show a sliding brand-colour underline on hover/active; active section updates automatically as the user scrolls via IntersectionObserver; CTA buttons paired as "Get started" + icon.
  • Telegram satellite commands: /passes — upcoming satellite passes; /sats — watchlist with next pass per bird; /watchsat <SAT> / /unwatchsat <SAT> — add or remove a satellite from your watchlist. Help text updated with a Satellites section.
  • Admin Telegram bot setup page (admin_telegram_setup.php): one-click registration of all 18 bot commands with Telegram's setMyCommands API, webhook configuration, and live status check — no manual curl needed.
  • 🏠 QTH home marker on POTA map (pota_map.php): unified style with the satellite map — emoji with grid label overlay and a crimson brand-colour label.
  • "Property of ISP Ventures LLC" added to the site footer copyright line.
  • Centered footer: footer content is now centred across all pages.

Fixed

  • Satellite cron scripts crashing (cron/amsat_alerts.php, cron/amsat_digest.php): scripts failed with Failed opening required 'config/db.php' — replaced direct config include with Auth::getInstance()->getConnection(), matching the pattern used by all other cron scripts. Confirmed clean at 02:27 UTC.
  • admin_cron_logs.php broken layout: page loaded local asset paths that don't exist on the server; updated to CDN Bootstrap + Font Awesome + /css/dxping.css, matching the rest of the admin pages.

[v1.24.0] - 2026-06-26

Added

  • Satellite Pass Finder (Maps → Satellite Passes, amsat_map.php): enter your Maidenhead grid square to see every upcoming amateur satellite pass for the next 24 hours. Pass predictions run client-side via SGP4 orbital mechanics (satellite.js) using live TLEs from CelesTrak, with minimum elevation control and automatic grid pre-fill from your account. Each satellite shows live crowd-sourced heard/not-heard status from the AMSAT Status API.
  • Satellite signal reports modal: click any satellite name to see a per-mode breakdown of recent signal reports (voice, CW, data, FM), the TLE epoch age, NORAD catalog number, and a direct link to the AMSAT status page for that bird.
  • Satellite alert system (Tools → Satellite Alerts, amsat_alerts.php): configure pre-pass alerts (sent via email, Telegram, Discord, or browser push) with selectable advance notice (5–60 min) and minimum elevation threshold. Optionally restrict alerts to recently-heard satellites only. Per-bird watchlist — leave it empty to receive alerts for all satellites.
  • Daily satellite digest: opt-in digest email/push listing every upcoming pass in the next 24 hours with heard/not-heard status, sent at a configurable UTC hour. Delivered via the same alert channels as other DXping alerts.
  • Pass storage for alerts: the browser automatically computes a 48-hour/5° pass window after each satellite search and stores it server-side, enabling the cron-based alert system without requiring a PHP SGP4 port.

Satellite features requested and tested by Jim KJ4GJB and Tony KD4UDU — 73!

[v1.23.0] - 2026-06-25

Added

  • CTY.DAT prefix table (Admin → CTY Prefix Table): daily cron at 04:00 UTC downloads Big CTY.DAT from country-files.com and regenerates prefix.csv with all 340 DXCC entities and 6,000+ prefix rows (up from 334 entities). Backups the previous file before replacing. Admin status page shows last update time, entity count, and a manual "Run now" trigger.
  • DXCC unresolved callsigns: the DXCC Progress page now shows a collapsible list of callsigns in your log that could not be matched to an entity, making it easy to identify gaps in prefix coverage.
  • Feature request notifications: admin receives an email when a user submits a new request; users receive an email when their request status changes.
  • Admin notes on feature requests: admins can post notes on any request directly from the admin page. Notes are saved with a timestamp, emailed to the user immediately, and visible on the user's My Requests page.
  • My Requests page (/my_requests.php): users can view all their submitted requests with current status badge and any admin notes. Linked from the Tools menu and from the submission confirmation.
  • Completed status for feature requests: marking a request as "Completed ✓" removes it from the active list. A collapsible "Completed Requests" section at the bottom of the admin page archives them for future reference.
  • Submit Request / My Requests added to the navbar Tools dropdown for all logged-in users.
  • CTY Prefix Table added to the navbar Admin dropdown.

Fixed

  • Double-loaded Bootstrap JS on the Feature Requests page causing broken dropdown menus.

[v1.22.0] - 2026-06-17

Added

  • WANTED cards on dashboard: watchlist callsigns that are not currently spotted now appear as grey WANTED cards in the main watchlist grid alongside active SPOTTED cards — the old separate "Wanted Calls" sidebar has been removed.
  • Per-callsign band filtering on watchlist: each watchlist entry now stores preferred bands (160m–2m). Edit via the watchlist page; empty = all bands. Filters apply on both the dashboard and alert emails/push notifications.
  • Mode colour badges: FT8, FT4, CW, SSB, RTTY, JS8, and WSPR each render as a distinct colour pill in watchlist cards and the Recent Spots table.

Changed

  • Dashboard full redesign: replaced the Bootstrap card grid + sidebar layout with a full-width modern design — compact status pill strip (LIVE · CLUSTER · RBN · POTA · N1MM · ALERTS with pulse animation), auto-fill watchlist card grid with age-coloured left edge (green < 20 min, yellow < 1 hr, red older), redesigned Recent Spots table, and a compact bottom strip for Wanted DXCC and Awards links.
  • Navbar modernisation: inline CSS now uses CSS custom properties (--brand, --olive, --surface, --line) for consistent theming; dropdown menus have rounded corners and subtle shadows; container width aligned to 1440 px to match dashboard.
  • Footer modernisation: replaced Bootstrap utility classes with CSS-variable-driven styling; compact single-line flex layout; dark mode adapts automatically.
  • Navy/cyan dark mode theme: replaced generic grey dark mode with a DXping-branded navy/cyan palette (--page-bg: #0b1827, --surface: #0d2035, accent #00d4ff). Theme toggle button in navbar persists preference via localStorage with anti-flash script.
  • WC2026 map: initial zoom increased by one level after fitBounds.

Fixed

  • WC2026 duplicate spots: deduplication now uses a (spotter | frequency) key with no time window, eliminating duplicates from simultaneous cluster + RBN sources and repeated spots from the same spotter minutes apart. Fix applied to both the initial page load and the AJAX refresh endpoint.
  • Mode filter dropdown double arrow: removed redundant Bootstrap form-select class from the bootstrap-select element, eliminating the duplicate chevron.
  • bootstrap-select dark mode: mode filter button, open/focus state, search box, and list items now all render in the navy/cyan dark theme.
  • CSS cache busting: dxping.css link now appends ?v=<filemtime> so browsers automatically fetch updated styles on each server upload without requiring a hard refresh.

[v1.21.0] - 2026-06-17

Added

  • WAZ Tracker (Awards → WAZ Tracker): tracks progress toward the CQ Worked All Zones award across all 40 CQ zones. Same Mixed/Phone/CW/Digital per-mode tabs as other trackers, with Bronze (15), Silver (30) and Gold (40) tier badges. Interactive Leaflet map marks worked vs. unworked zones. Zone lookup uses the existing prefix.csv data via dxcc_cqzone_from_callsign().
  • Log editing: each row in My Logbook now has an Edit button that opens a modal to correct callsign, date/time, band, mode, RST, exchange, and my callsign. Changes are saved instantly without leaving the page.
  • Log deletion: each row also has a Delete button (with confirmation) to remove individual QSOs.

Fixed

  • ADIF import duplicate detection: importing the same ADIF file twice (or overlapping files) no longer creates duplicate QSOs. A "Skip duplicate QSOs" checkbox (on by default) checks for existing records with the same call, band, mode and timestamp before inserting. Skipped count is reported in the success message.

[v1.20.0] - 2026-06-16

Added

  • WANA Tracker (Awards → WANA Tracker): tracks progress toward the Worked All North America award across all 50 WANA entities. Shows Mixed/Phone/CW/Digital tabs with Bronze (30 entities), Silver (40), and Gold (50) tier badges. Interactive Leaflet map marks worked vs. unworked entities. Per-entity detail shows callsigns, bands, and date of first contact.
  • Canadaward Tracker (Awards → Canadaward): tracks progress toward the RAC Canadaward across all 13 Canadian provinces and territories. Same per-mode tab layout; award badge appears when all 13 are worked. Includes VE1 district ambiguity note and rules summary (contacts after July 1 1977; VE0 and repeater contacts don't count).
  • Awards menu: navbar now has an Awards dropdown (trophy icon) grouping DXCC Progress, WANA Tracker, and Canadaward in one place. Awards links also appear in the right sidebar on the dashboard.
  • ADIF import for all users: the Import ADIF page is no longer admin-only — any logged-in user can import their own log. Admins retain the ability to import for any station callsign.
  • Upload size limit: raised server-side PHP upload limit to 64 MB (upload_max_filesize) via .htaccess to support large ADIF log files. Descriptive error messages now explain the specific upload failure (size exceeded, no file selected, partial upload, etc.).

[v1.19.0] - 2026-06-16

Added

  • Telegram POTA commands: four new bot commands for Parks On The Air — /pota lists all currently active activations; /pota US-1380 checks whether a specific park is active; /parks shows your watched parks with a live activity indicator; /watchpark REF and /unwatchpark REF add and remove parks from your watchlist directly from Telegram.
  • Registration profile fields: sign-up now collects first name, last name, city, and state/province. First and last name are required; location is optional.

Fixed

  • RBN listener was connected to a traditional DX cluster (dxc.nc7j.com) instead of the Reverse Beacon Network, causing duplicate spots. It now connects to telnet.reversebeacon.net:7000 and ingests genuine SDR skimmer spots tagged source = RBN.

[v1.18.0] - 2026-06-16

Added

  • Conventional page naming: the public landing page is now served at / (index.php) and the authenticated dashboard at dashboard.php, matching standard web conventions. All internal links, redirects, and the Telegram bot updated accordingly.
  • POTA section on the landing page: the public homepage now showcases the POTA live map, park watchlist, and park activation alerts with a live-map preview mockup.

[v1.17.0] - 2026-06-16

Added

  • POTA features on the landing page: POTA Live Map and POTA Park Alerts added to the feature grid on the public homepage.
  • Bot command autocomplete: all Telegram bot commands are now registered with the BotFather API so the / autocomplete menu shows the full command list with descriptions in chat.

[v1.16.0] - 2026-06-16

Added

  • POTA live map (Spots → POTA Live Map): all currently active park activations plotted worldwide using exact park coordinates from the POTA API — no QRZ lookup needed. Markers colored by band, popup shows activator, park name, frequency, mode, spotter, and expiry countdown. Filters by band and mode; auto-refreshes every 60 seconds.
  • POTA park watchlist (Wanted → POTA Parks): subscribe to specific parks from a searchable catalog of 50,000+ parks worldwide. Search by park name, reference (e.g. US-1380), or state/country.
  • POTA park alerts: enable "POTA park activations" in Alerts to receive Telegram or email push notifications the moment an activator is spotted at a park on your watchlist. Band and mode filters apply.
  • Admin dashboard now shows total POTA parks in catalog, new parks added on the last ingest run, new parks added this 7-day window, and a health row for the daily park ingest cron.
  • Daily cron (scripts/ingest_pota_parks.py) downloads and upserts the full POTA park catalog — runs at 04:00 UTC.

[v1.15.0] - 2026-06-16

Minor

  • New ARRL Sections map: all 71 ARRL/RAC sections rendered county-by-county on a U.S. map, with worked sections (detected from your logbook exchange fields) shaded green.
  • New Field Day map: same county-level section map filtered for Field Day exchange entries (class section format such as 4A NFL), with Field Day branding.

[v1.14.0] - 2026-06-16

Minor

  • New Maps section (Tools → Maps) gathering award/contest progress maps, starting with the Florida QSO Party map.
  • Worked All States (WAS) map: shades the 50 U.S. states by which you've worked, read from your logged exchange.
  • Help page now documents the per-account logbook, station callsigns, the "worked" status, and the dashboard receiver-status indicators.

[v1.13.0] - 2026-06-16

Minor

  • Per-user logbooks: N1MM and ADIF-imported QSOs are now attributed to the account that owns the logging station callsign, so your "worked" status and DXCC Progress reflect only your contacts instead of every account's.
  • New "Station callsigns" section on the Profile page to claim the calls you operate. Each callsign can belong to only one account, and you can't claim another user's account callsign or one already claimed — so no one can capture your logs. Claiming a call also attributes your earlier unattributed QSOs from it.
  • The N1MM log receiver now runs as a managed service with auto-restart and a liveness heartbeat. Its status shows on the dashboard beside the DXCluster receiver and in the admin System Health panel.
  • Admin tool to reassign "unattributed" logs (QSOs whose station callsign matched no account, e.g. a mistyped call) to the correct user.

[v1.12.0] - 2026-06-16

Minor

  • Admin Site Overview panel on the Admin page: total users (with admin/verified counts), new users in the last 7 days, total / 24h / last-hour spot counts, distinct callsigns, receiver online status with last-spot age, logged QSOs, wanted calls and DXCC, alert-enabled users, and QRZ cache size.
  • Streamlined the top navigation: links grouped into Wanted, Spots, and Tools menus, Profile/Logout moved into an account menu showing your callsign, and a single compact UTC clock.
  • Admin System Health panel: at-a-glance status for the database, the DXCluster receiver, and the background jobs (alert dispatcher, QRZ cache warmer, offline watchdog), each reporting when it last ran via a heartbeat.

Patch

  • Fixed navbar dropdowns (Admin, Tools) not opening on the Manage Users, Watchlist, and Request Feature pages — they were loading Bootstrap a second time, which double-bound the menu toggles.
  • Fixed the Changelog page showing raw text instead of formatted entries (it now renders Markdown without needing an extra library).

[v1.11.0] - 2026-06-16

Minor

  • Live updates: the dashboard and All Spots now refresh the spot lists in place every 30 seconds — no more full-page reload, flash, or scroll jump (falls back to a normal reload if the live fetch fails).
  • Mobile-friendly All Spots: on small screens the table reflows into tidy stacked cards.
  • New Profile page to set your Maidenhead grid square.
  • New Spot Map (Tools menu): recent spots plotted on a world map using exact locations from QRZ.com (cached), with distance and beam heading from your grid. Calls not yet looked up show at their CQ-zone centre until resolved.
  • Background QRZ cache warmer (cron) keeps locations pre-resolved so the map loads fully placed, typically within a few minutes of a callsign first being spotted.
  • New Propagation page (Tools menu): live solar-terrestrial data and band conditions.
  • New DXCC Progress page (Tools menu): worked vs. needed entities from the logbook, plus needed entities currently on the air.

[v1.10.0] - 2026-06-15

Minor

  • Refreshed the look across the logged-in site: consistent cards and tables, brand colors and the logo in the navbar, active-page highlighting, and a cleaner dark mode (now driven by a shared stylesheet).
  • Spotted Calls now use a clean card with a colored age "spine" (green / yellow / red) instead of a full-color fill, and are sorted most-recently-spotted first.
  • Table rows now highlight on hover and align numbers neatly; spot modes show as colored pills.

Patch

  • Fixed compact Spotted Calls cards always showing a red background regardless of spot age.

[v1.9.0] - 2026-06-15

Minor

  • Added real-time alerts: get notified by Telegram or email the moment one of your wanted callsigns (or DXCC entities) is spotted, even when DXping isn't open.
  • Alert filters for band and mode, quiet hours, and a per-call repeat limit.
  • New Alerts settings page with test buttons for each channel.
  • One-click Telegram connection — link your account from the Alerts page without copying any IDs.
  • Interactive Telegram bot: query the server and manage your watchlist from chat (/status, /dx, /spots, /wanted, /dxcc, /add, /remove, /mute, /unmute).

[v1.8.0] - 2026-06-15

Minor

  • New public landing page that introduces DXping and its features to visitors.
  • Redesigned login and registration pages with a cleaner, more welcoming layout.
  • Applied a round of security hardening across the site.
  • Improved listener reliability (DX cluster, RBN, POTA, and N1MM): the listeners now reconnect automatically after a database or network interruption, so spots are no longer missed during an outage.
  • Spots now record their source (which cluster/feed they came from), shown as a new column on the All Spots page.
  • Log files now rotate automatically to keep them from growing without bound.
  • Added an automatic offline/recovery alert for the spot receiver.

Patch

  • Restored the per-spot entry in the listener log for easier live monitoring.

[v1.7.3] - 2025-07-10

Patch

  • Added a Extended or Compact view for the Spotted Calls box. (Feature request by WB4EHG)
  • Fixed background color in Dark Mode on the Recent Spots page and the footer

[v1.7.2] - 2025-07-09

Patch

  • Added the CQ Zone to the DXCC Column (Feature request by WB4EHG)

[v1.7.1] - 2025-07-09

Patch

  • Added Day/Night mode
  • Added admin features to view wanted calls/DXCC

[v1.7.0] - 2025-07-09

Minor

  • Added DXCC watchlist

[v1.6.0] - 2025-07-09

Minor

  • Added DXCC entity to the spots page and the wanted list
  • Added the ability to add a spot to the wanted list from the All Spots page.

[v1.5.0] - 2025-07-08

Minor

  • Added graphs to the spot total per hour and per call

[v1.4.0] - 2025-07-07

Minor

  • Added mode filtering to the dashboard

[v1.3.0] - 2025-07-07

Minor

  • Added notification system

[v1.2.0] - 2025-07-06

Minor

  • Added Bugfix/Feature reporting

[v1.1.1] - 2025-07-06

Patch

  • Added Icons to the navbar.

[v1.0.0] - 2025-07-06

Added

  • Initial versioning and changelog system.
  • DXpeditions page that scrapes NG3K and allows adding calls to wanted list.
  • Footer with copyright and contact email on all pages.
  • Navbar with DXpeditions, All Spots, Admin, and other navigation.
  • Callsign group import feature for wanted calls.
  • Notification system for new spots.
  • Auto-refresh and highlight for new spots on index and all spots pages.
  • Filtering, pagination, and mode guessing for all spots page.
  • Admin management for callsign groups.

[v1.1.0] - 2025-07-06

Added

  • Auto-Increment of versioning
  • Help Page