francois 0.38.0 → 0.38.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -62,5 +62,19 @@ Prebuilt for macOS (universal), Windows x64 and Linux x64. On anything else,
62
62
  Environment: `FRANCOIS_SKIP_DOWNLOAD=1` skips the postinstall download,
63
63
  `FRANCOIS_DOWNLOAD_BASE` overrides the release host (mirrors, air-gapped setups).
64
64
 
65
+ ## An update installed, but the app still shows the old version
66
+
67
+ Node version managers keep global npm packages in separate directories. After
68
+ switching Node versions, a shortcut or taskbar pin can still open the previous
69
+ copy even though `npm i -g francois` updated the active one.
70
+
71
+ Finish your sessions and quit Francois, then run `francois` in the terminal where
72
+ you installed the update. Run `francois shortcut` there to refresh the desktop
73
+ entry. On Windows, replace an old taskbar pin if it still opens the previous copy.
74
+ Windows desktop shortcuts use the installation's resolved executable path, so
75
+ switching NVM's active Node version does not change which copy they open. Terminal
76
+ launches still follow the active Node installation. To select a particular copy
77
+ for desktop launches, run that copy's `francois shortcut` command.
78
+
65
79
  [Full documentation](https://github.com/antoine-gmnz/francois) ·
66
80
  [AGPL-3.0](https://github.com/antoine-gmnz/francois/blob/main/LICENSE)
package/lib/desktop.js CHANGED
@@ -114,7 +114,18 @@ function attempt(command, args) {
114
114
 
115
115
  // ── Windows ─────────────────────────────────────────────────────────────────
116
116
 
117
+ /** Pin desktop launches to this install, independent of NVM's active version. */
118
+ function windowsShortcutExecutable(executable) {
119
+ try {
120
+ return fs.realpathSync.native(executable);
121
+ } catch {
122
+ // Keep desktop registration best-effort when the payload is unavailable.
123
+ }
124
+ return executable;
125
+ }
126
+
117
127
  function installWindows({ executable, productName, channel, appVersion, notes }) {
128
+ executable = windowsShortcutExecutable(executable);
118
129
  const shortcut = startMenuShortcut(productName);
119
130
  if (!shortcut) {
120
131
  notes.push('APPDATA is not set — skipped the Start Menu shortcut.');
@@ -292,4 +303,5 @@ module.exports = {
292
303
  shortcutWorkingDir,
293
304
  startMenuShortcut,
294
305
  uninstallRegistryKey,
306
+ windowsShortcutExecutable,
295
307
  };
package/manifest.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "repo": "antoine-gmnz/francois",
3
- "tag": "v0.38.0",
3
+ "tag": "v0.38.1",
4
4
  "channel": "stable",
5
- "appVersion": "0.38.0",
5
+ "appVersion": "0.38.1",
6
6
  "productName": "Francois",
7
7
  "assets": {
8
- "darwin-universal": { "name": "francois-darwin-universal.tar.gz", "sha256": "a40e06f5c5be871ff4115386afe521b950bfda34a79465251bdbb70206647b72" },
9
- "linux-x64": { "name": "francois-linux-x64.tar.gz", "sha256": "a4fefe892160d3a0f32bc5319dfb3bb25ac32d159d923e41b364bca28622da43" },
10
- "win32-x64": { "name": "francois-win32-x64.zip", "sha256": "4678e76789598a09609951e0d0d0d6093f5aee86163630d4011e82fc32493091" }
8
+ "darwin-universal": { "name": "francois-darwin-universal.tar.gz", "sha256": "a792cf449789bc037de3f6df6d4fbc2f3ac797335eb7134c6791a7454ffc9b42" },
9
+ "linux-x64": { "name": "francois-linux-x64.tar.gz", "sha256": "54996c7313fec48ac5375d4f51907527c08b29c19c3b1087d62bed0bc4946f40" },
10
+ "win32-x64": { "name": "francois-win32-x64.zip", "sha256": "e3820cbd13c5c6c8cb49b6f2ea65135af79ef97e1745d291144d446cb0bc93d2" }
11
11
  }
12
12
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "francois",
3
- "version": "0.38.0",
3
+ "version": "0.38.1",
4
4
  "description": "Mission control for your Claude Code fleet — installs the Francois desktop app without an installer.",
5
5
  "license": "AGPL-3.0-only",
6
6
  "author": "Antoine Gimenez",