Aquí hi ha 11 versions d’unifocl, des de 24 de març del 2026 fins a l’actual, 3.18.2. Cadascuna enllaça amb els instal·ladors del mateix desenvolupador.
| Versió | Data | Mida | Fitxers |
|---|---|---|---|
| 3.18.2Darrera versió | 24 d’octubre del 2026 | — | 64 bits ZIP Notes de la versió## 3.18.2 - 2026-10-24
### Fixed
• `/console dump --type warning` now returns `Debug.LogWarning` entries. The log-mode classifier used the wrong Unity flag bits, so script warnings (ScriptingWarning, bit 9) were reported as `log`. Exceptions, compile errors/warnings, asset-import errors/warnings and assertions are now classified correctly too.
• Multi-line quoted arguments in `exec` input (e.g. a multi-line `/eval '...'` snippet) are no longer split into separate commands at each newline. Newlines inside a `'...'` or `"..."` span stay part of the command. |
| 3.18.1 | 17 d’octubre del 2026 | — | 64 bits ZIP Notes de la versió## 3.18.1 - 2026-10-17
### Fixed
• Editor bridge now compiles on Unity 6.5+ (verified on 6000.5.2f1 and 6000.6.6f1), where `GetInstanceID`, `InstanceIDToObject`, `IsLoadingAssetPreview(int)` and the `SceneHandle`/`EntityId` int conversions are hard errors (CS0619). Object ids keep their int wire format via a new `DaemonObjectIds` helper:instance ids before 6.5, the low 32 bits of the `EntityId` from 6.5 on. Older Unity versions keep the original code paths.
• `unifocl init` now installs `DaemonDryRunFileIo.cs` and `Timeline/DaemonTimelineService.cs` into the embedded package. They were missing from the payload allowlist, so the profiler/recorder services failed to compile (CS0103 `DaemonDryRunFileIo`) and the Timeline commands never shipped.
• Existing installs that lack these files are now reported as needing re-initialization, so the CLI refreshes the embedded package on the next `/open` or `/init`. |
| 3.18.0 | 22 de setembre del 2026 | — | 64 bits ZIP Notes de la versió## 3.18.0 - 2026-09-22
### Added
• Optional `probuilder` tool category for ProBuilder level geometry. Agents load it with
`use_category('probuilder')`; humans use `/probuilder <shape|mesh|face|edge> ...`. Tools:
`probuilder.shape.create` (12 primitives with bounding-box size, local position/rotation,
center/bottom pivot, material, segments/steps, optional MeshCollider), `probuilder.mesh.info`
(counts, bounds, per-face normal/center/direction), `probuilder.face.extrude`,
`probuilder.face.move`, `probuilder.face.set_material`, `probuilder.face.flip_normals`,
`probuilder.face.subdivide`, `probuilder.edge.bevel`, `probuilder.face.delete`,
`probuilder.mesh.merge`, `probuilder.mesh.probuilderize`, and `probuilder.mesh.export`.
Faces are selected by index or by world direction (`up`, `left`, ...), objects by hierarchy
path. Every mutating tool supports dry-run previews.
• The tools compile into a separate `UniFocl.EditorBridge.ProBuilder` assembly gated on
`com.unity.probuilder` 5.0+, so projects without ProBuilder are unaffected and simply do not
see the category. `use_category('probuilder')` explains how to enable it when the package is
missing. Re-run `/init` (or `/open`) after updating to install the new bridge files.
### Fixed
• A `dryRun` call to any `[UnifoclCommand]` custom tool reverted every earlier daemon mutation
since the last user input in the editor, not just its own changes, and the scene-restore step
then saved that reverted state. The editor only advances the Undo group on user input, so the
group captured before the dry-run still held that earlier work. The dry-run now opens its own
group first and reverts only that one. (The hierarchy, inspector and eval dry-runs share the
old pattern and are tracked in #223.)
• Custom-tool failures (`/profiler`, `/recorder`, `/probuilder`, ...) were logged without a
leading `error`, so `unifocl exec --agentic` reported them as `status:success`. They now
surface as agentic errors.
• Agentic logs lost the brackets of any Spectre-escaped text (`[[`/`]]`), which turned JSON arrays
in custom-tool results into unparseable fragments such as `"faces":],`. Custom-tool results
are also rendered without `\uXXXX` escapes for quotes and non-ASCII text.
• Custom-tool arguments now decode `\uXXXX` escapes, so string arguments containing non-ASCII
text (e.g. Japanese GameObject names) reach `[UnifoclCommand]` methods intact. Array and
object arguments are passed through as raw JSON instead of being truncated at the first comma,
and a JSON `null` now counts as an omitted argument. |
| 3.17.3 | 20 de setembre del 2026 | — | 64 bits ZIP Notes de la versió## 3.17.3 - 2026-09-20
### Fixed
• MCP `exec` no longer kills a command that outlives the 30-second budget. Killing the CLI
mid-operation left the work it had dispatched running inside the Editor while the agent was
told the operation failed, so the natural response — retrying — duplicated it. Every command
is now detached on timeout and harvested by a later `exec` call, not just the five project
lifecycle commands (`/open`, `/o`, `/new`, `/clone`, `/recent`). Non-lifecycle commands report
`status:"running"` with `elapsedSeconds` and the in-flight command list; lifecycle commands
keep reporting `status:"booting"`. (#221)
• While a detached run is in flight, every `exec` call now reports its progress instead of
spawning a competing `unifocl` process against the same daemon. `/close` still aborts it.
MCP `exec` calls are serialized so that invariant holds under concurrent tool calls — they
already shared one session seed, one remembered project, and one pending-run slot.
• MCP command classification matched on a bare prefix, so `/opened-elsewhere` was read as
`/open`. Triggers now have to be followed by end of input or whitespace.
### Added
• `get_agent_workflow_guide(section='long_running')` — what `booting` and `running` mean, how to
poll a detached command, and why polling cannot duplicate the work. |
| 3.17.2 | 12 de setembre del 2026 | — | 64 bits ZIP Notes de la versió## 3.17.2 - 2026-09-12
### Fixed
• `/diag compile-errors` no longer reports `✓ 0 error(s)` with `ok:true` while the
project is in a broken compile state (#216). The command now cross-checks the
event-captured compiler messages against `EditorUtility.scriptCompilationFailed`
and diffs the assemblies `CompilationPipeline.GetAssemblies()` expects against
the DLLs actually present in `Library/ScriptAssemblies`; expected-but-missing
output is reported as a compile failure. When the project does not compile the
response carries `ok:false` (failed exec status) plus new `compilationFailed`
and `missingAssemblies` payload fields, and the CLI renders the failure with
the captured or synthesized error messages.
• Debug artifact collection now preserves a diagnostic's content payload even
when the daemon reports `ok:false` for it, so compile-error details from a
broken project land in the artifact instead of being dropped. |
| 3.17.0 | 25 de juliol del 2026 | — | 64 bits ZIP Notes de la versió## 3.17.0 - 2026-07-25
### Added
• **EditMode tests now run inside the attached editor.** With a project open, `test run editmode`
and `test list` drive Unity's `TestRunnerApi` in the editor that already holds the project
instead of launching a second Unity, so the project lock is never contended. Previously these
commands could not succeed at all while a project was open — Unity refuses to open the same
project twice, and every `/open` mode holds the lock.
• Test names and assemblies from `test list` are now read from the test tree when running
in-editor, replacing the stdout-scraping heuristic that could report Unity banner lines
(e.g. `Branch:6000.4/staging`) as test cases.
• The editor bridge ships a new `UniFocl.EditorBridge.TestRunner` assembly, constrained to
`UNITY_TESTS_FRAMEWORK`. Unity skips it when `com.unity.test-framework` is absent, and unifocl
reports that explicitly rather than failing obscurely.
### Fixed
• The agentic log scanner no longer treats `failed` inside an identifier as a command failure.
`test list` prints one line per test case, so names such as
`Purchase_GrantFailure_ReturnsGrantFailed` (trailing fragment) or `Foo.FailedStateTests`
(leading fragment) reported a successful listing as `status:error` with exit code 2. The match
is now anchored to word boundaries on both sides. This classifier runs over every agentic exec,
not just `test list`.
• Diagnostics for a failed subprocess run now search both output streams for Unity's fatal
batchmode banner. Previously the first non-empty stream won outright, so any licensing noise on
stderr suppressed the actual cause — which Unity writes to stdout.
• A failure reported by the editor without a message no longer falls through to a green
zero-count summary.
• `DispatchTestJobAsync` reports cancellation as a structured error instead of throwing
`OperationCanceledException` out of a method whose callers promise ExecV2 a structured result.
### Changed
• `test run editmode` / `test list` select their execution path automatically:in-editor when a
daemon is answering for the project, subprocess otherwise. Both write the same NUnit v3 XML to
`Logs/unifocl-test/`, so the structured output contract is unchanged.
• PlayMode continues to use the subprocess path and therefore still requires the project to be
closed.
• Completion is signalled through `Temp/unifocl/test-results/<requestId>.json` rather than the
daemon response, so a domain reload during a run cannot swallow the result — the same on-disk
handoff `/compile` uses. Markers older than six hours are swept on the next job so they cannot
accumulate one file per run.
• The editor-side `ICallbacks` implementation registers once per domain rather than once per run.
Unity's `CallbacksHolder` appends without deduplicating, so the previous code left `RunFinished`
firing once for every run ever started, and leaked a `TestRunnerApi` ScriptableObject each time.
### Documentation
• `docs/test-orchestration.md` documents both execution paths, and records that `/close` releases
the project lock in host mode but not in bridge mode, where it detaches the session and leaves
the GUI editor running.
### Fixed
• `test run` and `test list` no longer report a silent success when Unity never started. A run that
produces no results file is now an error carrying Unity's exit code and the tail of its output,
instead of a green `total=0 passed=0 failed=0` result.
• `test` commands detect a held Unity project lock (`Temp/UnityLockfile`) before launching and fail
with a resolution hint. Unity refuses to open a project twice, so a run started while the project
is open — including when opened by unifocl's own daemon — aborted before executing any test.
• A stale results XML from an earlier run can no longer be reported as the current run's result; the
file is cleared first and only accepted if the run that started actually wrote it.
• Unity's stdout/stderr is persisted to `Logs/unifocl-test/unity-<platform>.log` and drained before
th |
| 2.21.3 | 30 de març del 2026 | — | 64 bits ZIP Notes de la versió2.21.3 - 2026-03-30
Fixes
- agent install claude wrong subcommand: mcp add @unifocl/claude-plugin failed with "missing required argument 'commandOrUrl'" because mcp add requires <name> <command> [args...]. Fixed to use claude mcp add unifocl -- unifocl --mcp-server, with -- required to prevent --mcp-server from being parsed as a flag for mcp add.
Officialized
- Officialized 2.21.3 by closing the development cycle suffix. |
| 2.14.0 | 29 de març del 2026 | — | 64 bits ZIP |
| 2.5.1 | 27 de març del 2026 | — | 64 bits ZIP |
| 2.4.0 | 25 de març del 2026 | — | 64 bits ZIP |
| 2.3.0 | 24 de març del 2026 | — | 64 bits ZIP |