mudlet/CI
Vadim Peretokin b2b23ece7c
fix: preloading a sound no longer plays it, and IRC settings stop losing your password (#9817)
#### Brief overview of PR changes/additions

- **Media**: a preload that has to fetch its file now keeps it without
playing it (#9783 - the same guard covers GMCP `Client.Media.Load`,
which preloads the same way), each `load*File()` stamps its own media
type so a load can only reach players of its own kind (#9784), and the
load/play errors name the function that was actually called instead of
always `loadMusicFile`/`playSoundFile` (#9785).
- **IRC**: `setIrcServer()` keeps a stored password it was not given -
an empty string still clears it - and takes an explicit `nil` for any
optional argument the way an omitted one is taken (#9786, #9787);
`getIrcConnectedHost()` returns the documented `true, host` pair instead
of dropping the boolean (#9788); `setIrcChannels()` drops a name
carrying whitespace or a comma rather than storing one channel that
reads back as two (#9789).
- Specs for six of the seven ship with them; the fixture server answers
a GET below `/media` for a `.wav` with generated silence, so a preload
spec has a real file to fetch. `getIrcConnectedHost()`'s success path
needs a client connected far enough for the server's `RPL_YOURHOST`,
which this suite deliberately never opens, so that one was checked with
temporary instrumentation (before: 1 value, the host name; after: `true`
plus the host name) rather than left to a spec that could not reach it.

#### Motivation for adding to Mudlet

All seven were found while writing the IRC and media specs in #9772 and
filed from there. The two with teeth: a preload occupies a player and
reports itself as playing, and a script that adjusts the IRC server
destroys the saved password as a side effect.

#### Other info (issues closed, discussion etc)

Keeping an unmentioned password means it now survives a change of server
too, which the spec pins; `setConfig("ircPassword", "")` and the empty
string both clear it. No `mmcp*` code or Networking_spec MMCP region is
touched, so #9744 stays clear.

**Test case:** `lua loadSoundFile({name = "x.wav", url =
"http://127.0.0.1:PORT"})` - after `sysDownloadDone` the file is in the
profile's media directory and `getPlayingSounds()` is empty, while
`playSoundFile()` with the same url still plays.

Closes #9783
Closes #9784
Closes #9785
Closes #9786
Closes #9787
Closes #9788
Closes #9789

Assisted-by: Claude:claude-opus-5
2026-08-12 20:31:43 +02:00
..
http-fixtures infrastructure: mock TTS engine and local HTTP server for tests (#9529) 2026-07-29 19:35:56 +02:00
after_success.sh Infrastructure: remove travis. prefix from CI files (#8375) 2026-01-09 10:21:04 +01:00
assemble-release-checksums.sh fix: Windows auto-update failing on a release binary with no checksum (#9617) 2026-08-03 12:30:14 +02:00
before_install.sh Infrastructure: remove travis. prefix from CI files (#8375) 2026-01-09 10:21:04 +01:00
build-mudlet-for-windows.sh infrastructure: fix Windows CI losing the per-user luarocks tree (#9752) 2026-08-10 07:20:00 +02:00
check-mpackage-sync.lua improve: ship every default package as an mpackage (#9626) 2026-08-04 10:18:48 +02:00
check-release-tag.sh infrastructure: reject a release tag that does not match APP_VERSION (#9701) 2026-08-07 06:14:11 +02:00
deploy-mudlet-for-windows.sh infrastructure: PTBs shipping without all platforms' installers (#9389) 2026-07-13 20:15:13 +02:00
discord-ipc-fixture.py infrastructure: Discord effect specs against a fake Discord IPC server (#9631) 2026-08-04 21:53:50 +02:00
generate-changelog.lua fix: changelog rendering in PTB update dialog (#9182) 2026-04-12 17:57:11 +02:00
http-fixture-server.py fix: preloading a sound no longer plays it, and IRC settings stop losing your password (#9817) 2026-08-12 20:31:43 +02:00
install.sh Infrastructure: remove travis. prefix from CI files (#8375) 2026-01-09 10:21:04 +01:00
linux.after_success.sh infrastructure: PTBs shipping without all platforms' installers (#9389) 2026-07-13 20:15:13 +02:00
linux.install.sh Infrastructure: remove travis. prefix from CI files (#8375) 2026-01-09 10:21:04 +01:00
lua-5.1.5-so.patch Infrastructure: add flatpak support (#6494) 2024-01-29 22:11:49 +01:00
mmcp-peer.py infrastructure: MMCP effect specs against a scripted chat peer (#9629) 2026-08-05 06:50:27 +02:00
org.mudlet.mudlet.yml add lpeg parsing library (#9212) 2026-04-23 21:14:41 +02:00
osx.after_success.sh infrastructure: PTBs shipping without all platforms' installers (#9389) 2026-07-13 20:15:13 +02:00
osx.before_install.sh Infrastructure: remove travis. prefix from CI files (#8375) 2026-01-09 10:21:04 +01:00
osx.install.sh Infrastructure: update edbee-lib submodule & use system oniguruma if present (#9156) 2026-04-06 16:28:46 +01:00
package-mudlet-for-windows.sh Infra: Migrate to clang64 msys2 environment for Windows builds (#9064) 2026-03-18 08:50:39 +01:00
prepare-release-assets.sh fix: Windows auto-update failing on a release binary with no checksum (#9617) 2026-08-03 12:30:14 +02:00
register-windows-release.sh infrastructure: fix CI bugs in PTB registration, macOS updater linking, and portable ZIP upload (#9154) 2026-04-05 13:14:18 +02:00
send_debug_files_to_sentry.sh Fix: Windows crash reports now show the actual cause (#9370) 2026-07-14 12:28:46 +00:00
set-build-info.sh Infrastructure: remove travis. prefix from CI files (#8375) 2026-01-09 10:21:04 +01:00
setup-windows-sdk.sh infrastructure: keep the HTTP fixtures byte-exact, harden the Windows step 2026-08-02 20:12:10 +02:00
update-autocompletion.lua fix: Lua local variable declaration leaks into global (#7853) 2025-05-25 14:15:09 +02:00
validate-deployment-for-windows.sh infrastructure: reject a release tag that does not match APP_VERSION (#9701) 2026-08-07 06:14:11 +02:00
validate_deployment.sh infrastructure: reject a release tag that does not match APP_VERSION (#9701) 2026-08-07 06:14:11 +02:00
verify-release-checksums.sh fix: Windows auto-update failing on a release binary with no checksum (#9617) 2026-08-03 12:30:14 +02:00