Skip to content

fix(novel): 删除大纲时不再重写派生记忆 - #87

Merged
darknessomi merged 1 commit into
mainfrom
cursor/outline-delete-skip-memory-rebuild-0a35
Oct 20, 2026
Merged

darknessomi merged 1 commit into
mainfrom
cursor/outline-delete-skip-memory-rebuild-0a35

Conversation

@darknessomi

Copy link
Copy Markdown
Collaborator

问题

删除大纲会调用 deleteChapterSnapshots,其中无条件执行 rebuildDerivedMemoryFromSnapshots。派生记忆重放不读取负数章号的大纲快照,结果是用全部章节快照重写:

  • .novel/character-states.json
  • .novel/cognition-state.json
  • .novel/foreshadowing-tracker.json
  • .novel/timeline.json

手改或清理过的内容会被盖回去。没提取过的大纲也会触发这次重写。

改动

章节快照删除仍按章节快照全量重放。大纲快照(章号为负)改为:

  • 删除该大纲自己的快照文件
  • 只从时间线里去掉这个章号的条目
  • 只从伏笔台账里撤掉这个章号:仅由它种下且没有其它章节引用的条目删除;其余条目保留原 ID,只去掉该编号
  • 没有对应记录时不写文件

人物状态和认知没有逐条来源,删除大纲时不再改这两个文件。

验证

npx vitest run src/lib/novel/timeline.spec.ts src/lib/novel/foreshadowing-ingest.spec.ts src/lib/novel/chapter-ingest.sync.test.ts src/lib/novel/delete-source-memory.spec.ts

4 files, 39 tests passed. 补断言后重跑前三个文件:3 files, 25 tests passed。

Open in Web Open in Cursor 

大纲快照不参与派生记忆重放。删除时只移除该快照,并按章号撤回时间线和伏笔记录,避免用章节快照覆盖手改的人物状态、认知和时间线。

Co-authored-by: darknessomi <darknessomi@users.noreply.github.com>
@darknessomi
darknessomi marked this pull request as ready for review October 20, 2026 07:48
@darknessomi
darknessomi merged commit b81f87e into main Oct 20, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants