@synkro-sh/cli 1.4.31 → 1.4.32

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/dist/bootstrap.js CHANGED
@@ -3079,7 +3079,22 @@ tmux kill-session -t "$SESSION" 2>/dev/null || true
3079
3079
  tmux new-session -d -s "$SESSION" \\
3080
3080
  "claude --dangerously-load-development-channels server:synkro-local --dangerously-skip-permissions --setting-sources project,local --model claude-sonnet-4-6 2>>$LOG; echo 'claude exited with code '$'?' >> $LOG"
3081
3081
 
3082
- # Give claude a moment to start before checking
3082
+ # Claude's --dangerously-skip-permissions shows a one-time confirmation
3083
+ # prompt (accept option = '2'). Because --setting-sources skips user
3084
+ # settings, the acceptance is never persisted, so the prompt reappears
3085
+ # every launch. Auto-accept it by sending the right key sequence.
3086
+ sleep 3
3087
+ if tmux has-session -t "$SESSION" 2>/dev/null; then
3088
+ # Send '2' to accept bypass-permissions, then Enter for any follow-up prompts
3089
+ tmux send-keys -t "$SESSION" '2' 2>/dev/null || true
3090
+ sleep 1
3091
+ tmux send-keys -t "$SESSION" Enter 2>/dev/null || true
3092
+ sleep 1
3093
+ # Additional Enter for workspace trust / MCP consent prompts
3094
+ tmux send-keys -t "$SESSION" Enter 2>/dev/null || true
3095
+ log "Sent auto-accept keys to claude session."
3096
+ fi
3097
+
3083
3098
  sleep 2
3084
3099
  if ! tmux has-session -t "$SESSION" 2>/dev/null; then
3085
3100
  log "ERROR: tmux session died immediately. Check $LOG for details."
@@ -3233,14 +3248,15 @@ function probePort(host, port, timeoutMs = 500) {
3233
3248
  sock.setTimeout(timeoutMs, () => done(false));
3234
3249
  });
3235
3250
  }
3236
- function tmuxKickEnter() {
3251
+ function tmuxDismissPrompts() {
3252
+ spawnSync2("tmux", ["send-keys", "-t", TMUX_SESSION, "2"], { encoding: "utf-8" });
3237
3253
  spawnSync2("tmux", ["send-keys", "-t", TMUX_SESSION, "Enter"], { encoding: "utf-8" });
3238
3254
  }
3239
3255
  async function waitForChannelReady(port, timeoutMs = 6e4, host = "127.0.0.1") {
3240
3256
  const deadline = Date.now() + timeoutMs;
3241
3257
  while (Date.now() < deadline) {
3242
3258
  if (await probePort(host, port)) return true;
3243
- tmuxKickEnter();
3259
+ tmuxDismissPrompts();
3244
3260
  await new Promise((r) => setTimeout(r, 1e3));
3245
3261
  }
3246
3262
  return probePort(host, port);
@@ -3717,7 +3733,7 @@ function writeConfigEnv(opts) {
3717
3733
  `SYNKRO_CREDENTIALS_PATH=${shellQuoteSingle(credsPath)}`,
3718
3734
  `SYNKRO_TIER=${shellQuoteSingle(safeTier)}`,
3719
3735
  `SYNKRO_INFERENCE=${shellQuoteSingle(safeInference)}`,
3720
- `SYNKRO_VERSION=${shellQuoteSingle("1.4.31")}`
3736
+ `SYNKRO_VERSION=${shellQuoteSingle("1.4.32")}`
3721
3737
  ];
3722
3738
  if (safeSynkroBin) lines.push(`SYNKRO_CLI_BIN=${shellQuoteSingle(safeSynkroBin)}`);
3723
3739
  if (safeUserId) lines.push(`SYNKRO_USER_ID=${shellQuoteSingle(safeUserId)}`);