Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs/项目文档/01-总览/02-运行与开发.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ npm run test:web-core

## 5. 当前已知注意事项

- 仓库根目录下若存在 `.review/` 工作树,会污染 Vitest 的测试发现范围
- 当前 `vitest.config.ts` 已把前端测试发现范围限制在 `src/`,并显式排除 `.review/`
- 如果后续新增前端测试目录,记得同步更新 Vitest 配置
- `tauri_commands.rs` 仍然较大,修改前应优先确认是否可以在独立模块中完成
- `.kiro/` 中有大量历史资料,仅供追溯,不应直接当作当前设计基线
13 changes: 13 additions & 0 deletions docs/项目文档/02-架构/02-NoName-代理系统.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,19 @@

旧版协作文档把多个已落地模块标成“未开始”,已不适合作为当前任务基线。

### 5.4 记忆沉淀顺序需要统一复用

`NoNameMemoryManager` 现在已经形成章节收束的最小顺序约定:

1. 先基于当前章节 events 和尚未归档的 notes 做 chapter compaction
2. 再执行章节 note 整理,把 `resolved` notes 归档
3. 最后把 chapter summary 作为新的 narrative note 写回

这样可以同时保证两件事:

- 已解决但仍有价值的 note 会进入本次章节摘要
- 新写回的 chapter summary 不会污染同轮 note review,也不会在后续章节压缩里被再次回吃

## 6. 当前结论

`NoName` 已经完成 `V1` 骨架并进入 reviewed apply runtime 收口阶段。
Expand Down
5 changes: 3 additions & 2 deletions docs/项目文档/03-规划/01-现状评估.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,12 @@

### 3.4 验证环境污染

本地若保留 `.review/` 工作树,会让 Vitest 把非当前仓库测试也一起执行,影响结果可信度。
这一风险已经完成第一轮收口:Vitest 的前端测试发现范围已收紧到 `src/`,并显式排除了 `.review/`。
当前仍需注意的是:如果后续新增前端测试目录,必须同步更新 `vitest.config.ts`,否则测试发现范围会再次漂移。

### 3.5 记忆检索与 notes 串联仍未完成

检索排序解释性、notes 生命周期和 notes/retrieval 串联第一轮已经具备;note-aware retrieval 已接入 context builder,使 active notes 扩展出的召回结果能够进入角色上下文包。当前剩余缺口主要在 structured notes 与 compaction、章节收束及更高层 runtime 编排的贯通,后续需要继续验证 notes 如何参与长期记忆沉淀,而不是只参与单次上下文构建。
检索排序解释性、notes 生命周期和 notes/retrieval 串联第一轮已经具备;note-aware retrieval 已接入 context builder,使 active notes 扩展出的召回结果能够进入角色上下文包。章节 compaction 输入的第一轮收口也已完成:当前章节 episodic events、非 `archived` notes 会进入章节压缩,而旧的 `compact-chapter-*` summary 已被排除,避免重复压缩时发生 summary 回吃。章节收束顺序也已在 `NoNameMemoryManager` 固定为“先 compact,再 archive resolved notes,最后写回 chapter summary”,避免 resolved note 丢出摘要,也避免新 summary 污染同轮 note review。当前剩余缺口主要在更高层 runtime 编排的贯通,后续需要继续验证 notes 如何稳定参与长期记忆沉淀,而不是只参与单次上下文构建。

### 3.6 下一层安全输出仍不能扩大权限边界

Expand Down
12 changes: 11 additions & 1 deletion docs/项目文档/03-规划/02-后续路线图.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,13 @@
- 清理本地工作树或在测试配置中显式排除
- 在测试文档中补充说明

当前状态:

- 第一轮已完成
- `vitest.config.ts` 已将前端测试发现范围限制在 `src/`,并显式排除 `.review/`
- `npm run test:web-core` 与前端 NoName 定向测试已恢复只命中当前仓库测试文件
- 测试文档与运行文档已补充这一基线说明

### 任务 2:重建正式文档基线

