feat: 按 #18 原型实现 MVP-1 portal 用户界面 (#19) #26

Closed
opened 2026-08-21 16:07:32 +08:00 by ila · 0 comments
Owner

基本信息

  • 类型:需求
  • 所属 Epic:#3
  • 所属 MVP / 版本:#19 / MVP-1
  • 阶段:已完成

原始需求

  • 来源:用户对话与已确认 MVP-1 技术设计、管理端原型 #17、用户端原型 #18。
  • 提出时间:2026-08-21
  • 脱敏摘要:按已确认 MVP-1 范围建立生产实现单元工单。

文档影响

  • 不影响长期文档,原因:
  • 更新项目档案或本地开发与验证
  • 更新架构与代码地图
  • 更新业务规则与术语
  • 更新常见修改或故障排查
  • 更新其他 Wiki 页面:Product-Requirements-Overview(记录 #26 候选状态)

交付文档影响

  • 无交付文档影响,原因:本工单交付内部实现,最终用户操作文档待功能集成后统一评估。
  • 更新已有交付文档,受众与页面:
  • 新增交付文档,受众与页面:

变更控制

  • 不增加计费扣点、支付、配额、内容审核、公开注册、MVP-2 API Key/openapi 或其他已排除范围。
  • 不使用真实 Provider 额度进行调试;自动化与开发使用 mock。
  • 实施开始前复核依赖工单、工作区和已确认设计;完成后保持“待验收”,由用户明确验收后关闭。

依赖与并行

  • 前置工单:#25、#18(已完成)
  • 是否允许并行:否;页面依赖稳定的 multipart 和游标历史契约。

目标与范围

在既有 html/template + HTMX + Alpine + Tailwind portal 实现文生图/图片编辑切换、每图角色/备注/排序、role_rule 覆盖说明、无限滚动历史及完整状态反馈。

不更换 portal 技术栈,不增加移动端历史抽屉、公开注册、MVP-2 能力或真实生成图片。

设计与原型门禁

  • 已确认设计:prototypes/18/v1/index.html,用户于 2026-08-21 验收通过。
  • 设计覆盖:375/768/1024/1440、拖拽与上移/下移等价操作、role_rule 覆盖、历史加载/失败/空/到底状态。

验收标准

  • 页面符合 #18 v1;文生图和图片编辑入口、输入边界及错误提示清楚。
  • 每图 role/note/order 可编辑,拖拽具备键盘上移/下移等价操作,至少一张且恰好一张 primary。
  • 最终 Prompt 覆盖关系可理解;提交、加载、失败、认证失效与重试状态可访问。
  • 历史无限滚动不清空已有列表,覆盖首次/增量加载、失败重试、空和到底;四视口无主区域横向滚动。

验证

  • 运行 portal 前端构建与 Playwright 四视口 E2E,检查键盘、焦点、reduced-motion 和状态恢复。
  • 使用脱敏测试数据,不包含真实图片或用户资料。

实施结果与证据(2026-08-23)

  • 结果:已按 prototypes/18/v1/index.html 完成实现,并于 2026-08-23 通过用户验收;父工单 #19 与 Epic #3 已同步勾选 #26。
  • 实现提交:27f6f0a;候选状态文档提交:5673726,均已推送至 main。
  • 页面:文生图/图片编辑切换;role_rule;每图 primary/reference、备注、拖动与上移/下移键盘等价操作;固定 Prompt 构成说明。
  • 历史:首屏使用 #25 默认游标页;滚动哨兵自动加载并保留可聚焦按钮;加载失败保留既有记录,可重试,空记录和到底状态可访问。
  • 提交边界:image_generate 提交空图片 metadata;image_edit 提交 files[<client_id>] 与一一对应 metadata;同步链路不调用上游,不读写用户点数。
  • 自动验证:portal 前端生产构建、Go build/vet/全仓 test、portal race、JavaScript 语法检查、DevHarness strict 和 42 项 Harness 测试全部通过。
  • MySQL:使用 admin/config/settings.yml 的本机 MySQL 8 连接参数派生到隔离库 chorus_test,handler/service/session/auth 集成通过;没有修改 chorus 业务库。
  • 浏览器:375/768/1024/1440 Playwright 共 8 个项目用例,5 个执行通过,3 个按设计仅在 1024 执行而跳过;覆盖真实 metadata/角色/顺序/备注落库、增量历史失败恢复、终态、认证失效、44px 目标、reduced-motion 和无横向溢出。
  • 数据:只使用临时合成账号、合成 PNG、测试路由和 mock 状态;测试后已清理用户、路由、任务、存储和临时进程,未调用真实 Provider。
  • 核心 Wiki:Product Requirements revision 2a797a02a0617d805cb0bcab44a731dce519cdbc,镜像已同步并通过一致性检查。
  • 任务归档:Task-26-MVP-1-portal-用户界面,revision dded18831f0bcb64fc35158a8e332e35ca3e25e2;未导出 docs/task/。
  • 未覆盖:真实 Provider 调用不在本工单范围;MVP-1 跨模块集成验收由 #27 负责。

用户验收(2026-08-23)

  • 用户明确确认 #26 验收通过。
  • 验收归档提交:777b908,已推送至 main。
  • Product-Requirements-Overview revision:5f38cd4d4e6006fc6eec5d3622121e56433bf46d。
## 基本信息 - 类型:需求 - 所属 Epic:#3 - 所属 MVP / 版本:#19 / MVP-1 - 阶段:已完成 ## 原始需求 - 来源:用户对话与已确认 MVP-1 技术设计、管理端原型 #17、用户端原型 #18。 - 提出时间:2026-08-21 - 脱敏摘要:按已确认 MVP-1 范围建立生产实现单元工单。 ## 文档影响 - [ ] 不影响长期文档,原因: - [ ] 更新项目档案或本地开发与验证 - [ ] 更新架构与代码地图 - [ ] 更新业务规则与术语 - [ ] 更新常见修改或故障排查 - [x] 更新其他 Wiki 页面:Product-Requirements-Overview(记录 #26 候选状态) ## 交付文档影响 - [x] 无交付文档影响,原因:本工单交付内部实现,最终用户操作文档待功能集成后统一评估。 - [ ] 更新已有交付文档,受众与页面: - [ ] 新增交付文档,受众与页面: ## 变更控制 - 不增加计费扣点、支付、配额、内容审核、公开注册、MVP-2 API Key/openapi 或其他已排除范围。 - 不使用真实 Provider 额度进行调试;自动化与开发使用 mock。 - 实施开始前复核依赖工单、工作区和已确认设计;完成后保持“待验收”,由用户明确验收后关闭。 ## 依赖与并行 - 前置工单:#25、#18(已完成) - 是否允许并行:否;页面依赖稳定的 multipart 和游标历史契约。 ## 目标与范围 在既有 html/template + HTMX + Alpine + Tailwind portal 实现文生图/图片编辑切换、每图角色/备注/排序、role_rule 覆盖说明、无限滚动历史及完整状态反馈。 不更换 portal 技术栈,不增加移动端历史抽屉、公开注册、MVP-2 能力或真实生成图片。 ## 设计与原型门禁 - 已确认设计:prototypes/18/v1/index.html,用户于 2026-08-21 验收通过。 - 设计覆盖:375/768/1024/1440、拖拽与上移/下移等价操作、role_rule 覆盖、历史加载/失败/空/到底状态。 ## 验收标准 - [x] 页面符合 #18 v1;文生图和图片编辑入口、输入边界及错误提示清楚。 - [x] 每图 role/note/order 可编辑,拖拽具备键盘上移/下移等价操作,至少一张且恰好一张 primary。 - [x] 最终 Prompt 覆盖关系可理解;提交、加载、失败、认证失效与重试状态可访问。 - [x] 历史无限滚动不清空已有列表,覆盖首次/增量加载、失败重试、空和到底;四视口无主区域横向滚动。 ## 验证 - 运行 portal 前端构建与 Playwright 四视口 E2E,检查键盘、焦点、reduced-motion 和状态恢复。 - 使用脱敏测试数据,不包含真实图片或用户资料。 ## 实施结果与证据(2026-08-23) - 结果:已按 `prototypes/18/v1/index.html` 完成实现,并于 2026-08-23 通过用户验收;父工单 #19 与 Epic #3 已同步勾选 #26。 - 实现提交:`27f6f0a`;候选状态文档提交:`5673726`,均已推送至 `main`。 - 页面:文生图/图片编辑切换;role_rule;每图 primary/reference、备注、拖动与上移/下移键盘等价操作;固定 Prompt 构成说明。 - 历史:首屏使用 #25 默认游标页;滚动哨兵自动加载并保留可聚焦按钮;加载失败保留既有记录,可重试,空记录和到底状态可访问。 - 提交边界:image_generate 提交空图片 metadata;image_edit 提交 `files[<client_id>]` 与一一对应 metadata;同步链路不调用上游,不读写用户点数。 - 自动验证:portal 前端生产构建、Go build/vet/全仓 test、portal race、JavaScript 语法检查、DevHarness strict 和 42 项 Harness 测试全部通过。 - MySQL:使用 `admin/config/settings.yml` 的本机 MySQL 8 连接参数派生到隔离库 `chorus_test`,handler/service/session/auth 集成通过;没有修改 `chorus` 业务库。 - 浏览器:375/768/1024/1440 Playwright 共 8 个项目用例,5 个执行通过,3 个按设计仅在 1024 执行而跳过;覆盖真实 metadata/角色/顺序/备注落库、增量历史失败恢复、终态、认证失效、44px 目标、reduced-motion 和无横向溢出。 - 数据:只使用临时合成账号、合成 PNG、测试路由和 mock 状态;测试后已清理用户、路由、任务、存储和临时进程,未调用真实 Provider。 - 核心 Wiki:Product Requirements revision `2a797a02a0617d805cb0bcab44a731dce519cdbc`,镜像已同步并通过一致性检查。 - 任务归档:[Task-26-MVP-1-portal-用户界面](https://git.ilapage.cn/OPC/chorus/wiki/Task-26-MVP-1-portal-%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2.-),revision `dded18831f0bcb64fc35158a8e332e35ca3e25e2`;未导出 `docs/task/`。 - 未覆盖:真实 Provider 调用不在本工单范围;MVP-1 跨模块集成验收由 #27 负责。 ## 用户验收(2026-08-23) - 用户明确确认 #26 验收通过。 - 验收归档提交:`777b908`,已推送至 `main`。 - Product-Requirements-Overview revision:`5f38cd4d4e6006fc6eec5d3622121e56433bf46d`。
ila closed this issue 2026-08-23 23:09:41 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/chorus#26