anenreo个人数字操作系统文档

← 返回首页 · 功能状态说明 · 当前项目状态

当前进度与问题台账

# 当前进度与问题台账

更新时间:2026-08-29(Asia/Manila,UTC+8)。

版本:`v2.0.0-foundation-integrity-candidate`。

本文档区分“当前源码事实”“历史运行记录”和“尚未具备的逐功能证据”。目录、类名、单一通用接口、文件数量、静态语法和历史报告均不能单独证明业务功能完成。

## 一、当前结论

- 24 个业务模块和 192 个稳定功能编号仍然保留;
- 168 项功能为 `partial`,IDN-001 至 IDN-008、MEM-001 至 MEM-008 与 TAX-001 至 TAX-008 为 `implemented_local`,当前 24 项满足逐功能完整证据要求;
- Record Kernel 已收敛为共享 v2 内核;FeatureRegistry 只装配上述 24 项真实纵向切片,其他 168 项不生成伪专用 Handler 或 Registry 条目;
- 旧 24×5 PC/Mobile 包装页和 descriptor 副本已删除;PC 使用 `pages/modules/[moduleCode]` 参数化页面,Mobile 使用 query 容器;Identity、Memory 与 Taxonomy 使用各自专用身份、记忆治理和标签分类交互;
- 16 项具有独立的真实外部依赖 blocker,8 项保留历史 Provider 候选记录;这两类边界不自动提升对应功能状态;
- IDN-001 至 IDN-008、MEM-001 至 MEM-008 与 TAX-001 至 TAX-008 已登记专用证据;Identity 覆盖账户、身份、会话、MFA、密码、资料、外部账号和风险处置,Memory 与 Taxonomy 覆盖各自八项专用流程;其他 168 项逐功能验收仍未完成;
- 旧 Playwright、Testcontainers、MinIO、备份恢复和 Provider 报告只能视为历史命令记录,不能替代当前逐功能验收。

当前工作区是“平台结构存在、领域功能仍待逐项闭环”的完整性修复候选版,不是生产版,也不应录入真实敏感人生数据。

## 二、本轮完整性治理

| 治理项 | 当前结果 | 证据 |
|---|---:|---|
| 功能目录状态 | `partial=168`,`implemented_local=24` | `packages/module-catalog/data/modules.json` |
| Record Kernel v2 路由 | 9 条,明确无 DELETE | `apps/api/src/kernel/records/presentation/record-kernel.controller.ts` |
| FeatureRegistry | IDN-001 至 IDN-008、MEM-001 至 MEM-008、TAX-001 至 TAX-008 共 24 项真实注册;其余功能不注册 | `apps/api/src/feature-registry` |
| 参数化跨端入口 | PC 动态页面、Mobile query 容器、Memory 专页和 Taxonomy 专页 | `apps/web/app/pages/modules`、`apps/mobile/src/pages` |
| 完整证据就绪 | 24 项(IDN-001 至 IDN-008、MEM-001 至 MEM-008、TAX-001 至 TAX-008) | `_work/reports/business-evidence-matrix.json` |
| 独立外部 blocker | 15 项 | 功能目录中的 `externalBoundary.status=blocked`;ING-005 是手动导入,不计外部 Provider blocker |
| 历史 Provider 记录 | 8 项 | 功能目录中的 `externalBoundary.status=historical_evidence` |

扫描器会识别重命名后的任意单行委托,例如 `this.domain.execute(...)` 或 `this.gateway.dispatch(...)`;重复检测会忽略 Handler 名称、功能编号和描述器内容的机械差异。负向测试证明,仅改类名、依赖名、方法名或描述器不能绕过门禁。

### IDN-001 至 IDN-008 当前纵向切片证据

