Changelog
This file records the development history of Invariant LLM Connect from the initial product foundation through the current development build.
The project uses semantic versions for Connect itself. Gecko versions are implementation details and are recorded only where useful for testing. Dates refer to the development build or verification date. These builds are pre-release software unless explicitly stated otherwise.
Unreleased
Changed
- Set Cat vs Dot Technologies as the developer and publisher for Invariant LLM Connect across Windows metadata, installer registration, About, Linux AppStream metadata, and product documentation.
- Preserved the internal
InvariantGecko vendor namespace and existing profile paths so the publisher change does not disrupt user data during updates.
Pending
- Authenticode signing for the Windows installer.
- Production HTTPS update endpoint and offline-protected signing key.
- Public-key rotation and update rollback policy.
- A supported Gecko release or ESR pin instead of the current development engine baseline.
- Distribution-native Linux package-manager integration beyond the portable cross-distribution release.
- Manual testing of the full external-preview, authentication, download, and system-browser handoff matrix.
- Platform edit and delete controls in the Gecko shell.
- Manual and optional automatic tab suspension in the Gecko shell.
- Repeatable stock-browser performance comparisons.
- Final production branding review.
0.7.0 - 2026-09-23
Added
- Added Linux as a first-class release target alongside Windows.
- Added a Linux-native full-source Gecko overlay and build configuration.
- Added root
build-linux.shandpublish-linux.shcommands. - Added a portable x86_64
tar.xzpackage for modern glibc desktop Linux distributions. - Added direct portable launch plus an optional rootless per-user installer.
- Added XDG desktop-entry and complete hicolor icon installation.
- Added atomic Linux application replacement with rollback and preserved Gecko profiles, authentication state, settings, and platform records.
- Added a user-level uninstaller that intentionally leaves user data intact.
- Added Linux package gates for Mozilla updater helpers and Chromium, WebView2, and CEF runtime files.
- Added SHA-256 sidecar generation for Linux release archives.
- Added a matched-release gate that requires the Windows installer and Linux archive to carry the same Connect version.
- Added a portable Linux update provider that stages
.tar.xzpackages, waits for Connect to exit, validates archive paths, invokes the atomic rootless installer, removes the staged package, and optionally restarts Connect.
Changed
- Changed platform policy from Windows-first/future-Linux to ongoing Windows and Linux support for every release.
- Kept both operating systems on one Gecko product source, Connect version, product identity, and update contract.
- Documented glibc x86_64 as the current broad Linux baseline; musl and ARM64 remain explicit future targets rather than unverified compatibility claims.
Verification
- Built successfully from the same Gecko commit as Windows on openSUSE Tumbleweed under WSL2.
- Passed native Linux configure and full-source compilation with GTK3, X11, Wayland, ALSA, and PulseAudio support detected.
- Passed Linux package checksum, ELF dependency, forbidden-runtime, rootless installation, headless Gecko startup, and uninstall verification.
- Passed Linux atomic install/update/profile-preservation smoke testing.
- Passed all 15 shared update, navigation, and publisher-identity tests.
- Built and metadata-verified the matched Windows 0.7.0 installer.
- Windows installer SHA-256:
9C9843B8772540C28EDB5D2C5FEC52389F16EBD68594F12A0B6D5A7C6C1723AD. - Linux archive SHA-256:
BAF289C9A93CFB3286AAF41E2301A892B93B0EDCB7F721CC9FA7EE271236053A.
0.6.0 - 2026-09-20
Added
- Added a three-way external-link policy:
- configured LLM platform origins remain inside Connect;
- ordinary external pages open in a marked External Preview tab;
- updates, releases, authentication, downloads, unsupported protocols, and pop-up destinations open in the operating system browser.
- Added an External Preview toolbar showing the destination domain.
- Added
Open in BrowserandClosecommands to External Preview. - Added an External Links setting with
External Preview,System Browser, andAsk Every Timemodes. - Added shared, testable link classification in
UpdateCore.mjs. - Added explicit handling for GitHub release routes, executable/archive downloads, OAuth/authorization routes, common authentication hosts, and pop-up windows.
- Added regression coverage for the Open WebUI GitHub release URL and all link destination classes.
Changed
- Refined the original all-or-nothing external handoff model so useful links from LLM responses can remain accessible without turning Connect into an unrestricted browser.
- Updated the MVP, Gecko migration, test workflow, compatibility record, and README to describe the preview and system-browser boundary.
- Increased the automated update/navigation suite to 13 tests.
Fixed
- Fixed Open WebUI update links opening GitHub in a Connect tab.
- Prevented ordinary external pages from being mistaken for configured LLM platform sessions.
- Preserved the originating platform page when a same-tab external navigation is moved into External Preview or the system browser.
Verification
- Built from the full Gecko source tree using Gecko 158.0a1 development code.
- Passed isolated-profile branded-chrome startup verification.
- Passed the installed Gecko runtime gate with
xul.dllloaded and no Chromium-family modules. - Passed all 13 automated tests.
- Windows installer version:
0.6.0. - Windows installer SHA-256:
6071F6AEB21DBCE5208662515413BA441AD62C30B5B4AE03DC3BB6E8C8BD9DC9.
0.5.1 - 2026-09-20
Added
- Added a startup wait for Gecko toolbar targets before constructing the Invariant chrome.
- Added profile diagnostic markers for successful branded-chrome startup and the loaded Connect version.
- Added a regression test requiring branding to survive an unavailable update service.
Changed
- Moved Invariant update modules from unsupported eager
chrome://module imports to Gecko's standardresource:///modulespackage path. - Made branding, tab placement, Platform, Settings, and About initialize independently from the update service.
- Added an update-service fallback that reports failure inside Settings instead of aborting the entire browser shell.
- Increased the automated suite to 12 tests.
Fixed
- Fixed the 0.5.0 startup regression that left only stock Gecko chrome visible.
- Restored the Invariant product name, branded title row, moved tab strip, Platform control, status, Settings, and About.
- Fixed timing-sensitive startup where missing toolbar targets could previously cause the customization function to return without retrying.
Verification
- Verified live startup against an isolated profile before packaging.
- Verified that the installed archive contained the guarded shell and both resource modules.
- Verified Gecko-only runtime behavior after in-place installation.
- Windows installer SHA-256:
1831C91F8509D280E2C166B9590961FC15C2F0122B6DB2E11BE308EDDE72A9BF.
Known Issues
- Open WebUI's GitHub update link could still open inside Connect. The final destination policy was corrected in 0.6.0.
0.5.0 - 2026-09-19
Added
- Added the Connect-owned application update architecture.
- Added semantic-version comparison separate from the Gecko engine version.
- Added stable-channel signed manifest validation.
- Added Ed25519 manifest and package-signature verification.
- Added SHA-256 package verification and bounded downloads.
- Added HTTPS-only production endpoint enforcement with an explicit loopback development override.
- Added update states for checking, availability, download, verification, readiness, install-on-close, installation, and failure.
- Added once-per-session update checks with a 24-hour successful-check interval.
- Added manual update checks and optional automatic download behavior.
- Added staged packages under the user profile with persisted, reverified ready state.
- Added active LLM-session warnings before restart-and-update.
- Added a minimal update log that excludes conversations, credentials, cookies, prompts, models, and browsing data.
- Added Windows, Linux package-manager notification, and Invariant OS provider boundaries.
- Added signed, declarative platform compatibility data support.
- Added built-in declarative profiles for Open WebUI, AnythingLLM, and LibreChat.
- Added a loopback mock update server with runtime-generated development keys.
- Added Settings controls for update status, channel, automatic download, install-on-close, last check, check, download, retry, later, and restart.
- Added an update-attention state to the Settings button.
- Added expanded About technical information for Connect version, Gecko, build ID, OS, and ABI.
- Added an initial external new-window handoff regression test.
Packaging
- Replaced the earlier installer path with a custom NSIS package.
- Added transactional extraction to an adjacent
.updatedirectory. - Added preservation of the prior installation in
.previousuntil the new payload is swapped into place. - Added rollback when the new directory cannot be installed.
- Added bounded retries for locked directory swaps.
- Fixed the NSIS current-directory lock by moving the installer working
directory to
%TEMP%before renaming staged directories. - Added update mode using
/S /UPDATE=1 /WAITPID=<pid> [/RESTART=1]. - Added per-user uninstall registration, shortcuts, version metadata, and profile-preserving in-place installation.
Runtime Hardening
- Compiled out Firefox's updater, maintenance service, update agent, default-browser agent, notification server, background tasks, and crash reporter.
- Disabled Mozilla telemetry, health reporting, Sync, Normandy, profile migration, promotional/default-browser behavior, and unrelated background networking where supported by the build.
- Limited developer tooling to the server components needed for development.
- Removed packaged pingsender and notification helper components.
- Added a package gate rejecting Mozilla updater/helper binaries and Chromium, WebView2, and CEF runtime files.
- Kept the production update endpoint and public key blank by default, leaving development packages safely network-inactive.
Testing
- Added tests for semantic versions, manifest product/channel/platform checks, malformed manifests, signature tampering, hash mismatch, partial downloads, compatibility data, state transitions, active-session warnings, and local 404/500/timeout/interrupted/offline responses.
- Reached 11 passing automated tests.
- Verified a 55-file hardened payload of approximately 347 MiB uncompressed.
- Verified transactional installation over 0.3.2 with the profile preserved.
- Verified installed version registration and a live Gecko-only process.
- Windows installer SHA-256:
62F54806F618E64C9434E6D08215996644DB289122F6411817BADBD894252B17.
Known Regression
- Eager loading of the new updater modules could abort all custom chrome initialization. The page content still loaded, but branding, tab placement, Platform, Settings, and About disappeared. Fixed in 0.5.1.
0.3.2 - 2026-09-19
Changed
- Moved
Invariant LLM Connectidentity into the upper title row. - Moved the native Gecko tab container onto the navigation row after Back, Forward, and Reload.
- Kept the Platform picker, status, and Settings access on the same compact navigation row.
- Refined chrome styling for the requested two-row hierarchy.
Verification
- Installed as an in-place update while preserving the existing profile.
- Verified the installed process loaded
xul.dlland no Chromium-family modules.
0.3.1 - 2026-09-19
Added
- Added visible
SettingsandAbout Invariant LLM Connectmenu items. - Added a Settings dialog with Open WebUI endpoint configuration.
- Added an About dialog using Invariant branding and version information.
- Added an explicit
+ Platformlabel and platform menu.
Fixed
- Fixed the application status remaining on
Loadingafter Open WebUI had finished loading. - Restored clear Connected/Ready status behavior.
- Addressed the missing Settings/About access reported during Open WebUI tests.
Verification
- Installed in place with the existing Gecko profile preserved.
- Confirmed the installed archive contained the status, Platform, Settings, and About changes.
- Confirmed a live Gecko-only process.
0.3.0 - 2026-09-18
Added
- Delivered the first full-source native Gecko product build.
- Added the built-in Open WebUI destination at
http://localhost:8080. - Added configured platform tabs, multiple simultaneous tabs, and custom platform creation.
- Added Back, Forward, and Reload controls without a general address bar.
- Added Connect-owned minimal browser chrome over the hosted platform.
- Added same-origin platform navigation and the first external-origin handoff implementation.
- Added Invariant product identity, executable metadata, application ID, icons, installer images, and browser branding generated from the supplied v1 brand package.
- Added a per-user Windows installer and preserved Gecko profile location.
- Added root build, run, publish, and installed-runtime verification commands.
Changed
- Made Gecko the required and exclusive runtime direction.
- Retired Chromium, WebView2, CEF, and Electron as product runtime options.
- Replaced the prototype shell with a Firefox-source product build rather than a preference-only Firefox wrapper.
- Kept branding work non-blocking while applying the supplied approved assets where available.
Verification
- Verified first install and same-installer in-place update.
- Verified the user profile remained intact across installation.
- Verified
xul.dllin the live process and no WebView2, Edge, Chromium, Chrome ELF, or CEF modules. - Verified Open WebUI login and communication with an LM Studio-backed model.
- Recorded approximately 250 to 360 MB observed RAM during that workload.
Known Issues
- Status could remain on
Loadingafter the platform was ready. - Settings and About controls were not visible in the first installed build.
- The initial shell layout did not yet match the requested title/tab rows.
Gecko Transition - 2026-09-17
Added
- Added Gecko artifact and full-source build paths for Windows development.
- Added source overlay automation for product identity, browser chrome, preferences, branding, and packaging.
- Added live process verification that requires
xul.dlland rejects Chromium modules. - Added Gecko engine evaluation, migration, Windows testing, and platform strategy documentation.
Changed
- Removed the earlier fallback allowance for a stripped Chromium runtime.
- Declared Gecko mandatory before real hardware, resource, and LLM testing.
- Marked the WebView2 application and its measurements as historical only.
Verification
- Verified a Gecko 158.0a1 development artifact on Windows.
- Confirmed that the live runtime did not load WebView2, Edge, Chromium, Chrome ELF, or CEF modules.
0.2.0 - 2026-09-16
Added
- Added the first installable Windows MVP shell using .NET 8 WinForms and WebView2 as a temporary workflow prototype.
- Added the built-in local Open WebUI platform preset.
- Added persistent JSON platform records under AppData.
- Added platform creation, editing, removal, and unique identifiers.
- Added multiple tabs with dynamic document titles.
- Added Back, Forward, Reload, Close Tab, and Platform controls.
- Added manual tab suspension and resume.
- Added loading, connected, failure, and web-process status reporting.
- Added external-origin confirmation and operating-system browser handoff.
- Disabled WebView2 autofill, password saving, DevTools, and status bar.
- Added optional diagnostics logging and JSON smoke-test reports.
- Added a branded empty state, About dialog, theme, executable icon, and product metadata.
- Added a self-contained per-user Windows installer with desktop and Start Menu shortcuts.
- Preserved platform settings in AppData during installer replacement.
Known Limitations
- The runtime was Chromium-based through WebView2 and therefore violated the final Gecko-only product requirement.
- The installer terminated the running prototype before replacing its files and did not yet provide transactional rollback.
Status
- Retired after the Gecko-only requirement was confirmed.
- Retained in
src/only as historical workflow reference code.
0.1.1 - 2026-09-16
Added
- Created the earliest runnable Windows proof of concept for loading a local LLM web endpoint.
- Established the initial dedicated-browser workflow and process measurement approach.
Measurement
- Recorded 395.1 MB working set across seven application/WebView processes for one idle local-endpoint tab.
- Recorded 0 percent CPU over a five-second idle sample.
- No equivalent stock-browser comparison was available, so the result was treated as preliminary only.
Status
- Superseded by 0.2.0 and later retired with all WebView2 builds.
Initial Foundation - 2026-09-16
Added
- Defined the product name
Invariant LLM Connectand the Invariant family. - Defined the product as a dedicated lightweight browser for hosted LLM web platforms, not an LLM frontend or general-purpose browser.
- Established the principle:
Give the resources to the model, not the browser. - Defined local, LAN, VPN, and remote platform support.
- Required user-defined platform endpoints and optional known-platform presets.
- Required tabs, multiple windows, modern web security, restrained chrome, and no normal address bar.
- Defined Open WebUI, AnythingLLM, and LibreChat as compatibility targets rather than product dependencies.
- Established Windows as the first test platform and Windows/Linux as the final platform scope.
- Defined resource, security, maintainability, and compatibility evaluation criteria.
- Added product foundation, architecture, branding, MVP, engine evaluation, roadmap, compatibility, and platform strategy documents.
- Added public-safe example endpoint rules that exclude private machine names, personal infrastructure, and private AI systems.
- Kept branding production parallel to and non-blocking for application work.
Version Notes
0.1.1and0.2.0were WebView2 workflow prototypes and are permanently retired.- The first verified Gecko product build was
0.3.0. - No public
0.4.xbuild was recorded. Update-system development moved the next packaged build to0.5.0. 0.5.0introduced the update architecture but also introduced a custom-chrome startup regression.0.5.1restored robust branded-shell startup.0.6.0introduced the refined external-link policy.0.7.0makes Windows and Linux ongoing release targets and adds the portable Linux packaging path.
