Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 30 Aug 07:37
c2aa170

0.4.0 (2026-08-30)

Features

  • add inspect_project batch tool (9a54953)
  • add inspect_ptex pure metrics helper (2453208)
  • add MM_ALLOWED_ROOTS config field (allowed_roots) (f71cbde)
  • add path guards (ensure_within_roots, reject_path_fragment) (6e6bb65)
  • bound client-facing tool paths (save_graph dict return, traversal guards) (945d6d6)
  • config: add live_overlay_dir (846f310)
  • cookbook: add l06 topstitched leather (real raised stitch dashes) (f55359a)
  • cookbook: add leather category (4 materials) + AUTHORING recipes (5f1a27b)
  • cookbook: fix l04 reptile albedo polarity + add l05 quilted leather (6915fc8)
  • extend authoring cookbook with 4 fabric materials (a714faf)
  • extend authoring cookbook with 4 organic materials (bec23b5)
  • extend authoring cookbook with 4 sci-fi panel materials (61c83bd)
  • extend authoring cookbook with 4 terrain materials (afb3290)
  • live: add async add_node command to the live-control addon (3711fea)
  • live: add connect_nodes and set_param commands to the live-control addon (1c8bd92)
  • live: add connect_or_launch (attach-or-launch, poll for ready) (b1242b5)
  • live: add low-level ping/get_graph protocol client (9ff21ec)
  • live: add render command to the live-control addon (ce6961a)
  • live: add render to the live.py client, reusing render.py's freshness check (efd6334)
  • live: add reposition_node op; rule out live rename as unsupported (backlog item I) (352317a)
  • live: add socket server addon skeleton (ping/get_graph) (33dad4e)
  • live: add validated add_node/connect_nodes/set_param to the live.py client (b0032da)
  • live: report whether a graph tab exists from ping (ba9f620)
  • live: verify Phase 5 hands-on, add live_clear reset tool (b414763)
  • overlay: add idempotent autoload-line injection (82644fa)
  • overlay: add stable directory content hash (ecabb38)
  • overlay: add staleness marker read/write/compare (a7a3b15)
  • overlay: ensure_overlay first-build path (93858ba)
  • preview: add render_preview MCP tool for lit sphere/cube material preview (41bd60b)
  • preview: overhaul preview scene composition, wire tile knob through (aefd7af)
  • quality: add phase-1 debug diagnostic swatch gallery (a0d7674)
  • quality: add phase-2 automated regression checks for debug swatches (ba3d968)
  • quality: expand relief swatch into a shapes+text relief family (ab688e6)
  • render_node_output + live_render_node_output (backlog item H) (f891fbb)
  • report MM_ALLOWED_ROOTS in --check and document it (a44c649)
  • server: add live_apply MCP tool (0862265)
  • server: add live_get_graph MCP tool (a82e764)
  • server: add live_render MCP tool (8ed1c9b)
  • server: add live_start MCP tool (235b6b8)

Bug Fixes

  • final-review fix wave for Phase 5 step 4 (502eb4d)
  • live: check restore success in live_render_node_output, catch AttributeError in live_apply (12a4be3)
  • live: fail fast when an attached instance never reports has_graph (4f4240a)
  • live: harden connect_or_launch against a squatted/dying port (6a0ee8b)
  • live: render via material_node.export_material directly, not the un-awaited main_window wrapper (17a98d3)
  • live: require a graph tab before connect_or_launch reports ready (0df1992)
  • live: set_param rejects unknown parameter names before sending (7037f46)
  • live: terminate launched process on unexpected exception in connect_or_launch (5614ea0)
  • live: terminate the GUI child process, not just the launcher (f97a2ac)
  • live: use := for from_name/to_name so GDScript can infer from_node_name's type (0bc5f92)
  • overlay: clear read-only attrs before rmtree on rebuild (09455c8)
  • overlay: correct autoload insertion to respect section boundaries (040c5bd)
  • overlay: guard against non-dict JSON in marker file (7e88a10)
  • overlay: guard destructive fs ops, polish for final review (67a028a)
  • phase5-review: ignore live overlay dir, detect dead launch process, harden integration gate (25675d3)
  • preview: remove horizon seam by extending the ground plane (9e52340)
  • render: kill the whole Godot process tree on render timeout (cd1fcb9)
  • render: use --target instead of -t for Material Maker's export CLI (82a57f0)
  • resolve 6 of the 8 remaining code-review findings; document 2 as deliberate non-changes (c65cc83)