- 目标:用当前中文文档替代旧版漂移文档
Expand Down Expand Up @@ -92,7 +99,9 @@
- 章节收束时 resolved 自动归档的既有行为已保留
- 与 retrieval 的第一轮串联已完成:active notes 可作为检索上下文桥,archived notes 不参与扩展召回
- 与 context builder 的串联已完成第一轮:角色上下文构建会消费 note-aware retrieval,并在 `source_stats` 中暴露 `noteContext`
- 与 compaction、章节收束和更高层 runtime 编排的更深层串联尚未完成,后续继续推进
- 与 compaction 的第一轮串联已完成:`NoNameMemoryManager` 已集中构造章节压缩输入,当前章节 events 与非归档、非 summary notes 会进入 compaction,旧的 chapter summary 不会被重复压缩
- 与章节收束顺序的第一轮串联已完成:`close_chapter_memory` 已固定“先 compact,再 organize/archive resolved notes,最后 upsert summary”
- 与更高层 runtime 编排的更深层串联尚未完成,后续继续推进

### 任务 6.5:优化角色上下文差异度

Expand Down Expand Up @@ -161,3 +170,4 @@
- 评估下一层受控输出是否具备试点条件

更细的分工、交接目标、红线与文档要求,见 [未来两周开发排期](./04-未来两周开发排期.md)。
基于最新项目评估收敛出的执行卡片,见 [近期开发任务卡片](./06-近期开发任务卡片.md)。
1 change: 1 addition & 0 deletions docs/项目文档/03-规划/03-协作任务清单.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,3 +136,4 @@
- 不允许为了赶进度直接扩大 `NoName` 权限边界

更细的两周内并行安排,见 [未来两周开发排期](./04-未来两周开发排期.md)。
如果需要基于最新评估直接开工,而不是沿用旧标题拆分,优先看 [近期开发任务卡片](./06-近期开发任务卡片.md)。
6 changes: 5 additions & 1 deletion docs/项目文档/03-规划/04-未来两周开发排期.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
# 未来两周开发排期

更新时间:2026-04-20
更新时间:2026-04-24
适用范围:当前 `main` 分支
排期目标:在不扩大 `NoName` 权限边界的前提下,完成主链收口、协作提效与文档稳定化

补充说明:基于 2026-04-24 最新项目评估收敛出的直接执行项,见 [近期开发任务卡片](./06-近期开发任务卡片.md)。

额外更新:卡片 `C1`、`C2`、`C3` 已完成第一轮收口;Vitest 已限制在 `src/` 下发现测试并显式排除 `.review/`,章节压缩输入已收口为“当前章节事件 + 非归档、非 summary notes”,章节收束顺序也已固定为“先 compact,再 archive,最后 upsert summary”。

## 1. 排期原则

本排期按两条线并行推进:
Expand Down
230 changes: 230 additions & 0 deletions docs/项目文档/03-规划/06-近期开发任务卡片.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,230 @@
# 近期开发任务卡片

更新时间:2026-04-24
适用范围:当前 `main` 分支
用途:把最新项目评估收敛成可直接执行、可交接、可验证的任务卡片

## 1. 使用规则

- 本文件是当前阶段的执行基线,优先级高于旧卡片标题和口头同步。
- 任务状态变化后,至少同步更新:
- [现状评估](./01-现状评估.md)
- [后续路线图](./02-后续路线图.md)
- [未来两周开发排期](./04-未来两周开发排期.md)
- 如果任务被拆分,必须补充“本轮只做哪一层、下一层留给谁”。
- 如果任务直接影响协作者接线,也要同步更新 [协作任务清单](./03-协作任务清单.md)。

## 2. 任务卡片

### 卡片 C1:清理前端测试环境污染

