@volter/supercode-teams 0.2.96 → 0.2.98

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.
Files changed (2) hide show
  1. package/bin/workspace.mjs +10 -9
  2. package/package.json +1 -1
package/bin/workspace.mjs CHANGED
@@ -744,19 +744,20 @@ async function connectorCommand(verb, { flags, rest, output, client, context, te
744
744
  output({ version: 1, context: scope(context), data: { machine: saved.machine, source: saved.source, roots: saved.roots.map(({ path: _path, ...item }) => item), socket: machine.socketPath, foreground: true } });
745
745
  // Run by a service, the connector moves to an upgrade on its own: its readers would otherwise answer from the code
746
746
  // they loaded until something restarted it (after 0.5.51 this Mac's went on reading a Codex turn waiting on an
747
- // approval as busy). On Windows the service runs a per-version copy, so what an upgrade replaces is the
748
- // `supercode` on PATH, and the move is the install that re-pins the service (it stops this connector and starts
749
- // the new copy). Elsewhere it stops and exits non-zero, which every service manager here restarts.
747
+ // approval as busy). The move is the install, run by the upgraded CLI, because an upgrade can change the service
748
+ // unit too (a launchd job without ProcessType ran at background priority and missed discovery's bound): it rewrites
749
+ // a changed unit and restarts this connector under it. It runs in a session of its own, so a service manager
750
+ // stopping this connector cannot stop it half done. On Windows the service runs a per-version copy, so the upgraded
751
+ // CLI is the `supercode` on PATH (whose install stops this connector; the task's repeat starts the new copy).
752
+ // An unchanged unit leaves this connector running, and it then restarts itself: every service manager here
753
+ // restarts a connector that exits non-zero.
750
754
  if (saved.service) {
751
755
  const shim = process.platform === 'win32' ? (() => { try { return execFileSync('where', ['supercode'], { encoding: 'utf8', windowsHide: true }).split(/\r?\n/).find(Boolean); } catch { return null; } })() : null;
752
756
  watchCodeChange([process.env.SUPERCODE_BIN, new URL('../package.json', import.meta.url), shim], (changed) => {
753
757
  process.stderr.write(`supercode teams: ${changed} changed under this connector (an upgrade); moving to the new code\n`);
754
- if (process.platform === 'win32') {
755
- spawn('supercode', ['teams', 'connect', '--install', '--context', contextName, '--cwd', path], { shell: true, detached: true, stdio: 'ignore', windowsHide: true }).unref();
756
- return;
757
- }
758
- process.exitCode = 75;
759
- void stopConnector?.();
758
+ const cli = process.platform === 'win32' ? 'supercode' : process.env.SUPERCODE_BIN;
759
+ spawn(cli, ['teams', 'connect', '--install', '--context', contextName, '--cwd', path], { shell: process.platform === 'win32', detached: true, stdio: 'ignore', windowsHide: true }).unref();
760
+ if (process.platform !== 'win32') setTimeout(() => { process.exitCode = 75; void stopConnector?.(); }, 60_000);
760
761
  });
761
762
  }
762
763
  await new Promise(resolveStop => { let stopped = false; stopConnector = async () => { if (stopped) return; stopped = true; await stopAll(); resolveStop(); }; for (const signal of ['SIGINT', 'SIGTERM', ...(process.platform === 'win32' ? ['SIGHUP', 'SIGBREAK'] : [])]) process.once(signal, stopConnector); });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volter/supercode-teams",
3
- "version": "0.2.96",
3
+ "version": "0.2.98",
4
4
  "type": "module",
5
5
  "description": "A machine daemon serving this machine's doors, and a local or remote Teams server for shared session discovery, OpenTelemetry ingestion and access to enrolled machines.",
6
6
  "license": "MIT",