Skip to content
Open
Show file tree
Hide file tree
Changes from 99 commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
1c1da75
Remove AI plugin, fix web check, add test script
ikostan May 10, 2026
5f1e9ba
Update test_injection.sh
ikostan May 10, 2026
af567a9
Update project.godot
ikostan May 11, 2026
3dcf5f2
Bump DavidAnson/markdownlint-cli2-action from 23.0.0 to 23.2.0
dependabot[bot] May 11, 2026
4c725c3
Bump release-drafter/release-drafter from 7.2.0 to 7.3.0
dependabot[bot] May 11, 2026
9c896c7
Bump urllib3 from 2.6.3 to 2.7.0 in the pip group across 1 directory
dependabot[bot] May 11, 2026
0bfee27
Merge pull request #604 from ikostan/dependabot/github_actions/DavidA…
ikostan May 12, 2026
f0c90cd
Merge pull request #605 from ikostan/dependabot/github_actions/releas…
ikostan May 12, 2026
352e44b
Merge pull request #606 from ikostan/dependabot/pip/pip-c30c77f42d
ikostan May 12, 2026
4d7d861
Merge branch 'encryption-key-generation-failure-in-web-export' of htt…
ikostan May 12, 2026
632bb35
Add error handling for directory change.
ikostan May 12, 2026
9122662
Restore project.godot automatically after injection/export.
ikostan May 12, 2026
946f69e
Add explicit error handling for salt injection and patch steps.
ikostan May 12, 2026
2351da0
Update test_injection.sh
ikostan May 12, 2026
4069a07
Use CI-injected salt; remove JS eval
ikostan May 13, 2026
7794236
Update globals.gd
ikostan May 13, 2026
b77ebea
Update globals.gd
ikostan May 13, 2026
9b9f7e7
Use CI salt placeholder and auto-remove corrupted saves
ikostan May 13, 2026
4ddd331
Update globals.gd
ikostan May 13, 2026
6d4598e
Replace AWK-based salt injection with sed
ikostan May 13, 2026
0e7629e
style: format code with Black and isort
deepsource-autofix[bot] May 13, 2026
76d3f75
Update deploy_to_itch.yml
ikostan May 13, 2026
ef094ca
Update test_salt_injection.py
ikostan May 13, 2026
ff9bb38
Centralize salt injection into single script
ikostan May 13, 2026
5b41101
style: format code with Black and isort
deepsource-autofix[bot] May 13, 2026
510e383
One-line docstring should fit on one line with quotes
ikostan May 13, 2026
0a443a4
Add test cleanup and modernize encryption tests
ikostan May 13, 2026
c56cd0e
🚨 issue (security): Treating all web builds as automated tests weaken…
ikostan May 13, 2026
972cacb
Update test_salt_injection.py
ikostan May 13, 2026
69e2b1e
style: format code with Black and isort
deepsource-autofix[bot] May 13, 2026
5acee0b
Update globals.gd
ikostan May 13, 2026
5965881
Merge branch 'encryption-key-generation-failure-in-web-export' of htt…
ikostan May 13, 2026
fbf1b7e
suggestion (bug_risk): Handle failure cases when auto-deleting corrup…
ikostan May 13, 2026
a2776a3
Update run_browser_tests.sh
ikostan May 13, 2026
7f3b3a1
Update browser tests: disable plugins, inject salt
ikostan May 13, 2026
f8d82fd
Update browser_test.yml
ikostan May 14, 2026
60d126f
Increase timeouts and harden CI browser test script
ikostan May 14, 2026
d70c09c
Update back_flow_test.py
ikostan May 14, 2026
0a82016
Update back_flow_test.py
ikostan May 14, 2026
e660d4f
Add CI flag and secure test HTTP server
ikostan May 14, 2026
4cf704d
Update browser_test.yml
ikostan May 14, 2026
912bf49
Update test_injection.sh
ikostan May 14, 2026
18ac35e
Update test_encryption_logging.gd
ikostan May 14, 2026
d387493
suggestion (bug_risk): The sed pattern for disabling plugins may be o…
ikostan May 14, 2026
7d0bcd5
Scope sed replacement to [editor_plugins] section
ikostan May 14, 2026
aeb6ac3
suggestion (testing): Add tests for error/edge cases in salt injectio…
ikostan May 14, 2026
08bb8b1
style: format code with Black and isort
deepsource-autofix[bot] May 14, 2026
0653f14
Update test_salt_injection.py
ikostan May 14, 2026
d2240f6
Merge branch 'encryption-key-generation-failure-in-web-export' of htt…
ikostan May 14, 2026
f150267
Update test_salt_injection.py
ikostan May 14, 2026
6e02079
Unused import stat
ikostan May 14, 2026
c075f20
Refactor CI salt injection tests to pytest
ikostan May 14, 2026
63934b4
style: format code with Black and isort
deepsource-autofix[bot] May 14, 2026
f770f9a
CI: improve salt injection tests & workflow
ikostan May 14, 2026
b843bc5
Improve salt injection tests: robustness & strictness
ikostan May 14, 2026
93c6446
style: format code with Black and isort
deepsource-autofix[bot] May 14, 2026
62a5fe4
Update test_ci_scripts.yml
ikostan May 14, 2026
d95a499
'subprocess.run' used without explicitly defining the value for 'che…
ikostan May 14, 2026
45c1ac7
prevent accidental data loss when an antivirus or the operating syste…
ikostan May 14, 2026
e574c14
style: format code with Black and isort
deepsource-autofix[bot] May 14, 2026
f4055a6
Update globals.gd
ikostan May 14, 2026
59d8805
Merge branch 'encryption-key-generation-failure-in-web-export' of htt…
ikostan May 14, 2026
9ee7ea2
Duplicated ci Flag Injection
ikostan May 14, 2026
1fb1bad
Update test_ci_scripts.yml
ikostan May 14, 2026
4e62afc
ci: enforce UTF-8 and add CI test fixtures
ikostan May 14, 2026
fa3d0eb
style: format code with Black and isort
deepsource-autofix[bot] May 14, 2026
ca18765
Inject CI flag per-preset and improve tests
ikostan May 14, 2026
8e2a0c1
style: format code with Black and isort
deepsource-autofix[bot] May 14, 2026
57f71b4
Update browser_test.yml
ikostan May 14, 2026
f9be6de
Do not overwrite backup on repeated CI injection
ikostan May 14, 2026
bb45197
style: format code with Black and isort
deepsource-autofix[bot] May 14, 2026
1d273ef
Unused import tempfile
ikostan May 14, 2026
e75ced5
Merge branch 'encryption-key-generation-failure-in-web-export' of htt…
ikostan May 14, 2026
f4c9c82
Update test_ci_flag_injection.py
ikostan May 14, 2026
b84beca
Update test_ci_flag_injection.py
ikostan May 14, 2026
55d61fb
style: format code with Black and isort
deepsource-autofix[bot] May 14, 2026
e1b06a9
Use r""" if any backslashes in a docstring
ikostan May 14, 2026
1a4c934
Update audio_flow_test.py
ikostan May 14, 2026
dff39f6
Update globals.gd
ikostan May 14, 2026
30958dd
Inject CI flag under [preset.N]; update tests & CI
ikostan May 14, 2026
3651f6e
style: format code with Black and isort
deepsource-autofix[bot] May 14, 2026
704fc3a
Update test_ci_scripts.yml
ikostan May 14, 2026
4c1b4a2
Replace hardcoded timeouts with TEST_TIMEOUT
ikostan May 14, 2026
203dfdb
suggestion (testing): Consider adding a test that explicitly covers C…
ikostan May 14, 2026
b5c37b2
Merge branch 'encryption-key-generation-failure-in-web-export' of htt…
ikostan May 14, 2026
f818978
Update test_ci_flag_injection.py
ikostan May 14, 2026
6706aa2
🚨 suggestion (security): Logging the CI/test flag at INFO for every e…
ikostan May 15, 2026
12a63e3
style: format code with Black and isort
deepsource-autofix[bot] May 15, 2026
30bea46
issue (bug_risk): Accessing sys.stdout.encoding without a None check …
ikostan May 15, 2026
7b90208
Merge branch 'encryption-key-generation-failure-in-web-export' of htt…
ikostan May 15, 2026
7b24cea
Update test_injection.sh
ikostan May 15, 2026
5df68b9
Update tests/ci/test_salt_injection.py
ikostan May 15, 2026
a6023f0
Update test_salt_injection.py
ikostan May 15, 2026
a84fe07
Update browser_test.yml
ikostan May 15, 2026
c7cef19
macOS / BSD sed compatibility (test_injection.sh & inject_salt.sh)
ikostan May 15, 2026
83de3c4
suggestion (testing): Relax assertion on exact error message for empt…
ikostan May 15, 2026
3547227
Update test_injection.sh
ikostan May 15, 2026
d09b838
Update test_ci_flag_injection.py
ikostan May 15, 2026
7736e07
style: format code with Black and isort
deepsource-autofix[bot] May 15, 2026
dbf4db2
Update test_injection.sh
ikostan May 15, 2026
16dc801
Add CI utilities and refactor scripts
ikostan May 15, 2026
2329305
Use ci_utils.sh to disable editor plugins
ikostan May 15, 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
66 changes: 66 additions & 0 deletions .github/scripts/inject_ci_flag.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#!/usr/bin/env python3
"""
Infrastructure utility for Godot 4 Web exports.