- 优先级:
- `P0`
- 建议负责人:
- 主开发线
- 任务目标:
- 让 Vitest 不再把 `.review/`、额外 worktree 和临时副本当作当前仓库测试一起执行。
- 建议修改范围:
- `vitest.config.ts`
- `package.json`
- `docs/项目文档/04-质量与发布/01-测试与验证.md`
- 必要时最小更新 `docs/项目文档/01-总览/02-运行与开发.md`
- 交接目标:
- `npm run test:web-core` 和 `npm run test -- --run ...` 只命中当前仓库测试文件
- 测试输出不再出现 `.review/` 路径
- 文档明确说明本地 review worktree 的处理方式
- 禁止红线:
- 不直接删除现有 `.review/` 工作树
- 不重做整套前端测试框架
- 不为了“看起来干净”而降低现有测试覆盖
- 最小验证:
- `npm run test:web-core`
- `npm run test -- --run src/platform/webRuntime.test.ts src/stores/__tests__/gameStore.test.ts src/components/__tests__/AgentTracePanel.test.ts src/components/__tests__/NoNameDebugConsole.test.ts`
- 作用效果:
- 恢复前端测试结果的可信度
- 降低 review / 本地开发 / CI 三者之间的验证偏差
- 让后续 NoName UI 与 Web mock 调整更容易判断真假回归

当前状态:

- 第一轮已完成
- `vitest.config.ts` 已把前端测试发现范围收紧到 `src/`,并显式排除 `.review/`
- `npm run test:web-core` 已恢复只命中当前仓库测试
- NoName 前端定向测试已恢复只命中 `src/` 下的 4 个目标文件
- `docs/项目文档/04-质量与发布/01-测试与验证.md` 与 `docs/项目文档/01-总览/02-运行与开发.md` 已同步更新

### 卡片 C2:修复章节压缩对 compaction summary 的回吃风险

- 优先级:
- `P0`
- 建议负责人:
- 协作者优先,主开发线审合并
- 任务目标:
- 避免章节 compaction 在重复执行时,把之前写回的 compaction summary 再次当作 structured note 输入,形成递归沉淀。
- 建议修改范围:
- `src-tauri/src/noname_memory_manager.rs`
- 必要时最小改动 `src-tauri/src/noname_memory_compaction.rs`
- 对应测试文件
- 交接目标:
- `build_chapter_compaction_input` 能稳定排除不应重复沉淀的 summary 型 note
- 至少新增 1 个回归测试,覆盖“先写回 summary,再重复 compact 同章”的场景
- 保持 active / resolved / archived 的既有边界不被破坏
- 禁止红线:
- 不借机重写整套 compaction 结构
- 不在本任务里顺手接入 runtime 章节推进主链
- 不扩大 notes 的自动写回范围
- 最小验证:
- `cargo test noname_memory_manager -- --nocapture`
- `cargo test noname_memory_compaction -- --nocapture`
- 作用效果:
- 解除当前 chapter compaction 合并阻塞
- 防止章节摘要被重复压缩后逐轮失真
- 为后续 notes 与章节收束接线提供可靠输入边界

当前状态:

- 第一轮已完成
- `NoNameMemoryManager` 已新增 `build_chapter_compaction_input` 与 `compact_chapter_from_memory`,集中承接章节压缩输入构造
- 章节压缩输入现已只消费当前章节的 episodic events,以及非 `archived`、非 `compact-chapter-*` summary 的 narrative notes
- 已补充“按章节筛选 episodic memory”与“先写回 summary,再重复 compact 同章”两类回归测试
- 当前已确认旧的 chapter summary 不会在后续重复压缩时被再次回吃;后续重点转向 `C3`,明确章节收束的调用顺序

### 卡片 C3:明确章节收束时 notes 与 compaction 的调用顺序

