Skip to content

Commit 10d0b0d

Browse files
2234839claude
andcommitted
feat: persist instance ID via sessionStorage across page refreshes
- Use sessionStorage to reuse instance ID within the same tab - Prevents instance list pollution from frequent page refreshes - Applied to inject.ts, bridge.ts, and userscript.ts Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 00ba152 commit 10d0b0d

4 files changed

Lines changed: 8 additions & 5 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vite-plugin-pilot",
3-
"version": "0.8.4",
3+
"version": "0.9.0",
44
"description": "AI Agent 驾驶浏览器的导航工具 — 打通 浏览器运行时 → Dev Server → 源码 → IDE 的完整链路",
55
"type": "module",
66
"bin": {

src/client/inject.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,9 @@ export function buildInjectScript(options: ResolvedPilotOptions, pilotVersion?:
105105

106106
return `<script>
107107
var __PILOT_VERSION__ = "${version}";
108-
/** 生成短实例 ID(8 位随机 hex),每个 tab 独立标识,避免同 URL 多 tab 冲突 */
109-
var __pilot_instanceId = Math.random().toString(16).slice(2, 10);
108+
/** 实例 ID 持久化到 sessionStorage,同一 tab 刷新后复用(不同 tab 天然隔离) */
109+
var __pilot_instanceId = sessionStorage.getItem('__pilot_instanceId') || Math.random().toString(16).slice(2, 10);
110+
sessionStorage.setItem('__pilot_instanceId', __pilot_instanceId);
110111
(function() {
111112
${body}
112113
})();

src/server/bridge.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ export function buildBridgeScript(options: ResolvedPilotOptions, pilotVersion: s
6868
window.__PILOT_SERVER_ORIGIN__ = "${serverOrigin}";
6969
/** console: 前缀的 instance ID,与 Vite 注入的 tab 区分 */
7070
var __PILOT_VERSION__ = "${pilotVersion}";
71-
window.__pilot_instanceId = "console:" + Math.random().toString(16).slice(2, 10);
71+
window.__pilot_instanceId = sessionStorage.getItem('__pilot_instanceId') || ("console:" + Math.random().toString(16).slice(2, 10));
72+
sessionStorage.setItem('__pilot_instanceId', window.__pilot_instanceId);
7273
7374
console.log("[Pilot] Console Bridge starting... (instance: " + window.__pilot_instanceId + ")");
7475
console.log("[Pilot] Connecting to " + window.__PILOT_SERVER_ORIGIN__);

src/server/userscript.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,8 @@ export function buildUserscript(options: ResolvedPilotOptions, pilotVersion: str
373373
/** dev server 地址,按需修改 */
374374
var SERVER_ORIGIN = "${serverOrigin}";
375375
window.__PILOT_SERVER_ORIGIN__ = SERVER_ORIGIN;
376-
window.__pilot_instanceId = "userscript:" + Math.random().toString(16).slice(2, 10);
376+
window.__pilot_instanceId = sessionStorage.getItem('__pilot_instanceId') || ("userscript:" + Math.random().toString(16).slice(2, 10));
377+
sessionStorage.setItem('__pilot_instanceId', window.__pilot_instanceId);
377378
var __PILOT_VERSION__ = "${pilotVersion}";
378379
/** ==================== 配置结束 ==================== */
379380

0 commit comments

Comments
 (0)