Skip to content

Release readiness: Windows test pass for #502/#503/#504/#505/#508/#510 #511

@dsarno

Description

@dsarno

Handoff for the Windows test pass before cutting a release. Everything below is on main as of this issue.

What just landed on main

PR Change Windows relevance
#502 docs: Linux uv install options (#464) none (docs)
#503 fix(game_eval): cap eval readiness wait below server timeout (#500) low
#504 feat(clients): fall back to ~/.claude.json when claude CLI absent (#463) yes — path/%USERPROFILE% resolution
#505 feat(transport): --allow-host LAN opt-in (#421) yes — IPv6-only socket behavior
#508 fix: update_file() instead of full scan() on single-file writes medium (filesystem)
#510 test: script/stormtest.py stress harness + docs tooling

Windows test checklist (priority order)

  1. Transport / --allow-host (feat(transport): add --allow-host LAN opt-in for remote agents (#421) #505 / Allow opting MCP server into LAN access for remote agents (e.g. --allow-host CIDR) #421) — highest Windows risk. Copilot flagged (and a follow-up fixed) that Windows sockets are commonly IPv6-only, so binding :: would break IPv4. Verify on Windows:
    • Editor ↔ server link works normally (WS is now loopback-only even under --allow-host — confirm the plugin connects on ws://127.0.0.1:<port>).
    • With --allow-host containing an IPv4 CIDR, the HTTP server binds 0.0.0.0 and is reachable over IPv4 from another LAN host. (Code: src/godot_ai/transport/origin_guard.py::bind_host_for_networks — IPv4 present → 0.0.0.0, IPv6-only allowlist → ::.)
  2. Client config ~/.claude.json fallback (feat(clients): fall back to ~/.claude.json when the claude CLI is absent (#463) #504 / Claude Code running as (VS)Code Extension undetected #463). On Windows confirm the fallback path resolves correctly (%USERPROFILE%\.claude.json) and client_configure / client_status / the dock manual-command string are right.
  3. update_file() filesystem fix (fix: use update_file() instead of full scan() on single-file writes (prevents EditorFileSystem global-class SIGABRT) #508). Smoke script_create / script_patch / filesystem_write_text in a Windows editor; confirm new scripts are picked up and script_attach immediately after create still works (the Harden script_create -> script_attach against Godot import races #261 import-settle path). Junction symlink (test_project\addons\godot_ai) should already be built by setup-dev.ps1.
  4. Baseline smoke. .\script\setup-dev.ps1, enable plugin, open a scene, test_run (all GDScript suites pass), editor_state readiness present, a few write tools + undo.
  5. (Optional) stormtest on Windows. python script\stormtest.py (defaults ~1000 calls) — the fix: use update_file() instead of full scan() on single-file writes (prevents EditorFileSystem global-class SIGABRT) #508 fix should keep it from crashing the editor under script-create churn. Use SS_RELOAD=0 for a gentler pass. Report JSON lands in %TEMP%\stormtest_report.json.

After Windows passes — cut the release

gh workflow run bump-and-release.yml -f bump=patch   # or minor

(bumps plugin.cfg + pyproject.toml, tags, pushes; release.yml builds godot-ai-plugin.zip)

Known caveats / loose ends

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions