Skip to content

Updates and Hotfixes

TomΓ‘s Platero edited this page Oct 29, 2026 · 2 revisions

🩹 Updates and Hotfixes

How a fix reaches you without downloading the whole editor again β€” and what guarantees you never end up worse than you were.

The idea

Every release is a real version (0.5.0 β†’ 0.5.1 β†’ 0.6.0). What changes is how it reaches each person:

You are on… You receive
the exact previous version, portable build a small zip with only the files that changed
any other version, or the installed build the full release
any case where the small zip fails the full release, on its own, without fuss

The result is identical in all three: the same files, the same version.

The three labels

The pipeline picks the label by looking at the changes; the editor shows it, for example Latest Version: Minor update 0.5.0.

Label When Number
Hotfix only fixes, performance and maintenance the last digit goes up
Minor update fixes plus something new the middle digit goes up
Release does not fit in a small zip: the engine, dependencies, pi or the product identity changed decided by the owner

The label does not decide the download: a Minor update can arrive as a small zip, and a Hotfix can arrive whole if it has to.

What can travel in a small zip

Only an allow-list: the editor's code and screens (out/), the built-in extensions including the PiCode connector, icons and media, and the setup window. Electron, dependencies, pi, Engram and the product identity never travel this way β€” they always mean a full release. A change that migrates your data (chats, settings, memory) never travels in a hotfix either.

New versions of the pinned Gentle AI packages (gentle-pi, gentle-engram, pi-intercom) do fit in a small zip; a new Engram program does not. How those versions are picked up and when they reach you: How Gentle AI stays up to date.

What protects you

What could go wrong What covers it
the zip is for another version the editor checks the version and, file by file, that the original is the expected one; otherwise it downloads the full release
someone tampers with the zip or the server the manifest is signed; without a valid signature the zip is not applied
a path that escapes the folder the whole package is rejected before anything is touched
a corrupt or cut-off download a SHA-256 check of the zip and of each file, before and after copying
the update is applied halfway it is applied to a copy of the installation, never the running one; on any failure the copy is thrown away
Windows will not replace open files the swap happens with the app closed, by a script that waits for it to exit
the new version does not start the previous one is only removed once the new one proves it started; if it does not within about 3 minutes, the previous version comes back with your profile
your portable profile data/ is never in the zip and is always kept

The proof of start is a start check, not a check that every screen works.

Limits

  • Only the portable build receives the small zip; the installed build updates with its installer.
  • Only from the previous version: each channel keeps a single release (the newest), so someone two versions behind receives the full release.
  • A fix for someone already on the latest version still needs a new version number: every hotfix is a version of its own.

Details and the exact rules live in the repository's docs/HOTFIX.md and ADR-034; the feed itself is described in Distribution and Licensing.


Related: CI and Releases Β· Troubleshooting

Clone this wiki locally