Skip to content

feat(asset): add animator, clip, and atlas authoring#124

Merged
akiojin merged 2 commits into
developfrom
feature/issue-121
Mar 11, 2026
Merged

feat(asset): add animator, clip, and atlas authoring#124
akiojin merged 2 commits into
developfrom
feature/issue-121

Conversation

@akiojin

@akiojin akiojin commented Mar 11, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add create_animator_controller, create_animation_clip, and create_sprite_atlas so sprite-driven asset authoring workflows can be automated from unity-cli.
  • Extend asset import normalization, strict tool schemas, and user-facing docs so invalid sprite and atlas payloads fail early and the new commands are discoverable.
  • Update canonical asset-management spec #81 so the new authoring commands share one reviewed scope for asset pipeline automation.

Changes

  • src/tooling/tool_catalog.rs, src/app/runner.rs, src/core/config.rs, src/lsp/client.rs: register the new tools, expand strict validation coverage, and stabilize affected Rust test fixtures.
  • UnityCliBridge/Packages/unity-cli-bridge/Editor/Core/UnityCliBridgeHost.cs, UnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/AssetManagementHandler.cs, UnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/AssetImportSettingsHandler.cs, UnityCliBridge/Packages/unity-cli-bridge/Editor/Helpers/PlayModeCommandPolicy.cs: implement AnimationClip and SpriteAtlas authoring, sprite import normalization, bridge dispatch, and Play Mode blocking.
  • UnityCliBridge/Packages/unity-cli-bridge/Tests/Editor/Handlers/AssetManagementHandlerTests.cs: add EditMode coverage for animator controllers, animation clips, and sprite atlases.
  • docs/tools.md, .claude-plugin/plugins/unity-cli/skills/unity-asset-management/SKILL.md, scripts/e2e-all-tools.sh, scripts/skill-eval/static-skill-contract-check.sh: document the commands and add smoke and contract coverage.

Testing

  • cargo test --all-targets — expected 218 passed.
  • cargo clippy --all-targets -- -D warnings — expected success with no warnings.
  • cargo run -- raw run_tests --host 127.0.0.1 --port 6401 --json '{"testMode":"EditMode","filter":"UnityCliBridge.Tests.AssetManagementHandlerTests","includeDetails":true}' --output json — expected status: "completed" and totalTests: 13.
  • cargo run -- raw manage_asset_database --host 127.0.0.1 --port 6401 --json '{"action":"copy_asset","fromPath":"Assets/Materials/Dice/DiceTexture.png","toPath":"Assets/Scenes/Generated/E2E/Smoke_122_123.png"}' --output json then cargo run -- raw manage_asset_import_settings --host 127.0.0.1 --port 6401 --json '{"action":"modify","assetPath":"Assets/Scenes/Generated/E2E/Smoke_122_123.png","settings":{"textureType":"Sprite","generateMipMaps":false,"filterMode":"Bilinear"}}' --output json then cargo run -- raw create_animation_clip --host 127.0.0.1 --port 6401 --json '{"clipPath":"Assets/Scenes/Generated/E2E/Smoke_122_123.anim","overwrite":true,"spritePaths":["Assets/Scenes/Generated/E2E/Smoke_122_123.png","Assets/Scenes/Generated/E2E/Smoke_122_123.png"],"frameRate":12,"loopTime":true}' --output json then cargo run -- raw create_sprite_atlas --host 127.0.0.1 --port 6401 --json '{"atlasPath":"Assets/Scenes/Generated/E2E/Smoke_122_123.spriteatlas","overwrite":true,"packables":["Assets/Scenes/Generated/E2E"],"packingSettings":{"padding":4,"allowRotation":false,"tightPacking":true},"textureSettings":{"filterMode":"Bilinear","generateMipMaps":false}}' --output json — expected success: true for both authoring commands.

Related Issues / Links

Checklist

  • Tests added/updated
  • Lint/format passed (cargo fmt --all, cargo clippy --all-targets -- -D warnings; svelte-check N/A: not a Svelte project)
  • Documentation updated (if user-facing change)
  • Migration/backfill plan included — N/A: no schema or data migration
  • CHANGELOG impact considered — N/A: no breaking change to flag

Context

  • Asset pipeline automation needed three new authoring commands on the same feature branch, and #81 was updated as the canonical spec for animator, clip, and atlas asset creation.
  • The branch keeps CLI schema, Unity bridge handlers, tests, docs, and smoke coverage in sync for the same asset-authoring surface.

Notes

  • scripts/e2e-all-tools.sh still reports pre-existing failures outside these new asset authoring commands, so this PR relies on focused EditMode coverage and direct raw smoke checks for the new paths.

@coderabbitai

coderabbitai Bot commented Mar 11, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: b6f03311-9736-4c0f-9cd2-b08a34b49ae5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/issue-121

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@akiojin
akiojin merged commit 52a2b26 into develop Mar 11, 2026
15 checks passed
@akiojin
akiojin deleted the feature/issue-121 branch March 11, 2026 13:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants