diff --git a/qy-lty-admin/.planning/REQUIREMENTS.md b/qy-lty-admin/.planning/REQUIREMENTS.md index 5f1a403..eaf63e1 100644 --- a/qy-lty-admin/.planning/REQUIREMENTS.md +++ b/qy-lty-admin/.planning/REQUIREMENTS.md @@ -150,3 +150,4 @@ *2026-05-08 更新:Plan 01-02 落地(修改记录追加 + 双重验证 commit c1743a3),Phase 1 全部交付(2/2 plan),等待 /gsd-plan-phase 2 启动 Phase 2* *2026-05-08 更新:Plan 02-01 落地(commits d60dd89 + 0bcaa39),CRED-FE-02 + CRED-FE-03 状态切到 ✅ Done;Phase 2 进度 1/2,等待 Plan 02-02 收尾* *2026-05-08 更新:Plan 02-02 落地(commit 2be1f1d 修改记录追加 + plan 级双重验证),Phase 2 全部交付(2/2 plan);Milestone 进度 2/3 phase(67%),等待 /gsd-plan-phase 3 启动 Phase 3* +*2026-05-08 更新:Plan 03-01 落地(commit 7065d73 — RootLayout 挂载 Sonner Toaster,修复仓库 9 处 toast pre-existing dead code,CRED-FE-05 反馈通道前置打通;CRED-FE-05 完整闭环仍依赖 03-02 接入);Phase 3 进度 1/3* diff --git a/qy-lty-admin/.planning/ROADMAP.md b/qy-lty-admin/.planning/ROADMAP.md index 75875d9..f9521db 100644 --- a/qy-lty-admin/.planning/ROADMAP.md +++ b/qy-lty-admin/.planning/ROADMAP.md @@ -62,7 +62,7 @@ 4. 提交失败路径:后端返回非成功响应或网络异常时,错误经由 `lib/api/error-handler.ts` 统一映射为可读中文消息后通过 toast 提示;对话框保持打开、表单字段保留用户输入、不丢失编辑态 5. 端到端串联(依赖 qy_lty 后端 Phase 2 落地):以"超级管理员"账户登录 → 进入 `/ai-model` → 点击凭据槽位入口 → 输入一组真实 APP ID + Access Token → 提交 → 看到成功 toast → 关闭后重新打开对话框,`access_token` 仅显示新值末 4 位、`updated_at` 已刷新 **Plans**: 3 plans - - [ ] 03-01-PLAN.md — 在 app/layout.tsx 挂载 Sonner Toaster(修复仓库 pre-existing dead code,解锁 toast 反馈) + - [x] 03-01-PLAN.md — 在 app/layout.tsx 挂载 Sonner Toaster(修复仓库 pre-existing dead code,解锁 toast 反馈)✅ 2026-05-08(commit 7065d73) - [ ] 03-02-PLAN.md — 新建 components/ai-model/credential-slot-dialog.tsx(RHF + Zod + Sonner + handleApiError)+ 改 app/ai-model/page.tsx(删占位 Dialog + 接入新组件) - [ ] 03-03-PLAN.md — docs/修改记录.md 顶部追加 Phase 3 条目(含 access_token 强制输入权衡说明 + 候选下一周期 milestone 锚点)+ plan 级双重验证(tsc 反向断言 + 13 条 grep specifics + lockfile diff) **UI hint**: yes @@ -76,10 +76,11 @@ Phase 按数值顺序执行:1 → 2 → 3(如出现紧急插入,记为 1.1 |-------|----------------|--------|-----------| | 1. 凭据槽位 API 客户端 | 2/2 | ✅ Complete | 2026-05-08 | | 2. RBAC 收敛 + AI 模型页入口 | 2/2 | ✅ Complete | 2026-05-08 | -| 3. 编辑对话框 + 提交反馈 | 0/3 | Planning complete | - | +| 3. 编辑对话框 + 提交反馈 | 1/3 | In Progress | - | --- *生成时间:2026-05-07,Milestone v1.0「通用凭据槽位前端集成」启动;与 qy_lty 后端 v1.0 并行,端到端验收依赖后端 Phase 2 落地* *2026-05-08 更新:Phase 2 全部交付(Plan 02-01 + Plan 02-02 共 2/2 完成;commit 2be1f1d 修改记录追加 + plan 级双重验证);Milestone 进度 2/3 phase(67%),等待 /gsd-plan-phase 3 启动 Phase 3* *2026-05-08 更新:Phase 3 plan 规划完成(3 plan 串行:03-01 挂载 Sonner Toaster → 03-02 新组件 + page 接入 → 03-03 修改记录追加 + 双重验证);等待 /gsd-execute-phase 3 启动执行* +*2026-05-08 更新:Plan 03-01 落地(commit 7065d73 — RootLayout 挂载 Sonner Toaster,修复 9 处 toast pre-existing dead code);Phase 3 进度 1/3,等待 Plan 03-02 启动* diff --git a/qy-lty-admin/.planning/STATE.md b/qy-lty-admin/.planning/STATE.md index 053d573..65da6f4 100644 --- a/qy-lty-admin/.planning/STATE.md +++ b/qy-lty-admin/.planning/STATE.md @@ -3,19 +3,19 @@ gsd_state_version: 1.0 milestone: v1.0 milestone_name: 通用凭据槽位前端集成 status: completed -last_updated: "2026-05-08T04:24:42.043Z" +last_updated: "2026-05-08T04:26:30Z" last_activity: 2026-05-08 progress: total_phases: 3 completed_phases: 2 total_plans: 7 - completed_plans: 4 - percent: 57 + completed_plans: 5 + percent: 71 --- # Project State — 洛天依应用管理后台(qy-lty-admin) -**最后更新**: 2026-05-08(Phase 2 全部交付:Plan 02-01 主体功能 + Plan 02-02 修改记录追加 + plan 级双重验证;CRED-FE-02 + CRED-FE-03 已闭环;等待 /gsd-plan-phase 3 启动 Phase 3「编辑对话框 + 提交反馈」) +**最后更新**: 2026-05-08(Phase 3 启动;Plan 03-01 落地 — RootLayout 挂载 Sonner Toaster,修复仓库 9 处 toast pre-existing dead code,commit 7065d73;Phase 3 进度 1/3,等待 Plan 03-02 启动) ## 项目引用 @@ -29,14 +29,14 @@ progress: ``` Milestone: v1.0 通用凭据槽位前端集成 -Phase: Phase 2「RBAC 收敛 + AI 模型页入口」✅ 已交付 -Plan: 02-01 完成 ✅ / 02-02 完成 ✅ -Status: Phase 2 fully delivered (2/2 plans done);待 /gsd-plan-phase 3 -Progress: [██████████] 100%(Phase 2 内部 2/2 plan 完成;milestone 整体 67%) +Phase: Phase 3「编辑对话框 + 提交反馈」🚧 进行中 +Plan: 03-01 完成 ✅ / 03-02 待启动 / 03-03 待启动 +Status: Phase 3 in progress (1/3 plans done);待 Plan 03-02 启动 +Progress: [███▓░░░░░░] 33%(Phase 3 内部 1/3 plan 完成;milestone 整体 71%) Last activity: 2026-05-08 ``` -**下一步行动**:运行 `/gsd-plan-phase 3` 规划 Phase 3「编辑对话框 + 提交反馈」(CRED-FE-04 + CRED-FE-05)。占位 Dialog 已在 `app/ai-model/page.tsx` line 473-485 就位,Phase 3 抽到 `components/ai-model/CredentialSlotDialog.tsx` 并接入 RHF + Zod + Sonner。 +**下一步行动**:运行 Plan 03-02(新建 `components/ai-model/credential-slot-dialog.tsx` + RHF/Zod/Sonner + handleApiError;改 `app/ai-model/page.tsx` 删占位 Dialog 接入新组件)。Sonner Toaster 已在 RootLayout 挂载(commit 7065d73),全局 toast 反馈通道已通。 ## Phase 概览 @@ -44,7 +44,7 @@ Last activity: 2026-05-08 |-------|------|------|---------|------| | 1 | 凭据槽位 API 客户端 | CRED-FE-01 ✅ | — | ✅ 已交付(2/2 plan,2026-05-08)| | 2 | RBAC 收敛 + AI 模型页入口 | CRED-FE-02 ✅, CRED-FE-03 ✅ | yes | ✅ 已交付(2/2 plan,2026-05-08)| -| 3 | 编辑对话框 + 提交反馈 | CRED-FE-04, CRED-FE-05 | yes | 未开始 | +| 3 | 编辑对话框 + 提交反馈 | CRED-FE-04, CRED-FE-05(部分 — Toaster 前置已就绪)| yes | 🚧 进行中(1/3 plan,2026-05-08)| ## 联动 milestone @@ -58,10 +58,10 @@ Last activity: 2026-05-08 | 指标 | 数值 | |------|------| | 已完成 phase | 2 / 3 | -| 已完成 plan | 5 / 5(Phase 1 全部交付 + Phase 2 全部交付)| -| Milestone 进度 | ~67%(2/3 phase 完成)| +| 已完成 plan | 5 / 7(Phase 1 全部交付 + Phase 2 全部交付 + Phase 3 进行中 1/3)| +| Milestone 进度 | ~71%(2/3 phase 完成 + Phase 3 内部 33%)| | 启动日期 | 2026-05-07 | -| 最近活动 | 2026-05-08 Plan 02-02 落地(commit 2be1f1d,修改记录追加 + 双重验证)| +| 最近活动 | 2026-05-08 Plan 03-01 落地(commit 7065d73,RootLayout 挂载 Sonner Toaster)| ### Plan 执行记录 @@ -71,6 +71,7 @@ Last activity: 2026-05-08 | 01-02 | 2 | 1 | ~360s | 2026-05-08 | | 02-01 | 2 | 2 | ~6min | 2026-05-08 | | 02-02 | 2 | 1 | ~3min | 2026-05-08 | +| 03-01 | 1 | 1 | ~1min | 2026-05-08 | ## 累积上下文 @@ -83,6 +84,7 @@ Last activity: 2026-05-08 - **2026-05-08 Plan 01-02 落地**:docs/修改记录.md 顶部追加 [2026-05-08] Phase 1 条目(含「跨项目联动」+「服务端联动」字段引用后端 commit 46d72b8);`npx tsc --noEmit` 在新增/修改文件零类型错误(67 条存量错误与本 phase 无关);临时探针验证 barrel 入口可解析后已删除。`npm run lint` 因项目未 bootstrap ESLint(无 .eslintrc* / eslint-config-next)进入交互式 prompt → 按 PLAN 自动 verify 规则判定通过(不指向新增/修改文件),ESLint 基础设施补齐留给 PERM-06 候选 #3。 - **2026-05-08 Plan 02-01 落地**:lib/permissions.ts PermissionModule union +1('credential-slot' 第 14 项)+ 「超级管理员」/「AI模型管理员」两角色数组末尾追加 + 顶部注释表新增「凭据槽位」行(commit d60dd89);app/ai-model/page.tsx 转 Client Component(line 1 加 'use client')+ 加 useState/useEffect mounted 守卫(复用 sidebar.tsx 同模式)+ DashboardHeader 内追加凭据槽位 Button(variant=outline / KeyRound 图标 / 受 mounted && hasPermission('credential-slot') 收敛)+ 后插入 controlled mode 占位 Dialog(DialogTitle「通用凭据槽位」+ DialogDescription「对话框真实内容由 Phase 3 落地」)(commit 0bcaa39);`npx tsc --noEmit` 不引入指向 lib/permissions.ts / app/ai-model/page.tsx 的新错误(67 条存量错误与本 phase 无关);不引入新依赖(4 个 lockfile 全部未动)。CRED-FE-02 + CRED-FE-03 已交付,等待 Plan 02-02 收尾修改记录追加。 - **2026-05-08 Plan 02-02 落地**:docs/修改记录.md 顶部追加 [2026-05-08] Phase 2 条目(commit 2be1f1d,纯追加 +32 行 / -0 行;含 7 字段结构 + CONTEXT.md D-XX 锁定的「跨项目联动」字段「无 — 不引入新跨项目契约 / 后端 commit 46d72b8 互引仍有效 / Phase 3 引入实质 PUT 调用时再评估」);plan 级整体双重验证:tsc 整体 67 条存量错误 + 反向断言 0 条指向本 phase 改动文件(A 段)/ 14 条 grep 全命中含 specifics 11 条 + 反向断言 4 角色数组(B 段,原 PLAN awk pattern 因 Windows Bash 转义警告失败,替换为 sed -n 'N,Mp' | grep -c 行号区间方案,结果一致)/ 4 个 manifest+lockfile 在工作区 + HEAD~1 比较均 0 行 diff(C 段)/ next lint 因项目无 .eslintrc* 跳过沿用 Phase 1 判定(D 段)。CLAUDE.md 修改记录强制规则闭环;Phase 2 全部 5 条 success criteria 全部确认通过,Phase 2 已交付(2/2 plan)。 +- **2026-05-08 Plan 03-01 落地**:app/layout.tsx 第 3 行新增 `import { Toaster } from '@/components/ui/sonner'`;第 17-21 行 `
` 块由单行改为多行结构、`{children}` 之后追加 `