- 优先级:
- `P1`
- 建议负责人:
- 主开发线
- 任务目标:
- 收敛“章节收束时先 compact、先 archive、还是先写回 summary”的顺序,避免 notes 生命周期和 compaction 结果打架。
- 建议修改范围:
- `src-tauri/src/noname_memory_manager.rs`
- 必要时最小改动 `src-tauri/src/noname_runtime.rs`
- `docs/项目文档/02-架构/02-NoName-代理系统.md`
- `docs/项目文档/03-规划/01-现状评估.md`
- `docs/项目文档/03-规划/02-后续路线图.md`
- 交接目标:
- 形成一条明确的章节收束顺序说明
- 如果落代码,只新增最小 orchestration helper,不直接扩张 runtime 复杂度
- 文档能说明“何时 compact、何时 archive、何时 upsert summary”
- 禁止红线:
- 不跳过人工 review / second guardrail 体系去碰最终剧情状态
- 不把大段章节收束逻辑重新堆回 `tauri_commands.rs`
- 不在没有顺序说明的情况下直接接入正式章节推进流程
- 最小验证:
- `cargo test noname_memory_manager -- --nocapture`
- `cargo test noname_runtime -- --nocapture`
- 文档自查,无失效引用
- 作用效果:
- 让 structured notes、compaction summary 和章节归档形成稳定顺序
- 降低后续章节推进接线时的重复设计成本
- 避免“功能都在,但调用顺序不稳定”导致的隐性回归

当前状态:

- 第一轮已完成
- `NoNameMemoryManager` 已新增 `close_chapter_memory`,把章节收束顺序固定为“先 compact,再 organize/archive resolved notes,最后 upsert chapter summary”
- 当前顺序约束已经补入回归测试:resolved notes 会进入本次章节摘要,但本次 note review 不会把新写回的 summary 误记为 carried-forward active note
- 本轮未把章节收束 helper 直接接入正式 runtime 章节推进流程;后续如要接线,应复用该 helper,而不是重新拼装顺序

### 卡片 C4:继续收口 `tauri_commands.rs` 中剩余的低风险 NoName 编排

- 优先级:
- `P1`
- 建议负责人:
- 主开发线
- 任务目标:
- 在 A2 已阶段性完成的基础上,继续把低风险、重复性的 NoName orchestration 从命令层往模块内收。
- 建议修改范围:
- `src-tauri/src/tauri_commands.rs`
- `src-tauri/src/noname_apply.rs`
- 视情况最小改动 `src-tauri/src/noname_runtime.rs`
- 交接目标:
- 再减少一段 reviewed apply 或 low-risk apply 的命令层重复壳逻辑
- 新下沉逻辑必须有直接单测,不只依赖命令集成测
- 命令层继续只保留参数接收、runtime/engine 调用和错误转换
- 禁止红线:
- 不新增新的人工 apply scope
- 不扩张 second guardrail 语义
- 不因为“顺手”把生成主链大改成一次性重构
- 最小验证:
- `cargo test noname_ -- --nocapture`
- 作用效果:
- 持续降低主链冲突概率
- 提高 reviewed apply 逻辑的可测试性和可维护性
- 为后续高风险接口评估保留清晰的受控边界

### 卡片 C5:建立 `webRuntime` 与后端字段漂移的守卫式验证

- 优先级:
- `P1`
- 建议负责人:
- 主开发线
- 任务目标:
- 让 Web mock 在 review / lifecycle / noteContext 等关键字段上持续贴近后端,而不是只做一次性同步。
- 建议修改范围:
- `src/platform/webRuntime.ts`
- `src/platform/webRuntime.test.ts`
- `src/types/game.ts`
- 必要时最小更新 `src/stores/gameStore.ts`
- 交接目标:
- 至少补一组针对 `controlledOutputReviews`、`policyForbiddenScopes`、`noteContext` 或 lifecycle 摘要的守卫测试
- 前端调试台能继续消费后端当前真实语义,不依赖过时 mock 假设
- 测试命令在排除 `.review/` 后结果清晰可读
- 禁止红线:
- 不重做整个 Web runtime
- 不自行发明后端尚不存在的新字段
- 不把 UI 需求反向写成后端约束
- 最小验证:
- `npm run test:web-core`
- `npm run test -- --run src/platform/webRuntime.test.ts src/stores/__tests__/gameStore.test.ts`
- 作用效果:
- 降低前后端语义漂移带来的伪回归
- 让 Trace 面板和调试台读到的 NoName 数据更可信
- 为后续安全输出草稿层探索保留稳定前端底座

