Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
0de09cd
Core: Better scaling explicit indirect conditions (#4582)
Mysteryem Feb 21, 2026
d83da1b
WebHost: memory leak fixes (#5966)
Berserker66 Feb 22, 2026
fefd790
ALTTP: remove `world: MultiWorld` and typing (#5974)
Silvris Feb 24, 2026
699ca8a
WebHost: Add CORS headers to API Endpoints (#5777)
DrAwesome4333 Feb 25, 2026
b30b2ec
Return new state man (Vi's note: I have chosen not to change this tit…
duckboycool Feb 25, 2026
eeb022f
The Messenger: minor maintenance (#5965)
alwaysintreble Feb 26, 2026
2db5435
CI: upgrade InnoSetup to 6.7.0 (#5979)
black-sliver Feb 26, 2026
fcccbfc
MultiServer: don't keep multidata alive for race_mode (#5980)
black-sliver Feb 26, 2026
ff5402c
Fix(undertale): prevent massive bounce msg spam for position updates …
TreZc0 Feb 28, 2026
61d5120
Core: use typing_extensions `deprecated` (#5989)
beauxq Feb 28, 2026
e49ba2f
Undertale: Use check_locations helper to avoid redundant sends (#5993)
duckboycool Mar 1, 2026
922c7fe
Core: allow async def functions as commands (#5859)
Berserker66 Mar 1, 2026
a3e8f69
Core: introduce finalize_multiworld and pre_output stages (#5700)
Berserker66 Mar 1, 2026
f263133
MultiServer: graceful shutdown for ctrl+c and sigterm (#5996)
black-sliver Mar 3, 2026
b372b02
OptionCreator: 0.6.6 reported issues (#5949)
Silvris Mar 4, 2026
3ecd856
MultiServer: fix Windows compatibility (#6010)
Silvris Mar 6, 2026
b53f9d3
Docs: Better document state.locations_checked (#6018)
qwint Mar 7, 2026
366fd37
MM2: Fix /request command help (#5805)
Suyooo Mar 8, 2026
9f29859
MLSS: Fix client auto-connect bug + Client cleanup (#5895)
jamesbrq Mar 8, 2026
9efcba5
FF1: Added manifest (#5911)
Rosalie-A Mar 8, 2026
fc2cb3c
OoT: change setup-guides to have 2.10 be the minimum version recommen…
StripesOO7 Mar 8, 2026
a8ac828
Pokemon Emerald: Fix rare fuzzer errors (#5914)
Zunawe Mar 8, 2026
b38548f
Shivers: Adds Manifest File (#5918)
GodlFire Mar 8, 2026
53956b7
OOT: UTC deprecation warning fix (#5983)
josephwhite Mar 8, 2026
99601cc
Saving Princess: add manifest (#6008)
LeonarthCG Mar 8, 2026
4bb6cac
Lingo: Add archipelago.json (#6017)
hatkirby Mar 8, 2026
5b99118
Mega Man 3: Implement new game (#5237)
Silvris Mar 8, 2026
371db53
Stardew Valley: morel doesn't spawn in fall secret woods (#6003)
itepastra Mar 8, 2026
44e4243
Docs: Don't serve non-static files in example_nginx.conf (#5971)
remyjette Mar 9, 2026
123e1f5
Lingo: Fix logic for Near Eight Painting (#6014)
hatkirby Mar 9, 2026
0b6ba10
The Messenger: Universal Tracker support (#5344)
Jouramie Mar 10, 2026
07a1ec0
Test: Defaults for Options test (#5428)
josephwhite Mar 10, 2026
2c279ce
Muse Dash: Adds 3 new music packs plus fixes being able to roll songs…
DeamonHunter Mar 10, 2026
fd81553
Fix missing } in example_nginx.conf (#6027)
remyjette Mar 10, 2026
c255ea8
Pokemon Emerald: Dexsanity Encounter Type Option (#6016)
Goo-Dang Mar 10, 2026
1a8a71f
Dark Souls 3: Update location descriptions for Red Tearstone Ring and…
richarm4 Mar 10, 2026
c3659fb
TUNIC: Refactor entrance hint generation (#5620)
ScipioWright Mar 10, 2026
4b37283
WebHost: Update UTC datetime usage (timezone-naive) (#4906)
josephwhite Mar 10, 2026
72ff9b1
Saving Princess: Security fixes for issues detected by Bandit (#6013)
LeonarthCG Mar 10, 2026
94136ac
Docs: Add references to running from source (#6022)
duckboycool Mar 10, 2026
d000c0f
Docs: Update plando_en.md with item group example (#6024)
Gryphonlady Mar 10, 2026
f00d29e
Tests: fix race in test hosting shutdown (#5987)
black-sliver Mar 10, 2026
3235863
WebHost: add stats show cli command (#5995)
black-sliver Mar 10, 2026
47e581b
LttP: add manifest (#6005)
Berserker66 Mar 10, 2026
56c2272
RoR2: Seekers of the Storm (SOTS) DLC Support (#5569)
kindasneaki Mar 10, 2026
a8e926a
Core: Make Generic ER only consider the current world in isolation (#…
Mysteryem Mar 10, 2026
3c802d0
DS3: Use remaining_fill instead of custom fill (#4397)
Exempt-Medic Mar 10, 2026
03b638d
Docs: Reword 'could be generated from json' to avoid encouraging slow…
Ixrec Mar 10, 2026
3016379
KH2: Fix nondeterministic generation when CasualBounties is enabled (…
Mysteryem Mar 10, 2026
260bae3
Core: Update .gitignore to include an exe setup.py downloads (#6031)
qwint Mar 11, 2026
d01c957
CommonClient: Add explicit message for connection timeout (#5842)
duckboycool Mar 11, 2026
70fc3e0
Webhost: port reuse fix & configurable max room timeout (#6033)
Berserker66 Mar 12, 2026
8457ff3
Factorio: only show fluid boxes on assembling machine 1 when the sele…
lepideble Mar 16, 2026
2e5356a
Core: other resources guide (#6043)
Berserker66 Mar 18, 2026
fb45a2f
Rule Builder: Fix count resolution when Oring HasAnyCount (#6048)
drtchops Mar 18, 2026
116ab22
Muse Dash: Add support for Wuthering Waves Pioneer Podcast and Ay-Aye…
DeamonHunter Mar 27, 2026
4276c6d
sc2: Fixing random fill errors in unit tests (#6045)
MatthewMarinets Mar 27, 2026
74f41e3
Core: Make Generate.main only init logging on __main__ (#6069)
qwint Mar 27, 2026
645f25a
setup.py: add rule_builder.cached_world to included list (#6070)
drtchops Mar 29, 2026
cf47cc6
Clients: remove datapackage from persistent_storage ... (#6074)
black-sliver Mar 29, 2026
ffe4c6d
Core, Webhost: update and pin dependency versions (#6075)
black-sliver Mar 29, 2026
1705620
Launcher: Add konsole to terminal list and rework launch dialog (#5684)
duckboycool Mar 29, 2026
36cf86f
Docs: update macOS setup instructions for more specificity on Python …
SebaCape Mar 29, 2026
5ca50cd
Pokemon Emerald: Fix Latios KeyError (#6056)
Zunawe Mar 29, 2026
03c9d07
Muse Dash: Fix nondeterministic generation with include_songs (#6040)
Mysteryem Mar 29, 2026
393ed51
Messenger: Require Wingsuit to traverse Dark Cave (#6059)
FlitPix Mar 29, 2026
2d58e79
Stardew valley: Four small fixes (#6055)
agilbert1412 Mar 29, 2026
a1ed804
Stardew Valley: trimmed lucky purple shorts need gold to make (#6034)
itepastra Mar 29, 2026
139856a
Stardew Valley: Fixed an issue where some specific option combination…
agilbert1412 Mar 29, 2026
773f3c4
Super Mario Land 2: Fix Space Zone 2 Logic (#6025)
Alchav Mar 29, 2026
a7a7879
Satisfactory: bug fix in __init__.py (#5930)
XxDERProjectxX Mar 29, 2026
96277fe
lufia2ac: update CollectionRule import (#5936)
el-u Mar 29, 2026
95f696c
WebHost: Remove space before comma separators in tutorial authors (#5…
duckboycool Mar 29, 2026
88dc135
APQuest: Various fixes (#6079)
NewSoupVi Mar 29, 2026
2b46df9
Satisfactory: Fixed buildings missing from goal check (#5772)
Jarno458 Mar 29, 2026
bdbf72f
Aquaria: Fixing bug where Urchin Costume is not a progression damagin…
tioui Mar 29, 2026
ba7ca0b
Options Creator: bind free text set_value to text instead of on_text_…
EdricY Mar 30, 2026
58a6407
SMW: Prevent receiving your own traps while aliased (#5763)
gerbiljames Mar 30, 2026
c640d2f
Rule Builder: Add field resolvers (#5919)
drtchops Mar 30, 2026
2ee20a3
CI: set permissions, update and pin actions, CodeQL for actions (#6073)
black-sliver Mar 30, 2026
5360b6b
The Witness: (Unbeatable seed) Ensure Desert Laser Redirection is req…
NewSoupVi Mar 30, 2026
3c4af8f
APQuest: Tap to move (#6082)
NewSoupVi Mar 31, 2026
68f25f4
MM3: Bump world version (#6088)
Silvris Apr 1, 2026
debe4cf
Pokemon Emerald: Bump version (#6083)
Zunawe Apr 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/pyright-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"../BizHawkClient.py",
"../Patch.py",
"../rule_builder/cached_world.py",
"../rule_builder/field_resolvers.py",
"../rule_builder/options.py",
"../rule_builder/rules.py",
"../test/param.py",
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/analyze-modified-files.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ env:
BEFORE: ${{ github.event.before }}
AFTER: ${{ github.event.after }}

permissions: {}

jobs:
flake8-or-mypy:
strategy:
Expand All @@ -25,7 +27,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6.0.2

- name: "Determine modified files (pull_request)"
if: github.event_name == 'pull_request'
Expand All @@ -50,7 +52,7 @@ jobs:
run: |
echo "diff=." >> $GITHUB_ENV

- uses: actions/setup-python@v5
- uses: actions/setup-python@v6.2.0
if: env.diff != ''
with:
python-version: '3.11'
Expand Down
33 changes: 16 additions & 17 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,17 @@ jobs:
runs-on: windows-latest
steps:
# - copy code below to release.yml -
- uses: actions/checkout@v4
- uses: actions/checkout@v6.0.2
- name: Install python
uses: actions/setup-python@v5
uses: actions/setup-python@v6.2.0
with:
python-version: '~3.12.7'
check-latest: true
- name: Download run-time dependencies
run: |
Invoke-WebRequest -Uri https://github.com/Ijwu/Enemizer/releases/download/${Env:ENEMIZER_VERSION}/win-x64.zip -OutFile enemizer.zip
Expand-Archive -Path enemizer.zip -DestinationPath EnemizerCLI -Force
choco install innosetup --version=6.2.2 --allow-downgrade
choco install innosetup --version=6.7.0 --allow-downgrade
- name: Build
run: |
python -m pip install --upgrade pip
Expand Down Expand Up @@ -82,7 +82,7 @@ jobs:
# - copy code above to release.yml -
- name: Attest Build
if: ${{ github.event_name == 'workflow_dispatch' }}
uses: actions/attest-build-provenance@v2
uses: actions/attest@v4.1.0
with:
subject-path: |
build/exe.*/ArchipelagoLauncher.exe
Expand Down Expand Up @@ -110,33 +110,32 @@ jobs:
cp Players/Templates/VVVVVV.yaml Players/
timeout 30 ./ArchipelagoGenerate
- name: Store 7z
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7.0.0
with:
name: ${{ env.ZIP_NAME }}
path: dist/${{ env.ZIP_NAME }}
compression-level: 0 # .7z is incompressible by zip
archive: false
if-no-files-found: error
retention-days: 7 # keep for 7 days, should be enough
- name: Store Setup
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7.0.0
with:
name: ${{ env.SETUP_NAME }}
path: setups/${{ env.SETUP_NAME }}
archive: false
if-no-files-found: error
retention-days: 7 # keep for 7 days, should be enough

build-ubuntu2204:
runs-on: ubuntu-22.04
steps:
# - copy code below to release.yml -
- uses: actions/checkout@v4
- uses: actions/checkout@v6.0.2
- name: Install base dependencies
run: |
sudo apt update
sudo apt -y install build-essential p7zip xz-utils wget libglib2.0-0
sudo apt -y install python3-gi libgirepository1.0-dev # should pull dependencies for gi installation below
- name: Get a recent python
uses: actions/setup-python@v5
uses: actions/setup-python@v6.2.0
with:
python-version: '~3.12.7'
check-latest: true
Expand Down Expand Up @@ -173,7 +172,7 @@ jobs:
# - copy code above to release.yml -
- name: Attest Build
if: ${{ github.event_name == 'workflow_dispatch' }}
uses: actions/attest-build-provenance@v2
uses: actions/attest@v4.1.0
with:
subject-path: |
build/exe.*/ArchipelagoLauncher
Expand Down Expand Up @@ -204,17 +203,17 @@ jobs:
cp Players/Templates/VVVVVV.yaml Players/
timeout 30 ./ArchipelagoGenerate
- name: Store AppImage
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7.0.0
with:
name: ${{ env.APPIMAGE_NAME }}
path: dist/${{ env.APPIMAGE_NAME }}
archive: false
# TODO: decide if we want to also upload the zsync
if-no-files-found: error
retention-days: 7
- name: Store .tar.gz
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7.0.0
with:
name: ${{ env.TAR_NAME }}
path: dist/${{ env.TAR_NAME }}
compression-level: 0 # .gz is incompressible by zip
archive: false
if-no-files-found: error
retention-days: 7
24 changes: 16 additions & 8 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,26 @@ on:
paths:
- '**.py'
- '**.js'
- '.github/workflows/codeql-analysis.yml'
- '.github/workflows/*.yml'
- '.github/workflows/*.yaml'
- '**/action.yml'
- '**/action.yaml'
pull_request:
# The branches below must be a subset of the branches above
branches: [ main ]
paths:
- '**.py'
- '**.js'
- '.github/workflows/codeql-analysis.yml'
- '.github/workflows/*.yml'
- '.github/workflows/*.yaml'
- '**/action.yml'
- '**/action.yaml'
schedule:
- cron: '44 8 * * 1'

permissions:
security-events: write

jobs:
analyze:
name: Analyze
Expand All @@ -36,18 +45,17 @@ jobs:
strategy:
fail-fast: false
matrix:
language: [ 'javascript', 'python' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
language: [ 'javascript', 'python', 'actions' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6.0.2

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@v4.35.1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
Expand All @@ -58,7 +66,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
uses: github/codeql-action/autobuild@v4.35.1

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
Expand All @@ -72,4 +80,4 @@ jobs:
# make release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@v4.35.1
4 changes: 3 additions & 1 deletion .github/workflows/ctest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ on:
- '**/CMakeLists.txt'
- '.github/workflows/ctest.yml'

permissions: {}

jobs:
ctest:
runs-on: ${{ matrix.os }}
Expand All @@ -35,7 +37,7 @@ jobs:
os: [ubuntu-latest, windows-latest]

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6.0.2
- uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756
if: startsWith(matrix.os,'windows')
- uses: Bacondish2023/setup-googletest@49065d1f7a6d21f6134864dd65980fe5dbe06c73
Expand Down
16 changes: 9 additions & 7 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ on:
env:
REGISTRY: ghcr.io

permissions: {}

jobs:
prepare:
runs-on: ubuntu-latest
Expand All @@ -29,7 +31,7 @@ jobs:
package-name: ${{ steps.package.outputs.name }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6.0.2

- name: Set lowercase image name
id: image
Expand All @@ -43,7 +45,7 @@ jobs:

- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@v6.0.0
with:
images: ${{ env.REGISTRY }}/${{ steps.image.outputs.name }}
tags: |
Expand Down Expand Up @@ -92,13 +94,13 @@ jobs:
cache-scope: arm64
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6.0.2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0

- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
Expand All @@ -115,7 +117,7 @@ jobs:
echo "tags=$(IFS=','; echo "${suffixed[*]}")" >> $GITHUB_OUTPUT

- name: Build and push Docker image
uses: docker/build-push-action@v5
uses: docker/build-push-action@v7.0.0
with:
context: .
file: ./Dockerfile
Expand All @@ -135,7 +137,7 @@ jobs:
packages: write
steps:
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/label-pull-requests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
name: 'Apply content-based labels'
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v5
- uses: actions/labeler@v6.0.1
with:
sync-labels: false
peer_review:
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@ jobs:
shell: bash
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
# - code below copied from build.yml -
- uses: actions/checkout@v4
- uses: actions/checkout@v6.0.2
- name: Install python
uses: actions/setup-python@v5
uses: actions/setup-python@v6.2.0
with:
python-version: '~3.12.7'
check-latest: true
Expand Down Expand Up @@ -88,7 +88,7 @@ jobs:
echo "SETUP_NAME=$SETUP_NAME" >> $Env:GITHUB_ENV
# - code above copied from build.yml -
- name: Attest Build
uses: actions/attest-build-provenance@v2
uses: actions/attest@v4.1.0
with:
subject-path: |
build/exe.*/ArchipelagoLauncher.exe
Expand All @@ -114,14 +114,14 @@ jobs:
- name: Set env
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
# - code below copied from build.yml -
- uses: actions/checkout@v4
- uses: actions/checkout@v6.0.2
- name: Install base dependencies
run: |
sudo apt update
sudo apt -y install build-essential p7zip xz-utils wget libglib2.0-0
sudo apt -y install python3-gi libgirepository1.0-dev # should pull dependencies for gi installation below
- name: Get a recent python
uses: actions/setup-python@v5
uses: actions/setup-python@v6.2.0
with:
python-version: '~3.12.7'
check-latest: true
Expand Down Expand Up @@ -157,7 +157,7 @@ jobs:
echo "TAR_NAME=$TAR_NAME" >> $GITHUB_ENV
# - code above copied from build.yml -
- name: Attest Build
uses: actions/attest-build-provenance@v2
uses: actions/attest@v4.1.0
with:
subject-path: |
build/exe.*/ArchipelagoLauncher
Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/scan-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,14 @@ on:
- 'requirements.txt'
- '.github/workflows/scan-build.yml'

permissions: {}

jobs:
scan-build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6.0.2
with:
submodules: recursive
- name: Install newer Clang
Expand All @@ -45,7 +47,7 @@ jobs:
run: |
sudo apt install clang-tools-19
- name: Get a recent python
uses: actions/setup-python@v5
uses: actions/setup-python@v6.2.0
with:
python-version: '3.11'
- name: Install dependencies
Expand All @@ -59,7 +61,9 @@ jobs:
scan-build-19 --status-bugs -o scan-build-reports -disable-checker deadcode.DeadStores python setup.py build -y
- name: Store report
if: failure()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7.0.0
with:
name: scan-build-reports
path: scan-build-reports
compression-level: 9 # highly compressible
if-no-files-found: error
6 changes: 4 additions & 2 deletions .github/workflows/strict-type-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,15 @@ on:
- ".github/workflows/strict-type-check.yml"
- "**.pyi"

permissions: {}

jobs:
pyright:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6.0.2

- uses: actions/setup-python@v5
- uses: actions/setup-python@v6.2.0
with:
python-version: "3.11"

Expand Down
Loading
Loading