记忆、日记与周期报告
经历与档案 技术代码 memory
保存原始记录、当前正文、历史修订、模糊时间和可移植导出。
模块职责
- 保存原始记录、当前正文、历史修订、模糊时间和可移植导出。
- 维护“记忆、日记与周期报告”内部对象的生命周期与隐私边界。
- 通过稳定公共接口与其他模块协作,禁止跨模块直接修改数据表。
明确不负责
- 不直接处理其他模块的领域规则。
- 不把用户原文静默替换为AI生成内容。
- 不在浏览器或移动端复制服务端权限判断。
MEM-001 至 MEM-008 专用纵向切片(implemented_local)
POST /api/v2/memory/text与GET /api/v2/memory/text/:id提供文本记忆事实;MEM-002 至 MEM-008 分别使用恢复点、草稿、修订、AI 稿、时间、隐私和导出专用接口,Record Kernel 通用功能入口均失败关闭。- MEM-002 保存不可变命名恢复点,归档采用状态语义,恢复只追加新正文修订并保持原文不变;MEM-003 以 owner、记录和设备作用域保存草稿,自动保存不消耗正式修订,提交/放弃/过期/冲突均有固定状态。
- MEM-004 维护不可变类型化内容修订,默认只返回摘要,正文展开和历史恢复均按 owner 与 revision 校验;MEM-005 把 AI 输出保存为独立提议,LOCAL 路由和人工接受/拒绝决定是否产生新修订。
- MEM-006 由服务端裁决精确、日期、月份、年份、区间、模糊和未知七种时间精度,失败零写入且审计不保存时间原文;MEM-007 复用共享五级隐私合同,敏感降级需要确认并阻止高敏感普通离线写入。
- MEM-008 只生成单条 Markdown/JSON 确定性导出,操作表保存格式、计数、字节数和摘要,不保存导出正文;所有写操作均使用正式 revision 与幂等键,安全回执后通过专用读取接口回读实体。
- 五张治理类型化表、公共记录、审计和幂等均在同一事务边界内;PostgreSQL 16 约束测试与当前浏览器运行库 PostgreSQL 17 的证据分别记录,不混同为一次运行。
- PC 1440x900 与 Mobile 390x844 已完成七项专用区域、跨端回读、无横向溢出和移动触控验收;七份固定报告只保留状态、计数、revision、格式、模型编号和不可逆摘要,不保存正文、时间原文、记录编号、地址或凭据。
结构化字段
| 字段 | 中文名 | 编辑类型 | 必填 | 敏感性 | 业务说明 |
|---|---|---|---|---|---|
memoryType | 记忆类型 | select | 是 | 普通 | 用于记录“记忆类型”的业务值。 |
originalContent | 用户原文 | textarea | 是 | 敏感 | 用于记录“用户原文”的业务值。 |
currentContent | 当前正文 | textarea | 是 | 敏感 | 用于记录“当前正文”的业务值。 |
occurredAt | 发生时间 | datetime | 否 | 普通 | 用于记录“发生时间”的业务值。 |
timePrecision | 时间精度 | select | 是 | 普通 | 用于记录“时间精度”的业务值。 |
timeText | 模糊时间原文 | text | 否 | 普通 | 用于记录“模糊时间原文”的业务值。 |
importance | 重要程度 | number | 是 | 普通 | 用于记录“重要程度”的业务值。 |
aiDraft | AI整理稿 | textarea | 否 | 敏感 | 用于记录“AI整理稿”的业务值。 |
八项可执行功能
| 编号 | 功能 | 规划版本 | 完成状态 | 独立外部边界 | 执行策略 |
|---|---|---|---|---|---|
MEM-001 | 创建文本记忆 | V1.0 | 本地领域闭环已验证 | 无独立外部边界注记 | record |
MEM-002 | 可恢复记忆切片 | V1.0 | 本地领域闭环已验证 | 无独立外部边界注记 | snapshot |
MEM-003 | 草稿自动保存 | V1.0 | 本地领域闭环已验证 | 无独立外部边界注记 | record |
MEM-004 | 修订历史 | V1.0 | 本地领域闭环已验证 | 无独立外部边界注记 | snapshot |
MEM-005 | 原文与AI稿分离 | V2.0 | 本地领域闭环已验证 | 无独立外部边界注记 | record |
MEM-006 | 模糊发生时间 | V2.0 | 本地领域闭环已验证 | 无独立外部边界注记 | record |
MEM-007 | 隐私等级 | V2.0 | 本地领域闭环已验证 | 无独立外部边界注记 | record |
MEM-008 | Markdown与JSON导出 | V3.0 | 本地领域闭环已验证 | 无独立外部边界注记 | export |
本模块状态:implemented_local 8。状态由专用规则、聚合持久化、PC/移动行为和自动测试共同决定;外部 blocker 与历史 Provider 记录只作独立注记,不提升完成度。
HTTP 与数据生命周期
该模块使用 Record Kernel /api/v2/records/memory 统一提供创建、列表、详情、修改、归档、恢复、修订历史、执行历史和功能入口;POST/GET /api/v2/records/:moduleCode、GET/PATCH /api/v2/records/:moduleCode/:recordId、POST /archive、POST /restore、GET /revisions、GET /executions、POST /features/:featureId;共 9 条获批路由,无 DELETE。Identity typed 快照的通用写入失败关闭,typed 读取也必须使用 v2 专用接口;非 typed legacy core 仅保留只读兼容。 v2 不提供永久销毁,旧 v1 兼容链不从新页面调用。创建和更新先经 SystemRecordPolicyPort,由内核外的 SystemRecordPolicyRegistry 依次执行专用规范化、跨字段规则和 Catalog 字段规则;带键 cache miss 先取得事务内幂等预占,再执行无副作用策略;策略失败会让预占与数据库、审计副作用共同回滚,成功 cache hit 则直接精确恢复首次 revision。功能地址会先校验目录归属;partial 功能统一返回 HTTP 501 FEATURE_NOT_IMPLEMENTED,且不新增修订、执行、审计或幂等记录。迁移维护 active 时普通写返回 HTTP 503 SYSTEM_MAINTENANCE,读接口继续可用。MEM-001 至 MEM-008 的通用功能地址均返回对应专用地址错误,必须改用各自的 /api/v2/memory/... 专用入口。
参数化代码入口
apps/api/src/kernel/recordsapps/api/src/record-policiesapps/api/src/feature-registryapps/web/app/pages/modules/[moduleCode]apps/web/app/composables/useRecordKernel.tsapps/mobile/src/pages/module/index.vueapps/mobile/src/pages/recordapps/web/app/pages/modules/memory/new.vueapps/web/app/pages/modules/memory/text/[recordId].vueapps/mobile/src/pages/memory/text/create.vueapps/mobile/src/pages/memory/text/detail.vueapps/api/src/feature-registry/mem-001.registration.tsapps/api/src/feature-registry/mem-002.registration.tsapps/api/src/feature-registry/mem-003.registration.tsapps/api/src/feature-registry/mem-004.registration.tsapps/api/src/feature-registry/mem-005.registration.tsapps/api/src/feature-registry/mem-006.registration.tsapps/api/src/feature-registry/mem-007.registration.tsapps/api/src/feature-registry/mem-008.registration.tsdocs-site/modules/memory.htmlMobile 使用 /pages/module/index?module=... 与 /pages/record/* query 容器;MEM-001 使用 /pages/memory/text/create,MEM-002 至 MEM-008 使用 /pages/memory/text/detail 专用治理详情,TAX-001 至 TAX-008 共用 /pages/taxonomy/tags/index 的标签、分类、合并、编号、标题、AI 候选和审计专用交互。 旧 24×5 包装页和 descriptor 副本不属于当前架构。
设计原因
模块目录提供稳定业务语义和白名单;RecordAggregate 只负责公共记录生命周期,不解释 payload。SystemRecordPolicyRegistry 在内核外精确覆盖 Catalog 24 个模块,保留 Routine、Decision、Memory、Interview 的专用规范化,并拒绝未登记模块。Batch 003 固定规范大写 ULID、标题 200/摘要 1000 字符合同、payload 顶层覆盖与 payloadRemove 删除语义、受控 JSON 资源上限、递归敏感字段治理、幂等最小引用和精确 revision/execution 回放。0009 只追加 summary CHECK 与 owner/module[/status] + id DESC 匹配索引。 该等价层与公共加固仅保持普通记录合同,不代表领域功能完成;领域完成仍必须由专用规则、类型化持久化、PC/Mobile 行为和当前自动测试共同证明。