Skip to content

Releases: dpipstudio/botwave

v1.1.8-kalmia

17 Jun 17:00

Choose a tag to compare

What Changed

  • Frequency defaults bug fix: DEFAULT_FREQ was being read as an integer, silently truncating decimal frequencies (e.g. 87.5 became 87). Now read as a float in start, live, sstv, and morse on both local client and server.
  • ALLOW_PROTO_MISMATCH: New server-side env var to bypass the protocol version mismatch check and let outdated/newer clients connect anyway.
  • Remote command interpolation: {VAR} interpolation in remote shell commands is now available, gated behind the new INTERPOLATE_REMOTE env var (off by default).
  • Cloud tunnel install refactor: The bore.pub tunnel setup in cloud-install.sh now has a better plugin structure to match the standards. A new s_onexit handler also stops the tunnels when the server shuts down.
  • Misc doc fixes: Fixed a lot of inconsistent stuff across different doc files.

Updating to this version

To update to this version, run the following command:

bw-update --to v1.1.8-kalmia
Commit history
  • =--- v1.1.8-kalmia ---= (699656b)
  • shared,ws_cmd.py: added INTERPOLATE_REMOTE env var (0361833)
  • Merge pull request #76 from dpipstudio/float-env (0e9ea48)
  • server,local: DEFAULT_FREQ now supports float values (d11a4af)
  • shared,env.py: added get_float method (d3a7233)
  • Merge pull request #75 from dpipstudio/cloud-install (9baf9d1)
  • misc_doc,cloud-install.sh: fixed more stuff (50fb311)
  • misc_doc,cloud-install.sh: fixed typo (321cf53)
  • misc_doc,cloud_tunnels: updated the cloud install script to support the newer automation architecture (395f1f5)
  • Merge pull request #74 from dpipstudio/proto-mismatch (881e845)
  • server: specify our protocol version in warning messages (3905a94)
  • server: added ALLOW_PROTO_MISMATCH to bypass strict protocol versioning restrictions (6858ec7)
  • Merge pull request #73 from dpipstudio/fix-docs (4740b89)
  • docs: updated obsolete stuff (629210c)
  • docs: fully moved websocket.md to GitHub Wiki (1d6dbbb)
  • docs: fully moved handlers.md to GitHub Wiki (30dc6b4)
  • docs: uniformed docs format and cleaned up errors (0076865)
  • shared,ws_cmd.py: fixed f-string error on older python versions (594e73e)
  • bin,bw-nandl: update documentation url (518d86c)
  • Update installation.json for release v1.1.7-dyera (e8b93f3)

v1.1.7-dyera

06 Jun 22:15

Choose a tag to compare

What Changed

  • Multi-distro install support: The install script now auto-detects your package manager (apt, dnf, or pacman) and installs the right dependencies. Fedora and Arch are now supported out of the box.
  • Resource monitor: BotWave now warns you when CPU or RAM usage gets high during a broadcast. Configurable via RESOURCE_POLL_INTERVAL, RESOURCE_WARN_COOLDOWN, RESOURCE_CPU_THRESHOLD, and RESOURCE_RAM_THRESHOLD.
  • l_onexit / s_onexit handlers: New handler events that fire when the local client or server shuts down.
  • Bug fixes: Broadcasting state is now only set after a confirmed successful start. live command RT/PI argument indices were off and have been corrected. Commands now consistently emit an END marker on all exit paths, including errors when given a transaction ID.

Updating to this version

To update to this version, run the following command:

bw-update --to v1.1.7-dyera
Commit history
  • =--- v1.1.7-dyera ---= (de068f8)
  • docs: updated handlers docs (ac07521)
  • local: implemented s_onexit handlers (3fba9eb)
  • server: implemented s_onexit handlers (257676b)
  • local: fixed #72 (c394dab)
  • Merge pull request #71 from dpipstudio/ressource-warn (072c5ae)
  • shared,tips.py: only monitoring resources on clients (fb472e9)
  • assets,installation.json: added psutil dep (df04ae8)
  • client: implemented tips.py resource monitoring (0acabff)
  • shared,tips.py: implemented experimental resources monitoring (0a34aa0)
  • shared,ws_cmd.py: remote command log doesn't include the transaction_id anymore (e52df95)
  • Merge pull request #70 from dpipstudio/end-marker (e690a37)
  • server: fixed double end (00e84eb)
  • local: fixed bug where environment var wasn't talked for account (1ed1b96)
  • local: implemented Log.end() (5415af1)
  • server: fixed some edge cases where Log.end() wasnt called (5e008c6)
  • server: integrated ENDtransasction_id=asd (eb13dc2)
  • shared,logger.py: added Log.end() to tell programs when a command output is fully ended (a58b21e)
  • Merge pull request #69 from dpipstudio/multi-platform (e4788f9)
  • docs: linux systems -> debian-based (ac741cf)
  • scripts,install.sh: broaden the install script to support dnf and pacman package managers (2c34ffc)
  • Update installation.json for release v1.1.6-neea (4ea126d)

