Commit Graph

25 Commits

Author SHA1 Message Date
daddy f51c49fcfa PC3 Phase 1.1: game boots clean from a bare clone
Root cause: a stale .godot/global_script_class_cache.cfg was force-committed
to the repo (last regenerated before the avatar system merged), and Godot
does not rebuild the global class registry on a plain headless scene run --
only an editor scan / `--import` does. So every cross-file `class_name`
reference in the avatar module failed to resolve from a fresh clone, and the
AvatarSystem autoload failed to instantiate entirely.

- Untrack .godot/ and sandbox_probe/.godot/ (already in .gitignore; were
  force-added during old WIP checkpoints)
- Reference sibling avatar scripts via preload() constants instead of their
  global class_name, so the module parses independent of scan order. Keeps
  the class_name declarations for editor/tooling use.
- avatar_loadout.gd's static from_json() factory self-references via a
  preload const too (a script can't resolve its own class_name mid-compile
  on a cold cache).
- smoke_test_avatar_system.gd: same preload treatment so it runs from a bare
  `--script` invocation.

Verified from a wiped .godot/: main_menu.tscn and game.tscn boot with zero
script errors; smoke_test_avatar_system 10/10, smoke_test_player 15/15,
smoke_test_main_menu_ui 13/13, smoke_test_test_level PASS.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015jtxAiu5dAW4WxCNdGkrkJ
2026-09-05 21:27:57 +00:00
architect-bot 218e7e24af WIP checkpoint: Address review feedback: Research and design GDScript sandboxing approach 2026-08-18 02:06:21 +00:00
architect-bot 4da8687f2c Document GDScript sandboxing findings and recommendation
Verified all three options from the task against Godot 4.6.2 directly
(godot --headless), rather than trusting the probe scripts' own printed
output from earlier sessions:
- ScriptServer doesn't exist as a class; no disable_os/disable_file_access/
  disable_network project settings exist either. Nothing to configure.
- SubViewport isolates rendering/input only, not script capabilities — a
  script inside one has identical OS/FileAccess/network access.
- Expression is not safe by default (can still reach unsafe methods through
  a base instance); blocklisting dangerous substrings is trivially bypassed.

Recommendation: don't sandbox GDScript in-process (nothing to sandbox
with) — use a narrow non-Turing-complete content DSL for the common case,
and OS-level process isolation only if genuinely general scripting turns
out to be required.
2026-08-17 23:43:48 +00:00
architect-bot a576c25124 WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 21:30:27 +00:00
architect-bot 0b00b01502 WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 21:30:03 +00:00
architect-bot 8d50de075d WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 21:29:39 +00:00
architect-bot 2df195734b WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 21:26:31 +00:00
architect-bot 20be724115 WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 21:00:02 +00:00
architect-bot bd8f311a96 Recovered orphaned WIP before switching to a new task 2026-08-17 20:52:21 +00:00
architect-bot d422eff912 WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 20:41:48 +00:00
architect-bot ae6ccc3e5f WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 20:39:05 +00:00
architect-bot fed16f1f1d WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 20:37:49 +00:00
architect-bot 9450fb86d0 WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 20:36:34 +00:00
architect-bot a863bb2ab4 WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 20:35:29 +00:00
architect-bot a1846f34b5 WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 20:33:56 +00:00
architect-bot 62447258b2 WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 20:33:28 +00:00
architect-bot c931670e9d WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 20:25:30 +00:00
architect-bot 68b783909d WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 20:25:15 +00:00
architect-bot 0b5034759c WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 20:24:53 +00:00
architect-bot 19a63bda11 WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 20:24:28 +00:00
architect-bot a3cdb18a5c WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 20:18:59 +00:00
architect-bot a3fc36db19 WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 20:18:40 +00:00
architect-bot 42914aec85 WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 20:17:55 +00:00
architect-bot 8b17cc3ddd WIP checkpoint: Research and design GDScript sandboxing approach 2026-08-17 20:17:28 +00:00
architect-bot 9e2e0ed921 Recovered orphaned WIP before switching to a new task 2026-08-17 20:09:27 +00:00