Identity 八项切片分别覆盖账户创建与认证身份、个人身份档案、会话列表与撤销、MFA 因子生命周期、密码修改与凭据版本、资料修改、外部账号绑定审计,以及登录风险挑战与处置。每项均通过专用领域规则、类型化 PostgreSQL 持久化、授权 HTTP、PC/Mobile 交互和固定脱敏浏览器报告;`reports/identity-idn-001-browser-acceptance.json` 至 `reports/identity-idn-008-browser-acceptance.json` 只记录合成状态、计数和视口,不保存口令、Token、Cookie、MFA 密钥或第三方凭据。

### MEM-001 当前纵向切片证据

MEM-001 已具有专用 `TextMemoryAggregate`、`memory_text_entry` 类型化表、Command/Handler、`POST /api/v2/memory/text`、PC `TextMemoryComposer`、移动 `MobileTextMemoryComposer` 及高敏感离线边界。本轮实际通过领域/迁移测试 5 项、HTTP E2E 3 项、旧 Memory 回归 1 项、PC/移动编辑模型测试各 3 项、PC/移动类型检查与生产构建,以及 Testcontainers PostgreSQL 16 约束/owner/回滚测试 1 项。

该切片已升级为 `implemented_local`:真实 PC 与 Mobile H5 完成创建、回读、截图、清理和 404 复核;高敏感离线失败显示固定提示、不跳转、Outbox 摘要不变,恢复联网后按合成标题回查无服务端记录。固定脱敏报告与逐项登记见 `reports/memory-text-browser-acceptance.json` 和 `reports/feature-acceptance-evidence.json`;Provider 未访问,原生真机未声明。

### MEM-002 至 MEM-008 当前纵向切片证据

七项记忆治理切片均已通过专用领域规则、类型化持久化、HTTP、PC/Mobile 行为测试和真实双端浏览器闭环:MEM-002 覆盖恢复点与恢复新修订;MEM-003 覆盖设备草稿、自动保存、冲突和提交/放弃;MEM-004 覆盖不可变内容修订与恢复;MEM-005 覆盖本地模型草稿、人工接受/拒绝和原文隔离;MEM-006 覆盖七种时间精度与无效输入零写入;MEM-007 覆盖五级隐私、降级确认和高敏感离线限制;MEM-008 覆盖 Markdown/JSON 导出、重复摘要和 SHA-256。

七份固定报告分别为 `reports/memory-recovery-slice-browser-acceptance.json`、`reports/memory-draft-browser-acceptance.json`、`reports/memory-revision-browser-acceptance.json`、`reports/memory-ai-draft-browser-acceptance.json`、`reports/memory-occurred-time-browser-acceptance.json`、`reports/memory-privacy-browser-acceptance.json` 和 `reports/memory-export-browser-acceptance.json`,均为 `actual-local-browser`,并记录 PC 1440×900、Mobile 390×844、无横向溢出及脱敏检查结果。PostgreSQL 16 约束测试与浏览器运行时 PostgreSQL 17 证据分开记录;报告不包含正文、记录 ID、原始时间、Provider URL 或凭据。清理前后合成数据的行数差异仅用于报告复核,不代表当前业务数据库仍保留这些合成记录。

### TAX-001 至 TAX-008 当前纵向切片证据

TAX-001 已完成标签名称/别名规范化、owner 内冲突、颜色、隐私、启停和 revision;TAX-002 已完成分类父链、CATEGORY 类型、活动状态、最大八层、自引用/祖先环、并发移动和 revision;TAX-003 已完成主名称与别名只读检索、TAG/CATEGORY 联合查询、主名称优先、节点去重和 owner 隔离。

PostgreSQL 16 已验证标签与分类节点、别名、公共记录、修订、审计、幂等和 advisory lock 边界。PC 1440x900 与 Mobile 390x844 已通过真实浏览器创建、修改、移动、跨端回读和别名搜索,均无横向溢出;固定报告只保留状态、计数和尺寸,不保存正文、查询词、记录编号或凭据。

