thinkpool-pair 0.6.23 → 0.6.24

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/bridge.mjs +7 -4
  2. package/package.json +1 -1
package/bridge.mjs CHANGED
@@ -184,9 +184,10 @@ const forceContinue = ownArgs.includes('--continue')
184
184
  const forceFresh = ownArgs.includes('--fresh')
185
185
 
186
186
  // One yes/no on the bridge's stderr (same channel as the agent picker).
187
- const askYesNo = (q) => new Promise((resolve) => {
187
+ // defaultYes=true bare Enter means yes; false → Enter means no (opt-in).
188
+ const askYesNo = (q, defaultYes = true) => new Promise((resolve) => {
188
189
  const rl = readline.createInterface({ input: process.stdin, output: process.stderr })
189
- rl.question(q, (ans) => { rl.close(); resolve(!/^n/i.test(String(ans).trim())) })
190
+ rl.question(q, (ans) => { rl.close(); const a = String(ans).trim(); resolve(defaultYes ? !/^n/i.test(a) : /^y/i.test(a)) })
190
191
  })
191
192
 
192
193
  let attachedCmd = null, attachedArgs = [], continuing = false
@@ -227,10 +228,12 @@ if (process.stdin.isTTY && !headless && process.env.THINKPOOL_PAIR_AUTOUPDATE !=
227
228
  let declined = false
228
229
  try { declined = fs.existsSync(declineFile) } catch { /* noop */ }
229
230
  if (!declined) {
230
- const yes = await askYesNo(`\n Keep this bridge running with auto-updates (survives reboot, no terminal to babysit)?\n Install it as a background service? [Y/n] `)
231
+ // Default NO a bare Enter keeps it foreground (the expected "I ran it in
232
+ // my terminal" behaviour); installing a background daemon is deliberate opt-in.
233
+ const yes = await askYesNo(`\n Run as a background service instead? It survives reboot + auto-updates,\n but runs detached — you'd stop it with 'uninstall-service', not Ctrl-C.\n Install background service? [y/N] `, false)
231
234
  if (yes) {
232
235
  svc.installService(room, attachedCmd ? [attachedCmd, ...attachedArgs] : [])
233
- process.stderr.write(` ◆ the background service is handling room ${room} now — you can close this terminal.\n\n`)
236
+ process.stderr.write(`\n ◆ the background service is handling room ${room} now — you can close this terminal.\n ◆ STOP IT with: npx thinkpool-pair@latest uninstall-service ${room}\n (closing the terminal does NOT stop it — it's detached under launchd/systemd.)\n\n`)
234
237
  process.exit(0) // hand off to the supervised service (no double bridge)
235
238
  }
236
239
  try { fs.mkdirSync(path.dirname(declineFile), { recursive: true }); fs.writeFileSync(declineFile, new Date().toISOString()) } catch { /* noop */ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thinkpool-pair",
3
- "version": "0.6.23",
3
+ "version": "0.6.24",
4
4
  "description": "Share a local coding-agent CLI (Claude Code, Codex, Gemini, Aider, …) into a ThinkPool Code room, live.",
5
5
  "type": "module",
6
6
  "bin": {