Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
e4bdad9
docs: retire the protocol-bump-forces-minor versioning rule
yhc509 Aug 10, 2026
9677b23
Merge pull request #169 from yhc509/docs/versioning-rule
yhc509 Aug 10, 2026
a737d1a
feat(protocol): add editor-quit command and headless error codes, bum…
yhc509 Aug 11, 2026
bb290e1
feat(protocol): add editor-quit wire models
yhc509 Aug 11, 2026
a8d66e0
feat(protocol): editor launch/stop catalog entries and requiresGraphi…
yhc509 Aug 11, 2026
f5120ad
fix(protocol): overwrite stale token sidecar left by killed editor se…
yhc509 Aug 11, 2026
a04ab2d
feat(protocol): record editor mode in instance registry
yhc509 Aug 11, 2026
6d9d028
test: update protocol version pin and exempt bridge-gated editor stop…
yhc509 Aug 11, 2026
60e4f82
feat(bridge): run bridge in headless main editor, graphics guard, edi…
yhc509 Aug 11, 2026
e69c3d5
feat(cli): parsed-command surface for editor launch/stop
yhc509 Aug 11, 2026
881d5b6
feat(cli): parse editor launch/stop commands
yhc509 Aug 11, 2026
a4169e2
feat(cli): editor launcher with pre-flight, spawn, readiness polling
yhc509 Aug 11, 2026
59a8321
feat(cli): route editor launch/stop with pid-exit wait
yhc509 Aug 11, 2026
935f772
test: assert editor stop force gate stays bridge-side
yhc509 Aug 11, 2026
11ee0e3
fix(cli): preserve editorMode through registry sanitize
yhc509 Aug 11, 2026
4a5765d
fix(bridge): quit via EditorApplication.update, not delayCall
yhc509 Aug 11, 2026
49cc46f
fix(cli): detach spawned editor stdio so launch pipelines terminate
yhc509 Aug 11, 2026
2d002ed
docs: headless editor support (editor launch/stop, HEADLESS_NO_GRAPHI…
yhc509 Aug 11, 2026
7111112
docs: drop stale codex-bot reviewer note
yhc509 Aug 11, 2026
af9cc7c
docs: remove unused AGENTS.md
yhc509 Aug 11, 2026
4aa55f7
Merge pull request #170 from yhc509/feat/headless-editor-support
yhc509 Aug 11, 2026
fd28a8a
feat(protocol): add profile-memory wire command and memory report models
yhc509 Aug 12, 2026
e7db118
feat(catalog): add profile memory and profile memory compare entries
yhc509 Aug 12, 2026
44d4efb
feat(bridge): add profile-memory deferred counter sampling with repor…
yhc509 Aug 12, 2026
257ba6d
feat(cli): add profile memory command and local memory report compare
yhc509 Aug 12, 2026
058be3a
docs: regenerate cli-reference for the profile memory commands
yhc509 Aug 12, 2026
22bb3d3
feat(protocol): add profile-memory-snapshot wire command and models
yhc509 Aug 12, 2026
55c7f03
feat(bridge): add profile-memory-snapshot with package gate and mutua…
yhc509 Aug 12, 2026
5e00314
feat(cli): add profile memory snapshot command
yhc509 Aug 12, 2026
3de67fb
docs: regenerate cli-reference for profile memory snapshot
yhc509 Aug 12, 2026
3ae3e34
chore: add Unity-generated meta for ProfileCommandHandler.Memory
yhc509 Aug 12, 2026
6e6983a
fix(bridge): drop GameObject Count counter unavailable on Unity 6000.3
yhc509 Aug 12, 2026
61c0dc3
fix(bridge): correct package install syntax in memory profiler gate m…
yhc509 Aug 12, 2026
cd40d59
docs: sync profile memory commands and headless regression pipeline w…
yhc509 Aug 12, 2026
7a244c3
Merge pull request #171 from yhc509/feat/profile-memory
yhc509 Aug 12, 2026
b0660e3
chore: release v0.5.2
yhc509 Aug 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 0 additions & 108 deletions AGENTS.md

This file was deleted.

15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

## [Unreleased]

## [0.5.2] - 2026-08-13

### Added
- `editor launch` and `editor stop`: the CLI can now start and stop the Unity Editor itself, so a workflow no longer needs a human to open the project first. `editor launch` finds the Unity version the project asks for, starts it headless (`-batchmode`) by default, and waits until the bridge is reachable before returning (default 300 s; `--timeout <sec>` for projects with a long first import, `--no-wait` to return immediately). It is idempotent — if the editor is already running, the live instance is reused and the response says `"reused": true` — and it refuses with `EDITOR_ALREADY_RUNNING_CONFLICT` when an editor process already holds the project without a bridge, instead of tripping Unity's own project lock. Pass `--gui` for a visible window. The spawned editor logs to `Library/com.yhc509.unity-cli-bridge/editor-launch.log` and does not hold on to the CLI's output streams, so shell pipelines like `unity-cli editor launch | grep reused` finish normally instead of hanging. `editor stop` asks the editor to quit gracefully: it refuses with `EDITOR_DIRTY` while unsaved scene or prefab changes exist (`--force` discards them), waits for the process to exit (default 30 s), and works whether the editor is headless, focused, or sitting unfocused in the background.
- The bridge now starts in headless (`-batchmode`) editors, so every command — scene edits, tests, QA, profiling — works without an editor window. Unity's secondary processes (asset-import workers, MPE) stay excluded, so a project never registers twice. The default headless mode keeps the GPU initialized, which means `screenshot`, `record`, and coordinate-based `qa` commands keep producing real output with no window on screen. `instances list` now reports each editor's mode (`gui` / `headless` / `headless-nographics`).
- Rendering commands under a `-nographics` editor now fail fast with `HEADLESS_NO_GRAPHICS` instead of silently returning blank images, so an agent immediately knows the capture is impossible rather than reasoning about an all-gray screenshot.
- `profile memory` watches memory the way `profile capture` watches frame time. It samples the memory counters — total and reserved memory, GC, graphics, audio and video, plus per-asset-type object counts and bytes for textures, meshes, materials and animation clips — and saves the result as a report you can come back to. `profile memory compare <baseReportId> <headReportId>` then diffs two reports and answers whether memory grew: a `regression` / `improvement` / `unchanged` verdict based on total used memory, followed by the counters that moved the most, so a leak points at its own cause instead of just a rising total. Comparison runs entirely on the saved reports, so it works with the Editor closed, and reports taken in different modes or Unity versions are still compared with the mismatch noted rather than silently ignored. Counters that the running Unity version does not expose are listed as unavailable instead of failing the command.
- `profile memory snapshot` captures a full memory snapshot for the cases where counters are not enough. It writes a `.snap` file through the Memory Profiler package and returns its path, size, and capture flags — open it in **Window > Analysis > Memory Profiler** for the object-level view. The command requires `com.unity.memoryprofiler` and says so with install instructions when the package is missing, and it will not run at the same time as a profile capture in either direction. Snapshots are as large as the Editor's memory (often over a gigabyte) and are never deleted automatically, so remove old ones yourself.

### Fixed
- A killed or crashed editor session no longer breaks the next one. The editor's IPC auth token file could be left behind when the process died without cleaning up, and the next session then kept the stale file — every CLI command failed with `UNAUTHORIZED` until it was removed by hand. The token file is now replaced on startup.

### Compatibility
- The wire protocol is bumped to `7` (adds the graceful-quit command behind `editor stop`). As usual, installed CLIs dispatch per version automatically, and the CLI matching this package ships in the same release.

## [0.5.1] - 2026-07-29

### Added
Expand Down
Loading