Repository navigation
chore(deps): bump actions/checkout from 5 to 7 - #4933
Merged
Merged
Conversation
dgibbs64
enabled auto-merge
July 19, 2026 13:08
dgibbs64
approved these changes
Jul 19, 2026
dgibbs64
left a comment
Member
There was a problem hiding this comment.
Trivial/low-risk change, approving for merge queue.
dgibbs64
added this pull request to the merge queue
Jul 19, 2026
github-merge-queue
Bot
removed this pull request from the merge queue due to no response for status checks
Jul 19, 2026
* feat(tf2c): add Team Fortress 2 Classified server (#4898) * Release v26.1.0 * fix(alert_slack): add missing closing brace on section object The 'section' block containing 'fields' and 'accessory' was missing its closing '}' before EOF, producing malformed JSON and breaking all Slack alerts silently (jq -c . would fail on the payload). Also add missing ntfy alert settings to tf2cserver _default.cfg for consistency with other server configs. * fix: address review feedback - core_dl.sh: use array assignment for steamcmdcommand instead of read -r -a to avoid word-splitting on paths - fix_st.sh: correct module header typo (fix_ts.sh -> fix_st.sh) - command_skeleton.sh: fix grammar 'Creates an copy' -> 'Creates a copy' - serverlist-validate-game-icons.sh: anchor grep to start-of-line and require trailing comma to prevent false positives (e.g. 'tf' matching 'tf2' entries) - cs2server/_default.cfg: remove duplicate ntfy alert settings block * fix(vints): assign remotebuild instead of unused remotebuildversion The API version lookup was setting remotebuildversion but all subsequent jq queries used ${remotebuild}, which was never populated. This caused 'Unable to get remote build' on every install/update. * fix(xnt): unset exitbypass after command_stop.sh in fn_update_localbuild * fix(ci): resolve super-linter failures - Set DEFAULT_BRANCH to current branch to fix 'master not found' error - Use fetch-depth: 0 so GITHUB_BEFORE_SHA can be resolved - Set update_etl.sh executable bit (BASH_EXEC) - Fix .codespellrc tab indentation (EDITORCONFIG) - Add .gitleaks.toml allowlist for GA4 Measurement Protocol API secret (GITLEAKS) - Fix .markdown-lint.yml: disable MD030/MD013/MD033/MD041/MD051 to match existing repo style (MARKDOWN) * chore(ci): upgrade webfactory/ssh-agent from v0.9.0 to v0.10.0 v0.10.0 upgrades from Node.js 20 to Node.js 24, resolving the deprecation warning ahead of the June 2026 forced migration. * fix(steamcmd): add libtinfo.so.5 symlink fix for readline warning (#4899) * fix(steamcmd): add libtinfo.so.5 symlink fix for readline warning On distros shipping libtinfo.so.6 but not libtinfo.so.5 (Ubuntu 22.04+, Debian 12+), SteamCMD prints: WARNING: Failed to load 32-bit libtinfo.so.5 or libncurses.so.5. Please install (lib32tinfo5 / ncurses-libs.i686 / equivalent) to enable readline. lib32tinfo5 does not exist on Ubuntu 24.04. Creating a user-space symlink inside the steamcmd directory resolves the warning without requiring root or a missing package. * fix(steamcmd): address Copilot review feedback on libtinfo symlink fix - Iterate over all candidate steamcmd dirs (HOME/.steam/steamcmd, steamcmddir, HOME/.local/share/Steam/steamcmd) matching the pattern used for steamclient.so fixes elsewhere in the module - Replace '! -f && ! -L' guard with '! -e' so broken/dangling symlinks are also repaired rather than silently skipped - Add mkdir -p before ln in case the directory does not exist yet - Capture exitcode=$? after ln so fn_fix_msg_end reports failures --------- Co-authored-by: LinuxGSM <dev@linuxgsm.com> * feat(newserver): Military Conflict: Vietnam Add support for the Military Conflict: Vietnam dedicated game server. Supersedes #4594 (original WIP PR from @knoxed — completing the implementation). Changes: - Added mcvserver default configuration - Added mcv to serverlist and all distro CSV files - Added install_config handler for mcvserver - Added dependency info for all distros - Added game icons - Fixed CI workflow issues Co-authored-by: Knoxed <1338733+knoxed@users.noreply.github.com> * fix: support legacy game servers on older Ubuntu/Debian runners (#4903) * fix(workflows): support legacy game servers on older Ubuntu/Debian runners Multiple game servers have glibc compatibility requirements that prevent them from running on Ubuntu 24.04: - bfv, bf1942: Require Ubuntu <= 22.04 or Debian <= 12 (glibc 2.31) - btl, onset: Require Ubuntu <= 20.04 or Debian <= 11 (glibc 2.31) Changes: - Add runner field to details-check matrix generation - Map legacy servers to appropriate ubuntu-XX.04 LTS runners - Modern servers continue on ubuntu-latest (24.04) - Update details-check.yml to use dynamic runner from matrix This ensures all server tests pass in CI without breaking modern server testing on current GitHub Actions runners. * fix(workflows): run details-check on PRs and normalize ref resolution Details Check was not running for PR #4903 because the workflow only triggered on push to develop/workflow_dispatch. Also, pull_request refs (refs/pull/*) are not valid raw-content refs for GitHub downloads. Changes: - Trigger Details Check on pull_request to develop - Add LGSM_REF env resolved to PR head SHA or branch ref name - Use LGSM_REF for linuxgsm.sh download and LGSM_GITHUBBRANCH usage - Use LGSM_REF in matrix generation when fetching serverlist.csv This ensures legacy server jobs (bfv, bf1942, btl, onset) are included and executed during PR validation. * fix(workflows): run update-check on PRs and normalize ref resolution Apply the same PR-safe workflow behavior used in details-check: - Trigger update-check on pull_request to develop - Resolve LGSM_REF to PR head SHA or branch ref name - Use LGSM_REF for linuxgsm.sh download and LGSM_GITHUBBRANCH calls This ensures update-check validates PR changes instead of only running on develop pushes. * fix(check_deps): avoid false Debian version check on Ubuntu Ubuntu reports ID_LIKE=debian, which caused Debian upper-version checks to run on Ubuntu and incorrectly fail legacy titles on Ubuntu 22.04.x. Use distroid==debian for Debian limits in legacy compatibility guards so: - bf1942/bfv pass on Ubuntu 22.04.x as intended - btl/onset limits still apply correctly - Debian limits still apply on Debian only * fix(workflows): add PR trigger to version-check; replace archived action in docker trigger version-check.yml: - Add pull_request trigger targeting develop so version format is validated on PRs before merge trigger-docker-build.yml: - Replace archived convictional/trigger-workflow-and-wait@v1.6.5 with native gh CLI approach (trigger + watch run ID) - Uses GH_TOKEN env var with PERSONAL_ACCESS_TOKEN secret - gh workflow run dispatches the workflow; gh run watch polls for completion and exits non-zero on failure, preserving job dependencies * fix(workflows): use timestamp filter to reliably identify triggered run ID Using --limit 1 to find the run ID is a race condition if another run of the same workflow starts concurrently. Capture a timestamp before dispatching and pass --created >=${before} to gh run list so we always select the run we just triggered. * remove pr check * chore(deps): bump dessant/lock-threads from 5 to 6 (#4864) Bumps [dessant/lock-threads](https://github.com/dessant/lock-threads) from 5 to 6. - [Release notes](https://github.com/dessant/lock-threads/releases) - [Changelog](https://github.com/dessant/lock-threads/blob/main/CHANGELOG.md) - [Commits](dessant/lock-threads@v5...v6) --- updated-dependencies: - dependency-name: dessant/lock-threads dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> * papermc: add OpenJDK-25 (headless) dependency Dev builds of papermc will not work on older jre, albeit it's still in alpha/beta, some time in the future it will be the stable build. I have not noticed any issues running the stable build with jre-25. * fix(pmc): use openjdk-25-jre instead of headless variant, update vpmc to java 25 * feat(deps): update Java deps to openjdk-25-jre and add Ubuntu 26.04 support (#4908) - ubuntu-24.04: update pz, rw, wmc to openjdk-25-jre - debian-13: update vpmc to openjdk-25-jre, fix wmc typo (openjdk21-jre -> openjdk-25-jre) - add ubuntu-26.04.csv with all Java deps on openjdk-25-jre * chore: synced file(s) with dgibbs64/repo-sync (#4904) * chore: synced local '.github/' with remote 'general/.github/' * chore: synced local './' with remote 'bash/' --------- Co-authored-by: unknown <unknown@example.com> * fix(jbep3): add distro deps entries and game icon * feat(bb): add BrainBread server update functionality (#4912) * feat(bb): add BrainBread server update functionality * Implemented `update_bb.sh` to handle updates for BrainBread servers. * Integrated new update checks in `command_check_update.sh` and `command_update.sh`. * Updated `install_server_files.sh` to include BrainBread server installation logic. Co-authored-by: Copilot <copilot@github.com> * feat(bb): enhance BrainBread update process * Updated `fn_update_dl` to use `remotebuildhash` for file integrity. * Added handling for missing `remotebuildhash` to default to "nohash". * Included `update_steamcmd.sh` call to ensure both Steam app and GitHub package updates are performed. Co-authored-by: Copilot <copilot@github.com> * fix(steamcmd): ensure core HL1 files are present after appid 90 update * Added checks to verify the presence of core HL1 files after updating appid 90. * If files are missing, an update is forced and errors are logged. * Exits the script if files are still missing after the retry. * fix(steamcmd): update error messages for GoldSrc engine * Changed appid 90 references to GoldSrc for clarity. * Updated error messages to reflect the correct engine context. * Ensures users are informed about missing core HL1 files after GoldSrc updates. Co-authored-by: Copilot <copilot@github.com> * feat(serverlist): add Military Conflict: Vietnam server entry * Introduced new server entry for `Military Conflict: Vietnam` in `serverlist.csv`. * Enhances the variety of game servers available for users. --------- Co-authored-by: Copilot <copilot@github.com> * fix(deps): update .NET runtime version for Vintage Story (#4913) * Changed `dotnet-runtime-8.0` to `dotnet-runtime-10.0` in dependency lists for Ubuntu and Debian. * Enhanced the `check_deps.sh` script to dynamically check for the required .NET runtime version. * Added a warning for users on older distributions regarding potential missing .NET runtimes. * feat(newserver): Jabroni Brawl: Episode 3 (#4702) * Added jbep3server * fix(jbep3): add distro deps entries and game icon * fix(jbep3): bootstrap config from server.sample.cfg * chore(prettier): format code --------- Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> Co-authored-by: dgibbs64 <dgibbs64@users.noreply.github.com> * chore: add AI issue triage workflow and structured-field label rules (#4915) - Add AI triage workflow that flags low-quality issues and requests missing info - Add sync-game-labels script and workflow to maintain game labels from serverlist - Add structured label rules for severity, reproducibility, priority, and scope - Update labeler workflow to support both issues and PRs with dedicated config - Add PR review guidance instructions for maintainers * chore: update issue templates, PR template, and CoC (#4914) - bug_report: add expected/actual behavior fields, script name, pre-check checkbox, required steps to reproduce, and AI triage metadata (severity, reproducibility, regression, affects-latest) - feature_request: add priority field, problem statement, scope/impact, alternatives considered; make command optional; remove irrelevant bug-specific triage fields - server_request: add dedicated server checkbox, official docs and Linux binary proof fields; fix CoC placeholder URL; remove irrelevant bug/feature triage fields - config.yml: add private security reporting contact link - pull_request_template: add testing, risk/rollback, breaking changes, and documentation impact sections - CODE_OF_CONDUCT: upgrade from Contributor Covenant v2.1 to v3.0; fill reporting placeholders with GitHub advisory and Discord links * fix: use is-sponsor-label-action v2 (v3 does not exist) The v3 release does not exist for JasonEtco/is-sponsor-label-action. Use v2 which is the latest stable release. The Node.js 24 compatibility is handled by the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 environment variable. * fix: remove AI triage workflow The GitHub Models API requires specialized authentication that is not available through secrets.GITHUB_TOKEN. The workflow consistently fails with 401 Unauthorized. The rule-based label automation (labeler.yml) continues to function correctly and provides automated labeling based on structured template fields. * Revert "fix: remove AI triage workflow" This reverts commit a183369. * docs: clarify GitHub Models availability in AI triage workflow Add comments explaining that GitHub Models access may not be available in all environments and that 401 (Unauthorized) errors are expected and handled gracefully. The workflow will skip AI triage silently but continue processing the issue through other automation. * fix(ai-triage): grant models permission to GITHUB_TOKEN * fix(ai-triage): use GitHub Models REST inference endpoint * chore(actions): tidy workflows and script layout * chore(actions): tidy workflows and script layout * fix: Update Debian 13 dependencies and add to issue templates (#4916) - Replace libncursesw5 with libncursesw6 (removed from Debian 13) - Replace libxml2-utils with libxml2 (removed from Debian 13) - Add Debian 13 to bug report and feature request distro options Fixes #4847: libncursesw5 and libxml2-utils do not exist on Debian 13 * fix: Correct CSV file path in update-lgsm command (#4917) The distro CSV file was being fetched with an absolute path instead of a repository-relative path, causing malformed URLs like /master//home/user/lgsm/data/debian-12.csv Changed fn_fetch_file_github first parameter from "${datadir}" to "lgsm/data" to match the correct repository path structure. Fixes #4856: ERROR: Downloading debian-12.csv on update-lgsm * chore(actions): Optimize details-check workflow for PRs Enhances the `details-check` workflow to run more efficiently on pull requests. This commit introduces logic to: - Trigger the workflow on pull requests to the `develop` branch. - Analyze changed files to determine the scope of the checks required: - Run a full matrix if core `details`-related scripts are modified. - Run a targeted matrix only for servers whose `config-lgsm` files are changed. - Skip the check entirely if no relevant files are touched. - Provide a concise summary of the `details`, `parse-game-details`, and `query-raw` outcomes directly in the GitHub Actions job summary. This optimization significantly reduces CI/CD run times and resource consumption for pull requests by avoiding unnecessary checks across all game servers, improving developer efficiency. * fix(mods_list): update AMX Mod X version to latest release (#4932) * feat(check_deps.sh): Add “nullmailer” als allowed MTA for email notifications (#4871) Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> * fix(mods): BepInEx Valheim install fix (rebased from #4938) (#4939) * fix: exclude Wine prefix from serverfiles ownership check SteamCMD creates a Wine prefix at serverfiles/steamapps/compatdata/ containing a z: symlink pointing to /. Without excluding this path, `find "${serverfiles}"` traverses the entire filesystem, causing check_permissions.sh to hang indefinitely. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(vh): correct BepInEx mod extraction and env vars - mods_list: set modsubdirs="BepInExPack_Valheim" so only the pack contents (not loose Thunderstore metadata) are installed to serverfiles - mods_core: implement modsubdirs subfolder isolation in fn_mod_install_files; when modsubdirs is not "0", the named subfolder becomes the extract root - fix_vh: update BepInEx env vars to match current start_server_bepinex.sh (DOORSTOP_ENABLED/DOORSTOP_TARGET_ASSEMBLY replacing old names, remove defunct DOORSTOP_CORLIB_OVERRIDE_PATH) - mods_list: update modsubdirs field comment to reflect its actual semantics Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: yourfate <2371889-youRFate@users.noreply.gitlab.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(mods): BepInEx_Valheim prevents startup on systems with newer glibc (#4788) * fix(mods): BepInEx_Valheim prevents startup on systems with newer glibc Load the libdoorstop_x64.so solely for the dedicated server executable and not for the whole startup routine, which causes errors in startup or not loading the mods at all. (see #4149 and #4491) * chore(prettier): format code --------- Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> Co-authored-by: dgibbs64 <dgibbs64@users.noreply.github.com> * fix(ci): fetch full history in details-check so base ref diff works (#4940) The create-matrix job runs 'git diff origin/${base_ref}...HEAD' to detect which servers a PR touches, but actions/checkout defaults to a shallow single-branch fetch, so origin/develop does not exist in the runner and the diff fails with 'ambiguous argument' on every PR that reaches this job. Set fetch-depth: 0 so the base ref is available. * feat(alerts): add Matrix alert provider (#4901) * feat(alerts): add Matrix alert provider * fix(alerts): use PUT instead of POST for Matrix send-event endpoint The Matrix Client-Server API requires PUT for /_matrix/client/v3/rooms/{roomId}/send/{eventType}/{txnId}; sending POST would be rejected by any spec-compliant homeserver (405), so alerts would never actually send. Also documents that matrixroom must be the internal room ID, not the human-readable room alias. * fix: restore executable bit on alert_matrix.sh * fix(alerts): register alert_matrix module and harden dispatch Addresses review feedback on the Matrix alert provider: - Register alert_matrix.sh in core_modules.sh so the module actually resolves when alert.sh calls it (without this the call fails as an unknown command and no alert is ever sent). - Use curl -sSL to follow redirects, matching the other alert modules (some homeservers/reverse proxies redirect the client API). - Require matrixhomeserver to be set in the dispatch condition, consistent with the TEST-ALERT checks, to avoid building a broken URL when it is empty. * fix(ci): make Prettier workflow pass on develop (#4941) * style(alerts): prettier-format alert_matrix.sh Add the space in '2> /dev/null' that prettier-plugin-sh expects. This was in the original #4901 code and tripped the Prettier workflow on develop after merge (the workflow auto-formats and then can't push to the protected branch, so the run fails). * ci(prettier): ignore package-lock.json package-lock.json is machine-generated by npm; Prettier reformatting it conflicts with npm's own output and causes the Prettier auto-commit workflow to try (and fail) to push lockfile churn to protected develop. Ignoring it lets the workflow find nothing to change and pass. * fix(jbep3): correct servercfgdefault to server.cfg (#4942) The jbep3server details-check CI job fails because servercfgdefault was set to "server.sample.cfg", but the Game-Server-Configs repo only ships jbep3/server.cfg. The download step (curl -f) 404s and the job exits 22. jbep3 was the only server using "server.sample.cfg"; all other Source-engine servers (and 69 servers overall) use "server.cfg", which is the file that actually exists in the configs repo. * fix: Set TERM=screen for all non-interactive tmux calls (#4860) When connected to a server via ssh, and the server doesn't have the proper terminfo, tmux will fail with 'unsupported terminal' errors. These errors are not surfaced by the scripts, e.g. details, start, stop, so they result in either silent failures or don't work at all. e.g. `./mcserver details` on my server showed 0% CPU, 0% Memory, and STOPPED for the server status when the server was actually running. This was because the tmux calls to get this info failed. The root cause of this was that I was connected to my server via kitty, a terminal emulator that my server did not have terminfo for. This can be resolved via running `infocmp -x xterm-kitty | ssh YOUR-SERVER -- tic -x -` and replacing `xterm-kitty` with whatever is appropriate, or by setting TERM=xterm-256color in the ssh config, but that is not obvious to do when presented with silent failures. This commit sets TERM=screen for all non-interactive tmux calls, which resolves the issue. Note that the `console` command does not set this, as that is an interactive shell, and the user's terminfo should be passed. Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> * feat(stop): add option to only stop server if no players (#4595) * add no stop if players online * remove dev message * monitor will now restart the server if requested earlier * changed var name * add npm check to install gamedig * new line * add var * remove from non supported servers * typo * word * move restart request * change lock file name * restart and monitor * refactor(stop): share player-online check + add stoponlyifnoplayersallcommands - Extract the duplicated gamedig player-count query (previously copy-pasted in command_stop, command_restart and command_monitor) into a new shared check_players_online.sh module that sets ${playersonline}; registered in core_modules.sh. - Add stoponlyifnoplayersallcommands (default on) so the stoponlyifnoplayers protection applies to every command that stops the server (e.g. update). Set to off to limit it to explicit stop/restart, allowing update to stop the server even while players are online. - Add the new setting to all game server _default.cfg files. - Resolve merge with develop (check_gamedig now keeps develop's npm-update branch plus the 'install Node.js' hint). * fix(stop): clear stale restart-request lock + warn on failed player query Addresses Copilot review feedback on #4595: - command_restart.sh: clear the *-restart-request.lock once a restart actually proceeds. Previously the lock was only written when postponing and never removed, so every subsequent monitor run would see the stale lock and trigger a repeat restart indefinitely. Fixed and verified against a live server: postponed restart -> monitor executes it and clears the lock -> a second monitor run no longer restarts. - check_players_online.sh: if the gamedig query fails for every configured IP (e.g. gamedig/jq missing), playersonline now still fails open (so a broken query can't permanently block stop/restart) but prints a clear warning that the safety check could not run, instead of silently behaving as if the server were empty. * Release v26.2.0 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: unknown <unknown@example.com> Co-authored-by: LinuxGSM <dev@linuxgsm.com> Co-authored-by: Knoxed <1338733+knoxed@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: WildPenguin <ville.aakko@gmail.com> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Jacob Gerega <22921310+jgerega107@users.noreply.github.com> Co-authored-by: dgibbs64 <dgibbs64@users.noreply.github.com> Co-authored-by: Nikolay Asenov <10465782+nasenov@users.noreply.github.com> Co-authored-by: Fabian Raab <fabian@raab.link> Co-authored-by: yourfate <2371889-youRFate@users.noreply.gitlab.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: fwillo <37631375+fwillo@users.noreply.github.com> Co-authored-by: Silas J. Matson <sjmatson01@gmail.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v5...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot
Bot
force-pushed
the
dependabot/github_actions/actions/checkout-7
branch
from
July 19, 2026 21:08
8576e1f to
193e7dd
Compare
dgibbs64
enabled auto-merge (squash)
October 2, 2026 22:30
dgibbs64
added a commit
that referenced
this pull request
Oct 10, 2026
* chore(deps): bump actions/add-to-project from 1.0.2 to 2.0.0 (#4926) Bumps [actions/add-to-project](https://github.com/actions/add-to-project) from 1.0.2 to 2.0.0. - [Release notes](https://github.com/actions/add-to-project/releases) - [Commits](actions/add-to-project@v1.0.2...v2.0.0) --- updated-dependencies: - dependency-name: actions/add-to-project dependency-version: 2.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> * chore(deps): bump actions/checkout from 5 to 7 (#4933) Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v5...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> Co-authored-by: unknown <unknown@example.com> Co-authored-by: LinuxGSM <dev@linuxgsm.com> Co-authored-by: Knoxed <1338733+knoxed@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: WildPenguin <ville.aakko@gmail.com> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Jacob Gerega <22921310+jgerega107@users.noreply.github.com> Co-authored-by: dgibbs64 <dgibbs64@users.noreply.github.com> Co-authored-by: Nikolay Asenov <10465782+nasenov@users.noreply.github.com> Co-authored-by: Fabian Raab <fabian@raab.link> Co-authored-by: yourfate <2371889-youRFate@users.noreply.gitlab.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: fwillo <37631375+fwillo@users.noreply.github.com> Co-authored-by: Silas J. Matson <sjmatson01@gmail.com> * chore(deps): bump actions/cache from 4 to 6 (#4945) Bumps [actions/cache](https://github.com/actions/cache) from 4 to 6. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](actions/cache@v4...v6) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> Co-authored-by: unknown <unknown@example.com> Co-authored-by: LinuxGSM <dev@linuxgsm.com> Co-authored-by: Knoxed <1338733+knoxed@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: WildPenguin <ville.aakko@gmail.com> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Jacob Gerega <22921310+jgerega107@users.noreply.github.com> Co-authored-by: dgibbs64 <dgibbs64@users.noreply.github.com> Co-authored-by: Nikolay Asenov <10465782+nasenov@users.noreply.github.com> Co-authored-by: Fabian Raab <fabian@raab.link> Co-authored-by: yourfate <2371889-youRFate@users.noreply.gitlab.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: fwillo <37631375+fwillo@users.noreply.github.com> Co-authored-by: Silas J. Matson <sjmatson01@gmail.com> * chore(deps): bump actions/github-script from 7 to 9 (#4946) Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 9. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](actions/github-script@v7...v9) --- updated-dependencies: - dependency-name: actions/github-script dependency-version: '9' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> Co-authored-by: unknown <unknown@example.com> Co-authored-by: LinuxGSM <dev@linuxgsm.com> Co-authored-by: Knoxed <1338733+knoxed@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: WildPenguin <ville.aakko@gmail.com> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Jacob Gerega <22921310+jgerega107@users.noreply.github.com> Co-authored-by: dgibbs64 <dgibbs64@users.noreply.github.com> Co-authored-by: Nikolay Asenov <10465782+nasenov@users.noreply.github.com> Co-authored-by: Fabian Raab <fabian@raab.link> Co-authored-by: yourfate <2371889-youRFate@users.noreply.gitlab.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: fwillo <37631375+fwillo@users.noreply.github.com> Co-authored-by: Silas J. Matson <sjmatson01@gmail.com> * chore(sync): synced file(s) with dgibbs64/repo-sync (#4949) * chore(sync): synced local '.github/' with remote 'general/.github/' Synced from dgibbs64/repo-sync@a9c3090 — Merge pull request #18 from dgibbs64/chore/remove-dependabot-automerge chore(workflows): remove dependabot auto-merge workflow * chore(sync): synced local './' with remote 'bash/' Synced from dgibbs64/repo-sync@a9c3090 — Merge pull request #18 from dgibbs64/chore/remove-dependabot-automerge chore(workflows): remove dependabot auto-merge workflow * Add permissions for pull-requests in workflow Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * fix(modules): make update_bb.sh executable (#4965) update_bb.sh was the only module committed as 100644; all others are 100755. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(sdtd): read telnet password into telnetpassword (#4968) fn_info_game_sdtd stored TelnetPassword in ${telnetpass}, but command_stop.sh, info_messages.sh and the localhost check in the same function all read ${telnetpassword}. The graceful telnet shutdown never sent the password, and the telnet IP was always forced to 127.0.0.1, so stop fell back to killing the tmux session without a world save. Fixes #4957 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(vh): document how to disable crossplay (#4969) * fix(vh): add crossplay setting to control -crossplay -crossplay was hard-coded in vhserver's startparameters, so Steam-only servers could not turn off the PlayFab relay without overriding the whole startparameters line. Add crossplay="true" (default unchanged) and only pass -crossplay when it is "true". Fixes #4930 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(vh): document how to disable crossplay instead of adding a toggle Drop the crossplay setting and the conditional in startparameters. Keep -crossplay in the defaults, consistent with arkserver, and explain how Steam-only servers remove it by overriding startparameters. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(steamcmd): improve missing configuration diagnostics (#4951) * fix: [Factorio] Update startparameters to load the latest server autosave (#4960) * chore(sync): synced local '.github/' with remote 'general/.github/' (#4947) Synced from dgibbs64/repo-sync@0a4246d — Merge pull request #12 from dgibbs64/dependabot/npm_and_yarn/brace-expansion-5.0.7 chore(deps): bump brace-expansion from 5.0.6 to 5.0.7 * Update startparameters to load the latest server autosave Swap --start-server ${serverfiles}/save1.zip with --start-server-load-latest * fix(fctr): create initial save in saves/ so load-latest finds it --start-server-load-latest only searches the saves directory. The initial save was created at ${serverfiles}/save1.zip, so a fresh install had no saves/ directory and failed to host ("cannot open directory"). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> Co-authored-by: unknown <unknown@example.com> Co-authored-by: LinuxGSM <dev@linuxgsm.com> Co-authored-by: Knoxed <1338733+knoxed@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: WildPenguin <ville.aakko@gmail.com> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Jacob Gerega <22921310+jgerega107@users.noreply.github.com> Co-authored-by: dgibbs64 <dgibbs64@users.noreply.github.com> Co-authored-by: Nikolay Asenov <10465782+nasenov@users.noreply.github.com> Co-authored-by: Fabian Raab <fabian@raab.link> Co-authored-by: yourfate <2371889-youRFate@users.noreply.gitlab.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: fwillo <37631375+fwillo@users.noreply.github.com> Co-authored-by: Silas J. Matson <sjmatson01@gmail.com> * fix(deps): support deb822 apt sources on Debian (#4952) * fix(deps): support deb822 apt sources on Debian * fix(deps): ignore commented-out non-free entries in apt sources The non-free check matched commented lines, so a disabled non-free entry (more likely now that sources.list.d is searched) made LinuxGSM try the unavailable steamcmd package instead of the tar fallback. Only count lines whose first non-space character is not #. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: BreezeDelegate <271538431+BreezeDelegate@users.noreply.github.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(fastdl): include Source resource files (#4953) Co-authored-by: BreezeDelegate <271538431+BreezeDelegate@users.noreply.github.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> * feat(cs2server): add Metamod:Source 2.0 and CounterStrikeSharp mod support (#4961) - Enable mod installation, updates and removal for CS2 - Add Metamod:Source 2.0 dev builds with gameinfo.gi configuration - Add CounterStrikeSharp using the latest Linux release with runtime - Require Metamod:Source 2.0 before installing CounterStrikeSharp - Preserve the shared Metamod directory when removing CounterStrikeSharp Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> * fix(ci): label fork PRs and skip empty Details Check matrix (#4971) - pr-labeler ran on pull_request, which gets a read-only token for PRs from forks, so it failed on every contributor PR ("Could not add label(s)"). Run it on pull_request_target with job-scoped write permissions; no job checks out or runs PR code on that event. - details-check failed the whole run when create-matrix produced an empty matrix (PR touches no server configs). Skip the job instead. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(csgoserver): support the standalone CS:GO client (App ID 4465480) with configurable clientappid and the NoLobbyReservation mod (#4963) * feat(csgoserver): support the standalone CS:GO client (App ID 4465480) with configurable runtimeappid and the NoLobbyReservation mod * feat(csgoserver): rename runtimeappid to clientappid, pin NoLobbyReservation, prefer spcomp64 - Rename runtimeappid to clientappid and reword the comments: appid is the SteamCMD download ID (740), clientappid is the App ID the server advertises and players' clients connect with (4465480 or 730). - Pin NoLobbyReservation to commit 003ab19f. It has no releases and is compiled from source on install, so do not follow master. - Prefer spcomp64 and fall back to spcomp, so compiling does not rely on i386 libraries. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(rsdwserver): add RuneScape: Dragonwilds server (#4921) * feat(rsdwserver): add RuneScape: Dragonwilds server * fix(rsdwserver): correct servercfgdir to LinuxServer * feat(rsdwserver): show world name, owner id, and ini path in details * fix(rsdwserver): point port edit guidance to start parameters The rsdw port is set via -Port=${port} in startparameters, not in DedicatedServer.ini, so move rsdw to the start parameters list. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012svZAWTbYDdo2WuT2BZxQo * feat(rsdwserver): add distro dependency entries and OwnerId guidance - Add rsdw to every distro dependency CSV; without it the Server List Validation check fails once merged. No extra packages are needed, like other Unreal servers. - Add Owner ID to dev-parse-game-details, as info_game.sh requires for new variables. - State in _default.cfg that the server does not finish starting until OwnerId is set in DedicatedServer.ini, and drop the unused servername setting (the server reads its name from DedicatedServer.ini). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat(rsdwserver): add game icon 32x32 RGB PNG from the Steam community app icon for RuneScape: Dragonwilds (app 1374490), matching the other game icons. Required by serverlist-validate-game-icons.sh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> * fix(sm): convert sm-icon.png from JPEG to PNG (#4973) sm-icon.png was JPEG data with a .png extension; every other game icon is a 32x32 RGB PNG. Re-encoded as PNG with no visual change. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(core): fall back to 80 columns when no terminal width is available (#4974) Separators and centred text used the width from tput cols. Without a terminal (cron, Docker, post-details), tput prints an error and returns nothing. bash 5.3 (Ubuntu 26.04) also rejects the empty printf width ("printf: : invalid number"). Hide tput's error and fall back to 80 columns. Terminal widths are still used when available. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(deps): check passwordless sudo before prompting with sudo -v (#4980) sudo -v asks for a password with sudo-rs (Ubuntu 25.10+) even with NOPASSWD, and with classic sudo when the user also matches the default %sudo rule. Try sudo -n true first and only fall back to the sudo -v prompt when passwordless sudo is not available. * fix(core): handle bootstrap before logging and exit modules are loaded (#4981) Bootstrap downloads and the Ctrl+C trap called logging, message and core_exit.sh functions before the modules defining them were loaded. This caused spurious "fn_script_log_pass: command not found" errors after the module cache was emptied, and a failed or cancelled early download carried on instead of exiting. - Guard bootstrap log calls on the logging function existing. - Add fn_bootstrap_exit: uses core_exit.sh once available, otherwise a plain exit. - Make the download trap bootstrap-safe (removes the partial file, exits 130). * fix(rsdwserver): download default DedicatedServer.ini on install (#4982) RuneScape: Dragonwilds had no install_config.sh block, so no DedicatedServer.ini was created on install and the details-check (rsdw) CI job failed downloading the default config. - Download DedicatedServer.ini from Game-Server-Configs (GameServerManagers/Game-Server-Configs#157), set the server and world name, and generate an admin password. - Update the rsdwserver _default.cfg comment: the INI is now created during install, so OwnerId can be set before the first start. * feat(newserver): add Hytale server support (#4928) Adds the Hytale server (hyt): install, default config from Game-Server-Configs, Java 25 dependency check and first-start server login. * fix(deps): add libatomic for American Truck Simulator and Euro Truck Simulator 2 (#4990) The amtrucks_server and eurotrucks2_server binaries link libatomic.so.1, which is not installed by default, so both servers failed to start. * fix(ci): run apt-get update before installing Details Check dependencies (#4992) The runner image's package index goes stale. Ubuntu replaced the libxml2-utils build it lists, so apt-get install got a 404 and the details-check job failed before any LinuxGSM code ran. * fix(pz): pass the admin password as a start parameter (#4991) Project Zomboid prompts for an admin password on first start when none is given, and the server waits there forever because LinuxGSM runs it in tmux (and Docker has no terminal at all). * fix(ts3): query the ServerQuery address set in query_ip (#4975) The monitor connects to the query port on each address in queryips. When voice_ip was set to a specific address, queryips only held that address and the public IP, so a ServerQuery bound to localhost (query_ip=127.0.0.1) was never tried and monitor restarted the server. Read query_ip from ts3server.ini (first address if several) and, when it is a specific IPv4 address not already listed, query it first. Fixes #4966 * ci(details-check): run servers in shards from the checkout (#4993) * ci(details-check): run servers in shards from the checkout - Check servers in 12 shards instead of one job per server, so jobs no longer queue behind the concurrency limit. - Seed lgsm/modules, config-default and data from the checkout, so each server takes about 20s instead of about 80s and the PR's own code is what gets checked. - Run bf1942, bfv, btl and onset in an ubuntu:20.04 container. The ubuntu-20.04 runner is retired, so btl and onset never started. - Changes to the details-check workflow or scripts trigger a full run. * ci(details-check): use the config filename for the Game-Server-Configs URL servercfgdefault can include a directory variable (xnt uses ${systemdir}/server.cfg). Game-Server-Configs stores files flat per game, so use only the filename. * ci(details-check): keep config subdirectories in the Game-Server-Configs URL Only drop a leading ${variable}/ (xnt). pc2's config lives in config_sample/ in Game-Server-Configs. * ci(details-check): fix the Game-Server-Configs path expansion Strip a leading ${variable}/ with a pattern test instead of a nested parameter expansion, which bash mangled. Keeps pc2's config_sample/. * fix(sf): drop ServerQueryPort and BeaconPort removed in Satisfactory 1.0 (#4976) * fix(sf): drop ServerQueryPort and BeaconPort removed in Satisfactory 1.0 Satisfactory 1.0+ uses port for the game (UDP) and the server API (TCP), plus ReliablePort (TCP). -ServerQueryPort and -BeaconPort are no longer used, but LinuxGSM still passed them and listed their ports in details, so admins opened ports nothing listens on. - Remove queryport/beaconport from sfserver _default.cfg and startparameters. - details: list Game (UDP), Server API (TCP) and ReliableMessaging (TCP). - queryport now follows port. Monitoring is session-only (querymode 1), so this doesn't change it. Fixes #4967 * fix(sf): drop code comment * fix(col): monitor Colony Survival with a TCP query (#4977) * fix(col): monitor Colony Survival with a TCP query Colony Survival hosts with SteamOnline networking and doesn't answer A2S (protocol-valve) queries on its UDP game port. Monitor always failed the query and restarted a working server every few minutes. The query port listens on TCP (details already shows it as TCP), so use query mode 5 (TCP). * fix(col): keep querytype set for the gamedig query modes querytype is ignored by the TCP query, but an empty value would break monitoring if querymode is switched back to a gamedig mode. * fix(steamcmd): work around Invalid platform errors (L4D2) (#4979) * fix(steamcmd): work around Invalid platform errors (L4D2) SteamCMD fails some app installs on Linux with "Failed to install app '222860' (Invalid platform)", a long-standing SteamCMD bug (ValveSoftware/steam-for-linux#11522) that breaks every new Left 4 Dead 2 install. The known workaround is to download the Windows depot once, then update and validate as Linux. When SteamCMD reports Invalid platform, run app_update once with +@sSteamCmdForcePlatformType windows, then retry the normal Linux update with validate. The workaround runs at most once per download. Fixes #4754 * fix(steamcmd): run the Invalid platform workaround before the fatal check The existing Invalid platform branch exits, and it came first in the chain, so the workaround was never reached. Move the workaround above it; the fatal branch still catches a repeat or forced-Windows case. * fix(steamcmd): keep the Invalid platform workaround to one attempt per download Make invalidplatformworkaround local to fn_dl_steamcmd. Manifest repair calls the downloader several times, and a global flag stopped later downloads from trying the workaround. * chore(sync): synced file(s) with dgibbs64/repo-sync (#4978) Synced from dgibbs64/repo-sync@71ef736 — fix(workflows): restore pull-requests: write for the copyright-year workflow (#21) action-update-license-year opens its update as a pull request, which needs pull-requests: write. It was removed with the auto-merge step. Co-authored-by: dgibbs64 <dgibbs64@users.noreply.github.com> * fix(monitor): anchor tmux session checks to avoid matching other instances (#4989) * fix(monitor): anchor tmux session checks to avoid matching other instances The monitor's session migration checks used unanchored pgrep/pkill patterns. With multiple instances under one user where one session name is a prefix of another (e.g. vhserver and vhserver-2), the shorter instance's "old type tmux session" check matched the other instance's concurrently running pgrep command line, causing spurious restarts whenever both monitors ran at the same time. Anchor the patterns to the start of the command line and require the session name to be followed by a space or end of line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(monitor): drop code comment --------- Co-authored-by: yourfate <2371889-youRFate@users.noreply.gitlab.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> * fix(mods): only look up mod URLs for the game the server runs (#4983) * fix(mods): only look up mod URLs for the game the server runs mods_list.sh ran every mod lookup on each mods command regardless of the game, so a Counter-Strike 2 server also queried the CS:GO, Rust, Hurtworld, 7 Days To Die and Valheim mod releases. That is 11 GitHub API requests per command, which exhausts the unauthenticated limit of 60 requests per hour per IP address after five mods-install runs, and even sooner when several servers share an address. Once it is gone, curl returns a rate limit error body, the jq filters yield empty strings, and the mod URL and filename end up blank, which reaches the user only as a generic "An issue occurred downloading" failure. Guard each lookup with the ${gamename} or ${engine} it belongs to, the non-GitHub ones (Metamod:Source, Metamod:Source 2.0, SourceMod, SteamWorks and BepInEx) included. Both variables are set from _default.cfg before mods_core.sh sources this file, and the conditions match the compatibility filters already declared in the mod_info arrays, so the set of mods offered to the user is unchanged. * fix(mods): guard lookups by shortname and drop code comment --------- Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> * fix(install): stop when a server has no download configuration (#4996) fn_install_server_files logged the failure but carried on, then tried to fetch and extract with an empty URL. Exit after the failure instead. Found in #4155 by @jusito. * chore(lint): fix Super Linter errors on develop (#5001) - Make .github/scripts/sync-game-labels.sh executable (BASH_EXEC). - Don't check indent width in Markdown: list continuation lines are indented to the list marker (3 spaces for "1. "), as Prettier formats them (EDITORCONFIG, CODE_OF_CONDUCT.md). - Quote $shortnames in the Details Check targeted-server step (actionlint SC2086). The file content is unchanged. * fix(monitor): detect update, start and stop run with their short aliases (#5002) Monitor checked for the u alias of update nowhere, and checked s (sponsor) instead of st and sp for start and stop. An update started with ./gameserver u was not detected, so monitor restarted the server mid-update. Fixes #4997 and #4999. * chore(lint): fix Ruff errors in query_gsquery.py (#5003) - Add .github/linters/.ruff.toml with line-length 88 to match Black. Super Linter's default Ruff config uses 120, so ruff format and Black disagreed about the same file. target-version py38 keeps Ruff from suggesting changes that need a newer Python than Ubuntu 20.04 has. - query_gsquery.py: make executable (EXE001), drop the redundant coding declaration (UP009) and an empty comment (PLR2044), and catch OSError instead of its alias socket.error (UP024). * Release v26.3.0 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: unknown <unknown@example.com> Co-authored-by: LinuxGSM <dev@linuxgsm.com> Co-authored-by: Knoxed <1338733+knoxed@users.noreply.github.com> Co-authored-by: WildPenguin <ville.aakko@gmail.com> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Jacob Gerega <22921310+jgerega107@users.noreply.github.com> Co-authored-by: dgibbs64 <dgibbs64@users.noreply.github.com> Co-authored-by: Nikolay Asenov <10465782+nasenov@users.noreply.github.com> Co-authored-by: Fabian Raab <fabian@raab.link> Co-authored-by: yourfate <2371889-youRFate@users.noreply.gitlab.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: fwillo <37631375+fwillo@users.noreply.github.com> Co-authored-by: Silas J. Matson <sjmatson01@gmail.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Doug Murphy <1383347+Doug-Murphy@users.noreply.github.com> Co-authored-by: Breeze <joeabysseyes+2@gmail.com> Co-authored-by: BreezeDelegate <271538431+BreezeDelegate@users.noreply.github.com> Co-authored-by: Attila <1230402+borzaka@users.noreply.github.com> Co-authored-by: Josh Saterdalen <josh@saterdalen.me> Co-authored-by: Andrew Quenehen <56467992+andrewqsantos@users.noreply.github.com> Co-authored-by: yourfate <47528796+yourfate@users.noreply.github.com>
dgibbs64
added a commit
that referenced
this pull request
Oct 10, 2026
* chore(deps): bump actions/add-to-project from 1.0.2 to 2.0.0 (#4926) Bumps [actions/add-to-project](https://github.com/actions/add-to-project) from 1.0.2 to 2.0.0. - [Release notes](https://github.com/actions/add-to-project/releases) - [Commits](actions/add-to-project@v1.0.2...v2.0.0) --- updated-dependencies: - dependency-name: actions/add-to-project dependency-version: 2.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> * chore(deps): bump actions/checkout from 5 to 7 (#4933) Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v5...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> Co-authored-by: unknown <unknown@example.com> Co-authored-by: LinuxGSM <dev@linuxgsm.com> Co-authored-by: Knoxed <1338733+knoxed@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: WildPenguin <ville.aakko@gmail.com> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Jacob Gerega <22921310+jgerega107@users.noreply.github.com> Co-authored-by: dgibbs64 <dgibbs64@users.noreply.github.com> Co-authored-by: Nikolay Asenov <10465782+nasenov@users.noreply.github.com> Co-authored-by: Fabian Raab <fabian@raab.link> Co-authored-by: yourfate <2371889-youRFate@users.noreply.gitlab.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: fwillo <37631375+fwillo@users.noreply.github.com> Co-authored-by: Silas J. Matson <sjmatson01@gmail.com> * chore(deps): bump actions/cache from 4 to 6 (#4945) Bumps [actions/cache](https://github.com/actions/cache) from 4 to 6. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](actions/cache@v4...v6) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> Co-authored-by: unknown <unknown@example.com> Co-authored-by: LinuxGSM <dev@linuxgsm.com> Co-authored-by: Knoxed <1338733+knoxed@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: WildPenguin <ville.aakko@gmail.com> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Jacob Gerega <22921310+jgerega107@users.noreply.github.com> Co-authored-by: dgibbs64 <dgibbs64@users.noreply.github.com> Co-authored-by: Nikolay Asenov <10465782+nasenov@users.noreply.github.com> Co-authored-by: Fabian Raab <fabian@raab.link> Co-authored-by: yourfate <2371889-youRFate@users.noreply.gitlab.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: fwillo <37631375+fwillo@users.noreply.github.com> Co-authored-by: Silas J. Matson <sjmatson01@gmail.com> * chore(deps): bump actions/github-script from 7 to 9 (#4946) Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 9. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](actions/github-script@v7...v9) --- updated-dependencies: - dependency-name: actions/github-script dependency-version: '9' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> Co-authored-by: unknown <unknown@example.com> Co-authored-by: LinuxGSM <dev@linuxgsm.com> Co-authored-by: Knoxed <1338733+knoxed@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: WildPenguin <ville.aakko@gmail.com> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Jacob Gerega <22921310+jgerega107@users.noreply.github.com> Co-authored-by: dgibbs64 <dgibbs64@users.noreply.github.com> Co-authored-by: Nikolay Asenov <10465782+nasenov@users.noreply.github.com> Co-authored-by: Fabian Raab <fabian@raab.link> Co-authored-by: yourfate <2371889-youRFate@users.noreply.gitlab.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: fwillo <37631375+fwillo@users.noreply.github.com> Co-authored-by: Silas J. Matson <sjmatson01@gmail.com> * chore(sync): synced file(s) with dgibbs64/repo-sync (#4949) * chore(sync): synced local '.github/' with remote 'general/.github/' Synced from dgibbs64/repo-sync@a9c3090 — Merge pull request #18 from dgibbs64/chore/remove-dependabot-automerge chore(workflows): remove dependabot auto-merge workflow * chore(sync): synced local './' with remote 'bash/' Synced from dgibbs64/repo-sync@a9c3090 — Merge pull request #18 from dgibbs64/chore/remove-dependabot-automerge chore(workflows): remove dependabot auto-merge workflow * Add permissions for pull-requests in workflow Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * fix(modules): make update_bb.sh executable (#4965) update_bb.sh was the only module committed as 100644; all others are 100755. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(sdtd): read telnet password into telnetpassword (#4968) fn_info_game_sdtd stored TelnetPassword in ${telnetpass}, but command_stop.sh, info_messages.sh and the localhost check in the same function all read ${telnetpassword}. The graceful telnet shutdown never sent the password, and the telnet IP was always forced to 127.0.0.1, so stop fell back to killing the tmux session without a world save. Fixes #4957 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(vh): document how to disable crossplay (#4969) * fix(vh): add crossplay setting to control -crossplay -crossplay was hard-coded in vhserver's startparameters, so Steam-only servers could not turn off the PlayFab relay without overriding the whole startparameters line. Add crossplay="true" (default unchanged) and only pass -crossplay when it is "true". Fixes #4930 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(vh): document how to disable crossplay instead of adding a toggle Drop the crossplay setting and the conditional in startparameters. Keep -crossplay in the defaults, consistent with arkserver, and explain how Steam-only servers remove it by overriding startparameters. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(steamcmd): improve missing configuration diagnostics (#4951) * fix: [Factorio] Update startparameters to load the latest server autosave (#4960) * chore(sync): synced local '.github/' with remote 'general/.github/' (#4947) Synced from dgibbs64/repo-sync@0a4246d — Merge pull request #12 from dgibbs64/dependabot/npm_and_yarn/brace-expansion-5.0.7 chore(deps): bump brace-expansion from 5.0.6 to 5.0.7 * Update startparameters to load the latest server autosave Swap --start-server ${serverfiles}/save1.zip with --start-server-load-latest * fix(fctr): create initial save in saves/ so load-latest finds it --start-server-load-latest only searches the saves directory. The initial save was created at ${serverfiles}/save1.zip, so a fresh install had no saves/ directory and failed to host ("cannot open directory"). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> Co-authored-by: unknown <unknown@example.com> Co-authored-by: LinuxGSM <dev@linuxgsm.com> Co-authored-by: Knoxed <1338733+knoxed@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: WildPenguin <ville.aakko@gmail.com> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Jacob Gerega <22921310+jgerega107@users.noreply.github.com> Co-authored-by: dgibbs64 <dgibbs64@users.noreply.github.com> Co-authored-by: Nikolay Asenov <10465782+nasenov@users.noreply.github.com> Co-authored-by: Fabian Raab <fabian@raab.link> Co-authored-by: yourfate <2371889-youRFate@users.noreply.gitlab.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: fwillo <37631375+fwillo@users.noreply.github.com> Co-authored-by: Silas J. Matson <sjmatson01@gmail.com> * fix(deps): support deb822 apt sources on Debian (#4952) * fix(deps): support deb822 apt sources on Debian * fix(deps): ignore commented-out non-free entries in apt sources The non-free check matched commented lines, so a disabled non-free entry (more likely now that sources.list.d is searched) made LinuxGSM try the unavailable steamcmd package instead of the tar fallback. Only count lines whose first non-space character is not #. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: BreezeDelegate <271538431+BreezeDelegate@users.noreply.github.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(fastdl): include Source resource files (#4953) Co-authored-by: BreezeDelegate <271538431+BreezeDelegate@users.noreply.github.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> * feat(cs2server): add Metamod:Source 2.0 and CounterStrikeSharp mod support (#4961) - Enable mod installation, updates and removal for CS2 - Add Metamod:Source 2.0 dev builds with gameinfo.gi configuration - Add CounterStrikeSharp using the latest Linux release with runtime - Require Metamod:Source 2.0 before installing CounterStrikeSharp - Preserve the shared Metamod directory when removing CounterStrikeSharp Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> * fix(ci): label fork PRs and skip empty Details Check matrix (#4971) - pr-labeler ran on pull_request, which gets a read-only token for PRs from forks, so it failed on every contributor PR ("Could not add label(s)"). Run it on pull_request_target with job-scoped write permissions; no job checks out or runs PR code on that event. - details-check failed the whole run when create-matrix produced an empty matrix (PR touches no server configs). Skip the job instead. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(csgoserver): support the standalone CS:GO client (App ID 4465480) with configurable clientappid and the NoLobbyReservation mod (#4963) * feat(csgoserver): support the standalone CS:GO client (App ID 4465480) with configurable runtimeappid and the NoLobbyReservation mod * feat(csgoserver): rename runtimeappid to clientappid, pin NoLobbyReservation, prefer spcomp64 - Rename runtimeappid to clientappid and reword the comments: appid is the SteamCMD download ID (740), clientappid is the App ID the server advertises and players' clients connect with (4465480 or 730). - Pin NoLobbyReservation to commit 003ab19f. It has no releases and is compiled from source on install, so do not follow master. - Prefer spcomp64 and fall back to spcomp, so compiling does not rely on i386 libraries. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(rsdwserver): add RuneScape: Dragonwilds server (#4921) * feat(rsdwserver): add RuneScape: Dragonwilds server * fix(rsdwserver): correct servercfgdir to LinuxServer * feat(rsdwserver): show world name, owner id, and ini path in details * fix(rsdwserver): point port edit guidance to start parameters The rsdw port is set via -Port=${port} in startparameters, not in DedicatedServer.ini, so move rsdw to the start parameters list. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012svZAWTbYDdo2WuT2BZxQo * feat(rsdwserver): add distro dependency entries and OwnerId guidance - Add rsdw to every distro dependency CSV; without it the Server List Validation check fails once merged. No extra packages are needed, like other Unreal servers. - Add Owner ID to dev-parse-game-details, as info_game.sh requires for new variables. - State in _default.cfg that the server does not finish starting until OwnerId is set in DedicatedServer.ini, and drop the unused servername setting (the server reads its name from DedicatedServer.ini). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat(rsdwserver): add game icon 32x32 RGB PNG from the Steam community app icon for RuneScape: Dragonwilds (app 1374490), matching the other game icons. Required by serverlist-validate-game-icons.sh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> * fix(sm): convert sm-icon.png from JPEG to PNG (#4973) sm-icon.png was JPEG data with a .png extension; every other game icon is a 32x32 RGB PNG. Re-encoded as PNG with no visual change. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(core): fall back to 80 columns when no terminal width is available (#4974) Separators and centred text used the width from tput cols. Without a terminal (cron, Docker, post-details), tput prints an error and returns nothing. bash 5.3 (Ubuntu 26.04) also rejects the empty printf width ("printf: : invalid number"). Hide tput's error and fall back to 80 columns. Terminal widths are still used when available. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(deps): check passwordless sudo before prompting with sudo -v (#4980) sudo -v asks for a password with sudo-rs (Ubuntu 25.10+) even with NOPASSWD, and with classic sudo when the user also matches the default %sudo rule. Try sudo -n true first and only fall back to the sudo -v prompt when passwordless sudo is not available. * fix(core): handle bootstrap before logging and exit modules are loaded (#4981) Bootstrap downloads and the Ctrl+C trap called logging, message and core_exit.sh functions before the modules defining them were loaded. This caused spurious "fn_script_log_pass: command not found" errors after the module cache was emptied, and a failed or cancelled early download carried on instead of exiting. - Guard bootstrap log calls on the logging function existing. - Add fn_bootstrap_exit: uses core_exit.sh once available, otherwise a plain exit. - Make the download trap bootstrap-safe (removes the partial file, exits 130). * fix(rsdwserver): download default DedicatedServer.ini on install (#4982) RuneScape: Dragonwilds had no install_config.sh block, so no DedicatedServer.ini was created on install and the details-check (rsdw) CI job failed downloading the default config. - Download DedicatedServer.ini from Game-Server-Configs (GameServerManagers/Game-Server-Configs#157), set the server and world name, and generate an admin password. - Update the rsdwserver _default.cfg comment: the INI is now created during install, so OwnerId can be set before the first start. * feat(newserver): add Hytale server support (#4928) Adds the Hytale server (hyt): install, default config from Game-Server-Configs, Java 25 dependency check and first-start server login. * fix(deps): add libatomic for American Truck Simulator and Euro Truck Simulator 2 (#4990) The amtrucks_server and eurotrucks2_server binaries link libatomic.so.1, which is not installed by default, so both servers failed to start. * fix(ci): run apt-get update before installing Details Check dependencies (#4992) The runner image's package index goes stale. Ubuntu replaced the libxml2-utils build it lists, so apt-get install got a 404 and the details-check job failed before any LinuxGSM code ran. * fix(pz): pass the admin password as a start parameter (#4991) Project Zomboid prompts for an admin password on first start when none is given, and the server waits there forever because LinuxGSM runs it in tmux (and Docker has no terminal at all). * fix(ts3): query the ServerQuery address set in query_ip (#4975) The monitor connects to the query port on each address in queryips. When voice_ip was set to a specific address, queryips only held that address and the public IP, so a ServerQuery bound to localhost (query_ip=127.0.0.1) was never tried and monitor restarted the server. Read query_ip from ts3server.ini (first address if several) and, when it is a specific IPv4 address not already listed, query it first. Fixes #4966 * ci(details-check): run servers in shards from the checkout (#4993) * ci(details-check): run servers in shards from the checkout - Check servers in 12 shards instead of one job per server, so jobs no longer queue behind the concurrency limit. - Seed lgsm/modules, config-default and data from the checkout, so each server takes about 20s instead of about 80s and the PR's own code is what gets checked. - Run bf1942, bfv, btl and onset in an ubuntu:20.04 container. The ubuntu-20.04 runner is retired, so btl and onset never started. - Changes to the details-check workflow or scripts trigger a full run. * ci(details-check): use the config filename for the Game-Server-Configs URL servercfgdefault can include a directory variable (xnt uses ${systemdir}/server.cfg). Game-Server-Configs stores files flat per game, so use only the filename. * ci(details-check): keep config subdirectories in the Game-Server-Configs URL Only drop a leading ${variable}/ (xnt). pc2's config lives in config_sample/ in Game-Server-Configs. * ci(details-check): fix the Game-Server-Configs path expansion Strip a leading ${variable}/ with a pattern test instead of a nested parameter expansion, which bash mangled. Keeps pc2's config_sample/. * fix(sf): drop ServerQueryPort and BeaconPort removed in Satisfactory 1.0 (#4976) * fix(sf): drop ServerQueryPort and BeaconPort removed in Satisfactory 1.0 Satisfactory 1.0+ uses port for the game (UDP) and the server API (TCP), plus ReliablePort (TCP). -ServerQueryPort and -BeaconPort are no longer used, but LinuxGSM still passed them and listed their ports in details, so admins opened ports nothing listens on. - Remove queryport/beaconport from sfserver _default.cfg and startparameters. - details: list Game (UDP), Server API (TCP) and ReliableMessaging (TCP). - queryport now follows port. Monitoring is session-only (querymode 1), so this doesn't change it. Fixes #4967 * fix(sf): drop code comment * fix(col): monitor Colony Survival with a TCP query (#4977) * fix(col): monitor Colony Survival with a TCP query Colony Survival hosts with SteamOnline networking and doesn't answer A2S (protocol-valve) queries on its UDP game port. Monitor always failed the query and restarted a working server every few minutes. The query port listens on TCP (details already shows it as TCP), so use query mode 5 (TCP). * fix(col): keep querytype set for the gamedig query modes querytype is ignored by the TCP query, but an empty value would break monitoring if querymode is switched back to a gamedig mode. * fix(steamcmd): work around Invalid platform errors (L4D2) (#4979) * fix(steamcmd): work around Invalid platform errors (L4D2) SteamCMD fails some app installs on Linux with "Failed to install app '222860' (Invalid platform)", a long-standing SteamCMD bug (ValveSoftware/steam-for-linux#11522) that breaks every new Left 4 Dead 2 install. The known workaround is to download the Windows depot once, then update and validate as Linux. When SteamCMD reports Invalid platform, run app_update once with +@sSteamCmdForcePlatformType windows, then retry the normal Linux update with validate. The workaround runs at most once per download. Fixes #4754 * fix(steamcmd): run the Invalid platform workaround before the fatal check The existing Invalid platform branch exits, and it came first in the chain, so the workaround was never reached. Move the workaround above it; the fatal branch still catches a repeat or forced-Windows case. * fix(steamcmd): keep the Invalid platform workaround to one attempt per download Make invalidplatformworkaround local to fn_dl_steamcmd. Manifest repair calls the downloader several times, and a global flag stopped later downloads from trying the workaround. * chore(sync): synced file(s) with dgibbs64/repo-sync (#4978) Synced from dgibbs64/repo-sync@71ef736 — fix(workflows): restore pull-requests: write for the copyright-year workflow (#21) action-update-license-year opens its update as a pull request, which needs pull-requests: write. It was removed with the auto-merge step. Co-authored-by: dgibbs64 <dgibbs64@users.noreply.github.com> * fix(monitor): anchor tmux session checks to avoid matching other instances (#4989) * fix(monitor): anchor tmux session checks to avoid matching other instances The monitor's session migration checks used unanchored pgrep/pkill patterns. With multiple instances under one user where one session name is a prefix of another (e.g. vhserver and vhserver-2), the shorter instance's "old type tmux session" check matched the other instance's concurrently running pgrep command line, causing spurious restarts whenever both monitors ran at the same time. Anchor the patterns to the start of the command line and require the session name to be followed by a space or end of line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(monitor): drop code comment --------- Co-authored-by: yourfate <2371889-youRFate@users.noreply.gitlab.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> * fix(mods): only look up mod URLs for the game the server runs (#4983) * fix(mods): only look up mod URLs for the game the server runs mods_list.sh ran every mod lookup on each mods command regardless of the game, so a Counter-Strike 2 server also queried the CS:GO, Rust, Hurtworld, 7 Days To Die and Valheim mod releases. That is 11 GitHub API requests per command, which exhausts the unauthenticated limit of 60 requests per hour per IP address after five mods-install runs, and even sooner when several servers share an address. Once it is gone, curl returns a rate limit error body, the jq filters yield empty strings, and the mod URL and filename end up blank, which reaches the user only as a generic "An issue occurred downloading" failure. Guard each lookup with the ${gamename} or ${engine} it belongs to, the non-GitHub ones (Metamod:Source, Metamod:Source 2.0, SourceMod, SteamWorks and BepInEx) included. Both variables are set from _default.cfg before mods_core.sh sources this file, and the conditions match the compatibility filters already declared in the mod_info arrays, so the set of mods offered to the user is unchanged. * fix(mods): guard lookups by shortname and drop code comment --------- Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk> * fix(install): stop when a server has no download configuration (#4996) fn_install_server_files logged the failure but carried on, then tried to fetch and extract with an empty URL. Exit after the failure instead. Found in #4155 by @jusito. * chore(lint): fix Super Linter errors on develop (#5001) - Make .github/scripts/sync-game-labels.sh executable (BASH_EXEC). - Don't check indent width in Markdown: list continuation lines are indented to the list marker (3 spaces for "1. "), as Prettier formats them (EDITORCONFIG, CODE_OF_CONDUCT.md). - Quote $shortnames in the Details Check targeted-server step (actionlint SC2086). The file content is unchanged. * fix(monitor): detect update, start and stop run with their short aliases (#5002) Monitor checked for the u alias of update nowhere, and checked s (sponsor) instead of st and sp for start and stop. An update started with ./gameserver u was not detected, so monitor restarted the server mid-update. Fixes #4997 and #4999. * chore(lint): fix Ruff errors in query_gsquery.py (#5003) - Add .github/linters/.ruff.toml with line-length 88 to match Black. Super Linter's default Ruff config uses 120, so ruff format and Black disagreed about the same file. target-version py38 keeps Ruff from suggesting changes that need a newer Python than Ubuntu 20.04 has. - query_gsquery.py: make executable (EXE001), drop the redundant coding declaration (UP009) and an empty comment (PLR2044), and catch OSError instead of its alias socket.error (UP024). * fix(monitor): show the queried address on the DELAY and WAIT lines (#5006) fn_monitor_query loops over queryips, but the DELAY print and log line and the WAIT countdown still used ${ip}. With no IP set this is 0.0.0.0, so monitor printed and logged an address it never queried. Fixes #5004 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * Release v26.3.0 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: unknown <unknown@example.com> Co-authored-by: LinuxGSM <dev@linuxgsm.com> Co-authored-by: Knoxed <1338733+knoxed@users.noreply.github.com> Co-authored-by: WildPenguin <ville.aakko@gmail.com> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Jacob Gerega <22921310+jgerega107@users.noreply.github.com> Co-authored-by: dgibbs64 <dgibbs64@users.noreply.github.com> Co-authored-by: Nikolay Asenov <10465782+nasenov@users.noreply.github.com> Co-authored-by: Fabian Raab <fabian@raab.link> Co-authored-by: yourfate <2371889-youRFate@users.noreply.gitlab.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: fwillo <37631375+fwillo@users.noreply.github.com> Co-authored-by: Silas J. Matson <sjmatson01@gmail.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Doug Murphy <1383347+Doug-Murphy@users.noreply.github.com> Co-authored-by: Breeze <joeabysseyes+2@gmail.com> Co-authored-by: BreezeDelegate <271538431+BreezeDelegate@users.noreply.github.com> Co-authored-by: Attila <1230402+borzaka@users.noreply.github.com> Co-authored-by: Josh Saterdalen <josh@saterdalen.me> Co-authored-by: Andrew Quenehen <56467992+andrewqsantos@users.noreply.github.com> Co-authored-by: yourfate <47528796+yourfate@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps actions/checkout from 5 to 7.
Release notes
Sourced from actions/checkout's releases.
... (truncated)
Changelog
Sourced from actions/checkout's changelog.
... (truncated)
Commits
9c091bbupdate error wording (#2467)1044a6dgetting ready for checkout v7 release (#2464)f028218Bump the minor-npm-dependencies group across 1 directory with 3 updates (#2462)d914b26upgrade module to esm and update dependencies (#2463)537c7efBump@actions/coreand@actions/tool-cacheand Remove uuid (#2459)130a169Bump js-yaml from 4.1.0 to 4.2.0 (#2461)7d09575Bump flatted from 3.3.1 to 3.4.2 (#2460)0f9f3aaBump actions/publish-immutable-action (#2458)f9e715ablock checking out fork pr for pull_request_target and workflow_run (#2454)df4cb1cUpdate changelog for v6.0.3 (#2446)