本地运行边界
- 每家店应该有自己的本地 DB。
- 总部/总店 master data 可以在云端。
- 电脑端 local-service 是本地订单、打印队列和本地 DB 的入口。
Pinned clarification frame
已确认的内容会同步到下方“已确认决策”;未回答的问题不会被当成默认答案,也不会被偷偷扩大成新 scope。
这些是当前开发继续前进时可以当作约束的事实;没有列在这里的内容仍然需要你拍板。
POS 总控开发看板 / 2026-05-18
当前主线仍然是把真实可用的单店流程打通:点单、厨房票、买单、后台配置、打印队列。最新稳定点已经补上 print queue retry/backoff、adapter registry 和队列管理页;同桌 QR/iPad/电脑 append-only 加菜 runtime 已先落在 local-service,下一步继续围绕本地 DB、session/lock 和 durable queue 拍板。
基于初始 backend design、模块路线图、当前 package scripts、local-service/repository 和 Prisma schema 的快速取证。
百分比是基于当前文档与代码 checkpoint 的工程估算,用于总控取舍,不代表商业完工率。
点单、确认、厨房 queue、付款、账单 queue 与后台队列管理已成主链路;还缺本地 DB、真实硬件和更完整的异常运营面。
AdminData 到 StoreData 桥接稳定;catalog、printer settings 已进入结构化 action 路线。
queue、render、worker、routing、retry/backoff、失败原因、stuck recovery、adapter registry 和后台队列页已完成;ESC/POS 与 LAN/USB/Windows transport adapter 尚未完成。
service/repository 边界清楚,但长期持久化仍在 localStorage / in-memory 过渡层。
当前最应该守住的是这条闭环,后续所有模块都应服务它。
POS UI 已走 service command runtime,modifier/combo/discount/void 等关键路径逐步归位。
Order facts 从 UI sidecar 迁入 core/local-service,付款金额和行状态由 service 计算。
confirm/payment 会生成结构化 PrintJob,kitchen ticket 支持 lineIds 范围。
due job 被标记 printing,render 后交给 adapter,成功或失败推进状态机。
bill、customer copy、kitchen department 已按后台 printer routing 选择 device。
尚未接 ESC/POS、USB、LAN、Windows printer,也没有 discovery;adapter registry 边界已建立。
用筛选框快速看哪些模块可以继续开工。状态是面向开发总控的归类。
| 模块 | 进度 | 状态 | 已经完成 | 下一步 | 主要风险 |
|---|---|---|---|---|---|
| Catalog / Admin Data后台资料源 | 72% | 已建立主边界 | AdminData -> StoreData,catalog、modifier、combo、库存、printer settings 结构化命令。 | 改善 modifier UX、图片/二维码 asset 字段、发布版本语义。 | 不要回到 JSON/text config;AI action 也必须走结构化命令。 |
| POS Order Entry前台点单 | 76% | 已建立主边界 | 点单、modifier/combo、确认、付款、折扣、行备注、下厨、作废请求多条路径已接 service runtime。 | 继续收束 non-POS fallback,补强桌台地图和异常状态处理。 | UI sidecar 与 service facts 不能重新分裂。 |
| Printing System打印系统 | 72% | 已建立主边界 | PrintJob queue、status machine、consumer、render adapter、printer settings、worker routing、retry/backoff、stuck recovery、adapter registry 和队列管理页已完成。 | 先做 Local DB + Multi-client Runtime,把 orders、queue、admin settings 和 table/order lock 迁出 localStorage;真实硬件/ESC/POS 另开模块并先确认。 | 硬件失败不能阻塞 confirm/payment;routing error 要可见,retry metadata 要可追踪。 |
| Local Runtime / DB本地离线可靠性 | 46% | 当前主线 | core/local-service 边界清楚,已确认每店本地 DB、iPad 无 DB、电脑 local-service 统一写入;SQLite 可作为本地轻量 DB,并兼容 Docker volume 与未来平台 adapter;SQLite schema foundation、PRAGMA、migration SQL 和关键索引已落地。 | 选择 SQLite runtime driver/packaging,再实现 local-service repository adapter,把 orders/queue/admin settings 迁入本地 DB;QR cart 批量失败语义仍需拍板。 | in-memory snapshot runtime 和 browser localStorage 不能成为最终架构;UI/iPad/QR 也不能直接写 SQLite;driver 选择不要渗透到业务服务。 |
| Payments支付 | 48% | Service slice done | Service totals, legacy full-payment path, payment-record service entry, balance owing helper, manager discount guard, and explicit Close command now exist in local-service. | Next user-visible slice: migrate POS UI payment screen to payment rows, balance owing, manager discount, and Close. Split groups, Typeless, provider adapters, and SQLite stay separate. | Do not treat payment record as table clearing. Legacy POS UI payment button still needs migration. |
| Online Orders线上订单 | 12% | 后续阶段 | source/channel 与 price level 已预留,scheduled dispatch 语义已开始清晰。 | 先设计 direct online order API,再做平台 adapter。 | 不要在单店闭环未稳时引入平台分单复杂度。 |
| Multi-store Publishing多店发布 | 22% | 后续阶段 | master scope 和复制到门店入口已存在。 | 补 publish/version、差异对比、发布到门店的审批语义。 | 多店只是配置发布方式,不能主导单店订单生命周期。 |
| Workflow / QA开发节奏 | 85% | 已建立主边界 | Superpowers spec/plan/TDD/docs/commit 流程稳定,全量 qa 最近通过。 | 保持每轮一个主模块,完成前跑全量验证并回写 STATUS/CHANGELOG/MEMORY。 | 不要用大杂烩 commit 模糊架构决策。 |
按目前状态,Local DB 与多端协作锁比新业务线更能推进真实单店可用闭环。
这些是接下来开发时最容易被打破、也最值得反复检查的约束。
这条线说明当前项目正在沿打印系统闭环连续推进。
currentadd table append plus payment records/close service slices
4e77683add print adapter registry
8ed2e3badd print queue reliability
d80d0a2route print worker jobs to configured printers
25c74f0add admin printer settings UI