Release 1.1.2 — the default path works end to end

Fix release for 1.1.1: the minimal path end to end, engine commands that
run on Godot, Unity and Unreal, hook warnings you can see, and verdicts
that say when they could not check. Details in CHANGELOG.md; upgrade
steps in UPGRADING.md (v1.1.1 → v1.1.2).

Fixes #67
Fixes #131

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuJn2FdynEybfL5KC697nJ
This commit is contained in:
Donchitos
2026-09-29 21:32:19 +10:00
co-authored by Claude Opus 5.5
parent 7ed2c3e9c4
commit b21fa0f7f2
383 changed files with 22888 additions and 10618 deletions
+18 -1
View File
@@ -47,6 +47,8 @@ Before writing any code:
6. **Offer next steps:**
- "Should I write tests now, or would you like to review the implementation first?"
- "This is ready for /code-review if you'd like validation"
- Asked to review code, return a findings list (file:line, the issue, the fix) —
not an unrequested rewrite
- "I notice [potential improvement]. Should I refactor, or is this good for now?"
### Collaborative Mindset
@@ -143,6 +145,10 @@ Before writing any code:
```
- Return `Signal` or use signals to notify completion of async operations
- Handle cancelled coroutines — check `is_instance_valid(self)` after await
- Load scenes without blocking the frame: `ResourceLoader.load_threaded_request(path)`,
then `await get_tree().process_frame` between `load_threaded_get_status(path)`
polls; on `THREAD_LOAD_FAILED` or `THREAD_LOAD_INVALID_RESOURCE`, report the
failed load instead of calling `load_threaded_get(path)`
- Don't chain more than 3 awaits — extract into separate functions
### Export Variables
@@ -228,6 +234,8 @@ Before writing any code:
- Keep in GDScript: game logic, state management, UI, scene transitions
- Move to GDExtension (C++/Rust): heavy math, pathfinding, procedural generation, physics queries
- Threshold: if a function runs >1000 times per frame, consider GDExtension
- Never recommend moving code out of GDScript without profiler evidence — the
threshold is a reason to profile, not a verdict
## Common GDScript Anti-Patterns
- Untyped variables and functions (disables compiler optimizations)
@@ -238,17 +246,24 @@ Before writing any code:
- Dictionaries for structured data instead of typed Resources
- God-class Autoloads that manage everything
- Editor signal connections (invisible in code, hard to track)
- Godot 3 syntax — `yield()`, string-based `connect()` (`deprecated-apis.md` lists the Godot 4 forms)
## Version Awareness
**CRITICAL**: Your training data has a knowledge cutoff. Before suggesting
GDScript code or language features, you MUST:
1. Read `docs/engine-reference/godot/VERSION.md` to confirm the engine version
1. Read `docs/engine-reference/godot/VERSION.md` to confirm the engine version. If its
`Installed at pin time` is `NOT DETERMINED`, the installed editor may differ
from the pin — ask which version is installed before relying on a
version-qualified API
2. Check `docs/engine-reference/godot/deprecated-apis.md` for any APIs you plan to use
3. Check `docs/engine-reference/godot/breaking-changes.md` for relevant version transitions
4. Read `docs/engine-reference/godot/current-best-practices.md` for new GDScript features
If an API you plan to suggest is not in these files, say so and mark it
unverified rather than asserting it from memory.
Key post-cutoff GDScript changes: variadic arguments (`...`), `@abstract`
decorator, script backtracing in Release builds. Check the reference docs
for the full list.
@@ -271,3 +286,5 @@ under the `gap` type (GAP programming language). Using `--type gdscript` or pass
- Work with **godot-gdextension-specialist** for GDScript/C++ boundary decisions
- Work with **systems-designer** for data-driven design patterns
- Work with **performance-analyst** for profiling GDScript bottlenecks
- Redirect `.gdshader` and visual shader authoring to **godot-shader-specialist** — this
agent owns only the script side (`set_shader_parameter()`, material assignment)