@aefree/pi-unity 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,39 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project follows semantic versioning for public package releases.
7
7
 
8
+ ## Unreleased
9
+
10
+ ## 0.12.0 - 2026-08-27
11
+
12
+ ### Changed
13
+ - Made Unity CLI authoritative for ordinary project launches: `open`, `run`, and `test` now rely on the selected project without passing an Editor-version override; direct executable launch remains an exact-version fallback.
14
+
15
+ ### Fixed
16
+
17
+ - Kept isolated Unity CLI test results discoverable for JSON-only reports by always writing the native NUnit evidence to the project's `Logs` directory.
18
+ - Made direct Unity Editor fallback selection project-version-driven by probing only exact-version standard installations without Editor-path overrides.
19
+
20
+ ### Removed
21
+
22
+ - Removed the `UNITY_EDITOR_PATH`, `UNITY_PATH`, and `unityEditorPath` Editor-selection overrides.
23
+
24
+ ## [0.11.0] - 2026-08-26
25
+
26
+ ### Added
27
+
28
+ - Added unified `unity_run_tests`, which routes compatible exact-copy connected runs through Pipeline and closed-project runs through `unity test`, with durable normalized JSON evidence.
29
+ - Added normalized outcomes for passes, flaky passes, test failures, empty selections, run errors, timeouts, cancellation, and uncertain evidence.
30
+ - Added isolated Unity CLI support for retries, rerunning failures, deterministic sharding, NUnit/JUnit reports, and coverage controls.
31
+
32
+ ### Changed
33
+
34
+ - Connected Pipeline tests now preserve complete bounded result evidence in durable normalized JSON while keeping routine tool output compact.
35
+ - Isolated tests now prefer the Unity CLI `unity test` workflow and reconcile retry sidecars and derived rerun/shard reports.
36
+
37
+ ### Removed
38
+
39
+ - Removed the public `unity_pipeline_run_tests` and `unity_run_test_batch` registrations; `unity_launch_batchmode` remains a non-test escape hatch.
40
+
8
41
  ## [0.10.0] - 2026-08-14
9
42
 
10
43
  ### Changed
package/README.md CHANGED
@@ -23,7 +23,7 @@ pi install <path-to-pi-unity>
23
23
  pi install -l <path-to-pi-unity> # project-local