TAX-004 已完成合并前活动状态与双方 revision 校验、来源归档、名称/别名去重迁移、受管候选引用改写、双方修订和合并台账;TAX-005 已完成规则规范化、行锁下单调编号分配和不可变历史;TAX-006 已完成 NFKC、大小写、空白规则、唯一占用、释放策略和安全冲突建议。

TAX-007 已接入统一 AI 编排和隐私路由,候选只保存最小事实并强制人工接受或拒绝。PC 与 Mobile 均通过局域网本地模型实际生成候选,各完成接受与拒绝并跨端回读;两次 AI 请求均为 `LAN/SUCCEEDED`。TAX-008 在 PC 与 Mobile 各运行一次真实只读审计,两次均为 `COMPLETED` 且问题数为零。五份治理报告不保存来源正文、服务地址、记录编号或凭据。

## 三、什么才可以把功能升级为完成

每项功能必须同时提供可复核的专用证据:

1. 专用领域规则,而非通用 JSON 执行器或单行委托;
2. 业务聚合和 PostgreSQL 持久化行为;
3. PC Web 专用交互;
4. Mobile 专用交互;
5. 单元行为测试和 PostgreSQL 行为测试;
6. HTTP E2E;
7. 与验收标准一一对应的验收记录。

若任一证据缺失,功能必须保持 `partial`。外部账号、设备或授权缺失时,除上述要求外还必须保留显式 blocker,不能用 Mock 或旧报告代替真实依赖。

## 四、历史记录的使用边界

工作区中现存的发布、Playwright、容器、数据库、对象存储、备份和线上 Provider JSON 报告记录了过去某次命令的结果。它们可以帮助回归平台能力,但具有以下限制:

- 历史 192 项功能入口报告只证明统一接口曾返回 HTTP、修订和幂等结果,不证明 192 套领域规则;
- 历史 24 模块流程只证明公共生命周期和部分跨字段拒绝链路,不证明模块内每项功能;
- 历史配置中心流程证明动态配置和统一运行时,不证明专用业务页面;
- 历史 Provider 候选调用不等于当前 Provider 可用,也不等于对应功能已完成;
- 历史页面截图不构成当前全页面验收。

此前引用的 `artifacts/page-screenshots-2026-07-19-legacy-route-resilient` 和 2026-07-21 重采集目录已经隔离到工作区外,当前不再把它们列为可用截图证据。较早的页面采集存在 279 张空白/近空白截图问题,因此该历史批次状态仍为 `not_run`;当前独立安全路由批次已完成 PC 60 张与 Mobile 52 张,共 112/112 张非空白截图,不能把两批证据混用。

## 五、Batch 003:Record Kernel 公共能力加固

本批从 Batch 002 的全量工作区继续,没有重新解压或覆盖前两批成果。已完成的源码事实包括:

- API、Web、Mobile 共用规范 26 位大写 ULID 校验;非法 recordId/cursor 在 HTTP 或仓储前失败关闭;
- title 200、summary 1000、search 200 个 Unicode code point 的共享合同;0009 增加 summary 数据库 CHECK;
- `payload` 只做顶层覆盖,`payloadRemove` 只做顶层删除;删除必填领域字段仍由模块策略拒绝;
- 公共 JSON 拒绝循环、类实例、访问器、Symbol、稀疏数组、危险原型键、非有限数字及超限结构;
- 错误 details、审计 metadata、feature input/output 共用递归敏感键和值识别;审计发现清洗差异时失败关闭;
- 新幂等结果使用版本化策略 envelope,普通记录只保存 `recordId + revision`,功能执行只额外保存 `executionId`;
- 成功 cache hit 早于当前记录读取和模块策略,同键重放在记录继续变化后仍恢复首次 revision;
- revision owner 由数据库外键保护,module 由父记录 join 与 snapshot 一致性检查保护;真实 PostgreSQL 测试覆盖 owner/module、并发更新和精确历史读取设计;
- 列表继续采用 `id DESC` 与 `id < cursor`,0009 增加相同前缀和排序的两条 B-tree 索引。

