# 项目原则、功能与性能审计及修复复测 日期:2026-10-25。范围:当前工作区代码及最终 `dsh-plugin-composable-workforce-0.27.0.tgz`。完整原始证据位于 `artifacts/audit-2026-10-25/`。 ## 结论及交付状态 本轮完成原则审查、失败复现、根因分析、分批修复及复测。源代码测试 **696项:695通过、0失败、1项可选私有数据克隆测试跳过**。最终同一份实包通过 **15项官方安装生命周期检查、29项官方浏览器工作流检查**,类型检查与构建通过。 **不能标记为无保留合规成品。** 插件运行能力、专属文件和配置的完整清理已通过,但员工原生会话的专属持久记录无法通过当前官方接口删除,仍是 ADR-001 未满足项。当前归档是带此保留项的验收候选。没有直接修改宿主数据库、会话文件或增加宿主接口。 没有使用现有用户运行环境做卸载实验,没有清理既有用户项目和演示状态。安装默认内容不包含【演示】工作流、模拟运行或伪造记忆。已有 profile 保留用户定义;本次不将升级解释为覆盖用户员工与流程的授权。 ## 原则核查矩阵 | 原则 | 代码/证据与结果 | | --- | --- | | 不改 DSH 源码、构建物、内置插件和宿主 node_modules | 只读研究公开契约;300个实际官方包、6,397文件与 npm 固定版本归档逐字节一致;生命周期前后28,779宿主程序文件总哈希相同。通过。 | | 仅通过目标版本公开入口扩展 | 当前使用 Cordis、bundle/profile、公开服务、sidebar.panellist/main和原生对话插槽。历史源码 `.patch` 不进入包或执行链;`cordis.patch.yml` 是官方配置层。通过目标版本的接口与实包测试。 | | 可独立安装的主交付物 | 实际 `npm pack` 生成 `.tgz`,官方 `dsh plugin add/remove` 安装管理;接收者无需克隆、修补或构建 Harness。367个归档条目检查通过。 | | 默认内容完整可用 | 六岗位、软件开发团、10步软件工程和5步缺陷修复;岗位职责/边界、模型继承、必备/优先技能、工作方法、记忆和证据规范、协作与交付定义齐全。选用工作流即可建立六人真实项目名册;安装不执行任务。 | | 默认无演示工作流 | 新状态及实包 API 断言不含【演示】或 demo-preview;演示脚本、测试夹具、docs/demo均不进包。通过。 | | 职业人定义和项目归属隔离 | 独立实例、跨项目/员工记忆隔离、来源校验、导入导出、CAS、组织循环和过期写入测试通过;既有配置不静默重置。 | | 原生权限不被岗位、技能和记忆提升 | 原生预设继承、只读沙箱阻断、工具执行策略、来源会话和知识范围的测试通过;岗位引用是偏好,不是另设授权。 | | 有证据的知识与认知记忆 | A/B/C版本、原文定位、失效撤回、候选综合、知识预算和严格增量测试通过;默认仅预置工作方法,不伪造用户确认事实。 | | 人工验收与可恢复执行 | 真实负责人交付后才推进;退回、过期验收、取消、暂停、重试、重启不重放及历史保留测试通过。 | | 普通卸载及重装 | 官方remove后入口/API失效,原生宿主可运行且启动不自动装回;配置、知识、员工与成果重装逐字节恢复。通过。 | | 插件文件/配置级完整清理 | 正式包内purge调用官方remove,清理归属确认的配置、状态、知识与空专属父目录,保留其他数据;重复清理和链接/锁/未知文件保护测试通过。 | | 插件原生专属会话持久记录的完整清理 | **未满足。** 当前官方session-persistence无删除接口,原生工作单历史保留;不能宣称消除插件所有专属持久记录。 | | 兼容与许可声明 | 实测官方DSH 0.2.1-alpha.2、Node24.21.0、macOS arm64;所有39个运行时peer来源和版本核对通过,许可和对应Wiki源码随包。没有把其他OS/Node/DSH版本标为已实测。 | | 交付证据绑定实际包 | 校验和、包检查、生命周期和浏览器报告绑定同一SHA-256;本报告与独立版本验收记录列明保留项。 | 官方机制依据:[组合包与profile](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.2.1-alpha.2/docs/user/develop/basic/publish.zh.md)、[全局侧边面板](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.2.1-alpha.2/packages/client/ui-sidebar/README.zh.md)、[main/selectPanel](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.2.1-alpha.2/packages/client/ui-layout/README.zh.md)、[会话持久化已知限制](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.2.1-alpha.2/packages/session/session-persistence/README.zh.md)。最后一项同时由本地官方原版README和公开类型核对。 ## 问题、根因、计划及执行结果 | 优先级/问题 | 根因 | 实施及复测 | | --- | --- | --- | | P1 默认只有一个架构师,没有默认软件流程 | 六岗位技能预设只用于目录验证和手工配置,seed链路仍是早期单人状态;测试没有覆盖全新安装的默认业务内容 | 新增software-defaults,从同一岗位预设生成完整六岗、团队、两流程;保留原架构师稳定ID。新增回归在修复前失败,修复后与实包新状态断言通过。 | | P1 文件清理残留空专属目录 | 只删除knowledge/state.json根,没有移除空knowledge父目录,阻止上级目录清理 | 用rmdir逐层清理已空的已知目录,绝不递归删除未知内容。覆盖状态已无、重复执行、其他状态根和未知文件保留。通过。 | | P1 知识读取与状态事件出现长队列 | 每次状态修改扫描全库,反复克隆全部状态和重建作用域;停用库也等待全局pending。六岗放大了既有成本 | 按revision缓存内部只读快照,变更立即失效;合并事件、按plan和检查点跳过未变空间;显式flush/upload/remove仍查repository;停用库直接返回。原超时路径通过29项真实浏览器检查,权限/取消/失效/增量测试通过。 | | P1 完全清理专属会话持久记录缺少能力 | 官方服务明确无持久删除API,删除底层文件会违反不改宿主/公开接口边界,且会威胁用户历史 | 已在安装说明与验收记录明确列为未满足项。等待上游归属删除能力;本轮没有以隐藏记录或停止会话冒充持久删除。 | | P2 默认官方验证目录依赖不全 | 四个peer不存在,Node向上解析到外部开发依赖,旧默认路径与UI基线不统一 | 原有归属检查正确拒绝,未放宽检查;统一使用完整官方npm目录,所有peer物理归属和版本通过。 | | P2 项目同步随所有历史放大 | 每个原生Workspace为了查询一个project都调用全量snapshot | 增加本插件store.listProjects的隔离副本读法,Host一次建立Map;不改宿主接口,不绕过锁与CAS。隔离与性能测试通过。 | | P2 生命周期文件稳定采样误判 | 连续800ms无写入不是pending归档队列排空的证明,停机的最后归档补入新配置 | 先通过已有公开知识读取路由等待队列,再采样文件。保留停机前后和重装逐文件哈希完全一致断言。最终实包通过。 | | P2 包内原则链接失效 | README引用AGENTS/ADR-001,但files白名单漏掉两者 | 两文档随包,包检查和生命周期断言通过。 | | P2 缺少真实延迟测量 | 原有benchmark主要验证证据覆盖、预算及引用,没有提供延迟、并发或规模测量 | 增加隔离性能脚本与真实认证API测量,记录原始样本、分位数、负载、版本和源哈希。 | | P2 大状态整文件持久化仍随容量增长 | 每次事务需要读/验证/复制/序列化整个JSON,并执行持久同步;这是现有本地事务边界 | 保留一致性和落盘保证;本轮移除冗余读和扫描。后续存储分区/事务迁移列为独立计划,不用取消fsync或缓存脏状态来掩盖成本。 | 实际顺序为:保留既有工作 → 基线 → 新回归证明缺口 → 默认内容/清理修复 → 实包复测暴露知识队列 → 根因修复与专项测试 → 最终全量、同包生命周期、浏览器、独立性能复测。初始工作区已有大量修改,本轮未重置、混合提交或清理这些工作。 ## 功能验证证据 - 基线:689项,688通过、0失败、1可选私有克隆跳过;typecheck/build通过。完整官方宿主上旧0.26.1实包生命周期通过,但缺少默认内容与空父目录断言。 - 修复前新回归:默认六岗位、默认工作流和空目录清理共3项失败。修复后相关21项通过。 - 新知识回归:未变revision只读作用域不重复复制、关闭状态立即失效、停用库不等待无关归档、无关改名不重新ingest、显式flush仍观察外部授权资料;3项通过。 - 最终 `npm test`:696项,695通过、0失败、1跳过,157.99秒。跳过的是会读取真实私有状态的可选克隆测试;没有绕过生产失败断言。 - 官方实包生命周期:15项,真实tgz安装;鉴权、模型和能力DTO、技能、PDF/DOCX依赖、知识Wiki、业务状态、普通卸载、原生宿主、重装、完整文件清理及宿主哈希不变。 - 官方浏览器:29项,原生对话插槽、工作流无/继承/覆盖、团队安装、负责人模型/技能、交付验收、返工、活动锁、布局、历史会话交接和停用项目知识库。模型行为使用临时测试插件的离线provider,运行的是实际官方Agent/UI,生产包没有这个fixture。 - 核对归档367条目:不含宿主补丁、宿主构建物、本机路径依赖、测试夹具、用户数据、密钥、node_modules树、日志或source map;包内src与当前源文件逐字节匹配。 ## 性能复测 环境:Apple M4、10逻辑CPU,macOS arm64,Node24.21.0。最终规模测试在本轮其他功能/浏览器/安装任务结束后单独运行;每组3次预热。性能API在临时官方宿主上测量,容量脚本不调用模型。 | 场景 | 样本/负载 | P50 | P95 | | --- | --- | ---: | ---: | | 真实认证state API顺序请求 | 30次,约72.5KB状态 | 1.32ms | 2.20ms | | 同API,8并发 | 80次,10批 | 6.63ms | 7.48ms | | 全量snapshot,10员工 | 30次,152KB状态 | 0.21ms | 0.25ms | | 全量snapshot,100员工 | 30次,947KB状态 | 1.22ms | 1.35ms | | 全量snapshot,1000员工 | 30次,8.90MB状态 | 12.53ms | 14.56ms | | 持久化修改,10员工 | 12次,含整文件事务及落盘 | 6.07ms | 12.89ms | | 持久化修改,100员工 | 12次 | 11.71ms | 14.00ms | | 持久化修改,1000员工 | 12次 | 77.69ms | 83.04ms | | 有界知识包,1000文档 | 20次,约939KB输入 | 0.85ms | 1.08ms | | 语义布局,1000节点/2000边 | 20次,纯布局计算 | 1.44ms | 1.71ms | | 语义布局,5000节点/10000边 | 20次,纯布局计算 | 8.36ms | 9.49ms | 8并发API在该小样本中的吞吐约1062次/秒;这是本机回环的固定小状态测量,不能外推真实LLM并发或生产容量。1000员工时仅查询项目目录的P95约0.002ms,避免了为查询project而复制8.90MB状态。 首次安装CLI约37.3秒,重装约11.2秒(包含包管理及其缓存/网络行为);带插件首次启动到API可用约2.03秒,重装后约1.26秒。这与“后台知识/模型整理全部完成”不同。此前并行负载下也测得更高值,保留原始探索报告,不能用不同机器负载的轮次宣称严格加速倍数。 容量脚本进程峰值RSS约631MiB,包含合成数据构造及大量快照分配,不代表驻留服务内存或泄漏结论。12/20/30次采样用于本地诊断,没有建立生产SLO、长时间soak、真实供应商延迟或WebGL帧率结论。 ## 后续修复计划与验收条件 1. **P1,上游会话归属删除能力。** 准备明确的API需求:只删除有本插件归属证据、无共享引用的原生专属会话;保留用户原生聊天和交付成果。等受支持官方版本具备能力后扩展purge,在真实员工执行并持久化后测试卸载,确认专属记录消失且共享记录哈希不变。在此之前保留未满足标记,不发布为无保留合规成品。本轮没有向外提交issue或修改宿主。 2. **P2,容量目标与事务存储。** 先确定需要支持的员工、项目、运行历史和成果体积,再用相同数据测试分页DTO、历史分区/SQLite等方案。写ADR,设计旧JSON可回滚迁移、备份、并发锁、断电恢复及完整卸载归属;与旧接口并行验证后切换。验收要求是相同负载下的延迟/内存改善,同时保持CAS、历史、隔离和恢复测试通过。本轮不将未经迁移验证的存储替换塞进修复。 3. **P2,真实模型及长期性能。** 按实际部署的provider/model和允许预算,为六岗位执行代表任务,单独评估质量、token、延迟、超时、取消和权限;进行长时间队列与内存稳态测试。当前离线测试不能替代模型质量与供应商稳定性验收。 4. **P2,持续交付门禁。** 将本轮新默认内容断言、包白名单、完整官方归属检查、同包哈希生命周期及UI检查作为每次发布必要证据;扩展其他平台/Node/DSH版本前逐一验证,不能只放宽版本号。 ## 复现与证据入口 ```sh npm run typecheck npm run build npm test npm pack --pack-destination artifacts WORKFORCE_LIFECYCLE_REPORT_DIR=artifacts/audit-2026-10-25/accepted-lifecycle npm run test:lifecycle -- artifacts/dsh-plugin-composable-workforce-0.27.0.tgz WORKFORCE_UI_ARCHIVE="$PWD/artifacts/dsh-plugin-composable-workforce-0.27.0.tgz" node tests/ui/conversation-workflow-official.e2e.mjs WORKFORCE_PERFORMANCE_REPORT_DIR=artifacts/audit-2026-10-25/accepted-performance npm run test:performance ``` 重现生命周期需已安装的官方npm发行版;默认完整验证目录或显式`DSH_INSTALLATION_MANIFEST`。不要对现有用户profile执行purge。源测试和构建仅用于开发复现,接收者只需官方DSH和tgz。 - 最终包:`artifacts/dsh-plugin-composable-workforce-0.27.0.tgz`及相邻`.sha256`。 - 同包验收:`integration/verification-0.27.0.md`。 - 原始证据:`final-tests.log`、`accepted-lifecycle/report.json`、`accepted-ui-conversation/report.json`、`accepted-performance/report.json`、`package-audit.json`、`official-provenance.json`。 - 计划、阶段发现和错误记录:根目录`task_plan.md`、`findings.md`、`progress.md`。