Repository navigation
Releases
Releases · pironjulien/NexusFree
NexusFree 1.4.0
Immutable
release. Only release title and notes can be modified.
Changed
- The engine is compiled ahead of time (Native AOT): one native
NexusFree.exeper architecture, no .NET to install,
no JIT at start-up. Measured on the same PC (x64), 1.3.4 single file → 1.4.0: file 70.2 MB → 4.1 MB; start-up
(--version) 44 ms → 13 ms; an idle MCP server 44.3 MB → 15.5 MB of working set and 13.2 MB → 4.8 MB of private
bytes; a simple elevated command end to end (--exec "exit 0", request, SYSTEM dispatcher, answer) 413 ms → 292 ms
(medians). The trimming and AOT analyzers run in every build with warnings as errors. - The Task Scheduler API goes through source-generated COM interop instead of the runtime COM binder (
dynamic), and
every COM object is released when its call ends. - The installation lives in the engine.
NexusFree.exe --install [--apply]copies the engine for this account, sets up
the SYSTEM side and writes Antigravity's plugin (embedded in the engine);NexusFree.exe --setup-system --user-sid <SID>, run elevated, installs the dispatcher, sets the spool ACLs and registers the SYSTEM task through the Task
Scheduler API, with the same rights, task definition and checks as before.install.ps1only compiles the engine
from source when needed and starts it. The UAC prompt of a first install now namesNexusFree.exe. - Renaming a running engine aside during an update is safe without preloading anything: a native image never reads
its file again (tested on the release build).
Removed
daemon/setup-system.ps1, replaced byNexusFree.exe --setup-system, and the assembly preloading of 1.3.3
(SelfImage). Updating from 1.3.x: that preloading missedSystem.Private.Uri, so the 1.3.x dispatcher can still
fail once after the setup replaced it; the installer then sends the setup once more, to the new dispatcher, as it
already did for 1.3.2 and earlier.
Fixed
- Tests: no test can show a Windows error box. The test process sets the error mode (no critical-error, crash or
missing-file box) when it loads, and every process it starts inherits it; a test checks it in a child process. - Tests: the update-while-running test no longer fails when a scanner briefly opens the engine it has just written
and started. Only that transient sharing hold is waited out (at most 10 s, asget.ps1does); a longer hold fails
and names the processes holding the file (Restart Manager).
NexusFree 1.4.0 (development build)
Immutable
release. Only release title and notes can be modified.
Development build of 4721816 (tests passed). Promoted as is to the stable v1.4.0 when that version is new.
NexusFree 1.4.0 (development build)
Immutable
release. Only release title and notes can be modified.
Development build of 6653f46 (tests passed). Promoted as is to the stable v1.4.0 when that version is new.
NexusFree 1.4.0 (development build)
Immutable
release. Only release title and notes can be modified.
Development build of 18c6f4d (tests passed). Promoted as is to the stable v1.4.0 when that version is new.
NexusFree 1.4.0 (development build)
Immutable
release. Only release title and notes can be modified.
Development build of 43f4588 (tests passed). Promoted as is to the stable v1.4.0 when that version is new.
NexusFree 1.3.4 (development build)
Immutable
release. Only release title and notes can be modified.
Development build of 5223641 (tests passed). Promoted as is to the stable v1.3.4 when that version is new.
NexusFree 1.3.4
Immutable
release. Only release title and notes can be modified.
Fixed
- Updating from 1.3.2 or earlier no longer fails with "NexusFree did not answer within 5 minutes". The SYSTEM setup
runs inside the installed dispatcher and replaces its file; a dispatcher without the 1.3.3 fix then failed on its
own replaced file and never answered, so the update stopped before Antigravity's plugin.install.ps1now reads the
dispatcher's log: when the request ended without an answer and the dispatcher installed is already this version, it
sends the setup (idempotent) once more, to the new dispatcher, and carries on.
NexusFree 1.3.3
Immutable
release. Only release title and notes can be modified.
Fixed
- An AI session opened before an update keeps working after it. The update renames the running engine aside and
copies the new one to the same path; a self-contained single-file engine loads each assembly from its own path the
first time it needs it, so it then read the new version's bytes and every laterfreeorfree_statuscall of that
session failed with an empty error ("Tool free failed: "),whoamiincluded, while sessions started after the update
worked. The MCP server and the SYSTEM dispatcher now load every assembly they reference as soon as they start, while
the file is still theirs (about 8 ms). Should a call still fail after its file was replaced, the error says that
NexusFree was updated while the session was open and to reconnect the nexus-free MCP server. get.ps1no longer fails now and then with "The package does not start on this PC" under Windows PowerShell 5.1:
it read only the first line ofNexusFree.exe --versionthroughSelect-Object -First 1, which stops the program
early there, so its exit code read -1. The whole output is read, then its first line.- Sessions opened before this update still run an engine without that fix: reconnect their nexus-free server (or open
a new session) once after updating to 1.3.3.
Added
- A test that starts the self-contained single-file build, replaces its file the way install.ps1 does, and checks that
its tools still answer.
NexusFree 1.3.2
Immutable
release. Only release title and notes can be modified.
Fixed
get.ps1no longer fails with "being used by another process" when a scanner briefly opens the freshly
extracted executable. The package is staged next to the releases folder and never run there: its version comes
from the executable's version resource, the staged folder is renamed toreleases\<version>, and only then is
--versionrun in place (a package that does not answer its own version is removed again). A rename held by such
an external, transient scan (sharing, lock or access violation) is waited out for at most 10 s; any other error
still fails the installation. Older versions are removed only after that check.
Added
get.ps1test variablesNEXUS_FREE_SOURCEandNEXUS_FREE_HOME(a local package in another folder,
install.ps1 never run), and its tests under PowerShell 7 and Windows PowerShell 5.1, a 2 s scanner hold included.
NexusFree 1.3.1
Immutable
release. Only release title and notes can be modified.
Fixed
get.ps1works under Windows PowerShell started from PowerShell 7 or from a .NET process that inherited its
module folders (NexusSystem's maintenance run by hand): it keeps only Windows PowerShell's own module folders, so
Get-FileHashloads again, as in the other Nexus products.- Reading an answer no longer locks it: the engine opens it shared for writing and deleting, so a dispatcher still
writing it in place never fails with a sharing violation (it is read again until it parses).