v1.1.6-neea

03 Jun 20:31

Choose a tag to compare

What Changed

  • transaction_id support: Commands sent over the remote shell can now carry a transaction_id=<value> tag. BotWave echoes it back on every log line produced by that command, making it easy to correlate responses and filter out ambient log noise. See the wiki for usage examples and integration patterns.
  • BW_TRANSACTION_ID handler variable: The current transaction ID is now exposed to handler scripts as a BW_TRANSACTION_ID environment variable (empty string if not set).
  • Remote output isolation: Log output from a remote shell command is now sent back only to the client that ran it, instead of being blasted to every connected client. This behavior is on by default and can be disabled with ISOLATE_REMOTE=false. This does NOT affect STDOUT and eventual file logs.
  • Docs: New Integrating custom backends wiki page covering how to build and register your own backend binary.

Warning

This update may break scripts relying on the full shared log stream. Either update your scripts, or set ISOLATE_REMOTE=false.

Updating to this version

To update to this version, run the following command:

bw-update --to v1.1.6-neea
Commit history
  • =--- v1.1.6-neea ---= (7ed07f2)
  • Merge pull request #68 from dpipstudio/wsshutup (4d917da)
  • shared,ws_cmd.py: integrated remote cmd output isolation (ffb8bbd)
  • shared,logger.py: integrated ws isolation (c72022e)
  • Merge pull request #67 from dpipstudio/transac-log (bee787d)
  • docs: updated handlers doc to mention BW_TRANSACTION_ID (ace0c2b)
  • server,local: added BW_TRANSACTION_ID var to handlers context (50bed1e)
  • server: added support for transaction_id elements in commands and logs (02c0721)
  • local: added support for transaction_id elements in commands and logs (0db2ed0)
  • shared,logger.py: added support for transaction ids (dfbb3a3)
  • Update installation.json for release v1.1.5-erycibe-rev-1 (d27d4ed)

v1.1.5-erycibe-rev-1

02 Jun 08:44

Choose a tag to compare

What Changed

  • Bumped PiWave dependency to 2.1.14 to fix various functionalities.

Updating to this version

To update to this version, run the following command:

bw-update --to v1.1.5-erycibe-rev-1
Commit history
  • =--- v1.1.5-erycibe-rev-1 ---= (612ce1e)
  • assets,installation.json: bumped piwave to 2.1.14 (2b33a7a)
  • Update installation.json for release v1.1.5-erycibe (af5216f)

v1.1.5-erycibe

06 May 08:52

Choose a tag to compare

What Changed

  • Log timestamps & file output: New LOG_TIME, LOG_TIME_FORMAT, and LOG_FILE env vars let you add timestamps to logs and save them to a file.
  • BWCUSTOM_PATH removed: The deprecated BWCUSTOM_PATH variable has been fully dropped. Use BACKEND_PATH.
  • broadcast / live command fix: RT and PI arguments are now parsed correctly. Previously, RT values with spaces would break the PI code.
  • exit over WebSocket: Typing exit in a remote session now properly closes the connection instead of being blocked.
  • WebSocket disconnect handling: Unexpected client disconnections no longer throw an error.
  • Miscellaneous: dlogger dependency bump to 1.0.5.

Breaking Changes

Caution

BWCUSTOM_PATH has been removed. Please migrate to BACKEND_PATH.

Updating to this version

To update to this version, run the following command:

bw-update --to v1.1.5-erycibe
Commit history
  • =--- v1.1.5-erycibe ---= (c5b3d67)
  • docs: added Awesome Selfhosted to Botwave mentions (c00eeec)
  • Merge pull request #65 from dpipstudio/logger-update (fb4f949)
  • shared,logger.py: added environment variables to customize dlogger settings (05f1e52)
  • assets,installation.json: bumped dlogger version to 1.0.5 (9ae0d4d)
  • shared,ws_cmd.py: cleaner output when client leave the server (642f1a3)
  • shared,ws_cmd.py: handling 'exit' command to close the websocket connection server-side (46a171b)
  • local: fixed odd parsing for the "live" command (0a0b58f)
  • local: fixed odd parsing for the "start" command (2ea5605)
  • .github: updated the version field of the bug report template (cd5c541)
  • shared,syscheck.py: removed the usage of BWCUSTOM_PATH (f19fd30)
  • shared,bw_custom.py: removed the usage of BWCUSTOM_PATH (733ac47)
  • Update installation.json for release v1.1.4-chione (50e6598)

