@bakapiano/ccsm 0.18.1 → 0.18.2

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/lib/tunnel.js +8 -3
  2. package/package.json +1 -1
package/lib/tunnel.js CHANGED
@@ -67,7 +67,12 @@ function findBinary(provider) {
67
67
  // PATH lookup via where.exe — works regardless of how the CLI got
68
68
  // installed (winget, choco, manual, in-tree).
69
69
  try {
70
- const out = execFileSync('where.exe', [p.binary], { stdio: ['ignore', 'pipe', 'ignore'] })
70
+ // windowsHide: true stops each execFileSync from briefly flashing
71
+ // a black conhost window. The Remote page polls /api/tunnel/status
72
+ // every 2.5s and probe() (when its 30s cache is cold) fires 4-6
73
+ // execs back-to-back — without this flag the screen popcorns with
74
+ // little windows every cache cycle.
75
+ const out = execFileSync('where.exe', [p.binary], { stdio: ['ignore', 'pipe', 'ignore'], windowsHide: true })
71
76
  .toString().trim().split(/\r?\n/)[0];
72
77
  if (out && fs.existsSync(out)) return out;
73
78
  } catch { /* not on PATH */ }
@@ -94,7 +99,7 @@ function findBinary(provider) {
94
99
 
95
100
  function getVersion(provider, exe) {
96
101
  try {
97
- const out = execFileSync(exe, ['--version'], { stdio: ['ignore', 'pipe', 'pipe'] })
102
+ const out = execFileSync(exe, ['--version'], { stdio: ['ignore', 'pipe', 'pipe'], windowsHide: true })
98
103
  .toString().trim().split(/\r?\n/)[0];
99
104
  return out || null;
100
105
  } catch { return null; }
@@ -102,7 +107,7 @@ function getVersion(provider, exe) {
102
107
 
103
108
  function checkDevtunnelLogin(exe) {
104
109
  try {
105
- const out = execFileSync(exe, ['user', 'show'], { stdio: ['ignore', 'pipe', 'ignore'], timeout: 5000 })
110
+ const out = execFileSync(exe, ['user', 'show'], { stdio: ['ignore', 'pipe', 'ignore'], timeout: 5000, windowsHide: true })
106
111
  .toString().trim();
107
112
  // "Logged in as <email> using <provider>." vs "Not logged in"
108
113
  const m = out.match(/Logged in as (\S+)/);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bakapiano/ccsm",
3
- "version": "0.18.1",
3
+ "version": "0.18.2",
4
4
  "description": "Claude Code Session Manager — Windows web UI to manage many concurrent claude sessions: live list, snapshot/restore, focus existing window, new session in an isolated workspace with repo clones",
5
5
  "license": "MIT",
6
6
  "main": "server.js",