durable `order.update_line_facts`
- 新增 `runUpdateLineFactsCommand()`,通过 command log 保持幂等。
- line note、common requirements、takeout flag 通过同一窄命令更新。
- `LocalServiceRuntime.updateLineFacts()` 暴露统一 runtime 入口。
Gaima POS 项目控制台 / 2026-05-22
当前稳定点:Visible POS 的行备注、常用要求、takeout flag 已经可以在配置 async local-service 后走 durable `order.update_line_facts`,同时保留未配置时的 snapshot fallback。下一步默认继续收窄 modifier / combo 写路径。
codex/pos-async-line-facts(基线 80b8176)
最新完成
还需要用户拍板
生产部署时继续使用 Node 内置 `node:sqlite`,还是改为随 Docker/Electron 打包的 native package。
未来经理备注、Close 原因、折扣原因要接入哪一个系统级或浏览器级语音输入方案。
真实硬件打印先接 LAN ESC/POS、Windows network printer、USB ESC/POS,还是继续保留手动模拟。
已确认约束
这些内容已经从“待拍板”降级为开发约束,dashboard 顶部不再把它们列为问题。
模块进度估计
百分比是用于排优先级的工程估计,不是发布承诺。
SQLite repository adapter、command log、session/lock、async runtime 主线稳定。
plain item、session/lock display、payment/Close、confirm/print、line facts 已可 async opt-in。
队列事实、路由、retry/admin 基础已稳定;真实硬件 transport 未开始。
本地 payment rows / Close lifecycle 已落地;真实 provider adapters 仍是 P2。
平台订单 adapter / inbox 边界保留,不能抢在本地订单闭环前扩大。
模块地图
继续保持小切片:每轮只迁移一条可见写路径,并更新 handoff。
| 模块 | 状态 | 完成事实 | 下一步 | 风险边界 |
|---|---|---|---|---|
| Local Runtime / DB本地离线可靠性 | 92% | SQLite schema/repository、command log、session/lock、transport、HTTP harness、async order/session runtime 已稳定。 | 继续迁移剩余 visible POS 写路径,默认从 modifier/combo add 开始。 | catalog 仍部分委托 in-memory;UI 不得直接写 SQLite。 |
| POS Order Entry前台点单 | 86% | plain item、payment/Close、confirm/print、line facts 可 async opt-in,未配置时保留 snapshot fallback。 | 把 modifier/combo add-line 迁移到 async command boundary。 | 不要混入 QR batch、split bill、provider adapter 或硬件打印。 |
| Printing System打印系统 | 72% | PrintJob queue、routing、retry/admin、worker 状态机基础已完成。 | 真实硬件 transport 等用户拍板后单独做。 | 不要把真实 ESC/POS 与当前 visible POS async 迁移混在一起。 |
| Payments支付与结账 | 62% | 本地 payment rows、manager discount、Close + customer copy 语义已落地。 | 保持 provider adapters 为 P2,先稳定本地订单事实。 | Square/Clover/Stripe 不要提前影响 local-service 核心模型。 |
| Platform Orders平台订单 | 12% | 已确认 Uber/DoorDash/Fantuan 未来应通过 local-service adapter/inbox 进入。 | 本地订单闭环稳定后再做平台 inbox。 | 平台 adapter 不得直接写 SQLite。 |
推荐队列
默认继续 Local DB + local-service 主线,不扩大到硬件、支付 provider 或平台订单。
开发护栏
每轮结束必须更新 dashboard、状态文档,并给出可复制的新 session prompt。
验证记录
npm test合并后全 workspace 测试通过。
npm run typecheckTypeScript workspace typecheck 通过。
npm run buildworkspace build 和 POS UI production build 通过。
npm run db:validatePrisma schema validate 通过。
npm run qa -w @gaima-pos/pos-uiPOS UI QA flow 通过。
新 session 复制 prompt
继续 POS Local DB + SQLite repository adapter 主线。请用中文回复。先从根目录 `D:\AI_Projects\POS System` 开始,按顺序读取 `NEXT_AGENT.md`、`docs/STATUS.md`、`docs/MEMORY.md`、`docs/CHANGELOG.md`、`docs/project-overview-infographic.html`,不要用根目录之外的旧 worktree 状态判断当前开发状态。当前完成模块是 Visible POS Async Line Facts Migration Slice:local-service 已有 durable `order.update_line_facts`,POS sync/async runtimes 支持 selected-line facts,visible POS 行备注、常用要求、takeout flag 可 async opt-in 并保留 snapshot fallback。dashboard 线上地址是 `https://gaima-pos-dashboard.pages.dev/`,dashboard 必须保持中文并验证滚动渲染。下一默认模块是 Visible POS Async Modifier/Combo Add Migration Slice:只迁移 modifier/combo add-line 可见 POS 写路径到 async local-service,保留 snapshot fallback。保持硬件打印、支付 provider、平台 adapter、split bill、WebSocket push、outbox replay、生产 SQLite packaging 在 scope 外,除非我明确改优先级。请新建 fresh ignored worktree 开发,结束前更新 dashboard/status/memory/changelog/NEXT_AGENT,并给我下一轮可复制的新 session prompt。