Files
mnote/design/07-ai/process/7-76-execution-goal-v1.md
T

61 lines
3.3 KiB
Markdown
Raw Normal View History

# Goal:执行 7-76AI 主体 · Web PAT · 鉴权硬化 · 用户级密码箱)
> 创建:2026-07-26
> 状态:`P0P1b DONE`P2 deferred;§12 部分 e2e 残留见设计稿 12.5)
> 设计 SSOT`design/07-ai/process/7-76-ai-principal-web-pat-and-auth-hardening-v1.md`
> 触发:用户要求「设置 goal,开始执行 7-76」
## Goal 文案(可贴任务板)
**在 7-76 边界下,分阶段交付:开发对标生产鉴权、Web PAT 机机访问、AI 主体隔离面、一人一密码箱 + share-to-AI;本迭代先完成 P0(撤登录页快速登录后门并校准测试/文档/smoke 登录路径)。**
## 成功标准(整条 7-76
1. `/auth` 无测试快速登录、无测试密码 DOM;开发与生产登录形态一致。
2. 外部 AI 可凭 Web PAT 在授权范围内完成笔记/树 CRUD,默认不接 Pi。
3. `mnote-e2e` 为 AI 主体:私有笔记/知识库/vault;普通用户不可进。
4. 密码箱按用户隔离;share-to-AI 可验;admin 代签可审计。
5. cookie / PAT / mnv1 / mnext1 分职。
## 阶段看板
| 阶段 | 内容 | 状态 |
|------|------|------|
| **P0** | 删除快速登录;测试/文档/smoke 改标准登录或 API | `done` |
| **P0.5** | `api_access_tokens` + Bearer 中间件 + `/user/ai` PAT UI(可复显) | `done` |
| **P1** | 用户级 vault root + owner + share-to-AI | `done`(复用既有一人一箱路径 + share-to-AI;补 Web 签发 vault token |
| **P1b** | Admin 代签 PAT/vault token、AI 主体运营、审计 | `done` |
| **P2** | exchange 短会话、break-glass、reveal 模式开关等 | `deferred`(非本轮阻塞) |
## P0 Checklist
- [x] `AuthPage` 移除快速登录按钮、`TEST_ACCOUNT_*` DOM、quickLogin 脚本分支
- [x] `gateway` SSR 测试:断言 **不存在** 快速登录与 `data-test-password`
- [x] `scripts/tree-shell-smoke-helpers.js` UI 登录改为表单标准登录
- [x] 各 smoke 中「点击测试账号快速登录」改为表单/API(共享 helper
- [x] `AGENTS.md` / `TESTING_REFERENCE.md` 去掉「优先快速登录」
- [x] `cargo test -p mnote-web` 定向 auth 相关通过
## 当前切片
- **已完成:** P0 → P1b 主交付(P2 延后)
- **实现要点:** 见下节「交付清单」
## 交付清单(本轮代码)
- [x] P0 撤 `/auth` 快速登录;smoke 标准登录 helper
- [x] Web PAT`/api/ai-tokens*` 签发/列表/复显/吊销;sealed 可复显
- [x] Bearer `mnpat1.*` 中间件;PAT 忽略 cookiescope 接线 notes/tree/tools
- [x] `/user/ai``/admin/ai` UI:API 访问令牌 + 密码箱 AI 访问
- [x] vault agent token`POST /api/vault/ai/token`(本人/admin 代签 + 审计)
- [x] AI 主体:`mnote-e2e` 注册 `role=ai_service`;用户列表 `principalKind`
- [x] 密码箱 share-to-AI / 用户 vault 路径沿用 12-x 既有实现
## 变更记录
| 日期 | 说明 |
|------|------|
| 2026-07-26 | 建 goal;完成 P0P1b 实现与定向单测。 |
| 2026-07-26 | **方案 A 账户分离**:新建 `mnote-admin`ops);`liaibo`/`mnote-e2e` 去 admin`mnote-e2e``ai_service``MNOTE_ADMIN_USER_IDS` + `access-policy.admins` 仅 adminPi Lab smoke admin seed 改 `withAdminBrowserSession`。 |
| 2026-07-26 | 对照代码核验;设计稿 §12 勾选已完成项;修 `test-handle-qa.js` 残留快速登录。 |