f02f78a97c
CI/CD / CI · API (dotnet build + test) (push) Successful in 42s
CI/CD / CI · Admin API (dotnet build) (push) Successful in 31s
CI/CD / CI · Dashboard (tsc) (push) Successful in 1m6s
CI/CD / CI · Admin Web (tsc) (push) Successful in 38s
CI/CD / CI · Website (tsc) (push) Successful in 45s
CI/CD / CI · Koja (tsc) (push) Successful in 49s
CI/CD / Deploy · all services (push) Successful in 2m37s
The menu/tables are branch-scoped. v2 used the raw stored branchId, which is null or stale for users who never opened the classic POS (it has no branch picker), so getBranchMenu returned an empty menu. Now v2 fetches /branches, auto-selects the first valid branch (self-healing the stored id), and loads the branch menu + tables + order submission against that resolved branch — matching the classic POS exactly. Also adds a visible "menu failed to load / retry" state instead of a silent empty grid. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>