Repository navigation
Description
Warning
Superseded by #114, #115 and #116 (2026-09-21). This closed issue records the earlier optional-Memory / model-visible Memory Tool design. Do not implement its Locked decisions or Future tracer bullet. Current V1 direction: Memory is created by default as a real Git repository; Orchestrator cwd is that repository; models use ordinary file/Shell/grep/git capabilities; Memory Service owns lifecycle, validation, pin budget, reconciliation and accepted Memory Commit history/query; Workspace access is a persistent revocable PersonaBot-level Grant; each Assignment has one cwd.
Why
M2 已交付一个内嵌于 Core、通过 cwd 找 PersonaBot、强制创建 PERSONA.md/MEMORY.md 的 Memory MVP。新的 Session 与产品架构已确认:DM → Bot Inbox → Orchestrator Session → Assignment Session 的执行主链不依赖 Persona 或 Memory;Memory 应作为可缺席、可被其他 trusted Plugin 消费的 application-defined Cordis Service。
本票只收敛 contract 与实施边界,不把 Memory 实现横向铺开,也不阻塞首个 Assignment tracer bullet。
Locked decisions
- PersonaBot 可以只有 Host-generated ID、名称、base runtime prompt 与 Orchestrator;Persona 和 Memory 都是 optional。
- Memory 使用
Consumer → Service Definition → Providercapability seam;target Git-backed Provider 独立于 Core package,缺席时主链仍运行。 - Memory Repository 是 generic、独立生命周期的 Git-backed authority;V1 最多为一个 PersonaBot attach 一个私有 repository。detach/archive/delete 分离。
- 所有 Markdown 文件语义平等,没有 generated/special
MEMORY.md。提供 Persona 时创建普通persona.md并默认 pin;Agent/Human 都可修改、unpin、改名或删除。 - pin metadata 存 frontmatter;Human 可调 repository UTF-8 byte budget,active model 再做 token preflight。超限 fail closed,返回 machine-readable fields 与 LLM-readable remedy,不截断。
- mutation 使用 optimistic concurrency;一次 semantic change 对应一个带 actor/cause 的 Git commit。pin/unpin 是显式 operation。
- 每个 Memory Service command/query 都有
memory/before-operationwaterfall 与memory/after-operationnotification;Event 发 metadata,Git history 是 durable authority。 - Orchestrator 在 repository attach 后默认 read-write。Assignment 默认无 Memory;create 时可显式授予
read或完整read-write,Subagent 不自动继承。 - V1 信任能 resolve Service 的内部 Plugin,但 mutation 必须带 repository id、actor、cause,不实现通用 ACL。
- Client 只在 Provider attached 时显示 Memory destination;Settings 负责 availability/diagnostics。Graph、Shared Memory、vector search、multi-writer worktree 后置。
Deliverables
- 用编号问题完成 focused grill,并记录 non-goals。
- 调研 Letta 当前官方 docs/source 中的 Persona、MemFS、Git history 与 viewer seam。
- 合并
CONTEXT.md/ living architecture / ADR-0047 / research note 更新(PR docs: decouple Memory from the Assignment loop #113)。 - 将最小 Memory implementation slice 排在 Foundation:Assignment Runtime / Assignment Directory / Orchestrator tools #81 的主 Assignment tracer bullet 通过 Human 验收之后;不预先扩张更多 research ticket。
First future Memory tracer bullet
- attach one Git-backed repository to one PersonaBot;
- through Memory Service create/read/update one Markdown file;
- pin/unpin within budget and produce one semantic commit;
- Orchestrator receives scoped tools;
- DM-only Memory view performs one Human edit and shows commit/diff;
- disable Provider and prove DM → Orchestrator → Assignment still runs。
Related
- Architecture foundation: 架构地基:显式 Session 归属与 deep modules(GrokBot-on-DSH 对齐) #71
- Existing Memory MVP: M2: 记忆 MVP(front-matter / 目录树注入 / memory_* / 可见性) #9
- PersonaBot navigation: 设计:PersonaBot navigation / Assignments / recovery 的 DSH-native UI #75
- Assignment runtime: Foundation:Assignment Runtime / Assignment Directory / Orchestrator tools #81
- Memory visibility decision: 记忆可见性重做:去掉 group/DM runtime scope,重新定义 public/private #23
- ADR-0047
Non-goals
- 不在本票实现 UI 或重写 Memory tools。
- 不引入 vector database、自动蒸馏、Graph、Shared Memory 或后台批量改写。
- 不把已归档的
docs/botharness.md/PRD.md恢复为设计权威。
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity
[-]设计:Memory/context delivery 与多 Session 写入边界[/-][+]设计:Optional Memory Service / pin / Git / events 边界[/+]DoodleBears commentedon Sep 20, 2026
设计范围已由 PR #113 合并:Memory 是可缺席的 Git-backed Cordis Service,Persona/Memory 不再阻塞 DM → Orchestrator → Assignment 主链。后续实现按已确认顺序,在 #81 的首个 Human-testable Assignment tracer bullet 验收后再推进;本设计票完成并关闭。
[-]设计:Optional Memory Service / pin / Git / events 边界[/-][+]设计记录(已由 #114 取代):Optional Memory Service / pin / Git / events 边界[/+]