Final test for version 3.6.0.
Now it is 'on air' in beta version and testing with Darko 9A7AOF
What will be on v. 3.6.0 and it is tested now:
- All variants of App.svelte have been merged in one file,
- A new QRSS Grabber implementation has been added.
- A new SSTV decoder implementation has been added.
- A new FAX decoder implementation has been added.
- A new PSK31 decoder implementation has been added.
- A new Olivia decoder implementation has been added.
- All frequency schedules have been fully updated. Inactive frequencies have been removed, current information has been added, and the transmitting station is now displayed in the decoder window.
- The frontend/GUI AGC system has been redesigned.
- A new simplified mobile interface has been added as a standalone `.svelte` component. It is available at: `http://your_server:PORT/mobile` This interface does not include a waterfall display, but it supports all operating modes, including RADE. The previous mobile interface remains available for users who require access to additional information and functionality. The `./recompile.sh` script has also been updated to support the new mobile GUI. The interface has been tested on both Android and iOS.
- The main GUI has been redesigned with more realistic 3D visual effects throughout the interface. All `.svelte` files have been updated accordingly.
- A **TUNE** button has been added to the **Users** tab, allowing the user to tune directly to another listener's frequency.
- The analog and digital S-meters have been calibrated to provide consistent signal-level readings. A signal generator was used during the calibration process.
- The decoders are no longer reached through the Bandwidth row, which has been removed. A **Decoders** button row now sits on the main panel, directly under the Modes selector — one button per decoder (FT8, FT4, FT2, CW, WSPR, FAX, SSTV, NAVTEX, RTTY) — while **RADEL** and **RADEU** sit beside the Modes selector itself and are repeated inside the Modes and Bands pop-ups. One press starts the decoder and opens its window; a second press stops it.
- The Admin Panel has a new **Graphs** page plotting CPU frequency, CPU load, CPU temperature and users online on one shared time axis, over **15 MIN / 1 HOUR / 4 HOURS / 12 HOURS / 24 HOURS**. Sampling runs every 2 seconds in memory only (nothing is written to disk) and is kept in two tiers — 1 hour at full 2-second resolution plus 24 hours of 30-second averages — so a full day stays readable instead of becoming ~43000 points. Hovering the plot draws a crosshair with all four values at that instant.
- The frontend now rebuilds in about **half the time**. `build-all.sh` used to build the same sources five times one after another, because the S-meter variant was written into `src/main.js` before each build and only one build could own that file at a time. The variant is now passed to Vite as a build-time value, so every build reads the same unmodified sources and they run **in parallel** — a full `build-all.sh`, including `/mobile` and the title/favicon pass, drops by about **50%**. Nothing changes in how you use `./recompile.sh`. The number of builds running at once defaults to 3, which keeps the CPU cool on a laptop; raise it with `PHANTOM_BUILD_JOBS=5 ./build-all.sh` if your machine has the cores and the cooling for it. The variant chosen for the site root (`/`) is now remembered in `frontend/variant.json` — previously that choice could be overwritten by `build-default.sh`, so selecting, for example, the Digital S-meter as default still served the analog page at `/`.
- Two new modes have been added to the **FSK / RTTY** decoder window: **PSK31** and **Olivia**. Both sit in the same window's Variant dropdown alongside the three existing FSK variants, and the panel adapts to whichever is selected — the shift, baud, framing, encoding and invert controls are hidden for the two new modes, which have no mark/space tone pair. PSK31 corrects its own tuning error over about ±25 Hz and reports the recovered carrier and the transmitter's IMD; Olivia offers the four common configurations (**32/1000, 16/500, 8/250, 16/1000**), searches blindly for synchronisation because the mode sends no preamble, and has a **Squelch** slider controlling how strong the error-correction match must be before text is printed.
- The Admin Panel's Spot Reporting page now keeps **two separate counters**. The **SPOTS UPLOADED PER DECODER** tiles (FT8 / FT4 / WSPR) count uploads **since the daemon last started**, with the decode count and queue depth under each; a decoder whose destination is switched off shows `reporting off` instead of a bare `0`. The number beside each **BANDS & MODES** checkbox is that band+mode's **all-time** upload total, stored in `autorun-totals.json` so it survives restarts — a leading dot (`·123`) means the slot has decoded but not yet uploaded.