Releases: dpipstudio/botwave
v1.1.4-chione
What Changed
--configflag: All three components now accept--config <path>to load a config file into the environment at startup. See the wiki.BACKEND_PATH:BWCUSTOM_PATHis deprecated in favor ofBACKEND_PATH. A warning will be shown if the old variable is still set.- Frequency range:
BACKEND_MIN_FREQandBACKEND_MAX_FREQlet 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 onbw-client, added it tobw-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-chioneCommit 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
What Changed
statuscommand: Shows broadcast state (file, frequency, uptime) on the local client. On the server, you can query clients withstatus allor a specific target.- Flexible ALSA config:
ALSA_INTERFACE,ALSA_CARD, andALSA_DEVICEenv vars now individually control the ALSA device string. - Custom command wildcards: Use
#!/*/<command>in.cmdfiles to target both server and local client with one script. - Protocol version: Bumped to
2.1.2by adding theSTATUScommand.
Updating to this version
To update to this version, run the following command:
bw-update --to v1.1.3-ariaCommit 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
What Changed
- Custom commands: You can now define your own commands directly from the handlers directory. Any
.cmdfile with the right shebang will show up inhelpand run like a built-in command. Wiki page - WebSocket join/leave handlers: New
l_onwsjoinandl_onwsleavehandler 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_INTERPRETERenvironment 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-stellataCommit 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
What Changed
- New
updatecommand: The server-onlyupdatecommand allows you to update the target clients without requiring to manually log into the machine. - Remote CLI (
--rc): The deprecated--wsflag 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-malosmaCommit 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
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: Nsummaries afterstart,stop,lf, andstreamoperations instead of just "token sent". - Protocol version: Protocol
v2.1.0comes with this release. It requires the client to send back atransaction_idkwarg 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--wsflag 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. TheREMOTE_CMD_WELCOMEenvironment 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-moreliaCommit 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)
v1.0.14-psydrax
What Changed
- Environment variables: BotWave now supports configuration via environment variables and
.envfiles for ports, paths, RDS defaults, ALSA settings, and more. See the wiki for the full list. getandsetcommands: Inspect and change environment variables at runtime directly from the BotWave shell, no restart needed.- Bug fixes: Minor bug fixes across the program.
Additional notes
Warning
This is the last release supporting the local list command. It is replaced with the lf one, and will be completely removed in 1.1.0.
Updating to this version
To update to this version, run the following command:
bw-update --to v1.0.14-psydraxCommit history
- =--- v1.0.14-psydrax ---= (
87e3d8d) - Merge pull request #47 from dpipstudio/env-tweaks (
0b76fa5) - shared,version.py: standardized the UA (
bf19fcf) - server: getint (
5270d29) - shared,converter.py: using environ (
c162c8e) - shared,sstv.py: using environ (
20cf396) - local: :* (
0efb492) - server: broadcast environ defaults (
36d4022) - local: broadcast environ defaults (
df42536) - shared,tls.py: CERT_VALIDITY_DAYS and TLS_KEY_SIZE (
54a07fc) - multiple: normalized dirs to have a / at the end (
7a8b369) - shared,http.py: all uppercase, please (
ccdd118) - shared,logger.py: selfing (
bff119e) - shared,logger.py: REDACT_IPV4 environment can be set to true to replace ipv4 occurrences with [REDACTED] in logs (
bcad1d7) - client: is_server = false for tipengine (
b517c1f) - server: starting websocket server after main server started (
af7e550) - server,local: updated wscmdh (
3f71d51) - shared,ws_cmd.py: more environ customization (
76b1692) - bin,bw-nandl: added get and set commands (
e902a8e) - local: fixed arg parsing (
ecc24df) - server: fixed arg parsing (
aa70687) - server: interpolate uses the EnvManager now (
6b59446) - local: interpolate uses the EnvManager now (
e15a843) - shared: miscellaneous changes (
fd2aa60) - shared,env.py: using a greedy regex for stripping imutables (
7933b09) - doc,local.md: added env getsetters (
10a19c2) - local: getsetters for environ (
a7cb775) - local: basic environ implementation (
cf28db6) - shared,queue.py: using UPLOAD_DIR environ (
39ed5d0) - doc,server.md: added getsetters (
7aa0289) - server: getsetter commands for env vars (
3c037b9) - shared,env: fixed strip_immutable always returning false (
dcb7378) - shared,logger.py: added ENV log type (
91362ec) - shared,env.py: .get() can take get_immutability and return a tuple (
082d711) - shared,http.py: more environ (
2b145d5) - shared,ws_cmd.py: removed useless parameters (
1767397) - server: more environ and fixes (
789e8a3) - shared,ws_cmd.oy: using environ to get host infos (
e2fefae) - server: daemon fixes (
1973f9e) - server: using environ (
1a629af) - server,shared,socket.py: using environ (
b3d8a0a) - client,shared,socket.py: using environ (
b11297d) - server: changed BWHTTPFileServer implementation (
4d23c1a) - server: changed HandlerExecutor implementation (
126af09) - server,shared,logger.py: using PROMPT_TEXT environ if available (
b2a4e54) - shared,tls.py: using CERT_* environ if available (
d9039b9) - shared,syscheck.py: updated old (like, OLD) code. Also using BWCUSTOM_PATH if available (
7f057fb) - shared,logger.py: using PROMPT_TEXT from environ if available (
afd7388) - shared,http.py: BWHTTPFileServer uses environ if available (
444fcc5) - shared,handlers.py: using HANDLERS_DIR environ (
965a3ed) - shared,bw_custom.py: using BWCUSTOM_PATH environ if provided (
0eb6ce9) - shared,alsa.py: using ALSA_* environ vars if provided (
a1d2693) - client: better env handling with priorities (
bab871f) - shared,version.py: using VCHECK_UA env var for potential version checks (
5c84529) - client: simplified a string (
f5dd233) - shared,env.py: fixed get_bool type hint (
a1fb8ad) - assets,installation.json: added env.py to always files (
07fadbf) - server,client.py: Environ implementation (
47ed380) - shared,env.py: set now always converts to str (
2986a8a) - shared,env.py: get_bool returns false by default instead of none (
871a340) - shared,env.py: docstrings & immutability (
7b5144e) - shared,env.py: Basic environment manager configuration (
63922cc) - shared,handlers.py: not restoring old environ anymore, so we keep newly created keys (
23dd12b) - bin,bw-nandl: removed a coma (
07d12fb) - assets,installation.json: nobody saw that (
1af310c)
v1.0.13-ochna
What Changed
- BotWave will now warn you if another instance is already running, preventing potential broadcast conflicts
- Improved server shutdown handling to prevent event loop issues
- Fixed client f-string quote escaping
- Server startup error message now includes a direct link to the GitHub repo and better instructions
Updating to this version
To update to this version, run the following command:
bw-update --to v1.0.13-ochnaCommit history
- =--- v1.0.13-ochna ---= (
e9867f0) - Merge pull request #46 from dpipstudio/tips (
1b61a04) - server: restyled a bit the github url log (
b4a190d) - server: fixed eof stopping (
44c2268) - server: tips now are the first thing to execute to help debugging. Also edited the starting failure message to be more explicit (
4dacf5c) - shared,tips.py: removed filename on top of file to stay coherent (
2b771ac) - shared,tips.py: removed psutil dep (
e866983) - server: implemented tipengine (
959233e) - client: changed tips implementation (
5830e69) - local: changed tips implementation (
3311852) - shared,tips.py: added is_server args to constructor (
33ed47f) - client: implemented tipsengine (
c9c0999) - local: implemented tipsengine (
2749d53) - shared,tips.py: added tipsengine (
16c709d) - readme: switched togp domain (
dd86dfa) - client: fixed fstring issue on older python versions (
239f555) - Update installation.json for release v1.0.12-batesia (
09c843c)
v1.0.12-batesia
What Changed
- Handler context updates:
- The server handler context now includes
BW_SERVER_CONNECTED_CLIENTS, which contains the hostnames of all connected clients, separated by commas
- The server handler context now includes
- Local client commands:
- The
listcommand has been renamed tolfto avoid conflicts with the server - The
listcommand remains deprecated and will be removed in a future release
- The
Updating to this version
To update to this version, run the following command:
bw-update --to v1.0.12-batesiaCommit history
- =--- v1.0.12-batesia ---= (
15a728f) - scripts,install.sh: installer now creates /opt/BotWave/scripts/ for eventual shell scripts to be manually added (
93a0f08) - misc_doc,handlers.md: updated doc to include BW_SERVER_CONNECTED_CLIENTS (
a306ca2) - server: added BW_SERVER_CONNECTED_CLIENTS to context (
93adf41) - docs: updated docs (
8653e5a) - local: deprecated 'list', added 'lf' (
bfc387d) - readme: small layout change (
2c9bfe9) - readme: clearer setup notes and instructions (
67cc6e7) - installation: newer v1.0.11 commit sha (
7c54b77)
v1.0.11-redbud
This release was supposed to be for valentines day, oops
What changed
- Handler context injection:
- Handlers now receive environment variables at execution time (
BW_CLIENT_HOSTNAME,BW_BROADCAST_FILE,BW_BROADCAST_FREQ, etc.) - Event-specific variables available where relevant (e.g. client info on
onconnect/ondisconnect, broadcast info ononstart/onstop) - Environment is fully restored after each handler execution
- Handlers now receive environment variables at execution time (
{VAR}interpolation in commands:- Commands inside handlers now support
{VAR}syntax, resolved against the current environment - Allows using injected context directly in BotWave commands, not just shell calls
- Commands inside handlers now support
- New
|pipe command:- Available on both server and local client
- Runs a shell command and feeds each line of its stdout back as a BotWave command
- Blocked from remote WebSocket execution for security
- Bug fixes:
- Fixed potential deadlock in server async command execution
- Server now exits cleanly with an error message if startup fails
- Misc:
- Install and update scripts now support the
-b,--brach <name>flag to pull from a specific branch - Updated docs for
handlers.md,local.md,server.md, andREADME.md
- Install and update scripts now support the
Related
The Main/Automate Your Setup has been updated to document dynamic handlers using env variables.
Related PRs: #42, #43
Updating to this version
To update to this version, run the following command:
bw-update --to v1.0.11-redbudCommit history
- releases: fixed typo, v1.0.11 should work now (
d01a3ad) - the fuck happened here (
0e84de0) - Update installation.json for release END (
28dc176) - =-- v1.0.11-redbud --= (
a806509) - Merge pull request #43 from dpipstudio/enhanced-handlers (
843657c) - shared,ws_cmd: not allowing command interpolation nor pipes (
dba5572) - local: added {env_var} replacement in command execution (
dd8aba8) - server: added {env_var} replacment in commands (
f172765) - readme: small change in advanced usage (
e3b147c) - local: passing process env sooner (
4896efd) - server: passing process env from higher level (
3d3e526) - server: message if it fails to start (
21dec04) - nandl: added pipe command (
6f7e3d2) - fixed syntax (
ea79ef4) - readme: updated installer options (
73ca195) - scripts: updated installer help (yet again) (
f75ec97) - scripts: updated help (
90e09c8) - 1.3.1 (
22c7d76) - scripts: logging the used branch (
290ec97) - scripts: fixed broken install (
e34ec8b) - scripts: added --branch / -b to pull things from a specific branch (
b2e4ca1) - Merge pull request #42 from kipricka/enhanced-handlers (
4effaa0) - doc: handlers more doc (
66fffce) - docs: updated server and local docs (
c45c3ed) - server,local: added pipe (|) command (
0a9b320) - server: preventing crash on windows (
0a891ab) - local: enhanced currently existing handlers environment (
2e21f36) - local: giving context to handlers (
2a0c1d8) - server: passing context to handlers (
9f3b85f) - shared: handlers are now supporting context that will be injected into environment variables (
9b01f05) - local: removed _execute_handle that is not used (
e591a82) - Update installation.json for release v1.0.10-umtiza (
a838428)
v1.0.10-umtiza
What changed:
- Audio format conversion:
- Added automatic conversion of common audio/video formats to WAV
- Supports MP3, AAC, M4A, OGG, FLAC, OPUS, MP4, MKV, and many more formats
- Conversion happens automatically during upload and download operations
- Bug fixes:
- Fixed imports in client.py
- Improved error handling in file operations
- Better exception catching in history file loading
- Misc:
- Updated
--talkflag description for clarity
- Updated
Updating to this version
To update to this version, run the following command:
bw-update --to v1.0.10-umtizaCommit history
- =--- v1.0.10-umtiza ---= (
ede437c) - fixed releases formatting (
f3d323f) - local: using BotWaveDownloads/{PROTOCOL_VERSION} (+https://github.com/dpipstudio/botwave/) as downloads UA (
9a430c5) - server,local: avoiding file permissions errors on history file (
98554bf) - Merge pull request #41 from kipricka/mp3-convert (
2dfb222) - Update installation.json for release v1.0.9-axinaea (
5722694) - server: added conversion support to sync (
ec01ec1) - server: added conversion support to 'upload' command (
4253987) - client: better syntax (
7646fda) - client: DOWNLOAD_URL is now able to download and convert files that arent .wav (
4756bc0) - installation: add converter.py (
b56c541) - local: minor log tweak (
e7db21d) - local: using talk arg everywhere for convert_wav calls (
ac89d26) - shared: not rejecting wav files in convert_wav, just returning early (
b997bae) - local: added support for other file types download with 'dl' command (
eac6c52) - local: updated help about the --talk flag (
0fbfc07) - local,shred: minor changes and fixes (
9ade1fd) - local: using converter for the 'upload' command (
b2056d4) - shared: added converter.py file for file conversions (
22d43c9)