From 2791f855a73f2c4be7f687dce1954d7f1e5f7278 Mon Sep 17 00:00:00 2001 From: Ednunp <29843396+Ednunp@users.noreply.github.com> Date: Mon, 27 Jul 2026 12:55:48 +0100 Subject: [PATCH] Release prep v5.6: regen MANUAL.md from readme.html; gate skips Store-alias python Co-Authored-By: Claude Fable 5 --- MANUAL.md | 12 +++++++++--- run-tests.ps1 | 6 +++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/MANUAL.md b/MANUAL.md index 60479d5..013c4f7 100644 --- a/MANUAL.md +++ b/MANUAL.md @@ -334,7 +334,7 @@ Control| Shortcut| What it does **Peer details**| Alt+E| A read-only box describing whichever connected peer you're on in the list above. Arrow through it to read: their name, their machine name, their IP address, how long you've been connected, the link health and ping, what they're sending (how many devices, on WASAPI or ASIO, at what sample rate and codec), and whether they're receiving your audio. The device and WASAPI/ASIO detail only shows while you're actually receiving that peer. **Rename peer**| Alt+M or F2| Give the highlighted peer a friendly name of your choosing. It opens a box with the name and a **Clear custom name** button. The name sticks to that machine for good — across restarts, IP changes and networks — and shows everywhere that peer appears: the lists here, the volume, pan and EQ for peers tab, the status line and split-recording filenames. See below. **Discovered peers**| Alt+D| People RemSound has heard from in the last few seconds. Tick someone to connect to them. -**Remembered peers**| Alt+R| People you've connected to before, or added by address. This list is kept between sessions. Tick someone to reconnect. +**Remembered peers**| Alt+R| People you've connected to before, or added by address. This list is kept between sessions. Tick someone to reconnect. Press **Delete** on an entry to forget it. **Add peer by IP**| Alt+A| Opens a small box where you type an address or computer name. It adds that peer to the remembered list and connects. **Lock to these exact peer addresses**| Alt+L| When ticked, this profile uses only the exact addresses you set and never follows the other computer by name or switches to a different address — even if the address stops working. Off by default, saved with the profile. See Locking a profile to one exact address. **Connection status**| Alt+S| A read-only box of text that sums up everything happening right now — how long you've been connected, how many peers you have, how much sound is flowing each way, and the connection health of each peer. Open it to read the current connection status. @@ -419,7 +419,7 @@ When you choose _Send specific applications_ , two lists appear: List| What it holds ---|--- **Currently active applications (Alt+8)**| Every program making sound right now. Tick one and only that program's audio is captured and sent — its own private stream, separate from everything else on the machine. Tick several to send several. A program you've ticked that isn't running at the moment still shows here marked _(not running)_ , so you can always find it and untick it; it starts being sent again the instant it reopens. -**Remembered applications (Alt+9)**| Your saved “apps I send” address book — shared across all your profiles, like the remembered peers list. Tick a program here and it moves up to the active list the moment it's running (and is captured from its very first sound). Untick a program in either list and it drops back here. +**Remembered applications (Alt+9)**| Your saved “apps I send” address book — shared across all your profiles, like the remembered peers list. A program joins this book the moment you first _tick_ it in either list — that's the only way in, so after clearing the book it simply refills as you tick apps again. Tick a program here and it moves up to the active list the moment it's running (and is captured from its very first sound). Untick a program in either list and it drops back here. Press **Delete** on an entry to forget it, just like the remembered peers list. Because sending is by program _name_ , your choice survives that program being closed and reopened, or even the computer restarting. There is deliberately no “send everything” option in applications mode — if you want the whole machine's sound, that's what _Send whole audio devices_ is for. @@ -702,6 +702,8 @@ Where| What it does If you try to start sending or receiving on a profile that has no password yet, RemSound asks you to set one first (and offers to remember it on the profile so you don't type it again next time). Audio can't flow without a password — encryption is always on, there's no “off” switch. +**Passwords must be reasonably strong (new in 5.6).** The password is the only thing protecting your audio from someone who records your network traffic, so RemSound now refuses to stream on one that's easy to guess: at least 8 characters, and not a famously common password. If your existing password doesn't meet the rule, RemSound tells you the moment you try to stream and walks you through picking a better one — three unrelated words with a number, like `kettle9tiger42moon`, is easy to type and remember and very hard to guess. Set the _same_ new password on every machine you connect with. One honest note: the password is stored in the profile file in a recoverable form (so profiles can sync between your own machines) — anyone who can read your profiles folder can read the passwords, so treat that folder accordingly. + ### When passwords don't match If you connect to someone whose password is different from yours, RemSound shows a clear message — _“ You and [name] have different passwords, so no audio will pass between you”_ — so you know exactly what to fix. If the other person is on an older version of RemSound that can't encrypt, you'll be told they need to update. @@ -995,6 +997,8 @@ Use whatever key combinations you prefer (for example Ctrl+Shift+Up / Ctrl+Shift The feature is symmetric: both computers can both send and accept. If you set up hotkeys on both ends and tick “Accept remote volume commands” on both ends, either side can adjust the other's volume. There's no fixed “controller” and “controlled” computer. +**Security:** remote commands are locked with the profile password, the same way the audio is. A command only works when both machines share the password, so nobody on the network can fake one and mute your machine — important when the machine's sound is also your screen reader. Both ends need version 5.6 or newer for remote volume to work; a command from an older version is ignored (the log records it as rejected). + ### What it does not touch * The RemSound app-volume commands change RemSound's _receive volume slider_ on the target computer, not the Windows volume. So your peer can't accidentally turn down a video call or your screen reader with those. @@ -1124,6 +1128,8 @@ Setting| Shortcut| What it does **Then check every** (drop-down)| Alt+U| How often RemSound checks for a newer version in the background _after_ launch. Choices: _Never_ , _Every hour_ , _Every 6 hours_ , _Every 24 hours_. The default is _Every 24 hours_. Your choice is remembered between launches; if you set it to _Never_ and you've also unticked the startup check, the only way an update arrives is through the manual button below. **Check for updates now** (button)| Alt+N| Checks for a newer version straight away. If you're already up to date you get a small popup saying so. If there's a newer version, you get a confirmation dialog with the release notes and a Yes / No to install. The same button is in the Help menu (Alt+H, C). **Silently install updates when available** (checkbox)| Alt+I| When ticked, the background and startup checks install any available update without asking — RemSound downloads it, closes briefly, swaps the files, and reopens itself. Off by default. The startup check shows a brief notice first so you can see what's about to happen (see below). The _manual_ “Check for updates now” button always asks first, no matter how this checkbox is set. +**Only install updates within this time range** (checkbox)| Alt+T| When ticked, _automatic_ installs (the startup check and the background timer) only go ahead inside the daily time range you set below — so an update never closes RemSound and kills your sound while you're mid-session. If an update is found outside the range, RemSound notes it and quietly retries the moment the range opens. Off by default. The manual “Check for updates now” button ignores the range — if you ask by hand, you get it straight away. +**Start time** / **End time** (drop-downs)| Alt+A / Alt+D| The daily range for the checkbox above, in 15-minute steps from 00:00 to 23:45. They only light up when the range is enabled. The default is 01:00 to 06:00 — overnight. A range whose end is at or before its start runs past midnight: 22:00 to 06:00 covers late evening straight through to early morning. The start minute counts as inside the range; the end minute is outside it. **Show what's new after each update** (checkbox)| Alt+H| When ticked, the first time RemSound opens after an update has installed, it pops up the About box — which starts with the notes for the version you just got — so you can see what changed. Off by default. It only happens once per update, never on an ordinary restart, and never on a fresh install. ### The brief notice before a silent update installs @@ -1353,7 +1359,7 @@ It is deliberately limited: Everything lives in the **Service** menu on the menu bar: - 1. **Configure service profile …** — opens a small window with two tabs (Connectivity and Audio send) where you choose who to send to (plus a password) and what to send. On the Audio send tab, the first output choice is **Use Windows default audio device, follows Windows changes** — tick that to send whatever this machine is currently playing and keep following the Windows default if it later changes, rather than pinning one named card. (You can still pick specific devices, or a specific application, exactly as in the normal app.) There is no “send my audio” switch because the service always sends, and there is no audio-quality tab to fiddle with: the service always uses the settings that work best for live streaming (the Opus live-latency codec, small packets, locked to the audio clock), so it just sounds right. This is a separate profile from your normal ones and does not appear in the usual profile list. The **Additional options** button lets you turn the connect/disconnect sounds and the service's own log on or off. + 1. **Configure service profile …** — opens a small window with two tabs (Connectivity and Audio send) where you choose who to send to (plus a password) and what to send. On the Audio send tab, the first output choice is **Use Windows default audio device, follows Windows changes** — tick that to send whatever this machine is currently playing and keep following the Windows default if it later changes, rather than pinning one named card. (You can still pick specific devices, or a specific application, exactly as in the normal app.) There is no “send my audio” switch because the service always sends, and there is no audio-quality tab to fiddle with: the service always uses the settings that work best for live streaming (the Opus live-latency codec, small packets, locked to the audio clock), so it just sounds right. The service password follows the same strength rule as the app (from version 5.6): because the service runs in the background with no window, it can't ask you to strengthen a weak one — instead it simply won't stream, and RemSound warns you on its next launch (and when you save the service profile) so you know to change it here. This is a separate profile from your normal ones and does not appear in the usual profile list. The **Additional options** button holds two extras. First, a switch for the service's own log. Second, **Set the machine's volume when the service starts** : tick it, pick a volume percent, and the service unmutes the machine and sets its Windows volume to that level when it starts — handy for an unattended PC that booted muted or was left turned down, so it's audible again with nobody at the keyboard. The **When** list chooses between _Only the first start after each boot_ and _Every time the service starts_. **First start after boot is the recommended, set-and-forget choice** : it sets the volume once when the machine boots and never touches it again, so it won't fight you while you're using the machine. _Every time the service starts_ re-applies on every service start — useful if you deliberately restart the service to reset the volume, but be aware the service also restarts by itself for routine reasons (installing a RemSound update, saving the service profile), and this mode re-applies on those too. To stop it ever machine-gunning your volume, either mode skips a re-apply if the volume was already set within the last few minutes. Changes take effect from the service's next start, no reinstall needed. (The service itself never plays sounds — it streams silently in the background — so there are no cue options here.) 2. **Install service** — registers it with Windows so it starts automatically at every boot. Windows asks for administrator permission (one prompt). Do this once. Straight after installing, RemSound asks whether you'd like to **start it now** (otherwise it waits until the next reboot). (When you first install RemSound on a PC, the app installer also offers to set the service up — and start it — for you, so you may have done this already.) 3. **Start service** / **Stop service** — run or halt it now without waiting for a reboot. 4. **Uninstall service** — removes it entirely. diff --git a/run-tests.ps1 b/run-tests.ps1 index c294033..9885806 100644 --- a/run-tests.ps1 +++ b/run-tests.ps1 @@ -102,7 +102,11 @@ Write-Host "`nRelay logic tests (server\test_relay.py):" -ForegroundColor Cyan $py = $null foreach ($cand in @('py', 'python', 'python3')) { $cmd = Get-Command $cand -ErrorAction SilentlyContinue - if ($cmd) { $py = $cmd.Source; break } + # Skip the Windows Store execution-alias stubs (…\Microsoft\WindowsApps\py.exe|python.exe) — + # they don't run Python, they print "Python was not found" and exit non-zero, which would fail + # the relay-test step instead of running it. The real launcher (C:\Windows\py.exe) and a real + # install (…\Programs\Python\…) are never under WindowsApps. + if ($cmd -and $cmd.Source -notmatch 'WindowsApps') { $py = $cmd.Source; break } } if (-not $py) { Write-Host " [SKIP] no Python interpreter found (py/python/python3) - relay logic tests did not run" -ForegroundColor Yellow