24
24
  ```
25
25
 
26
- Pi discovers the extension from `index.ts` and packaged skills from `skills/`.
26
+ Pi discovers the extension from `index.ts` and packaged skills from `skills/`. In UI sessions, pi-unity warns once per Pi runtime when Unity CLI is unavailable or `UNITY_CLI_PATH` is invalid. The warning never displays configured paths; install Unity CLI, then restart or reload Pi.
27
27
 
28
28
  ## Included tools
29
29
 
@@ -33,22 +33,21 @@ Use these tools with an already-open exact Unity project copy that has a reachab
33
33
 
34
34
  - `unity_project_status` — inspect lockfiles, matching Unity processes, Pipeline reachability, package version, and advertised commands without launching Unity.
35
35
  - `unity_pipeline_recompile` — recompile through Pipeline with exact-copy preflight, bounded polling, and compact compiler evidence.
36
- - `unity_pipeline_run_tests` — run one focused EditMode or PlayMode selection with bounded polling and aggregate results.
36
+ - `unity_run_tests` — one intent-oriented EditMode or PlayMode workflow. It reuses compatible connected Pipeline execution or selects isolated `unity test` when the exact project copy is closed.
37
37
  - `unity_pipeline_eval` — execute bounded project-specific C# through Pipeline's Roslyn REPL. It accepts `timeoutSeconds` from 1–86,400 seconds; a timeout is uncertain and does not cancel or retry Editor work.
38
38
  - `unity_pipeline_inspect` — dispatch supported package-owned inspection commands and return structured evidence.
39
39
 
40
40
  Connected recompilation follows Unity's Script Changes While Playing policy and never preemptively sends `editor_stop`. Connected tests may exit Play Mode through advertised `editor_stop` when necessary, then verify Edit Mode before dispatch. Play Mode exit is allowed by default; `/unity-playmode-exit allow|disallow|status` controls the current session.
41
41
 
42
- A timeout is uncertain: work may still be running. The tools do not silently cancel, retry, launch another Editor, or switch to batchmode. The sole exception is Pipeline 0.5's explicit initial-settling `Server Busy` rejection for `unity_pipeline_recompile` and `unity_pipeline_run_tests`, which is known not to have dispatched a main-thread command and is retried only within the configured deadline.
42
+ A timeout is uncertain: work may still be running. The tools do not silently cancel, retry, launch another Editor, or switch to batchmode. The sole exception is Pipeline 0.5's explicit initial-settling `Server Busy` rejection for `unity_pipeline_recompile` and `unity_run_tests`, which is known not to have dispatched a main-thread command and is retried only within the configured deadline.
43
43
 
44
44
  ### Editor and batchmode
45
45
 
46
46
  - `unity_open_editor` — open the Unity Editor GUI. Pass `automated: true` to add the Unity Editor `-automated` flag; this is distinct from the Unity CLI's own `--non-interactive` option.
47
47
  - `unity_launch_batchmode` — run a bounded batchmode command through Unity CLI or the direct Editor executable.
48
- - `unity_run_test_batch` — run one isolated or report-producing Unity Test Framework platform with generated XML and log paths.
49
48
  - `unity_inspect_artifacts` — summarize existing Unity Test Framework XML and Unity logs without launching Unity.
50
49
 
51
- Use connected tests when the exact project is already open and Pipeline testing is reachable. Use `unity_run_test_batch` for closed projects, CI-style isolation, categories or multiple filters, graphics-dependent PlayMode tests, or required NUnit XML/log evidence.
50
+ Use `unity_run_tests` for all ordinary Unity Test Framework work. It writes a durable normalized JSON result under `Logs/`; isolated `unity test` runs retain requested native reports. Connected Pipeline is selected only for compatible requests. A reachable Editor is never closed automatically to obtain isolated-only features.
52
51
 
53
52
  Batchmode runs use `-nographics` by default. Set `useGraphics: true` only for screenshots, visual capture, render checks, or graphics-dependent tests. Unity permits only one process per project folder, so all launch routes verify the exact project and use a per-project mutex.
54
53
 
@@ -78,8 +77,8 @@ Operation-specific recovery belongs to the operational skill. `unity-debugging`
78
77
  | Situation | Preferred route |
79
78
  | --- | --- |
80
79
  | Open exact-copy Editor with reachable Pipeline | Connected Pipeline tools |
81
- | Closed project or intentional CI isolation | `unity_run_test_batch` or `unity_launch_batchmode` |
82
- | Required NUnit XML or Unity log evidence | `unity_run_test_batch` |
80
+ | Closed project or intentional CI isolation | `unity_run_tests` |
81
+ | Required NUnit XML or Unity log evidence | `unity_run_tests` |
83
82
  | Existing failed-run artifacts | `unity_inspect_artifacts` |
84
83
  | Project-specific C# query or operation | `unity_pipeline_eval` |
85
84
  | Supported structured project inspection | `unity_pipeline_inspect` |
@@ -114,7 +113,7 @@ Use `unity_pipeline_inspect` when a purpose-built structured command fits. Use e
114
113
 
115
114
  ## Launch and process safeguards
116
115
 
117
- `unity_open_editor` and batchmode tools prefer the installed Unity CLI and can fall back to the direct Editor executable. Set `launcher` to `auto`, `unity-cli`, or `editor-executable` when explicit routing is needed.
116
+ `unity_open_editor` and batchmode tools treat Unity CLI as the authoritative launcher: `unity open`, `unity run`, and `unity test` receive only the selected project and let Unity CLI read `ProjectVersion.txt`. The direct Editor executable is an exceptional compatibility fallback used only when Unity CLI is unavailable. Set `launcher` to `auto`, `unity-cli`, or `editor-executable` when explicit routing is needed.
118
117
 
119
118
  Before launching, pi-unity checks:
120
119