Gnome toolbar for Tangled code review.

feat(install): load updates without logging out #15

Merged permadeath.com
targeting main from azurite-frogmouth.test.pds.did.bot/gnome-shell-extension-tangled-reviewer:claude/reload-without-relogin
Merged opened by and assigned to permadeath.com
targeting main from azurite-frogmouth.test.pds.did.bot/gnome-shell-extension-tangled-reviewer:claude/reload-without-relogin

./install.sh and ./install.sh update now load a new version into the running session, with no log out. Each install goes in builds/<id>/, named by its contents, behind a small fixed loader that is the extension's own extension.js and prefs.js. GNOME Shell imports an extension's modules only once per session, so after an update install.sh disables and enables the extension, and the loader imports the new build from its new path. The current and previous builds are kept.

After a panel change, ./install.sh update used to end with:

Updated. The new helper is already running, but the panel itself changed:
log out and back in to load it.

Now it ends with:

Updated, and reloaded: the new version is running.

The first update from an existing flat install, and any change to the loader itself, still need one log out, and the script says so. Until then, helper and icons at the top level point into the current build, so a session still running the old code keeps working.

The headless smoke test makes an update while the extension is enabled, then checks two things. The panel now runs the new build's code (a different indicator class), and the new build's helper is running. Settings opens through the loader in the same run. I also checked a fresh install, reinstalling identical files, an update, a rollback, and an upgrade from a flat install, all with TA_DEST.

🤖 Generated with Claude Code

Commits 0