Documentation

  • add 3D-preview hero + gallery and cookbook contact sheet to README (d7f2659)
  • add connect_or_launch readiness-race plan (1d3908f)
  • add Live mode section, fix stale tool count (52d5a6e)
  • add North Star doc for the round-trip learning mission (8fc8e33)
  • add Phase 4 hardening implementation plan + correct spec CI section (e149709)
  • add Phase 5 addon-skeleton implementation plan (d8cda95)
  • add Phase 5 mutating-commands implementation plan (af25848)
  • add Phase 5 overlay-builder implementation plan (53527bf)
  • add Phase 5 step 4 (MCP tool surface) plan (e48b40d)
  • adopt a HANDOFF.md trim/archive convention (backlog item L) (cb47010)
  • amend the live-control spec's readiness constraint (84948ae)
  • correct package docstring tool count and use release extra in CI (bfd23df)
  • correct render-handler citation in the mutating-commands plan (356665a)
  • enlarge README gallery (2-col, drop title captions) (8f7f515)
  • fix social-preview title crop + swap in hand-finished brick tile (738e10b)
  • fix stale/false claims found in today's teardown (1fb0d45)
  • mark session commits pushed in HANDOFF (baton accuracy) (969d420)
  • record Phase 4 hardening in STATUS ledger (ae6ab37)
  • record Phase 5 build step 3 as wired/verified in STATUS.md (071dbb6)
  • record the GUI-child-process-leak fix and a newly-found readiness race (f2a0570)
  • retire Phase 5 feasibility risks via spike (128fa31)
  • spec Phase 4 hardening (path bounding, inspect_project, CI + release-please) (8b2ba78)
  • spec Phase 5 live-control addon design (311e502)
  • wrap up bugfix/trim/reposition session (1368115)
  • wrap up cleanup session (code-review findings resolved + teardown dedup) (c5b0cfb)
  • wrap up debug-swatch-gallery session (HANDOFF + archive trim) (e6eb4c0)
  • wrap up leather cookbook session (HANDOFF + archive trim) (c9934a7)
  • wrap up MCP-wiring blocker session, gitignore .mcp.json (acd38c5)
  • wrap up Phase 4 hardening session (HANDOFF + archive trim) (6b2a070)
  • wrap up Phase 5 hands-on verification + live_clear session (e97e78e)
  • wrap up pre-release audit + teardown + doc-accuracy fixes session (d0df55b)
  • wrap up README front-page-images session (HANDOFF + archive trim) (98cdd5a)
  • wrap up render_node_output + live_render_node_output session (25bd25c)
  • wrap up Unity export proof + render.py --target fix session (c07cabf)
  • wrap-up handoff + status for v0.2.0 packaging and v0.3.0 doctor (9c382bd)
  • wrap-up handoff for cookbook growth session (26d069c)
  • wrap-up handoff for horizon seam fix (278eea2)
  • wrap-up handoff for Phase 5 build step 1 (overlay.py) (2de70b0)
  • wrap-up handoff for Phase 5 build step 2 (addon skeleton) (855fdcc)
  • wrap-up handoff for Phase 5 build step 3 (mutating commands) (49b4845)
  • wrap-up handoff for Phase 5 build step 4 (MCP tool surface) (89e2d18)
  • wrap-up handoff for Phase 5 design + MVP verification session (524b9a2)
  • wrap-up handoff for render_preview + North Star session (0675ca1)
  • wrap-up handoff for the connect_or_launch readiness-race fix (0c105c2)