Skip to content

Infernux 0.1.6 · 熔炉

Choose a tag to compare

@ChenlizheMe ChenlizheMe released this 01 May 15:10
· 492 commits to master since this release

Infernux v0.1.6 · 熔炉

This release turns Infernux's editor-facing MCP layer into a much more capable agent control plane: a FastMCP-backed server, hierarchical tool discovery, structured tool metadata with signatures / examples / return-shape hints, subsystem guides with knowledge-token gating, richer scene / camera / RenderStack control, and a safer runtime loop for long-horizon agents. It also lands a round of engine and editor hardening around scene safety, script error recovery, shader / material workflows, VSCode environment generation, and hot-reload edge cases.

Release tree: dd16c73388f1555093530ad760b9386b2a45862c
Baseline for comparison: 82763b512741892349a322301a9947d60524dc49

The infernux-0.1.6-cp312-cp312-win_amd64.whl and infernux-0.1.6.tar.gz assets attached to this GitHub release are rebuilt from the tree above. Infernux Hub and InfernuxHubInstaller.exe are updated in parallel for this milestone (same version line).


MCP framework and agent tooling

  • FastMCP server surface: a full MCP server under python/Infernux/mcp/ with modular tools for assets, scenes, hierarchy, camera, UI, editor, runtime, materials, RenderStack, docs, project state, research helpers, transactions, and project-defined tools.
  • Configurable capability matrix: mcp_capabilities.json / capabilities.py centralize feature gates for research-grade MCP behavior (catalog, transactions, runtime observation, trace/evolution hooks, contracts, API discovery, RenderStack coverage, and more).
  • Hierarchical tool discovery: mcp.catalog.list, mcp.catalog.get, mcp.catalog.search, and mcp.catalog.recommend let agents browse tools by category and retrieve complete parameter / return metadata instead of guessing from raw names.
  • Automatic signatures and examples: tool registration now captures Python signatures, required parameters, defaults, return-envelope hints, and generated minimal examples for every MCP tool.
  • Knowledge-token gating: shader, material, audio, and UI-sensitive operations can require a short-lived token returned by guide tools such as shader.guide, audio.guide, or api.get(...). This forces the model to read subsystem guidance before performing risky writes.
  • Python API discovery from stubs: api.subsystems, api.get, and api.search index .pyi files first and fall back to .py source so agents can query classes, methods, properties, enums, and short-name ambiguities from the real project API surface.
  • Project-defined agent tools: the Assets/AgentTools/ pipeline is formalized with decorators, registry, loadability checks, trace logging, and transaction helpers so projects can extend MCP without rebuilding engine code.
  • Research / trace hooks: configurable trace, contract, and tool-evolution helpers make the MCP layer usable for agent-evaluation and agent-tooling research rather than only editor automation.

Agent safety, recovery, and workflow hardening

  • Scene-state guards: MCP now reports dirty / unsaved scene state back to the agent instead of letting the editor fall into modal prompts. Scene switching and mutation paths are blocked until the scene is in a safe state.
  • Idempotent asset workflows: folder-creation and related asset paths were hardened so agents stop getting trapped in repeated FileExistsError loops during scaffold generation.
  • Structured empty / failure responses: scene queries and RenderStack inspection now return reasons, stop_repeating, and explicit next_suggested_tools payloads when nothing is found, reducing the chance that an LLM retries the same dead-end call forever.
  • GET /mcp discovery endpoint: HTTP probes against /mcp now return a 200 JSON response with server information instead of a 404, which makes client discovery cleaner.
  • Script-error hotfix: if a broken Python script is deleted or moved, its tracked error state is now cleared immediately instead of blocking Play Mode until an engine restart.

Scene, camera, render, and runtime control

  • Richer scene queries: object search now supports exact / contains semantics for names and paths, better summaries, and more descriptive “no result” payloads for bootstrap scenes and service-only scenes.
  • Camera understanding tools: agents can inspect the current view, report target visibility, frame selected subjects, and explicitly re-orient a camera toward a target set.
  • RenderStack control plane: agents can inspect, create, select, and reconfigure scene RenderStacks and render passes directly through MCP, including pass parameters and injection-point visibility.
  • Runtime observation tools: runtime-facing helpers can wait, run for controlled intervals, and collect script/runtime errors so the agent can validate outcomes instead of operating blind.

Engine, editor, and runtime fixes

  • Serialized field robustness: class-level access to serialized fields no longer explodes in ordinary arithmetic / comparison flows, which fixes agent-authored scripts that referenced defaults through the descriptor object.
  • Unbound component tolerance: editor callback paths around serialized fields and UI bootstrap inspection are more tolerant of components that are not yet attached to a live GameObject, closer to the “do not crash the editor” behavior developers expect.
  • Active-scene file protection: file-watcher paths avoid mutating the currently open scene file behind the editor's back, reducing save / reload races.
  • VSCode environment generation: generated workspace settings now point to the project-local .venv correctly, including Windows Python executable paths and Pyright config.
  • AMD/editor viewport and shader hardening: the render/editor stack received a round of viewport, transform-cache, grid-shader, and material-path fixes, including the EditorGizmos grid cleanup.

Python API surface, stubs, and docs

  • Stub coverage expanded: .pyi files were improved across audio, UI, materials, RenderStack, component exports, script loading, and package re-exports so agents and docs see a more faithful API surface.
  • Audio guidance improved: AudioClip, AudioSource, and AudioListener documentation now clarify track behavior, WAV lifecycle, and listener semantics.
  • UI guidance improved: UI canvas scaling, hit testing, enums, button event entries, and screen-component method signatures were expanded in the stub layer.
  • Material / shader visibility: material metadata and docs expose more shader-facing information so agents can reason about bound vertex / fragment shaders and property layout.
  • Docs / website rollout: the docs site, API index, and versioned release text were regenerated for 0.1.6, and the site/domain pipeline introduced the custom-domain deployment path now used by the public docs.

Packaging and release artifacts

Windows-facing artifacts for this line:

  • infernux-0.1.6-cp312-cp312-win_amd64.whl — Python wheel for CPython 3.12 on Windows amd64 (matches release commit above)
  • infernux-0.1.6.tar.gz — source distribution (same commit)
  • InfernuxHubInstaller.exe — Windows x64 Hub installer (updated for v0.1.6)
  • Portable Hub bundle — refreshed alongside the installer for this release

Upgrade notes

  • Restart the editor / MCP server after upgrade so new tool registration, capability toggles, and subsystem guides are loaded into the running session.
  • Agent integrations should prefer the catalog / API tools (mcp.catalog.*, api.*, guide tools) instead of relying on memorized tool names or inferred argument shapes.
  • Sensitive shader / audio / UI / material writes may now require knowledge tokens. If a tool reports error.knowledge_token_required, call the required guide tool first and retry with the returned token.
  • The generated VSCode workspace expects a project-local .venv. Existing projects with custom interpreter settings may want to re-check their workspace settings after regenerating project files.
  • Broken-script cleanup is now immediate. Deleting a bad script should clear its tracked Play Mode blocker without restarting the engine.

Thank you

Thanks to everyone stress-testing the MCP workflow, surfacing agent failure loops, and pushing on scene safety, shader discoverability, API coverage, and hot-reload edge cases. The 0.1.6 release is shaped directly by that feedback loop.