工作区导航与会话管理
本文介绍仓库中与工作区实体(workspace entities)及 agent/session API 相关的导航与会话管理边界。当前可见源材料只确认了目录级职责,尚未提供 web-client 的具体实现文件,因此本文严格限定为已验证的架构定位;具体组件、路由、状态结构和持久化流程需要在对应实现源码可访问后补充。
Purpose and Scope
本页覆盖以下已由仓库结构确认的内容:
packages/工作区包的组织方式;core/与 agent/session API 的架构关系;workspace/作为工作区实体所在领域边界;storage/非会话存储与会话管理之间的边界;feedback/人工反馈能力作为相邻领域。
本页不臆测未读源码中的 UI 组件、导航路由、会话切换算法、缓存策略、后端端点、数据库 schema 或并发语义。若需要这些细节,应先补充读取 web-client 实现、workspace/session 类型定义及其调用方。对于 CLI、Cordis 插件装配和部署细节,请参阅对应的 CLI 或运行时文档,而不要将其并入本页。
Overview
仓库指导文件将 packages/ 描述为 @deepseek-ai/dsh-<pkg> 形式的 workspace package,且将 core/ 标注为 agent/session API。相同的目录说明还把 workspace/ 定义为 workspace entities,把 storage/ 定义为 non-session storage,并把 feedback/ 定义为 human feedback。
因此,工作区导航与会话管理的可验证边界是:工作区实体属于 workspace 领域;会话 API 属于 core 领域;非会话数据存储属于 storage 领域;人工反馈是相邻的反馈领域。这个划分有助于避免把导航 UI、会话生命周期和通用存储混成一个不可维护的模块:导航应消费工作区和会话抽象,而不应重新定义它们的持久化职责。
Architecture
图中的实线只表达目录说明中可以确认的领域关系:core/ 提供 agent/session API,workspace/ 提供工作区实体,storage/ 提供非会话存储。feedback/ 被标记为相邻的人类反馈能力;由于当前材料没有调用关系,图中使用虚线表示边界关联而非已验证的直接依赖。
目录与职责边界
packages/:工作区包的容器
仓库把 packages/ 定义为 workspace packages 的位置,并采用 @deepseek-ai/dsh-<pkg> 命名约定。对本主题而言,这意味着导航与会话功能应当被理解为包级能力,而不是假定它们全部集中在单个前端文件中。
当前源材料没有列出具体 package 名称,也没有提供 package 的 package.json、入口模块或构建导出,因此无法可靠地给出导入路径、公开导出名或安装方式。
core/:agent/session API 所在层
core/ 被明确描述为 agent/session API。这个事实支持以下工程判断:会话管理的公共契约应优先在 core 层查找,工作区导航不应自行复制 session API 的生命周期逻辑。
但源材料没有提供 API 签名,所以不能安全记录方法参数、返回类型、异常或事件名称。实现细节未在已读取源材料中找到。
workspace/:工作区实体边界
workspace/ 被定义为 workspace entities。对导航场景来说,这通常是工作区列表、当前工作区标识和工作区关联数据的领域归属;不过“列表如何加载”“当前项如何选择”以及“实体是否持久化”都没有在当前源材料中出现,因此不能将这些行为作为已实现事实记录。
storage/:非会话存储
storage/ 的目录说明明确限定为 non-session storage。这个限定很重要:它表明一般存储和 session API 在概念上是分开的。文档不能据此推导具体数据库、缓存、键名或一致性策略;这些信息需要存储实现或配置文件作为证据。
feedback/:相邻能力
feedback/ 被标记为 human feedback。它与会话上下文可能存在产品层关联,但当前材料没有证明它参与工作区导航或 session 生命周期。因此本页只保留边界说明,不把反馈提交流程纳入工作区导航实现。
Core Flow
以下流程图表达的是已确认的模块边界,而不是一个未经源码证明的运行时请求序列。它用于说明后续补充源码时应沿哪些边界追踪:先从导航入口定位 workspace entity,再查找 core session API,最后区分 non-session storage 与反馈能力。
Source: AGENTS.md
目前无法从源材料确认上述节点之间是否存在具体函数调用、HTTP 请求或异步事件;因此不应把该图当作已经验证的时序图。
Usage Examples
当前可用的代码示例
未找到可安全摘录的工作区导航或会话管理代码示例。源工具预算耗尽前只确认了目录说明,未读取相关 TypeScript/React 实现;根据文档约束,不能编造 API 调用、组件用法或配置片段。
Configuration Options
当前源材料没有发现与工作区导航或会话管理直接相关的配置键、默认值或环境变量。实现细节未在已读取源材料中找到。
| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| 未确认 | — | — | 尚未读取对应 web-client 或 core 配置源码,不能推断配置项。 |
API Reference
core/ agent/session API
当前只能确认 core/ 的目录职责为 agent/session API,不能确认具体方法签名。
- 参数: 未在已读取源材料中找到。
- 返回值: 未在已读取源材料中找到。
- 异常: 未在已读取源材料中找到。
Failure Modes, Edge Cases, and Concurrency
当前材料没有实现级错误处理、会话过期、工作区不存在、重复导航、并发切换或存储一致性信息。尤其不能根据目录名推断:
- session 是否可并发复用;
- 工作区切换是否取消前一个请求;
- 导航状态是否持久化;
- 存储失败是否重试;
- feedback 是否依赖活跃 session。
这些问题应在读取实际入口、状态管理器、session service 和 storage adapter 后补充。
Performance and Operational Notes
仓库指导文件提到 workspace package 的构建和开发流程,但已读取证据不足以判断工作区导航的运行时性能、请求数量、缓存命中率或扩展方式。当前唯一可靠的操作建议是保持领域边界:不要把非会话存储职责复制到 core session API,也不要在导航层重复实现 workspace entity 模型。
Extension Points
已验证的潜在扩展边界是目录级的:新增工作区实体能力应归入 workspace/;新增 agent/session 契约应归入 core/;非会话数据能力应归入 storage/;人工反馈功能应归入 feedback/。具体接口、注册机制和依赖注入方式未在源材料中找到,不能进一步指定扩展步骤。
Tests
当前源材料没有读取测试文件,也没有足够证据说明工作区导航或 session 管理已有何种测试覆盖。测试保证、边界用例和回归策略均待实现源码与测试目录可访问后补充。