engine(macos-arm64): 4.7 native-module build + ship GodotSharp; add update-engine skill

- Replace macOS binary with the 4.7 build where Terrain3D + agent_skinned are native
  engine modules (no GDExtension .framework). Fixed C# bindability (set_plugin->Object,
  abstract Terrain3DAssetResource, drop dup duplicate bind) so glue generates.
- SHIP GodotSharp alongside the binary (matched pair) — stale/missing GodotSharp causes
  "Wrapper class not found for Terrain3D" / ".NET assemblies not found". Engine does not
  regenerate it. Un-ignore GodotSharp in .gitignore.
- manifest.json: macOS -> 4.7 (4ba7b5b) + new sha + godotsharp field; drop obsolete
  terrain_3d GDExtension section; windows flagged 4.7-pending.
- Add .agents/skills/update-engine (mac+win self-serve install) + README + Forge handoff.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-19 02:35:00 +01:00
parent cf4a8bc6e3
commit b0810fbdfd
79 changed files with 421 additions and 34 deletions
+35 -6
View File
@@ -1,11 +1,40 @@
# tinqs/builds
Build artifacts for the Tinqs stack — engine editor binaries and game exports.
**Binaries are stored via Git LFS** (see `.gitattributes`). Source lives in `tinqs/engine`,
`tinqs/ariki-game`, `tinqs/ariki-sim`. See `manifest.json` for what's here.
Build artifacts for the Tinqs stack — engine editor binaries (+ their GodotSharp C# bindings).
**Binaries and GodotSharp are stored via Git LFS** (see `.gitattributes`). Source lives in
`tinqs/engine`, `tinqs/ariki-game`, `tinqs/ariki-sim`. See `manifest.json` for exact versions.
Long-term plan: CI (Gitea Actions) builds on push and publishes here / to S3 — see
`docs/ai/plans/build-pipeline-architecture-2026-06-07.md`.
> **Use `tinqs pull` / `tinqs push`, never raw git** — these are LFS-heavy.
## Installing / updating the engine
**Don't copy files by hand — run the skill:** [`.agents/skills/update-engine`](.agents/skills/update-engine/SKILL.md).
Hand it to your agent; it installs the binary + GodotSharp into `../engine/bin/`, wipes stale
caches, and verifies. Covers macOS + Windows.
## ⚠️ The one rule: binary + GodotSharp are a MATCHED PAIR
Each engine binary ships with a `GodotSharp/` folder (Godot's C# bindings) **generated from that
exact engine build**. You must install them **together** and replace any old `GodotSharp`.
- The engine does **NOT** regenerate GodotSharp at runtime. If it's missing you get a
**`.NET assemblies not found`** dialog pointing at `engine/bin/GodotSharp/Api/Debug`.
- A **stale** GodotSharp (from an older engine) against a newer binary throws
**`Wrapper class not found for type: Terrain3D`** → terrain renders as water, animals don't animate.
This matters now because **Terrain3D and `agent_skinned` are native engine modules** (no separate
`addons/terrain_3d` GDExtension `.framework`). Built-in module classes need their wrappers baked
into GodotSharp, so GodotSharp had to be regenerated — and must ship here alongside the binary.
## Current contents
- `engine/macos-arm64/tinqs.macos.editor.arm64.mono` — Godot 4.6.3 fork editor (mono), built on Kraken with Xcode 26.3.
| Platform | Engine | Terrain3D | GodotSharp shipped? |
|---|---|---|---|
| `engine/macos-arm64/` | **4.7** (`4ba7b5b`) — native modules | built-in module | ✅ yes (`GodotSharp/`) |
| `engine/windows-x64/` | **4.6.5** (`420e74bf8`) — still GDExtension | GDExtension | ❌ pending — see handoff |
**Windows is not yet on 4.7.** The 4.7 Windows build + its GodotSharp must come from Forge —
see [`.agents/handoffs/forge-windows-4.7.md`](.agents/handoffs/forge-windows-4.7.md).
Long-term: CI (Gitea Actions) builds on push and publishes here / to S3 —
`docs/ai/plans/build-pipeline-architecture-2026-06-07.md`.