v1.1.4-chione

21 Apr 20:39

Choose a tag to compare

What Changed

  • --config flag: All three components now accept --config <path> to load a config file into the environment at startup. See the wiki.
  • BACKEND_PATH: BWCUSTOM_PATH is deprecated in favor of BACKEND_PATH. A warning will be shown if the old variable is still set.
  • Frequency range: BACKEND_MIN_FREQ and BACKEND_MAX_FREQ let you configure your backend's allowed frequency range.
  • BACKEND_BYPASS_CACHE: Skips the cached backend path and forces a fresh search.
  • DOWNLOAD_UA: Overrides the user agent used when downloading files (was already there on bw-client, added it to bw-local).
  • Miscellaneous: Internal env file parser cleanup and a piwave dependency bump.

Breaking Changes

Warning

BWCUSTOM_PATH is deprecated and will be removed in a future release. Please migrate to BACKEND_PATH.

Updating to this version

To update to this version, run the following command:

bw-update --to v1.1.4-chione
Commit history
  • =--- v1.1.4-chione ---= (6f81bc7)
  • Merge pull request #64 from dpipstudio/piwave-2.1.13 (926a281)
  • docs: updated readme and other specific documentations (3c334bc)
  • client: added --config flag (5e53f02)
  • local: added --config flag (fb0eeed)
  • server: added --config flag (7f07ca0)
  • shared,env.py: fixed some bugs (4562848)
  • client: supporting correctly custom backends (bdda819)
  • local: supporting correctly custom backends (7feb0a8)
  • shared,syscheck.py: deprecated bwcustom_path and using backend_bypass_cache (7465c49)
  • shared,bw_custom.py: removed support for bwcustom_path in self.name (56d15a6)
  • updated piwave to 2.1.13 (0d90708)
  • client: using piwave's 2.1.13 new force_search and unsafe constructor parameters (8c8e0ee)
  • local: using piwave's 2.1.13 new force_search and unsafe constructor parameters (0bb8f68)
  • shared,bw_custom.py: deprecated BWCUSTOM_PATH to introduce a new BACKEND_PATH, additionally dynamically updates the backend name based on the same var. (ba6c7f4)
  • shared,bw_custom.py: added BWCUSTOM_MIN_FREQ and BWCUSTOM_MAX_FREQ env vars usage (4694e33)
  • local: using the "DOWNLOAD_UA" env variable (bc2f28e)
  • Update installation.json for release v1.1.3-aria (4eb3715)

v1.1.3-aria

12 Apr 21:14

Choose a tag to compare

What Changed

  • status command: Shows broadcast state (file, frequency, uptime) on the local client. On the server, you can query clients with status all or a specific target.
  • Flexible ALSA config: ALSA_INTERFACE, ALSA_CARD, and ALSA_DEVICE env vars now individually control the ALSA device string.
  • Custom command wildcards: Use #!/*/<command> in .cmd files to target both server and local client with one script.
  • Protocol version: Bumped to 2.1.2 by adding the STATUS command.

Updating to this version

To update to this version, run the following command:

bw-update --to v1.1.3-aria
Commit history
  • =--- v1.1.3-aria ---= (0c2f5f9)
  • docs: updated server and local docs (d325cfb)
  • server: added a newline (8d19ba7)
  • server: added the 'status' command (ea7362c)
  • local: updated display (485d193)
  • client: fixed f-string (f8080ee)
  • client: handling the STATUS command (12fb836)
  • shared,protocol.py: Protocol 2.1.2, adds the STATUS command (7ab9d9d)
  • local: fixed f-string error on status command (4dbd01c)
  • local: added status command (d6c7470)
  • updated readme cloud pages (10f3919)
  • Merge pull request #60 from dpipstudio/alsa-customization (d1a89df)
  • server,local: Updated alsa logs (7ade7e0)
  • shared,alsa.py: added ALSA_INTERFACE and ALSA_DEVICE env vars (c64de8a)
  • Merge pull request #59 from dpipstudio/ccmd-fix (236e9bd)
  • shared,custom_cmds.py: Allowing the use of wildcards (*) instead of 'local' or 'server' (cee260e)
  • nobody saw that (tm) (5e59aa3)

v1.1.2-stellata

