继续收敛工作台清单事件错误

保留清单版本读取、重读与事件订阅正文

避免工作台清单失效时只写日志静默回退
This commit is contained in:
kdletters
2026-10-06 00:18:17 +08:00
parent c23e2c4a92
commit 72053b9dc0
2 changed files with 10 additions and 4 deletions
@@ -16,6 +16,7 @@ import {
useWindowChrome,
WINDOW_CHROME_DEFAULT_TITLE,
} from '../../components/windowChromeContext';
import { visibleClientErrorMessage } from '../../services/errorReporting';
import {
canSubscribeTauriEvents,
subscribeTauriEvent,
@@ -544,7 +545,8 @@ export function WorkspaceLauncherShell({
source: 'chat',
});
})
.catch(() => {
.catch((error) => {
setStatus(`清单版本读取失败:${visibleClientErrorMessage(error)}`);
if (activeProjectContextRef.current?.projectRevision === null) {
setCurrentProjectContext((active) =>
active?.projectPath === sourceProjectPath
@@ -591,7 +593,9 @@ export function WorkspaceLauncherShell({
applyManifestSnapshot({ ...fresh, source: 'asset-event' });
}
} catch (error) {
console.warn('[manifest-merge] 清单失效事件的重读失败', error);
const message = `清单失效事件重读失败:${visibleClientErrorMessage(error)}`;
console.warn('[manifest-merge] 清单失效事件的重读失败', message);
setStatus(message);
}
},
[applyManifestSnapshot],
@@ -629,8 +633,9 @@ export function WorkspaceLauncherShell({
}
unsubscribe = release;
})
.catch(() => {
// 事件订阅不可用时,清单仍在素材命令与回合结束后刷新。
.catch((error) => {
// 事件订阅不可用时,清单仍在素材命令与回合结束后刷新,但不能隐藏事件桥原因。
setStatus(`清单失效事件订阅失败:${visibleClientErrorMessage(error)}`);
});
return () => {
disposed = true;
@@ -82,3 +82,4 @@ DirectProject 回合失败在确认不是客户端内部不可归类故障时,
- 专业 Agent 历史回读与项目清单同步的后台 Promise 失败原先只返回 `failed` 或静默结束;现把具体读取/同步正文写入项目聊天错误出口。
- Direct 交付计划/合同 JSON 解析、策划工作区目录枚举与文本搜索还有 `map_err(|_|)` / `Err(_)` 丢细节;现保留 serde、目录和文件读取正文,安全路径边界仍单独拒绝。
- 错误报告对话框读取最新错误事件或诊断日志失败时原先只显示“暂不可用/使用快照”;现把读取 IPC/文件正文附在状态提示中,快照回退行为保持不变。
- WorkspaceLauncher 的清单版本读取、失效事件重读和事件订阅失败原先只写日志或静默回退;现把安全正文送入启动器状态提示,仍保留已有回退刷新路径。