# HDLKiosk 后续工作

> 当前重点：完善真实业务逻辑和 UI，不再继续横向扩展架构。  
> 排序原则：交易/食品安全 → 真实业务闭环 → 设备与运营 → UI/可达性 → 性能。

## 1. P0：真实交易阻塞项

### P0-1 正式 Host 业务桥

- 注入真实 SMS/会员选择并验证重新报价；
- 注入 dine-in/takeaway 正式写口和写后 Projection；
- 删除 simulated fulfillment；
- 验证 OS 主商品加购弹窗在 Kiosk 容器中的层级、取消和返回结果；
- capability 缺失、超时和写后不一致继续 fail-closed。

### P0-2 支付与结果契约

- 将 Visa/Mastercard 精确映射到正式支付 Host；
- 零元订单已通过 `checkout.completeNoPayment` 接入 SalesSDK 正式提交，待实机覆盖折扣归零、Wallet 归零和 unknown 员工处置；
- 接入 payment result query 或制定可审计的员工核对 SOP；
- 实现 Cash 启动、员工鉴权确认和审计；
- 明确 checkout callback 与 OS Payment Projection 的最终一致关系；
- 生产前明确页面刷新后旧订单和支付未决状态的 OS 查询、幂等与员工处置契约；只有业务明确要求恢复原流程位置时，才在 Kernel 外加入最小持久化和初始化决策模块。

### P0-3 三入口真实 E2E

- Quick、Barcode、Scale 按权威流程各完成一单；
- 覆盖 Guest、初始登录和 Shell 中途登录；
- 覆盖正常金额、零元、失败、取消、unknown；
- 覆盖刷新、外部超时触发返回、设备断连和 OS 清理；
- Fake Host、Adapter contract 和真实 Kiosk 人工验收三层通过。

## 2. P1：业务完整性

### P1-1 商品和 Catalog

- 将模板内临时固定商品 ID 改为租户/门店正式称重商品配置；商品结构已经切换为 OS `queryProducts`，不得恢复本地 fallback；
- 大目录分页/虚拟滚动与分类切换性能；分类、子分类和本地搜索首版已完成；
- 缺货、下架、菜单不可用、价格变化；
- Barcode 细分 added/requiresSelection/notFound/cancelled；
- 复杂规格商品由 HDLKiosk 定制还是 Host 接管的业务决策。

### P1-2 Cart Overlay 与主商品编辑

- 展示完整定制摘要；
- 支持重新定制或重新称重，而不是普通数量 `+1`；
- 删除确认、价格变化和重算反馈；
- 促销、税、已节省金额和应付金额全部来自 Host。

### P1-3 卡券与会员

- Voucher 列表、可用性、单券规则、应用和撤销；
- customer/cart/voucher 变化后的 quote 代际验证；
- 首页会员二维码/SMS、积分和会员状态；
- 不在本地计算折扣或推断优惠命中。

### P1-4 Payment Completed 与员工运营

- Payment Completed 与 Payment Method 共用 Checkout Screen/View，复用旧版 `PaymentResultToastV2` 和 10 秒验证式 reset；已移除独立取餐号 Result Screen；
- 真实支付金额、订单号和积分变化；
- Guest claim token/二维码；
- payment unknown、Cash、reset、scale fault 的员工入口和 SOP；
- 每单结束后的会员、券和页面隐私清理。

### P1-5 称重生产化

- 商品/SKU 唯一性、`open_sold_weight` 和单位配置；
- 毛重、皮重、净重、稳定阈值、精度、舍入、超载和回零；
- 每 100g 与每 kg 计价对齐；
- Web 模拟器和真实设备全矩阵；
- 长时间运行的重连、重复订阅和读数时序。

## 3. P2：UI 还原与可达性

按 Screen 逐个完成，不把 UI 重写和业务契约改造混成一次大提交：

1. 设计 token、Shell、目标分辨率和通用状态组件；
2. Entry、广告、三入口卡、语言和 Reach Mode：英文/简中首版视觉已完成；待繁中/日文/韩文、真实首页会员扫码语义与实机微调；
3. Identity：英文/简中首版视觉和 Guest Skip 已完成；待真实二维码语义、SMS Host 与实机微调；Fulfillment：堂食/外带卡片、共享会员 Header 和 Back 悬浮栏首版已完成，待实机微调和正式履约 Host；
4. Customization：英文/简中首版商品、称重、SKU options、Next 提交 OS 加购、Shell 统一订单悬浮栏和购物车 Drawer 已完成；Scale 自动入口进入同一页面；待真秤/真实商品视觉微调、OS 折扣及优惠明细联调、OS 加购弹窗联调；
5. Catalog 与 Cart Overlay 首版视觉已完成；独立 Review/Voucher Slice 已移除，继续 Overlay 内的称重/定制重新编辑、价格变化反馈与购物车复杂规格编辑；
6. Cart Overlay 卡券区、Payment Method 和 Cash 员工等待首版视觉已完成；继续真实券列表、正式支付 Host、Payment Unknown；
7. Result 的 pickup/会员/Guest 双态、倒计时和返回首页首版已完成；继续真实积分、Guest claim QR、正式 pickup Host 与实机微调；
8. 简中、繁中、英文、日文、韩文；
9. 焦点、读屏、触摸目标、对比度和减少动效。

每个页面同时完成 loading/empty/unavailable/failed/unknown，不只还原黄金路径截图。

## 4. P2：生产质量与稳定性

- 正式 Telemetry sink 和隐私审查；
- 真实 BigSaleContext contract fixture；
- 设备和支付故障 E2E；
- 大 Catalog 性能和虚拟滚动；
- 100+ 连续开单/reset；
- 订阅、timer、Scale Runtime 和内存泄漏；
- 网络慢、OS 慢和部分 API 不可用的反馈；
- 生产开关、门店配置、回滚和员工培训。

## 5. 明确延后

出现真实需求前不实施：

- 远端 Workflow 获取、灰度和回滚；
- 通用 BPMN/低代码引擎；
- 动态 Screen 或远端 JavaScript；
- 跨品牌 Kiosk 平台；
- 包根公共导出、metadata 和 snippet；
- 用前端模拟分布式事务或金融幂等。

## 6. 下一项任务的选择方式

优先选择一个可实机验收的纵向切片，而不是按目录横向补代码。建议顺序：

1. 正式 Fulfillment + Customer Host；
2. 正式 Payment 结果/查询；
3. OS 主商品 add flow 实机联调；
4. Voucher；
5. 称重商品配置和 Cart Overlay 编辑；
6. UI Screen-by-Screen 还原。

每项任务开始前写清：业务结果、Host 契约、受影响节点、安全不变量、自动测试、实机验收和临时策略退出条件。
