# Goal:执行 7-76(AI 主体 · Web PAT · 鉴权硬化 · 用户级密码箱) > 创建:2026-07-26 > 状态:`P0–P1b 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 忽略 cookie;scope 接线 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;完成 P0–P1b 实现与定向单测。 | | 2026-07-26 | **方案 A 账户分离**:新建 `mnote-admin`(ops);`liaibo`/`mnote-e2e` 去 admin;`mnote-e2e` → `ai_service`;`MNOTE_ADMIN_USER_IDS` + `access-policy.admins` 仅 admin;Pi Lab smoke admin seed 改 `withAdminBrowserSession`。 | | 2026-07-26 | 对照代码核验;设计稿 §12 勾选已完成项;修 `test-handle-qa.js` 残留快速登录。 |