Conversation
…n watching in Kiosk, and add product list screen to Manager.
…and supporting services for kiosk configuration.
…nd Flutter expert skill documentation.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 12e211cff7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (!matched) return false; | ||
| _confirmPayment(); | ||
| return true; |
There was a problem hiding this comment.
Persist fallback notification match before confirming payment
When _startLatestPaymentFallback succeeds, _tryConfirmFromLatest calls _confirmPayment() directly, bypassing the normal PaymentNotificationWatchService match path that writes *_notify_checked_amount/matched key fields and checks key reuse. In the exact scenario this fallback targets (snapshot/event watch misses but latest-notification polling finds a hit), the order is confirmed in UI but remains unpaid in storage, and duplicate-notification dedupe is skipped for future orders.
Useful? React with 👍 / 👎.
| final alipayFold = | ||
| double.tryParse(_alipayDiscountController.text.trim()) ?? 10.0; | ||
| final wechatFold = | ||
| double.tryParse(_wechatDiscountController.text.trim()) ?? 10.0; |
There was a problem hiding this comment.
Reject invalid discount text instead of defaulting to 10
These parses coerce any non-numeric input to 10.0, so malformed values like 9,9 or accidental text silently pass validation and get saved as full price instead of surfacing an error. That can misconfigure provider discounts and cause downstream payment amount checks to mismatch unexpectedly during auto-confirm.
Useful? React with 👍 / 👎.
audioplayersand a dedicated service.