This script modifies 'export_presets.cfg' to inject a custom 'ci' feature flag.
"""

import re
import shutil
import sys
from pathlib import Path

# Force UTF-8 encoding for stdout to prevent crashes on Windows legacy terminals.
# Safely fallback to "" if stdout is redirected (e.g., in CI) and encoding is None.
stdout_enc = sys.stdout.encoding or ""
if stdout_enc.lower() != "utf-8":
try:
sys.stdout.reconfigure(encoding="utf-8")
except Exception:
# Proceed safely if reconfigure is unsupported in the current piped environment
pass


def inject_ci_flag():
"""
Parses export_presets.cfg and injects the 'ci' flag into custom_features.
Uses a 'Strip and Append' strategy to safely handle multiple presets.
"""
config_path = Path("export_presets.cfg")
backup_path = Path("export_presets.cfg.bak")

try:
if config_path.exists():
if not backup_path.exists():
shutil.copy2(config_path, backup_path)
else:
print(
f"❌ ERROR: {config_path} not found. Ensure you are in the project root."
)
sys.exit(1)

data = config_path.read_text(encoding="utf-8")

# 1. Strip out ANY existing custom_features lines to ensure a clean slate.
updated_data = re.sub(r"(?m)^custom_features=.*\r?\n?", "", data)

# 2. Inject the 'ci' flag directly under EVERY root preset header.
# This matches [preset.0], [preset.1] etc., but explicitly avoids [preset.0.options]
updated_data = re.sub(
r"(?m)^(\[preset\.\d+\])\s*$", r'\1\ncustom_features="ci"', updated_data
)

config_path.write_text(updated_data, encoding="utf-8")

print("✅ Successfully injected 'ci' feature flag into export_presets.cfg")

except Exception as e:
try:
print(f"❌ Failed to inject 'ci' flag: {e}")
except UnicodeEncodeError:
print(f"Failed to inject 'ci' flag (encoding error in logs): {e}")
sys.exit(1)


if __name__ == "__main__":
inject_ci_flag()
74 changes: 30 additions & 44 deletions .github/scripts/inject_salt.sh
Original file line number Diff line number Diff line change
@@ -1,53 +1,39 @@
#!/bin/bash
# .github/scripts/inject_salt.sh

# $1 is the filename passed from Python (e.g., "dummy.godot")
TARGET_FILE="$1"

if [ -z "$TARGET_FILE" ]; then
echo "Error: No file path provided."
echo "❌ ERROR: No target file provided."
exit 1
fi

awk '
BEGIN {
salt = ENVIRON["SALT"]
in_game = 0
salt_written = 0
saw_game_section = 0
}
{
if ($0 ~ /^\[game\]/) {
in_game = 1
saw_game_section = 1
print
next
} else if ($0 ~ /^\[/ && $0 !~ /^\[game\]/) {
if (in_game && !salt_written) {
print "security/save_salt=\"" salt "\""
salt_written = 1
}
in_game = 0
print
next
}
if (in_game && $0 ~ /^[[:space:]]*security\/save_salt[[:space:]]*=/) {
if (!salt_written) {
print "security/save_salt=\"" salt "\""
salt_written = 1
}
next
}
print
}
END {
if (in_game && !salt_written) {
print "security/save_salt=\"" salt "\""
salt_written = 1
}
if (!saw_game_section) {
if (NR > 0) { print "" }
print "[game]"
print "security/save_salt=\"" salt "\""
}
if [ ! -f "$TARGET_FILE" ]; then
echo "❌ ERROR: Target file '$TARGET_FILE' does not exist."
exit 1
fi

if [ -z "$PRODUCTION_SALT" ]; then
echo "❌ ERROR: PRODUCTION_SALT environment variable is not set."
exit 1
fi

echo "⚙️ Injecting secret into $TARGET_FILE..."

# 1. Escape for Godot's parser
GODOT_ESCAPED=$(printf '%s' "$PRODUCTION_SALT" | sed 's/\\/\\\\/g; s/"/\\"/g')

# 2. Escape for sed replacement string
SED_ESCAPED=$(printf '%s' "$GODOT_ESCAPED" | sed 's/\\/\\\\/g; s/&/\\&/g; s/|/\\|/g')

# Cross-platform sed for in-place editing (macOS vs Linux)
sedi() {
if [ "$(uname)" = "Darwin" ]; then
sed -i '' "$@"
else
sed -i "$@"
fi
}
' "$TARGET_FILE" > "${TARGET_FILE}.tmp" && mv "${TARGET_FILE}.tmp" "$TARGET_FILE"

# 3. Replace the safe placeholder with the real secret
sedi "s|\"CI_INJECT_SALT_HERE\"|\"$SED_ESCAPED\"|g" "$TARGET_FILE"
44 changes: 33 additions & 11 deletions .github/workflows/browser_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,21 @@
steps:
- uses: "actions/[email protected]"

- name: "Inject Test Salt"
# Ensures Godot headless export doesn't strip the property, keeping encryption active for tests
- name: "Disable Editor Plugins (Prevent Headless Crash)"
run: |
if ! grep -q '\[game\]' project.godot; then
printf '\n[game]\nsecurity/save_salt="test_salt_12345"\n' >> project.godot
else
sed -i '/^\[game\]/a security/save_salt="test_salt_12345"' project.godot
fi
# Prevents Signal 11 crashes during headless export on Ubuntu runners
sed -i '/^\[editor_plugins\]/,/^\[/ s/^enabled=PackedStringArray.*/enabled=PackedStringArray()/' project.godot

Check warning on line 29 in .github/workflows/browser_test.yml

View workflow job for this annotation

GitHub Actions / YAML Lint / build (3.x)

29:91 [line-length] line too long (120 > 90 characters)

- name: "Inject Test Salt into GDScript"
env:
PRODUCTION_SALT: "playwright_dummy_salt_123"
run: |
# Executes the Single Source of Truth script
bash ./.github/scripts/inject_salt.sh "scripts/core/globals.gd"

- name: "Inject 'ci' feature flag into export_presets.cfg"
run: |
python3 .github/scripts/inject_ci_flag.py

- name: "Create Export Directories"
run: |
Expand All @@ -40,19 +47,19 @@
id: "export"
uses: "firebelley/godot-export@930577654862a320eef793f399ee911b4479efb9"
with:
godot_executable_download_url: "https://github.com/godotengine/godot/releases/download/4.5-stable/Godot_v4.5-stable_linux.x86_64.zip"

Check warning on line 50 in .github/workflows/browser_test.yml

View workflow job for this annotation

GitHub Actions / YAML Lint / build (3.x)

50:91 [line-length] line too long (143 > 90 characters)
godot_export_templates_download_url: "https://github.com/godotengine/godot/releases/download/4.5-stable/Godot_v4.5-stable_export_templates.tpz"

Check warning on line 51 in .github/workflows/browser_test.yml

View workflow job for this annotation

GitHub Actions / YAML Lint / build (3.x)

51:91 [line-length] line too long (153 > 90 characters)
relative_project_path: "./"
relative_export_path: "./export/web_thread_off"
archive_output: false
cache: false
verbose: true
presets_to_export: "Web_thread_off"
use_preset_export_path: true # Move exports to the directory defined in export_presets.cfg

Check warning on line 58 in .github/workflows/browser_test.yml

View workflow job for this annotation

GitHub Actions / YAML Lint / build (3.x)

58:91 [line-length] line too long (101 > 90 characters)

- name: "Flatten Export Directory"
run: |
bash ./.github/scripts/flatten_export.sh "export/web_thread_off" "Web_thread_off"

Check warning on line 62 in .github/workflows/browser_test.yml

View workflow job for this annotation

GitHub Actions / YAML Lint / build (3.x)

62:91 [line-length] line too long (91 > 90 characters)

- name: "List Export Directory Contents"
run: |
Expand All @@ -69,12 +76,12 @@

- name: "Cache PIP Dependencies"
uses: "actions/cache@v5"
id: cache

Check warning on line 79 in .github/workflows/browser_test.yml

View workflow job for this annotation

GitHub Actions / YAML Lint / build (3.x)

79:13 [quoted-strings] string value is not quoted with double quotes
with:
path: "~/.cache/pip"
# FIX: Added '-v2' to invalidate the old corrupted cache
key: ${{ runner.os }}-pip-v2-${{ hashFiles('requirements.txt') }}

Check warning on line 83 in .github/workflows/browser_test.yml

View workflow job for this annotation

GitHub Actions / YAML Lint / build (3.x)

83:16 [quoted-strings] string value is not quoted with double quotes
restore-keys: ${{ runner.os }}-pip-v2-

Check warning on line 84 in .github/workflows/browser_test.yml

View workflow job for this annotation

GitHub Actions / YAML Lint / build (3.x)

84:25 [quoted-strings] string value is not quoted with double quotes

- name: "Install Playwright"
run: |
Expand All @@ -83,9 +90,9 @@

- name: "Cache Playwright Browsers"
uses: "actions/cache@v5"
id: playwright-cache

Check warning on line 93 in .github/workflows/browser_test.yml

View workflow job for this annotation

GitHub Actions / YAML Lint / build (3.x)

93:13 [quoted-strings] string value is not quoted with double quotes
with:
path: ~/.cache/ms-playwright

Check warning on line 95 in .github/workflows/browser_test.yml

View workflow job for this annotation

GitHub Actions / YAML Lint / build (3.x)

95:17 [quoted-strings] string value is not quoted with double quotes
# FIX: Added '-v2-' to force GitHub to build a brand new, healthy cache
key: ${{ runner.os }}-playwright-v2-${{ hashFiles('**/requirements.txt') }}
restore-keys: ${{ runner.os }}-playwright-v2-
Expand All @@ -93,11 +100,26 @@
- name: "Install Playwright Browsers"
if: steps.playwright-cache.outputs.cache-hit != 'true'
run: |
playwright install --with-deps chromium
playwright install --with-deps chromium

- name: "Start WEB Server"
- name: "Start Security-Isolated HTTP Server"
run: |
python -m http.server 8080 --directory export/web_thread_off &
python3 -c "
import http.server, socketserver, os
class MyHandler(http.server.SimpleHTTPRequestHandler):
def end_headers(self):
self.send_header('Cross-Origin-Opener-Policy', 'same-origin')
self.send_header('Cross-Origin-Embedder-Policy', 'require-corp')
self.send_header('Cache-Control', 'no-store, no-cache, must-revalidate')
super().end_headers()
socketserver.TCPServer.allow_reuse_address = True
with socketserver.TCPServer(('', 8080), MyHandler) as httpd:
os.chdir('export/web_thread_off')
print('🚀 Security-isolated server starting on port 8080...')
httpd.serve_forever()
" &
sleep 5
curl -I http://localhost:8080/index.html

- name: "Wait For WEB Server Response"
run: |
Expand All @@ -112,7 +134,7 @@

- name: "Run Tests"
run: |
PYTHONPATH="$PWD/tests:$PYTHONPATH" pytest tests/ -v --ignore=tests/refactor --junitxml=junit.xml -o junit_family=legacy
PYTHONPATH="$PWD/tests:$PYTHONPATH" pytest tests/ -v --ignore=tests/refactor --ignore=tests/ci --junitxml=junit.xml -o junit_family=legacy

- name: "List Coverage Reports"
run: |
Expand Down
58 changes: 9 additions & 49 deletions .github/workflows/deploy_to_itch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,56 +36,16 @@ jobs:
printf '\n[application]\nconfig/version="%s"\n' "$ESCAPED_VERSION" >> project.godot
fi

- name: "Inject Production Salt into project.godot"
env:
RAW_SECRET: ${{ secrets.PRODUCTION_SALT }}
- name: "Disable Editor Plugins (Prevent Headless Crash)"
run: |
# 1. Escape backslashes and quotes for Godot's config format[cite: 14]
ESCAPED_SALT=$(printf '%s' "$RAW_SECRET" | sed 's/\\/\\\\/g; s/"/\\"/g')
# 2. Use a section-aware awk script to update security/save_salt[cite: 14]
# Pass the salt directly into awk to avoid broad environment exposure[cite: 14]
awk -v salt="$ESCAPED_SALT" '
BEGIN {
in_game = 0
salt_written = 0
saw_game_section = 0
}
{
if ($0 ~ /^\[game\]/) {
in_game = 1
saw_game_section = 1
print
next
} else if ($0 ~ /^\[/ && $0 !~ /^\[game\]/) {
if (in_game && !salt_written) {
print "security/save_salt=\"" salt "\""
salt_written = 1
}
in_game = 0
print
next
}
if (in_game && $0 ~ /^[[:space:]]*security\/save_salt[[:space:]]*=/) {
if (!salt_written) {
print "security/save_salt=\"" salt "\""
salt_written = 1
}
next
}
print
}
END {
if (in_game && !salt_written) {
print "security/save_salt=\"" salt "\""
salt_written = 1
}
if (!saw_game_section) {
if (NR > 0) { print "" }
print "[game]"
print "security/save_salt=\"" salt "\""
}
}
' project.godot > project.godot.tmp && mv project.godot.tmp project.godot
# Prevents Signal 11 crashes during headless export on Ubuntu runners
# Section-aware: Only targets the enabled array inside [editor_plugins]
sed -i '/^\[editor_plugins\]/,/^\[/ s/^enabled=PackedStringArray.*/enabled=PackedStringArray()/' project.godot

- name: "Inject Production Salt into GDScript"
env:
PRODUCTION_SALT: ${{ secrets.PRODUCTION_SALT }}
run: bash ./.github/scripts/inject_salt.sh "scripts/core/globals.gd"

- name: "Create Export Directories"
run: mkdir -p export/web
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint_readme.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
# Lints Markdown for formatting/spelling
# Pinned to SHA for security (was @v19)
# yamllint disable rule:line-length
uses: "DavidAnson/markdownlint-cli2-action@ce4853d43830c74c1753b39f3cf40f71c2031eb9"
uses: "DavidAnson/markdownlint-cli2-action@ded1f9488f68a970bc66ea5619e13e9b52e601cd"
# yamllint enable rule:line-length
with:
config: ".markdownlint-cli2.yaml"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release_drafter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
tag_name: "${{ steps.drafter.outputs.tag_name }}" # Expose from step
steps:
# yamllint disable-line rule:line-length
- uses: "release-drafter/release-drafter@5de93583980a40bd78603b6dfdcda5b4df377b32"
- uses: "release-drafter/release-drafter@c2e2804cc59f45f57076a99af580d0fedb697927"
id: drafter # Add ID to access outputs
with:
config-name: "release-drafter.yml" # Explicitly point to your config
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release_drafter_pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
runs-on: "ubuntu-latest"
steps:
# yamllint disable-line rule:line-length
- uses: "release-drafter/release-drafter@5de93583980a40bd78603b6dfdcda5b4df377b32"
- uses: "release-drafter/release-drafter@c2e2804cc59f45f57076a99af580d0fedb697927"
with:
config-name: "release-drafter.yml" # Your existing config
env:
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/test_ci_scripts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ jobs:
with:
python-version: "3.12"

- name: "Run Salt Injection Test"
- name: "Install Dependencies"
run: |
python tests/ci/test_salt_injection.py
python -m pip install --upgrade pip
pip install pytest playwright

- name: "Run CI Injection Tests"
run: |
pytest tests/ci/ -v -s
4 changes: 2 additions & 2 deletions project.godot
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@ window/vsync/vsync_mode=0

[editor_plugins]

enabled=PackedStringArray("res://addons/ai_autonomous_agent/plugin.cfg", "res://addons/gut/plugin.cfg")
enabled=PackedStringArray("res://addons/gut/plugin.cfg")

[game]

security/save_salt=""
security/save_salt="dev_fallback_salt"
Comment thread
coderabbitai[bot] marked this conversation as resolved.

[gdunit4]

Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,4 @@ setuptools==80.10.2
six==1.17.0
text-unidecode==1.3
typing_extensions==4.15.0
urllib3==2.6.3
urllib3==2.7.0
Loading
Loading