diff --git a/apps/apsal-studio/electron/main.mjs b/apps/apsal-studio/electron/main.mjs index f4c9a9d..3f01878 100644 --- a/apps/apsal-studio/electron/main.mjs +++ b/apps/apsal-studio/electron/main.mjs @@ -334,7 +334,10 @@ async function callProtocol(message = {}) { if (!RENDERER_METHODS.has(method)) throw new Error(`Studio renderer is not allowed to call APSAL method: ${method}`) if (!currentProjectRoot && !PROJECT_OPTIONAL_METHODS.has(method)) throw new Error('请先新建或打开 APSAL 项目目录') const params = { ...(message.params || {}), project_root: currentProjectRoot || app.getPath('userData') } - const result = await getSidecar().call(method, params) + const sidecar = getSidecar() + const wasRunning = sidecar.status().running + const result = await sidecar.call(method, params) + if (!wasRunning) publish('apsal-protocol:status', await protocolStatus()) if (PROTOCOL_MUTATIONS.has(method) || method === 'studio.view.save') { publish('apsal-protocol:change', { method, result }) if (result?.snapshot) publish('apsal-protocol:snapshot', result.snapshot) diff --git a/apps/apsal-studio/index.html b/apps/apsal-studio/index.html index b78c589..03f26e1 100644 --- a/apps/apsal-studio/index.html +++ b/apps/apsal-studio/index.html @@ -3,7 +3,7 @@ - + APSAL Studio diff --git a/apps/apsal-studio/src/App.tsx b/apps/apsal-studio/src/App.tsx index 0cb685a..3917234 100644 --- a/apps/apsal-studio/src/App.tsx +++ b/apps/apsal-studio/src/App.tsx @@ -397,15 +397,15 @@ function CodexLinkPanel() {
CODEX 联动 -

{linkStatus?.connected ? 'Codex 已连接' : '等待 Codex 启动'}

+

{linkStatus?.connected ? 'Codex 已连接' : '等待 Codex 选择项目'}

由插件启动
- {linkStatus?.connected ? '正在联动当前 APSAL 项目' : '单独打开 Studio 不会连接 Codex'} + {linkStatus?.connected ? '正在联动当前 APSAL 项目' : '请从 Codex 发起当前项目联动'}
-

{linkStatus?.connected ? 'Codex 插件正通过本机认证桥访问当前项目。它不能代理任意路径,也不能绕过协议 revision。' : '请在 Codex 中打开 APSAL 插件并开始创作;选择“打开并联动 APSAL Studio”后,插件会自动打开并绑定此界面。'}

+

{linkStatus?.connected ? 'Codex 插件正通过本机认证桥访问当前项目。它不能代理任意路径,也不能绕过协议 revision。' : '请在 Codex 中发送“连接我刚上传的 APSAL 项目并继续分析”。插件会选择已有项目、启动本机认证桥并绑定此界面,不会额外创建主题。'}

绑定项目{snapshot?.project.project_id ?? '未选择'}
{studioUpdates.length ? `${studioUpdates.length} 条已发往 Codex` : '双方已同步'} @@ -949,7 +949,7 @@ export function App() { - {screen === 'library' ? setScreen('studio')} /> : <> + {screen === 'library' ? setScreen('studio')} linkStatus={linkStatus} /> : <> {snapshot?.read_only &&
只读模式:{snapshot.compatibility_error || '协议版本不兼容,请预览并复制迁移到 APSAL 0.16。'}{migrationError && {migrationError}}
}