Releases: hi-godot/godot-ai
v2.8.0
What's Changed
- Fix: Added static types to iterators in game_logger.gd by @straydog-1212 in #560
- ci: promote Godot 4.7 by @Clubhouse1661 in #585
- ui: let clients dock row shrink by @Clubhouse1661 in #587
- chore: stop tracking uv lock by @Clubhouse1661 in #590
- fix: explain missing Godot editor sessions by @Clubhouse1661 in #572
- Fix client configure stuck by @Clubhouse1661 in #589
- Persist MCP signal connections with Object.CONNECT_PERSIST so they survive scene save by @cpalaka in #584
- Coerce struct-valued property writes (Rect2, Transform, Vector4, …) instead of silently no-op-ing by @cpalaka in #582
- ci(deps): bump actions/setup-python from 6.2.0 to 6.3.0 by @dependabot[bot] in #593
- ci(deps): bump softprops/action-gh-release from 3.0.0 to 3.0.1 by @dependabot[bot] in #594
- ci(deps): bump actions/checkout from 6.0.3 to 7.0.0 by @dependabot[bot] in #595
- fix: recover stuck client configure actions by @Clubhouse1661 in #598
- Harden self-update by @ftab in #588
- test: add deterministic MCP verification workflows by @Clubhouse1661 in #601
- Reap completed dock client workers from the main thread by @Clubhouse1661 in #602
- Add shared game liveness status by @Clubhouse1661 in #603
- Explain game-tool failures when the game never becomes live by @Clubhouse1661 in #604
- stormtest: shared _dev_env helpers + venv auto-re-exec (ports from #516) by @dsarno in #578
- Fix game log run lifecycle by @Clubhouse1661 in #605
- Report game liveness from project_run by @Clubhouse1661 in #606
New Contributors
- @straydog-1212 made their first contribution in #560
- @cpalaka made their first contribution in #584
Full Changelog: v2.7.6...v2.8.0
v2.7.6
What's Changed
- Add cursor polling for editor logs by @Clubhouse1661 in #559
- fix(runtime): look up EditorInterface by name so exported builds parse game_helper.gd autoload by @andperks6 in #562
- Report script errors in test runner and clean tracked allocations by @ftab in #563
- add Godot 4.7 row and harden input device IDs by @Clubhouse1661 in #568
- test: skip POSIX pid liveness checks on Windows by @Clubhouse1661 in #571
- harden(self-update): inline-extract path safety + integrity, brand-gate managed_record kill by @dsarno in #575
- harden(self-update): verify release checksum before extract (#523) by @dsarno in #576
- stormtest: cross-platform worktree launcher + isolated reload mode (#574) by @dsarno in #577
New Contributors
- @andperks6 made their first contribution in #562
- @ftab made their first contribution in #563
Full Changelog: v2.7.5...v2.7.6
v2.7.5
What's Changed
- Capture exact GDScript write diagnostics by @Clubhouse1661 in #558
Full Changelog: v2.7.4...v2.7.5
v2.7.4
What's Changed
- Add GDScript write diagnostics by @Clubhouse1661 in #556
Full Changelog: v2.7.3...v2.7.4
v2.7.3
What's Changed
- Add structured log cursor reads by @Clubhouse1661 in #555
Full Changelog: v2.7.2...v2.7.3
v2.7.2
What's Changed
- Add Godot ClassDB API introspection by @Clubhouse1661 in #553
Full Changelog: v2.7.1...v2.7.2
v2.7.1
What's Changed
- ci(deps): bump actions/github-script from 7.1.0 to 9.0.0 by @dependabot[bot] in #550
- deps: update fastmcp requirement from <3.3.0,>=3.0.0 to >=3.0.0,<3.5.0 by @dependabot[bot] in #551
- Surface editor error context in log reads by @mq1n in #520
New Contributors
- @dependabot[bot] made their first contribution in #550
- @mq1n made their first contribution in #520
Full Changelog: v2.7.0...v2.7.1
v2.7.0
godot-ai 2.7.0 — security & robustness hardening
A pre-release hardening pass across the editor plugin and the Python/MCP server: path-confinement validation on every file-touching handler, the --allow-host LAN trust boundary, config-file permissions, JSON config fidelity, and the telemetry opt-out. Everything stays loopback-only by default and is backward compatible except the one error-code change noted below.
⚠️ Behavior change — path error codes
Path-validation failures now return more specific error codes. Previously the filesystem_* and script_* tools returned INVALID_PARAMS for any bad path; now, consistently across all path-taking tools:
- an empty / missing path →
MISSING_REQUIRED_PARAM - a malformed path (traversal, non-
res://, or a write to the project manifest /.godot/) →VALUE_OUT_OF_RANGE
If your integration branches on INVALID_PARAMS for these path errors, switch to the codes above. The error message text still describes the problem as before — only the code is more specific.
What's Changed
- harden(protocol): bound + charset-constrain the handshake session_id by @dsarno in #547
- ci: pin actions to SHAs, scope ci.yml token, add Dependabot, ignore reports by @dsarno in #548
- harden(transport): gate --allow-host on the real socket peer, not the Host header by @dsarno in #544
- harden(handlers): route every path-taking handler through McpPathValidator by @dsarno in #546
- harden(clients): preserve file mode (0600) + flush on atomic config writes by @dsarno in #545
- harden(plugin): stop JSON config re-sort, honor UI opt-out over falsey env by @dsarno in #549
Full Changelog: v2.6.1...v2.7.0
v2.6.1
What's Changed
Full Changelog: v2.6.0...v2.6.1
v2.6.0
What's Changed
- Add vendor-neutral assistant guide by @Clubhouse1661 in #501
- docs: add Linux package-manager uv install options (#464) by @dsarno in #502
- feat(transport): add --allow-host LAN opt-in for remote agents (#421) by @dsarno in #505
- fix(game_eval): cap eval readiness wait below the server command timeout (#500) by @dsarno in #503
- feat(clients): fall back to ~/.claude.json when the claude CLI is absent (#463) by @dsarno in #504
- fix: use update_file() instead of full scan() on single-file writes (prevents EditorFileSystem global-class SIGABRT) by @dsarno in #508
- test: add stormtest concurrency/reload stress harness by @dsarno in #510
- docs(stormtest): Windows/cross-platform pathing heads-up (stacked on #510) by @dsarno in #512
Full Changelog: v2.5.13...v2.6.0