02 Apr 09:53

Choose a tag to compare

What Changed

  • Custom commands: You can now define your own commands directly from the handlers directory. Any .cmd file with the right shebang will show up in help and run like a built-in command. Wiki page
  • WebSocket join/leave handlers: New l_onwsjoin and l_onwsleave handler events fire when a remote client connects or disconnects from the local client's WebSocket.
  • Command arguments in handlers: Handler scripts now receive BW_ARGV{n} environment variables containing each argument of the last executed command.
  • Custom shell interpreter: A new CMD_INTERPRETER environment variable lets you specify which shell to use when running shell and pipe commands (< and |).
  • IP redaction fix: The IP address redaction is softer to catch edge cases (like the clients IDs).

Updating to this version

To update to this version, run the following command:

bw-update --to v1.1.2-stellata
Commit history
  • =--- v1.1.2-stellata ---= (4a50ab9)
  • Merge pull request #58 from dpipstudio/cmd-interpreter (4175cbc)
  • local: supporting the CMD_INTERPRETER env key for '<' and '|' commands (016e1e5)
  • local: fixed pipe command execution (363ea0c)
  • server: small fix (d082ecc)
  • server: better shell output managment (c0a5cc8)
  • server: supporting the CMD_INTERPRETER env key for '<' and '|' commands (b6de4da)
  • readme: added nightrunners in the mentions section (4848196)
  • Merge pull request #57 from dpipstudio/custom-cmd (33ccd80)
  • local: implemented custom commands (30e49b5)
  • shared,custom_cmds.py: stop parsing help after the last # (85a329a)
  • server: implemented custom commands (71c3b0b)
  • shared,custom_cmds.py: supporting help indentation now (56bf13c)
  • shared,custom_cmds.py: basic implementation of custom commands (d58aac3)
  • Merge pull request #56 from dpipstudio/env_hdl_args (ec3accc)
  • docs: updated handlers.md (9530b2b)
  • local: added missing onwsjoin/leave handlers (c0eaee0)
  • server: bw_argv -> BW_ARGV (9d0c9ad)
  • server: added BW_ARGV{n} environment key to handlers execution (0655784)
  • local: added BW_ARGV{n} environment key to handlers execution (31a1ec3)
  • .github,bug-report.yaml: updated the os examples (dd4c62a)
  • .github,other-issue.md: removed the "Other issue" form, just fill a blank issue (eb01d36)
  • .github,feature-request.yml: switched to a yaml form for features requests (a084c62)
  • .github,bug-report.yaml: switched to a yaml form for bug reports (5c46925)
  • hopefully fixed #55 (66a1d65)
  • shared,logger.py: be more flexible on ipv4 redacting (fe7e32a)
  • Update installation.json for release v1.1.1-malosma (fa4523b)

v1.1.1-malosma

28 Mar 16:51

Choose a tag to compare

What Changed

  • New update command: The server-only update command allows you to update the target clients without requiring to manually log into the machine.
  • Remote CLI (--rc): The deprecated --ws flag has been fully removed from both the server and local client. If you were still using it, switch to --rc.
  • Protocol version: Bumped to 2.1.1.
  • Miscellaneous: Minor comment typo fixes.

Breaking Changes

Caution

The --ws flag has been removed. --rc is now the only supported option.

Updating to this version

To update to this version, run the following command:

bw-update --to v1.1.1-malosma
Commit history
  • =--- v1.1.1-malosma ---= (c52952c)
  • assets,latest.ver.txt: bumped to 2.1.1 (f391f12)
  • docs: updated server.md (9806deb)
  • server,local: removed --ws flag (was deprecated) (3a8df0d)
  • Merge pull request #54 from dpipstudio/updt-cmd (2132111)
  • shared,protocol.py: updated to 2.1.1 (ceaa086)
  • server: better logging (56d872e)
  • client: better stopping management (cd92c40)
  • server: added the 'update' command (f1b7426)
  • client: supporting the UPDATE command (30777bf)
  • shared,protocol.py: added the UPDATE command (0706029)
  • docs: updated websocket.md (87ea8d2)
  • Merge pull request #53 from dpipstudio/argparse (175ab91)
  • client: giving "bw-client" as a program name to argparse (c33176f)
  • local: giving "bw-local" as a program name to argparse (12d3055)
  • server: giving "bw-server" as a program name to argparse (6eb7da5)
  • docs: updated shown program help (c334d46)
  • docs: tiny fixes (73c88d1)
  • docs: --ws -> --rc (cbf5c11)
  • Update installation.json for release v1.1.0-morelia (898a97e)

v1.1.0-morelia

08 Mar 17:48

Choose a tag to compare

What Changed

  • ProtoManager: Commands sent to clients now wait for a confirmed response before reporting success or failure. You'll see clearer Success: N, Failure: N summaries after start, stop, lf, and stream operations instead of just "token sent".
  • Protocol version: Protocol v2.1.0 comes with this release. It requires the client to send back a transaction_id kwarg if provided.
  • Better auth feedback: If a client connects with a wrong or missing passkey, it now gets a proper error and disconnects cleanly instead of hanging (see #49).
  • Remote CLI (--rc): The --ws flag has been renamed to --rc. It still works but will print a deprecation warning. The authentication flow has also changed: instead of a JSON handshake, you'll now just be prompted for a password, making it usable from any WebSocket-capable tool. The REMOTE_CMD_WELCOME environment message has been added.
  • Bug fixes: Fixed a stream broadcast issue that could cause it to stall or crash due to event loop conflicts. Fixed auth failures not exiting the registration loop cleanly on the client side.
  • Miscellaneous: Additional minor fixes have also been implemented.

Breaking Changes

Caution

The following environment variables have been renamed. Your .env files and startup scripts will need to be updated:

Old New
WS_CMD_PORT REMOTE_CMD_PORT
WS_BLOCKED_CMD REMOTE_BLOCKED_CMD
ALLOW_WS_BLOCKED_COMMANDS_I_KNOW_WHAT_IM_DOING ALLOW_REMOTE_BLOCKED_COMMANDS_I_KNOW_WHAT_IM_DOING
The Advanced/Using environment variables wiki page has also been updated.

Additional Notes

Caution

The list command has been removed in this release. Use lf instead.

Note

The --ws flag is deprecated and will be removed in a future release. Please migrate to --rc.

Related

Updating to this version

To update to this version, run the following command:

bw-update --to v1.1.0-morelia
Commit history
  • =--- v1.1.0-morelia ---= (51ef0ed)
  • Merge pull request #52 from dpipstudio/remoteshell (ab878e6)
  • shared,ws_cmd.py: updated remote command message (63fbf01)
  • shared,ws_cmd.py: more logs (d23fbb1)
  • local: added --rc, and deprecated --ws (creates confusion) (94cb073)
  • shared,ws_cmd.py: renamed env variables, and added a possible welcome message (REMOTE_CMD_WELCOME) (3642eb8)
  • server: added --rc, and deprecated --ws (creates confusion) (569b672)
  • shared,ws_cmd: changed auth protocol for remote connections (edf2f80)
  • Merge pull request #51 from dpipstudio/patch (8ccbf21)
  • server,client: fixed #49 (17cbfd4)
  • server: updated github link (4014061)
  • server: replaced /tmp with tempfile.gettempdir() (370da83)
  • server: morse and sstv files will be in /tmp (c5473f3)
  • server: some fixes regarding files uploads (3797272)
  • server: fixed sync_files crashing (at least shouldve been fixed) (f4d54c6)
  • shared,http.py: more fixes (728537f)
  • shared,http.py: create_upload_token has a upload_dir param now (684ab33)
  • Merge pull request #50 from dpipstudio/transactions (cdd87ca)
  • server,client: multiple fixes again (d1cd5e0)
  • server,client: multiple fixes (3876325)
  • server: refactored to support protocol 2.1.0 (3f967b7)
  • client: refactored every communication to support protocol 2.1.0 (555dd4c)
  • client: this pmo (2dca0fe)
  • client: giving parsed to stop (f7474c0)
  • client: upgraded _handle_stop_broadcast to support protocol 2.1.0 (18b01fa)
  • client: fixed _handle_start_broadcast (fdf495b)
  • shared,protomanager: better handling of future (4c53c9b)
  • assets,installation.json: added protomanager.py (88c93f3)
  • client: (TEST) using protomanager for some operations (154f84b)
  • shared,protomanager.py: added 'reply' (a206d5b)
  • shared,protocol.py: protocol 2.0.1 (requires a transaction_id echo from the clients response) (a448c4e)
  • shared,protocol.py,protomanager.py: better protocol "api" implementation (cb4038a)
  • client: fixed stream managment (dda96e5)
  • http: fixed aiohttp timing out after 5m of streaming (b8ef199)
  • local: REMOVED 'list' command (9a4cf9d)
  • Merge pull request #48 from dpipstudio/client-stream-fix (50336d9)
  • client: fix multiple live issues (b98dd47)
  • Update installation.json for release v1.0.14-psydrax (13ef6af)