@aefree/pi-unity 0.11.0 → 0.12.1
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 +29 -0
- package/README.md +8 -4
- package/index.ts +175 -90
- package/package.json +9 -9
- package/skills/unity-batchmode-tests/SKILL.md +9 -9
- package/skills/unity-pipeline-workflows/SKILL.md +19 -1
- package/src/unity-artifact-inspection.ts +59 -0
- package/src/unity-batchmode.ts +44 -9
- package/src/unity-cli.ts +6 -10
- package/src/unity-core.ts +4 -12
- package/src/unity-editor-fallback.ts +36 -0
- package/src/unity-launch.ts +3 -83
- package/src/unity-projects.ts +2 -3
- package/src/unity-tests.ts +13 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,35 @@ and this project follows semantic versioning for public package releases.
|
|
|
7
7
|
|
|
8
8
|
## Unreleased
|
|
9
9
|
|
|
10
|
+
## 0.12.1 - 2026-09-10
|
|
11
|
+
|
|
12
|
+
### Security
|
|
13
|
+
|
|
14
|
+
- Update the development/test Pi baseline to 0.85.1 and refresh the lockfile to resolve patched `brace-expansion` 5.0.9 and `undici` 8.9.0. Consumer-managed Pi hosts must be updated separately; peer compatibility ranges are unchanged.
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- Compare existing Windows project aliases by canonical filesystem path, preventing connected project discovery from treating short paths or junction aliases as a different closed project.
|
|
19
|
+
- Preserve bounded, redacted CLI stdout/stderr on failed Pipeline inspections and evals, including actionable package-version errors; retain native failure, timeout uncertainty and single-dispatch behavior.
|
|
20
|
+
- Clarify connected single-selector arguments and pre-dispatch rejection recipes; document serial independent-fixture calls with stop-on-uncertainty boundaries, backed by offline registered-tool contract tests (not model-planning or live-Editor evidence).
|
|
21
|
+
- Validate normalized JSON test artifacts as standalone inspection evidence, separate inspection success from test outcome, and reject missing explicit paths or conflicting artifacts without substituting unrelated latest logs.
|
|
22
|
+
- Mark rejected Pipeline eval and inspection as native Pi tool failures while retaining structured diagnostics and uncertain post-dispatch effects, without retry or fallback.
|
|
23
|
+
- Reject contradictory combined XML counters and test-record evidence during artifact inspection, including self-closing failures and records beyond the display limit; keep skipped and inconclusive counters distinct and preserve valid partial records.
|
|
24
|
+
|
|
25
|
+
## 0.12.0 - 2026-08-27
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
- 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.
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- Kept isolated Unity CLI test results discoverable for JSON-only reports by always writing the native NUnit evidence to the project's `Logs` directory.
|
|
33
|
+
- Made direct Unity Editor fallback selection project-version-driven by probing only exact-version standard installations without Editor-path overrides.
|
|
34
|
+
|
|
35
|
+
### Removed
|
|
36
|
+
|
|
37
|
+
- Removed the `UNITY_EDITOR_PATH`, `UNITY_PATH`, and `unityEditorPath` Editor-selection overrides.
|
|
38
|
+
|
|
10
39
|
## [0.11.0] - 2026-08-26
|
|
11
40
|
|
|
12
41
|
### Added
|
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
|
|
|
@@ -45,7 +45,9 @@ A timeout is uncertain: work may still be running. The tools do not silently can
|
|
|
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_inspect_artifacts` —
|
|
48
|
+
- `unity_inspect_artifacts` — validate existing normalized JSON test artifacts, Unity Test Framework XML and Unity logs without launching Unity. `details.status` describes inspection; `details.testOutcome` describes the tests, including failures and uncertainty. A valid failed-test artifact is a successful inspection, not a passing run.
|
|
49
|
+
|
|
50
|
+
Pass `normalizedResultPath` for standalone JSON evidence. Any explicit artifact path disables implicit latest-file selection; missing requested files fail inspection. With all paths omitted, `latestFromLogs` discovers recent files but cannot establish current-run identity. Mixed JSON/XML evidence must agree; without an explicit native artifact link, matching counts alone leave correlation uncertain.
|
|
49
51
|
|
|
50
52
|
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.
|
|
51
53
|
|
|
@@ -95,7 +97,7 @@ The connected compile and test tools:
|
|
|
95
97
|
- poll internally with fixed deadlines and bounded backoff;
|
|
96
98
|
- reject malformed or semantically failing nested results;
|
|
97
99
|
- require a known positive test count and zero failures before reporting a pass;
|
|
98
|
-
-
|
|
100
|
+
- keep routine tool output compact while preserving connected test records in durable normalized JSON evidence;
|
|
99
101
|
- detect pre-existing or clearly displaced test runs when available correlation fields permit it.
|
|
100
102
|
|
|
101
103
|
Another connected client is not a project lock. When Pipeline returns stable correlation fields, conflicting status is reported as displaced and uncertain. If Pipeline omits stable run identity, a competing same-mode, same-filter run may be indistinguishable from the requested run; the tool cannot prove exclusive ownership from shared Editor status alone.
|
|
@@ -111,9 +113,11 @@ Another connected client is not a project lock. When Pipeline returns stable cor
|
|
|
111
113
|
|
|
112
114
|
Use `unity_pipeline_inspect` when a purpose-built structured command fits. Use eval for bounded project-specific work that matches the user's intent. Prefer typed tools when they provide stronger lifecycle, polling, validation, or recovery semantics.
|
|
113
115
|
|
|
116
|
+
Rejected eval and inspection results are native Pi tool failures (`isError: true`) via the documented `tool_result` middleware, with structured rejection codes and bounded diagnostics retained. Pre-dispatch rejection does not execute the command; a timeout or dispatch failure can leave effects uncertain and never triggers retry or fallback.
|
|
117
|
+
|
|
114
118
|
## Launch and process safeguards
|
|
115
119
|
|
|
116
|
-
`unity_open_editor` and batchmode tools
|
|
120
|
+
`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.
|
|
117
121
|
|
|
118
122
|
Before launching, pi-unity checks:
|
|
119
123
|
|