Batch 003 当时没有执行当前用户业务数据库 DDL/DML、Copy/Verify、MEM-001 表切换、PC 首页切换、Seed/Capture/Export 切换、旧链退役、Provider 调用或外部消息;该批当时的 1/191 状态已被后续 Identity、Memory 与 Taxonomy 三个模块的真实纵向证据更新为 24/168。

Batch 003 的历史环境限制不再代表本机现状。后续批次已实际使用仓库依赖、Docker、PostgreSQL 16、类型检查、生产构建和浏览器完成专项验收;全系统迁移、恢复和本地发布包候选门禁也已由正式入口独立通过。源码再次变化时仍须重新生成短时效运行证据并重新打包。

## 六、当前未完成项

| 编号 | 项目 | 当前状态 | 下一步 |
|---|---|---|---|
| REMAIN-001 | 其余 168 项领域闭环 | `partial` | 按业务优先级选择下一纵向切片,逐项实现规则、持久化、跨端交互和测试 |
| REMAIN-002 | 其余 FeatureRegistry 切片 | 168 项未注册 | 由真正的模块应用服务和领域模型替代通用入口 |
| REMAIN-003 | 专用 PC/Mobile 业务交互 | 168 项仍为 partial | 为每个业务流程实现专用交互和状态反馈 |
| REMAIN-004 | 15 项外部依赖 | 独立 blocker | 账号、设备和授权齐备后做受控真实探测;条件不足时继续失败关闭;ING-005 手动导入不属于此列 |
| REMAIN-005 | 8 项 Provider 记录 | 仅历史候选证据 | 重新验证当前 Provider,并补齐对应功能的完整领域证据 |
| REMAIN-006 | 本地发布包候选 | 本地 runtime evidence 与 extracted validation 已通过 | 只在源码再次变化后重建新鲜证据并重新打包;不得提升为生产就绪 |
| REMAIN-007 | 本地页面视觉验收 | 60 个 PC 路由与 52 个 Mobile 路由已生成 112/112 张非空白截图 | 实体设备、生产网络与长期真实数据仍需独立验收 |
| REMAIN-008 | 真实敏感数据发布 | 禁止 | 完整性、安全、恢复和外部边界全部复核后再评估生产状态 |

## 七、外部边界

15 项独立 blocker:`identity:IDN-007`、`media:MED-004`、`knowledge:KNO-002/006`、`health:HLT-002/003/004`、`publishing:PUB-003/004/005`、`integration:ING-002/003/004/006/007`。ING-005 是用户主动提交 hash-only 摘要的手动导入,不访问聊天平台,因此保持功能 `partial`,但不计外部 Provider blocker。

8 项历史 Provider 记录:`personal-model:PMD-005`、`ai-agent:AIA-001/002/003/004/006/007/008`。

外部边界只描述依赖条件,不是完成状态。公众号、朋友圈、地图、手表、健康平台和其他第三方能力在没有真实账号、设备或授权时必须保持阻断,不得通过 Mock、固定响应或旧调用记录升级状态。

## 八、证据入口

- 实现真实性扫描:`_work/reports/implementation-integrity.json`
- 24×192 证据矩阵:`_work/reports/business-evidence-matrix.json`
- 当前项目状态源:`docs/reports/project-status.md`
- 当前项目状态页:`docs-site/reference/project-status.html`
- 功能目录:`packages/module-catalog/data/modules.json`
- 负向门禁测试:`tests/repair/implementation-integrity.test.mjs`
- 历史发布记录:`_work/reports/release-validation.json`
- 历史 Playwright 入口记录:`_work/reports/playwright-feature-execution-audit.json`

## 九、结论

当前已有 24 个真实纵向切片达到 `implemented_local`,另有 168 项仍待闭环。本地发布包候选门禁已经通过,但这不构成预发布、生产就绪或已上线结论;在专用证据齐备前,不把平台底座、统一执行入口或历史自动化结果换算为领域完成度。