mirror of
https://github.com/aiclientproxy/proxycast.git
synced 2026-09-24 23:10:56 +08:00
## 根本原因 workspace_create 只写 DB 不建目录,导致任何主题(小说/文章/海报等) 切换到目录已被删除/外置磁盘未挂载的 workspace 后,发送消息必然报错, 且旧提示语引导用户去不存在的"工作区设置"页面。 ## 4 层防护 **L1 创建时(workspace_create)** - 建 workspace 前调 ensure_workspace_root_ready,目录不存在则自动创建 **L2 启动/切换时(useWorkspace + useProjects)** - refresh/setDefault/projects_refresh 时调 workspace_ensure_ready - 静默自动修复已知 workspace 的缺失目录 **L3 发消息前(aster_agent_cmd)** - aster_session_create + aster_agent_chat_stream 各自调 ensure_workspace_root_ready - 能自动创建则创建并继续,无法创建则返回语义化错误 **L4 主动检查 + 兜底 UI(AgentChatPage + CrashRecoveryPanel)** - 打开任意项目时主动调 workspace_ensure_ready,失败时显示 amber banner - 发送失败也显示 amber banner,"重新选择目录"按钮处理两种场景 - CrashRecoveryPanel 新增 workspace-path-missing 场景识别与蓝色修复按钮 ## 新增功能 - WorkspaceUpdate.root_path:支持通过 API 修改 workspace 根目录 - workspace_ensure_ready / workspace_ensure_default_ready:Tauri 健康检查命令 - workspace_health_service.rs:独立服务模块,含详细诊断信息 - AppCrashBoundary / CrashRecoveryPanel:通用 React 错误边界与恢复面板 - workspaceHealthTelemetry.ts:localStorage 修复历史记录(最多 50 条) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
src
架构说明
Tauri 后端核心代码,处理系统级功能和 API 服务。 使用 Rust 实现高性能的代理、认证和流量监控逻辑。
文件索引
commands/- Tauri 命令处理(前端调用入口)config/- 配置管理(导入/导出/热重载)connect/- ProxyCast Connect 模块(中转商生态合作)converter/- 协议转换(OpenAI ↔ CW/Claude/Antigravity)credential/- 凭证池管理(负载均衡、健康检查)database/- 数据库层(SQLite + DAO)errors/- 错误类型定义(项目、人设、素材、模板、迁移错误)flow_monitor/- LLM 流量监控(拦截、存储、查询)injection/- 请求注入(系统提示词等)middleware/- HTTP 中间件models/- 数据模型定义plugin/- 插件系统(含声明式 UI 系统)processor/- 请求处理管道providers/- 各 Provider 的认证和 API 实现proxy/- HTTP 代理客户端resilience/- 弹性策略(重试、超时、故障转移)router/- 请求路由(模型映射、规则匹配)server/- HTTP 服务器(OpenAI/Claude 兼容 API)services/- 业务服务层streaming/- 流式响应处理telemetry/- 遥测和统计terminal/- 终端核心模块(PTY 管理、会话管理)tray/- 系统托盘websocket/- WebSocket 支持workspace/- Workspace 工作目录管理lib.rs- 库入口main.rs- 应用入口logger.rs- 日志配置server_utils.rs- 服务器工具函数
更新提醒
任何文件变更后,请更新此文档和相关的上级文档。