fix(blender): align docs and render execute with real behavior#240
fix(blender): align docs and render execute with real behavior#240
Conversation
There was a problem hiding this comment.
Pull request overview
This PR fixes the Blender harness inconsistencies highlighted in #236 by aligning the CLI behavior and documentation: render execute now performs a real headless Blender render (while still emitting _render_script.py), and the previously documented-but-broken object add-mesh syntax is restored as a backward-compatible alias.
Changes:
- Add
object add-meshas a compatibility alias while keepingobject add <primitive>as the canonical syntax. - Make
render executeactually run Blender headless via the backend and return output metadata (while still generating_render_script.py). - Update top-level and Blender harness documentation examples to match real CLI behavior; clarify LibreOffice export requirements.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| blender/agent-harness/cli_anything/blender/utils/blender_backend.py | Adds output discovery helpers and enriches headless render results with output metadata. |
| blender/agent-harness/cli_anything/blender/core/render.py | Adds optional execution path to render after script generation via the backend. |
| blender/agent-harness/cli_anything/blender/blender_cli.py | Implements object add-mesh alias and upgrades render execute to run Blender headless (plus per-invocation overrides). |
| blender/agent-harness/cli_anything/blender/tests/test_full_e2e.py | Updates E2E assertions and adds coverage for legacy add-mesh and CLI-driven render execute. |
| blender/agent-harness/cli_anything/blender/README.md | Updates harness docs to reflect canonical syntax and real rendering behavior. |
| README.md | Updates top-level examples and clarifies LibreOffice PDF export prerequisite. |
| README_CN.md | Updates Chinese docs similarly (Blender syntax + LibreOffice prerequisite clarification). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
why you modify code in blender content manually, instead of using the skill of cli-anything? |
Hey thanks for questioning. This PR is a targeted fix on an existing harness, rather than generating a new CLI from scratch. |
Description
Fixes #236
This PR fixes the Blender side of the failures reported in issue #236 and updates the related documentation so the documented examples match the real CLI behavior.
Issue #236 exposed two concrete problems:
object add-mesh --type cube --location 0 0 1, but the actual Blender CLI only supportedobject add cube --location 0,0,1.render executewould perform a real Blender render, while the CLI only generated_render_script.pyand printed a manual command to run.This PR aligns the implementation with the documented user expectation:
render executenow actually invokes Blender headless through the existing backend_render_script.pyis still generated as an artifact for debugging/reuserender scriptremains the script-only path for environments without Blenderobject add-meshalias is added so the stale documented command no longer hard-failsREADME.md,README_CN.md, and the Blender harness README are updated to reflect the canonical syntax and actual runtime behaviorIssue #236 also mentioned LibreOffice export, but that flow was already working correctly in this environment. For that path, this PR only clarifies in the docs that real PDF export requires a local
LibreOffice/
sofficeinstallation.Type of Change
For New Software CLIs (in-repo)
<SOFTWARE>.mdSOP document exists at<software>/agent-harness/<SOFTWARE>.mdSKILL.mdexists atskills/cli-anything-<software>/SKILL.mdSKILL.mdexists atcli_anything/<software>/skills/SKILL.mdcli_anything/<software>/tests/test_core.pyare present and pass without backendcli_anything/<software>/tests/test_full_e2e.pyare presentREADME.mdincludes the new software (with link to harness directory)registry.jsonincludes an entry withsource_url: nullrepl_skin.pyinutils/is an unmodified copy from the pluginFor New Software CLIs (standalone repo)
pip install <package-name>or apip install git+https://...URLSKILL.mdexists in the external reporegistry.jsonentry includessource_urlpointing to the external reporegistry.jsonentry includesskill_mdwith full URL to the external SKILL.mdinstall_cmdinregistry.jsonworks (tested locally)For Existing CLI Modifications
python3 -m pytest cli_anything/blender/tests/test_core.py -vpython3 -m pytest cli_anything/blender/tests/test_full_e2e.py -vregistry.jsonentry is updated if version, description, or requirements changedGeneral Checklist
--jsonflag is supported on any new commandsfeat:,fix:,docs:,test:)Test Results