### 卡片 C6:为“安全输出草稿层”补一层轻量探针,而不是直接落正式逻辑

- 优先级:
- `P2`
- 建议负责人:
- 主开发线
- 任务目标:
- 在不扩大权限边界的前提下,为下一层安全输出接口补一层文档化、可测试的草稿探针。
- 建议修改范围:
- `docs/项目文档/03-规划/05-下一层安全输出接口试点评估.md`
- 必要时只补最小 utility / test probe,不新增正式后端命令
- 交接目标:
- 形成一份更具体的草稿结构或状态机探针
- 能明确说明“drafted / reviewed / guardrailAllowed / manuallyApplied”各自证据来源
- 不让后续开发者把评估文档误读成“已经可以直接试点正式 apply”
- 禁止红线:
- 不新增正式 apply scope
- 不直接落最终剧情、世界硬事实或 NPC 隐藏意图写入
- 不绕过 reviewed apply 的人工确认链
- 最小验证:
- 文档自查
- 如补探针测试:`cargo test noname_ -- --nocapture` 或对应最小测试集
- 作用效果:
- 把“下一层安全输出”从概念讨论变成受控设计对象
- 降低后续试点时误扩权的风险
- 为下一阶段研发提供统一术语和边界

## 3. 文档管理动作

### 新任务落地时至少同步

- [现状评估](./01-现状评估.md)
- [后续路线图](./02-后续路线图.md)
- [未来两周开发排期](./04-未来两周开发排期.md)

### 如果任务状态变化明显,还应同步

- [协作任务清单](./03-协作任务清单.md)
- [测试与验证](../04-质量与发布/01-测试与验证.md)

### 当前建议的更新节奏

1. 任务启动前:确认卡片仍有效,是否已被最新 PR 覆盖
2. 任务提交后:补“当前状态 / 已验证”
3. 任务被否决或拆分后:补“为什么不合并 / 拆到哪一张卡片”
9 changes: 6 additions & 3 deletions docs/项目文档/04-质量与发布/01-测试与验证.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,15 @@ npm run build

### `.review/` 污染测试发现

如果仓库根目录中存在 `.review/` 工作树,Vitest 会把其中的测试文件也当作当前仓库测试一起执行。
如果仓库根目录中存在 `.review/` 工作树,Vitest 过去会把其中的测试文件也当作当前仓库测试一起执行。

当前基线已经在 `vitest.config.ts` 中把测试发现收紧到 `src/`,并显式排除了 `.review/`。

处理建议:

- 不再需要时清理 `.review/`
- 或在测试配置中显式排除 `.review/`
- 日常前端测试默认直接使用当前推荐命令即可
- 如果后续新增前端测试目录,记得同步更新 `vitest.config.ts`
- 不再需要时仍建议清理 `.review/`,避免干扰人工检索与磁盘占用

## 4. 回归建议

Expand Down
4 changes: 3 additions & 1 deletion docs/项目文档/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Nobody 项目文档

更新时间:2026-04-20
更新时间:2026-04-24
适用分支:`main`

## 1. 这套文档解决什么问题
Expand All @@ -21,6 +21,7 @@
5. [后续路线图](./03-规划/02-后续路线图.md)
6. [协作任务清单](./03-规划/03-协作任务清单.md)
7. [未来两周开发排期](./03-规划/04-未来两周开发排期.md)
8. [近期开发任务卡片](./03-规划/06-近期开发任务卡片.md)

## 3. 目录结构

Expand All @@ -41,6 +42,7 @@
- [后续路线图](./03-规划/02-后续路线图.md)
- [协作任务清单](./03-规划/03-协作任务清单.md)
- [未来两周开发排期](./03-规划/04-未来两周开发排期.md)
- [近期开发任务卡片](./03-规划/06-近期开发任务卡片.md)

### `04-质量与发布`

Expand Down
Loading
Loading