@ccpocket/bridge 1.12.0 → 1.13.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/dist/claude-auth-login.d.ts +37 -0
- package/dist/claude-auth-login.js +249 -0
- package/dist/claude-auth-login.js.map +1 -0
- package/dist/mdns.d.ts +1 -0
- package/dist/mdns.js +8 -1
- package/dist/mdns.js.map +1 -1
- package/dist/parser.d.ts +19 -0
- package/dist/parser.js +10 -0
- package/dist/parser.js.map +1 -1
- package/dist/sdk-process.js +9 -1
- package/dist/sdk-process.js.map +1 -1
- package/dist/usage.d.ts +35 -0
- package/dist/usage.js +131 -1
- package/dist/usage.js.map +1 -1
- package/dist/websocket.d.ts +1 -0
- package/dist/websocket.js +174 -6
- package/dist/websocket.js.map +1 -1
- package/package.json +1 -1
package/dist/usage.js
CHANGED
|
@@ -147,6 +147,134 @@ export async function getValidClaudeAccessToken() {
|
|
|
147
147
|
}
|
|
148
148
|
return { accessToken: refreshed.accessToken, refreshToken: updatedCreds.refreshToken };
|
|
149
149
|
}
|
|
150
|
+
async function probeClaudeAccessToken(token) {
|
|
151
|
+
const res = await fetch("https://api.anthropic.com/api/oauth/usage", {
|
|
152
|
+
headers: {
|
|
153
|
+
Authorization: `Bearer ${token}`,
|
|
154
|
+
"anthropic-beta": "oauth-2025-04-20",
|
|
155
|
+
},
|
|
156
|
+
});
|
|
157
|
+
if (res.ok) {
|
|
158
|
+
return { ok: true };
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
ok: false,
|
|
162
|
+
status: res.status,
|
|
163
|
+
detail: `API Error: ${res.status} ${res.statusText}`,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Verify that the stored Claude OAuth access token is still accepted upstream.
|
|
168
|
+
* This catches revoked/invalid sessions that have not yet reached expiresAt.
|
|
169
|
+
*
|
|
170
|
+
* Returns ok=false only for confirmed auth failures (401/403) or refresh errors.
|
|
171
|
+
* Transient upstream/network failures are tolerated so normal query startup can
|
|
172
|
+
* decide how to surface them.
|
|
173
|
+
*/
|
|
174
|
+
export async function validateClaudeAccessToken() {
|
|
175
|
+
const creds = await getClaudeOAuthCredentials();
|
|
176
|
+
if (!creds.accessToken) {
|
|
177
|
+
return { ok: false, detail: "No OAuth access token in Claude Code credentials" };
|
|
178
|
+
}
|
|
179
|
+
const initial = await probeClaudeAccessToken(creds.accessToken);
|
|
180
|
+
if (initial.ok) {
|
|
181
|
+
return initial;
|
|
182
|
+
}
|
|
183
|
+
if (initial.status !== 401 && initial.status !== 403) {
|
|
184
|
+
return { ok: true };
|
|
185
|
+
}
|
|
186
|
+
if (!creds.refreshToken) {
|
|
187
|
+
return initial;
|
|
188
|
+
}
|
|
189
|
+
const refreshed = await refreshClaudeAccessToken(creds.refreshToken);
|
|
190
|
+
const updatedCreds = {
|
|
191
|
+
accessToken: refreshed.accessToken,
|
|
192
|
+
refreshToken: refreshed.refreshToken ?? creds.refreshToken,
|
|
193
|
+
expiresAt: refreshed.expiresAt ?? creds.expiresAt,
|
|
194
|
+
};
|
|
195
|
+
try {
|
|
196
|
+
await saveClaudeOAuthCredentials(updatedCreds);
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
// Continue even if we cannot persist; the refreshed token is still valid
|
|
200
|
+
// for this process.
|
|
201
|
+
}
|
|
202
|
+
return probeClaudeAccessToken(refreshed.accessToken);
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Check Claude authentication status using **local credentials only**.
|
|
206
|
+
*
|
|
207
|
+
* This intentionally does NOT probe the upstream API to avoid redundant
|
|
208
|
+
* requests — the usage endpoint (`fetchClaudeUsage`) already contacts the
|
|
209
|
+
* same API, and firing both simultaneously causes 429 rate-limit errors.
|
|
210
|
+
*
|
|
211
|
+
* For OAuth credentials we verify:
|
|
212
|
+
* 1. An access token exists.
|
|
213
|
+
* 2. The token has not yet expired (with a small skew margin).
|
|
214
|
+
*
|
|
215
|
+
* Actual API reachability is implicitly validated by the usage fetch that
|
|
216
|
+
* runs in parallel on the Flutter settings screen.
|
|
217
|
+
*/
|
|
218
|
+
export async function getClaudeAuthStatus() {
|
|
219
|
+
if (process.env.ANTHROPIC_API_KEY) {
|
|
220
|
+
return {
|
|
221
|
+
authenticated: true,
|
|
222
|
+
source: "api_key",
|
|
223
|
+
message: "Authenticated with ANTHROPIC_API_KEY.",
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
try {
|
|
227
|
+
const creds = await getClaudeOAuthCredentials();
|
|
228
|
+
if (!creds.accessToken) {
|
|
229
|
+
return {
|
|
230
|
+
authenticated: false,
|
|
231
|
+
source: "none",
|
|
232
|
+
message: "Claude Code credentials exist, but no access token was found.",
|
|
233
|
+
errorCode: "auth_login_required",
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
// Local expiry check — avoids an API round-trip.
|
|
237
|
+
if (creds.expiresAt && Date.now() > creds.expiresAt - TOKEN_EXPIRY_SKEW_MS) {
|
|
238
|
+
// Token expired or about to expire. If we have a refresh token the
|
|
239
|
+
// usage fetch will attempt a refresh anyway, so just flag it here.
|
|
240
|
+
if (creds.refreshToken) {
|
|
241
|
+
return {
|
|
242
|
+
authenticated: true,
|
|
243
|
+
source: "oauth",
|
|
244
|
+
message: "Claude Code is authenticated (token will be refreshed).",
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
return {
|
|
248
|
+
authenticated: false,
|
|
249
|
+
source: "none",
|
|
250
|
+
message: "Claude Code access token has expired.",
|
|
251
|
+
errorCode: "auth_login_required",
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
return {
|
|
255
|
+
authenticated: true,
|
|
256
|
+
source: "oauth",
|
|
257
|
+
message: "Claude Code is authenticated.",
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
catch (err) {
|
|
261
|
+
const detail = err instanceof Error ? err.message : String(err);
|
|
262
|
+
if (detail.includes("not found")) {
|
|
263
|
+
return {
|
|
264
|
+
authenticated: false,
|
|
265
|
+
source: "none",
|
|
266
|
+
message: "Claude Code is not logged in on this machine.",
|
|
267
|
+
errorCode: "auth_login_required",
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
return {
|
|
271
|
+
authenticated: false,
|
|
272
|
+
source: "none",
|
|
273
|
+
message: detail,
|
|
274
|
+
errorCode: "auth_api_error",
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
}
|
|
150
278
|
export async function fetchClaudeUsage() {
|
|
151
279
|
try {
|
|
152
280
|
const auth = await getValidClaudeAccessToken();
|
|
@@ -157,7 +285,9 @@ export async function fetchClaudeUsage() {
|
|
|
157
285
|
"anthropic-beta": "oauth-2025-04-20",
|
|
158
286
|
},
|
|
159
287
|
});
|
|
160
|
-
|
|
288
|
+
// 401 = expired/invalid token, 429 = token-level rate limit.
|
|
289
|
+
// In both cases a fresh token resolves the issue.
|
|
290
|
+
if ((res.status === 401 || res.status === 429) && auth.refreshToken) {
|
|
161
291
|
const refreshed = await refreshClaudeAccessToken(auth.refreshToken);
|
|
162
292
|
token = refreshed.accessToken;
|
|
163
293
|
res = await fetch("https://api.anthropic.com/api/oauth/usage", {
|
package/dist/usage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"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"}
|
package/dist/websocket.d.ts
CHANGED
package/dist/websocket.js
CHANGED
|
@@ -17,6 +17,7 @@ import { RecordingStore } from "./recording-store.js";
|
|
|
17
17
|
import { PushRelayClient } from "./push-relay.js";
|
|
18
18
|
import { normalizePushLocale, t } from "./push-i18n.js";
|
|
19
19
|
import { fetchAllUsage } from "./usage.js";
|
|
20
|
+
import { ClaudeAuthLoginManager } from "./claude-auth-login.js";
|
|
20
21
|
// ---- Available model lists (delivered to clients via session_list) ----
|
|
21
22
|
const CLAUDE_MODELS = [
|
|
22
23
|
"claude-opus-4-6",
|
|
@@ -58,6 +59,7 @@ export class BridgeWebSocketServer {
|
|
|
58
59
|
worktreeStore;
|
|
59
60
|
pushRelay;
|
|
60
61
|
promptHistoryBackup;
|
|
62
|
+
claudeAuthLogin;
|
|
61
63
|
recentSessionsRequestId = 0;
|
|
62
64
|
debugEvents = new Map();
|
|
63
65
|
notifiedPermissionToolUses = new Map();
|
|
@@ -77,6 +79,7 @@ export class BridgeWebSocketServer {
|
|
|
77
79
|
this.worktreeStore = new WorktreeStore();
|
|
78
80
|
this.pushRelay = new PushRelayClient({ firebaseAuth });
|
|
79
81
|
this.promptHistoryBackup = promptHistoryBackup ?? null;
|
|
82
|
+
this.claudeAuthLogin = new ClaudeAuthLoginManager();
|
|
80
83
|
this.archiveStore = new ArchiveStore();
|
|
81
84
|
void this.debugTraceStore.init().catch((err) => {
|
|
82
85
|
console.error("[ws] Failed to initialize debug trace store:", err);
|
|
@@ -93,6 +96,12 @@ export class BridgeWebSocketServer {
|
|
|
93
96
|
else {
|
|
94
97
|
console.log("[ws] Push relay enabled (Firebase Anonymous Auth)");
|
|
95
98
|
}
|
|
99
|
+
this.claudeAuthLogin.on("update", (snapshot) => {
|
|
100
|
+
this.broadcast({
|
|
101
|
+
type: "claude_auth_status",
|
|
102
|
+
...snapshot,
|
|
103
|
+
});
|
|
104
|
+
});
|
|
96
105
|
this.wss = new WebSocketServer({ server });
|
|
97
106
|
this.sessionManager = new SessionManager((sessionId, msg) => {
|
|
98
107
|
this.broadcastSessionMessage(sessionId, msg);
|
|
@@ -239,6 +248,7 @@ export class BridgeWebSocketServer {
|
|
|
239
248
|
provider,
|
|
240
249
|
projectPath: msg.projectPath,
|
|
241
250
|
...(provider === "claude" && msg.permissionMode ? { permissionMode: msg.permissionMode } : {}),
|
|
251
|
+
...(provider === "codex" && msg.permissionMode ? { permissionMode: msg.permissionMode } : {}),
|
|
242
252
|
...(provider === "codex" && msg.sandboxMode ? { sandboxMode: msg.sandboxMode } : {}),
|
|
243
253
|
...(cached ? { slashCommands: cached.slashCommands, skills: cached.skills } : {}),
|
|
244
254
|
...(createdSession?.worktreePath ? {
|
|
@@ -452,12 +462,113 @@ export class BridgeWebSocketServer {
|
|
|
452
462
|
return;
|
|
453
463
|
}
|
|
454
464
|
if (session.provider === "codex") {
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
465
|
+
// Permission mode for Codex requires a session restart (like sandbox mode).
|
|
466
|
+
// approvalPolicy and collaborationMode are thread-level settings that
|
|
467
|
+
// only take effect reliably at thread/start or thread/resume time.
|
|
468
|
+
const newApproval = permissionModeToApprovalPolicy(msg.mode);
|
|
469
|
+
const newCollaboration = msg.mode === "plan" ? "plan" : "default";
|
|
470
|
+
const currentApproval = session.process.approvalPolicy;
|
|
471
|
+
const currentCollaboration = session.process.collaborationMode;
|
|
472
|
+
if (newApproval === currentApproval && newCollaboration === currentCollaboration) {
|
|
473
|
+
break; // No change needed
|
|
474
|
+
}
|
|
475
|
+
console.log(`[ws] set_permission_mode(codex): mode=${msg.mode} → approval=${newApproval}, collaboration=${newCollaboration} (restart)`);
|
|
476
|
+
const oldSessionId = session.id;
|
|
477
|
+
const threadId = session.claudeSessionId;
|
|
478
|
+
const projectPath = session.projectPath;
|
|
479
|
+
const oldSettings = session.codexSettings ?? {};
|
|
480
|
+
const worktreePath = session.worktreePath;
|
|
481
|
+
const worktreeBranch = session.worktreeBranch;
|
|
482
|
+
const sessionName = session.name;
|
|
483
|
+
this.sessionManager.destroy(oldSessionId);
|
|
484
|
+
console.log(`[ws] Permission mode change: destroyed session ${oldSessionId}`);
|
|
485
|
+
const hasUserMessages = session.history?.some((m) => m.type === "user_input" || m.type === "assistant") || (session.pastMessages && session.pastMessages.length > 0);
|
|
486
|
+
if (!threadId || !hasUserMessages) {
|
|
487
|
+
const newId = this.sessionManager.create(projectPath, undefined, undefined, worktreePath ? { existingWorktreePath: worktreePath, worktreeBranch } : undefined, "codex", {
|
|
488
|
+
approvalPolicy: newApproval,
|
|
489
|
+
sandboxMode: oldSettings.sandboxMode,
|
|
490
|
+
model: oldSettings.model,
|
|
491
|
+
modelReasoningEffort: oldSettings.modelReasoningEffort,
|
|
492
|
+
networkAccessEnabled: oldSettings.networkAccessEnabled,
|
|
493
|
+
webSearchMode: oldSettings.webSearchMode,
|
|
494
|
+
collaborationMode: newCollaboration,
|
|
495
|
+
});
|
|
496
|
+
const newSession = this.sessionManager.get(newId);
|
|
497
|
+
if (newSession && sessionName)
|
|
498
|
+
newSession.name = sessionName;
|
|
499
|
+
this.broadcast({
|
|
500
|
+
type: "system",
|
|
501
|
+
subtype: "session_created",
|
|
502
|
+
sessionId: newId,
|
|
503
|
+
provider: "codex",
|
|
504
|
+
projectPath,
|
|
505
|
+
permissionMode: msg.mode,
|
|
506
|
+
...(oldSettings.sandboxMode ? { sandboxMode: sandboxModeToExternal(oldSettings.sandboxMode) } : {}),
|
|
507
|
+
sourceSessionId: oldSessionId,
|
|
508
|
+
...(newSession?.worktreePath ? { worktreePath: newSession.worktreePath, worktreeBranch: newSession.worktreeBranch } : {}),
|
|
509
|
+
});
|
|
510
|
+
this.broadcastSessionList();
|
|
511
|
+
console.log(`[ws] Permission mode change (no thread): created new session ${newId} (mode=${msg.mode})`);
|
|
512
|
+
break;
|
|
513
|
+
}
|
|
514
|
+
// Worktree resolution
|
|
515
|
+
const wtMapping = this.worktreeStore.get(threadId);
|
|
516
|
+
const effectiveProjectPath = wtMapping?.projectPath ?? projectPath;
|
|
517
|
+
let worktreeOpts;
|
|
518
|
+
if (wtMapping) {
|
|
519
|
+
if (worktreeExists(wtMapping.worktreePath)) {
|
|
520
|
+
worktreeOpts = { existingWorktreePath: wtMapping.worktreePath, worktreeBranch: wtMapping.worktreeBranch };
|
|
521
|
+
}
|
|
522
|
+
else {
|
|
523
|
+
worktreeOpts = { useWorktree: true, worktreeBranch: wtMapping.worktreeBranch };
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
else if (worktreePath) {
|
|
527
|
+
worktreeOpts = { existingWorktreePath: worktreePath, worktreeBranch };
|
|
528
|
+
}
|
|
529
|
+
getCodexSessionHistory(threadId).then((pastMessages) => {
|
|
530
|
+
const newId = this.sessionManager.create(effectiveProjectPath, undefined, pastMessages, worktreeOpts, "codex", {
|
|
531
|
+
threadId,
|
|
532
|
+
approvalPolicy: newApproval,
|
|
533
|
+
sandboxMode: oldSettings.sandboxMode,
|
|
534
|
+
model: oldSettings.model,
|
|
535
|
+
modelReasoningEffort: oldSettings.modelReasoningEffort,
|
|
536
|
+
networkAccessEnabled: oldSettings.networkAccessEnabled,
|
|
537
|
+
webSearchMode: oldSettings.webSearchMode,
|
|
538
|
+
collaborationMode: newCollaboration,
|
|
539
|
+
});
|
|
540
|
+
const newSession = this.sessionManager.get(newId);
|
|
541
|
+
if (newSession && sessionName) {
|
|
542
|
+
newSession.name = sessionName;
|
|
543
|
+
}
|
|
544
|
+
void this.loadAndSetSessionName(newSession, "codex", effectiveProjectPath, threadId).then(() => {
|
|
545
|
+
this.broadcast({
|
|
546
|
+
type: "system",
|
|
547
|
+
subtype: "session_created",
|
|
548
|
+
sessionId: newId,
|
|
549
|
+
provider: "codex",
|
|
550
|
+
projectPath: effectiveProjectPath,
|
|
551
|
+
permissionMode: msg.mode,
|
|
552
|
+
...(oldSettings.sandboxMode ? { sandboxMode: sandboxModeToExternal(oldSettings.sandboxMode) } : {}),
|
|
553
|
+
sourceSessionId: oldSessionId,
|
|
554
|
+
...(newSession?.worktreePath ? {
|
|
555
|
+
worktreePath: newSession.worktreePath,
|
|
556
|
+
worktreeBranch: newSession.worktreeBranch,
|
|
557
|
+
} : {}),
|
|
558
|
+
});
|
|
559
|
+
this.broadcastSessionList();
|
|
560
|
+
});
|
|
561
|
+
this.debugEvents.set(newId, []);
|
|
562
|
+
this.recordDebugEvent(newId, {
|
|
563
|
+
direction: "internal",
|
|
564
|
+
channel: "bridge",
|
|
565
|
+
type: "permission_mode_changed",
|
|
566
|
+
detail: `mode=${msg.mode} approval=${newApproval} collaboration=${newCollaboration} thread=${threadId} oldSession=${oldSessionId}`,
|
|
567
|
+
});
|
|
568
|
+
console.log(`[ws] Permission mode change: created new session ${newId} (thread=${threadId}, mode=${msg.mode})`);
|
|
569
|
+
}).catch((err) => {
|
|
570
|
+
this.send(ws, { type: "error", message: `Failed to restart session for permission mode change: ${err}` });
|
|
571
|
+
});
|
|
461
572
|
break;
|
|
462
573
|
}
|
|
463
574
|
session.process.setPermissionMode(msg.mode).catch((err) => {
|
|
@@ -818,6 +929,60 @@ export class BridgeWebSocketServer {
|
|
|
818
929
|
});
|
|
819
930
|
break;
|
|
820
931
|
}
|
|
932
|
+
case "get_claude_auth_status": {
|
|
933
|
+
this.claudeAuthLogin.getStatus().then((snapshot) => {
|
|
934
|
+
this.send(ws, {
|
|
935
|
+
type: "claude_auth_status",
|
|
936
|
+
...snapshot,
|
|
937
|
+
});
|
|
938
|
+
}).catch((err) => {
|
|
939
|
+
this.send(ws, {
|
|
940
|
+
type: "claude_auth_status",
|
|
941
|
+
authenticated: false,
|
|
942
|
+
source: "none",
|
|
943
|
+
loginInProgress: false,
|
|
944
|
+
state: "error",
|
|
945
|
+
message: err instanceof Error ? err.message : String(err),
|
|
946
|
+
errorCode: "auth_api_error",
|
|
947
|
+
});
|
|
948
|
+
});
|
|
949
|
+
break;
|
|
950
|
+
}
|
|
951
|
+
case "start_claude_auth_login": {
|
|
952
|
+
this.claudeAuthLogin.start().then((snapshot) => {
|
|
953
|
+
this.send(ws, {
|
|
954
|
+
type: "claude_auth_status",
|
|
955
|
+
...snapshot,
|
|
956
|
+
});
|
|
957
|
+
}).catch((err) => {
|
|
958
|
+
this.send(ws, {
|
|
959
|
+
type: "claude_auth_status",
|
|
960
|
+
authenticated: false,
|
|
961
|
+
source: "none",
|
|
962
|
+
loginInProgress: false,
|
|
963
|
+
state: "error",
|
|
964
|
+
message: err instanceof Error ? err.message : String(err),
|
|
965
|
+
errorCode: "auth_api_error",
|
|
966
|
+
});
|
|
967
|
+
});
|
|
968
|
+
break;
|
|
969
|
+
}
|
|
970
|
+
case "submit_claude_auth_code": {
|
|
971
|
+
const snapshot = this.claudeAuthLogin.submitCode(msg.code);
|
|
972
|
+
this.send(ws, {
|
|
973
|
+
type: "claude_auth_status",
|
|
974
|
+
...snapshot,
|
|
975
|
+
});
|
|
976
|
+
break;
|
|
977
|
+
}
|
|
978
|
+
case "cancel_claude_auth_login": {
|
|
979
|
+
const snapshot = this.claudeAuthLogin.cancel();
|
|
980
|
+
this.send(ws, {
|
|
981
|
+
type: "claude_auth_status",
|
|
982
|
+
...snapshot,
|
|
983
|
+
});
|
|
984
|
+
break;
|
|
985
|
+
}
|
|
821
986
|
case "list_recent_sessions": {
|
|
822
987
|
const requestId = ++this.recentSessionsRequestId;
|
|
823
988
|
getAllRecentSessions({
|
|
@@ -919,6 +1084,7 @@ export class BridgeWebSocketServer {
|
|
|
919
1084
|
provider: "codex",
|
|
920
1085
|
projectPath: effectiveProjectPath,
|
|
921
1086
|
...(createdSession?.codexSettings?.sandboxMode ? { sandboxMode: sandboxModeToExternal(createdSession.codexSettings.sandboxMode) } : {}),
|
|
1087
|
+
...(msg.permissionMode ? { permissionMode: msg.permissionMode } : {}),
|
|
922
1088
|
...(createdSession?.worktreePath ? {
|
|
923
1089
|
worktreePath: createdSession.worktreePath,
|
|
924
1090
|
worktreeBranch: createdSession.worktreeBranch,
|
|
@@ -1275,6 +1441,7 @@ export class BridgeWebSocketServer {
|
|
|
1275
1441
|
provider: newSession?.provider ?? "claude",
|
|
1276
1442
|
projectPath: newSession?.projectPath ?? "",
|
|
1277
1443
|
...(rewindPermMode ? { permissionMode: rewindPermMode } : {}),
|
|
1444
|
+
sourceSessionId: msg.sessionId,
|
|
1278
1445
|
});
|
|
1279
1446
|
this.sendSessionList(ws);
|
|
1280
1447
|
});
|
|
@@ -1302,6 +1469,7 @@ export class BridgeWebSocketServer {
|
|
|
1302
1469
|
provider: newSession?.provider ?? "claude",
|
|
1303
1470
|
projectPath: newSession?.projectPath ?? "",
|
|
1304
1471
|
...(rewindPermMode2 ? { permissionMode: rewindPermMode2 } : {}),
|
|
1472
|
+
sourceSessionId: msg.sessionId,
|
|
1305
1473
|
});
|
|
1306
1474
|
this.sendSessionList(ws);
|
|
1307
1475
|
});
|