f985deb233
Two bugs made "N در صف" persist even when online: - The badge counted poisoned ops (failed after 5 retries, never removed), so it never returned to 0. Now the badge counts only retryable (active) ops; poisoned ops are tracked separately as failedCount and surfaced as a red "N failed — clear" chip the user can tap to discard them. - The manual-retry click drained the LEGACY order_queue, not the real outbox the app actually uses — so clicking did nothing for stuck items. It now drains the outbox (drainOutbox), invalidates queries on success, and recounts. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Meezi Dashboard
Next.js 14 POS dashboard for Meezi (میزی).
Setup
cd web/dashboard
npm install
cp .env.example .env.local
npm run dev
Open http://localhost:3000/fa/login
Ensure the API is running at NEXT_PUBLIC_API_URL (default https://localhost:7208).
Demo login
- Phone:
09121234567 - OTP: check API console log (
DEV OTP for ...) when Kavenegar is not configured
Features (Sprint 4)
- i18n:
fa(default, RTL),ar(RTL),en(LTR) - Dashboard layout with RTL-aware sidebar
- POS screen: menu grid + cart + order submit
- KDS screen: live orders + SignalR + status advance
- Placeholder pages for upcoming modules