You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement full Telugu (te, te-IN, తెలుగు) language support across the entire FloCafe application, including the main POS app, KDS, Server App, Customer Display, Setup, Settings, thermal print/KOT labels, WhatsApp plain-text reports, and sample seed data.
Added Telugu (te / te-IN / తెలుగు) to the frontend locale registry (frontend/src/lib/i18n/languages.ts), message catalogue (frontend/src/lib/i18n/messages/te.json), Electron lifecycle status strings (main/status-messages.ts), WhatsApp export formatters (main/services/*-export.ts), and localized sample seed data (main/setup/seed-data.ts).
Extended thermal print and browser receipt rendering for the Telugu script by adding generated Telugu print labels (main/print/print-labels.generated.ts), Telugu virama (U+0C4D) and consonant range (U+0C15-U+0C39, U+0C58-U+0C5A) grapheme-cluster handling in shared/print/width.ts and shared/print/raster-canvas.ts, and Telugu font stacks across CSS and print surfaces.
Added unit, thermal/raster capability, and Playwright end-to-end test coverage for Telugu alongside updated architecture and internationalization documentation.
Risk Assessment
✅ Low: The Telugu (te / te-IN) localization addition follows established Indic locale patterns across the language registry, message catalogue, print/export font stacks, Indic virama grapheme segmentation, setup seed data, status messages, and test suites with no identified defects.
Testing
Drove all 7 Telugu (te / te-IN) user-facing scenarios live against the running FloCafe servers (:3001 POS/Setup/Customer Display/Print-Test/Reports API, :3002 Standalone KDS, and :3003 Standalone Server App) via Playwright Chromium, captured 8 screenshots plus HTML and plain-text report artifacts in the evidence directory, and ran 15 targeted i18n, thermal/raster printing, seed-data, and WhatsApp report test suites; all checks passed.
Live validation: ✅ go - 7 of 7 scenarios driven live against the product
Scenario
Result
Live
Evidence
User selects తెలుగు (TE) in the Setup wizard and sees html[lang="te-IN"][dir="ltr"] and localized Telugu onboarding steps
Waitstaff opens Standalone Server App (:3003/server-standalone) in Telugu, selects a table, adds Telugu menu items, and dispatches order to kitchen (వంటగదికి పంపు)
Customer Display (/customer-display) pairs and displays Preparing (సిద్ధమవుతోంది) and Ready for Pickup (పికప్ కోసం సిద్ధంగా ఉంది) order queues in Telugu
User previews and downloads Web Print Customer Receipt and Browser Print KOT from /print-test in Telugu with localized headers, totals, and thank-you footer
Store generates Telugu WhatsApp plain-text Daily Sales report and HTML report exports (/api/reports/daily-sales/export?format=html and /api/reports/daily-invoices/export?format=html) with Telugu font…

Evidence: WhatsApp Daily Sales plain-text report in Telugu
FloCafe హైదరాబాద్
రోజువారీ అమ్మకాల నివేదిక
వ్యాపార తేదీ: 7 నవం, 2026 (Asia/Kolkata)
ఆర్డర్లు: 2 · బిల్లులు: 2
అమ్మకాల సారాంశం
స్థూల వసూళ్లు: ₹598.50
రీఫండ్లు: ₹0.00
నికర వసూళ్లు: ₹598.50
పన్ను: ₹28.50
తగ్గింపు: ₹0.00
సర్వీస్ ఛార్జ్: ₹0.00
ప్యాకేజింగ్: ₹0.00
డెలివరీ: ₹0.00
చెల్లింపు విధానాలు
- నగదు: ₹350.00
- కార్డ్: ₹248.50
అగ్ర ఉత్పత్తులు
1. హైదరాబాదీ బిర్యానీ (1) - ₹320.00
2. పునుగులు (1) - ₹250.00
Live validation: ✅ go - 7 of 7 scenarios driven live against the product
Scenario
Result
Live
Evidence
Select Telugu (తెలుగు / TE) in the first-run Setup wizard and verify html[lang='te-IN'][dir='ltr'] and localized wizard steps
✅ pass
live
01-setup-wizard-telugu.png; npx playwright test e2e/telugu-live-evidence.spec.ts e2e/phase7-setup-print-i18n.spec.ts
Switch Main POS and Settings/Print-Test to Telugu, verify Noto Sans Telugu font family, and add Telugu sample catalog items (హైదరాబాదీ బిర్యానీ, పునుగులు) to cart
✅ pass
live
02-pos-telugu-seed-catalog.png; 03-settings-and-print-test-telugu.png; npx playwright test e2e/telugu-live-evidence.spec.ts
Open standalone Server App (:3003/server-standalone) in Telugu, select table TE-1, add Telugu catalog items, and send the order to the kitchen (వంటగదికి పంపు -> ఆర్డర్ పంపబడింది)
✅ pass
live
05-server-app-telugu.png; npx playwright test e2e/telugu-live-evidence.spec.ts
Sign into standalone KDS (:3002/kds-standalone) in Telugu and verify html[lang='te-IN'] and live kitchen ticket rendering for Telugu items
✅ pass
live
04-kds-standalone-telugu.png; npx playwright test e2e/telugu-live-evidence.spec.ts
Pair and open Customer Display (/customer-display) in Telugu and verify localized Preparing (సిద్ధమవుతోంది) and Ready for Pickup (పికప్ కోసం సిద్ధంగా ఉంది) order queues
✅ pass
live
06-customer-display-telugu.png; npx playwright test e2e/telugu-live-evidence.spec.ts
Generate and download live Web Print receipt HTML and KOT browser print preview in Telugu from /print-test, and verify complex-script raster routing and zero-width akhanda-virama cell widths for Telug…
✅ pass
live
07-web-print-receipt-and-kot-telugu.png; 07-web-print-receipt-telugu.html; npm run test:thermal-capabilities; npm run test:raster; npm run test:print-labels
Format plain-text WhatsApp daily sales reports and export Daily Sales & Daily Invoices HTML reports from the live API in Telugu (te / te-IN)
✅ pass
live
08-whatsapp-reports-telugu.png; 08-whatsapp-reports-telugu.txt; npx playwright test e2e/telugu-live-evidence.spec.ts
cd frontend && npx playwright test e2e/telugu-live-evidence.spec.ts e2e/phase7-setup-print-i18n.spec.ts --config=playwright.config.ts --project=chromium
✅ No issues found.
Live validation: ✅ go - 7 of 7 scenarios driven live against the product
Scenario
Result
Live
Evidence
User selects తెలుగు (TE) in the Setup wizard and sees html[lang="te-IN"][dir="ltr"] and localized Telugu onboarding steps
Waitstaff opens Standalone Server App (:3003/server-standalone) in Telugu, selects a table, adds Telugu menu items, and dispatches order to kitchen (వంటగదికి పంపు)
Customer Display (/customer-display) pairs and displays Preparing (సిద్ధమవుతోంది) and Ready for Pickup (పికప్ కోసం సిద్ధంగా ఉంది) order queues in Telugu
User previews and downloads Web Print Customer Receipt and Browser Print KOT from /print-test in Telugu with localized headers, totals, and thank-you footer
Store generates Telugu WhatsApp plain-text Daily Sales report and HTML report exports (/api/reports/daily-sales/export?format=html and /api/reports/daily-invoices/export?format=html) with Telugu font…
cd frontend && npx playwright test e2e/telugu-live-evidence.spec.ts e2e/phase7-setup-print-i18n.spec.ts --config=playwright.config.ts --project=chromium
Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.
• Add Telugu translations, locale selection, startup messages, and localized setup samples across
FloCafe surfaces.
• Support Telugu text in print and report fonts, and preserve conjuncts in thermal layouts.
• Extend localization, printing, setup, and live-browser tests; document the 26 supported locales.
Diagram
graph TD
A["Locale registry"] --> B["Telugu catalogue"] --> C["App surfaces"] --> G["Print renderers"]
B --> E["Print labels"] --> H["Report exports"]
A --> D["Setup samples"]
E --> G
F["Grapheme widths"] --> G
Loading
High-Level Assessment
Use the existing locale registry, catalogue, generated-label pipeline, and shared print-width helper. A separate Telugu rendering path would duplicate established behavior; broader seed-data restructuring is not necessary for this locale addition.
Files changed (39) +5464 / -340
Enhancement (15) +3978 / -103
globals.cssAdd Telugu UI font fallbacks+1/-1
Add Telugu UI font fallbacks
• Extends the global sans-serif stack with Telugu-capable fonts.
• Adds the Telugu virama to fallback grapheme segmentation so thermal wrapping and truncation do not split conjuncts. Other changes reformat existing width logic.
telugu-live-evidence.spec.tsExercise Telugu across live app surfaces+542/-0
Exercise Telugu across live app surfaces
• Adds Playwright coverage for setup, POS, printing, KDS, Server App, Customer Display, and reports. Captures screenshots and output artifacts and attempts to clean up created test data.
phase3-print-regressions.test.tsCover Telugu KOT print safety+81/-1
Cover Telugu KOT print safety
• Checks Telugu browser KOT metadata and fonts, and verifies unsupported Telugu text triggers warnings rather than being emitted through native or WebUSB paths.
• Adds intentional-English exceptions and checks for untranslated, malformed, non-NFC, or invisible text. Pins cross-surface terminology and order-number placement.
1. Failed display checks leave tokens active 🐞 Bug☼ Reliability
Description
The test revokes its customer-display token only after the display assertions succeed, rather than
in finally. If navigation or an assertion fails after token creation, the token remains active in
the shared server session, and retries can accumulate tokens toward the API’s 20-token limit.
ⓘ Recommendations generated based on similar findings in past PRs
Evidence
Token creation precedes several operations that can throw, while revocation is on the success path
and absent from finally. The settings route rejects token creation once the active-token limit is
reached.
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution
## Issue description
A failure during customer-display verification skips token revocation, leaving the token active across retries on the shared E2E server.
## Fix Focus Areas
- frontend/e2e/telugu-live-evidence.spec.ts[333-340]
- frontend/e2e/telugu-live-evidence.spec.ts[369-373]
- frontend/e2e/telugu-live-evidence.spec.ts[502-540]
## Recommended Fix
Track the token ID outside the try block and revoke it from `finally` whenever creation succeeds. Check the revocation response rather than silently accepting an unsuccessful cleanup.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
2. Telugu test tables remain in the suite 🐞 Bug☼ Reliability
Description
The test creates a table but attempts to clean it up with DELETE /api/tables/:id, an endpoint the
tables router does not provide. That request returns 404 rather than deleting the table, and the
unchecked response leaves it in the shared E2E database for the rest of the server session.
ⓘ Recommendations generated based on similar findings in past PRs
Evidence
The test saves the ID returned by table creation and later issues a delete request, but the router’s
only DELETE route is for floor labels; it has no table-ID deletion route. Playwright runs these
tests against one shared server.
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution
## Issue description
The new E2E test creates a table but its teardown calls a nonexistent table-delete endpoint, leaving fixture data behind.
## Fix Focus Areas
- frontend/e2e/telugu-live-evidence.spec.ts[230-238]
- frontend/e2e/telugu-live-evidence.spec.ts[535-538]
- main/routes/tables.ts[259-300]
## Recommended Fix
Reuse an existing fixture table, or provide a test-only teardown mechanism that actually removes the created table. Assert cleanup responses so a future unsupported request cannot pass silently.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
The unconditional WhatsApp disable teardown is absent from the PR head version of
telugu-live-evidence.spec.ts; the finally block only restores state the test itself changed
(language, orders, products, categories, customer display token).
Description
The test’s finally block calls /api/whatsapp/disable unconditionally, although the test never
enables WhatsApp or records its previous state. The E2E server seeds whatsapp_enabled as true
for other UI coverage, so running this test changes that shared setting to false even when the
Telugu checks fail early.
4. Operator guide omits Telugu✗ Dismissed
Description
Adding te to the selectable languages leaves the FloCafe page in docs.flopos.com listing only
English, Spanish, and Brazilian Portuguese. Operators consulting that guide will not see that Telugu
is available; the guide's language list was already incomplete and needs updating alongside this
addition.
Context sources
✅ Linked PRs:
🌐 PR #34
🌐 PR #10
❌ Tickets: failed to load — Ticket collection could not establish complete evidence
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intent
Implement full Telugu (
te,te-IN,తెలుగు) language support across the entire FloCafe application, including the main POS app, KDS, Server App, Customer Display, Setup, Settings, thermal print/KOT labels, WhatsApp plain-text reports, and sample seed data.Fixes #1474
What Changed
te/te-IN/తెలుగు) to the frontend locale registry (frontend/src/lib/i18n/languages.ts), message catalogue (frontend/src/lib/i18n/messages/te.json), Electron lifecycle status strings (main/status-messages.ts), WhatsApp export formatters (main/services/*-export.ts), and localized sample seed data (main/setup/seed-data.ts).main/print/print-labels.generated.ts), Telugu virama (U+0C4D) and consonant range (U+0C15-U+0C39,U+0C58-U+0C5A) grapheme-cluster handling inshared/print/width.tsandshared/print/raster-canvas.ts, and Telugu font stacks across CSS and print surfaces.Risk Assessment
✅ Low: The Telugu (te / te-IN) localization addition follows established Indic locale patterns across the language registry, message catalogue, print/export font stacks, Indic virama grapheme segmentation, setup seed data, status messages, and test suites with no identified defects.
Testing
Drove all 7 Telugu (te / te-IN) user-facing scenarios live against the running FloCafe servers (:3001 POS/Setup/Customer Display/Print-Test/Reports API, :3002 Standalone KDS, and :3003 Standalone Server App) via Playwright Chromium, captured 8 screenshots plus HTML and plain-text report artifacts in the evidence directory, and ran 15 targeted i18n, thermal/raster printing, seed-data, and WhatsApp report test suites; all checks passed.
Evidence: Downloaded Telugu Web Print Receipt HTML
Evidence: WhatsApp Daily Sales plain-text report in Telugu
FloCafe హైదరాబాద్ రోజువారీ అమ్మకాల నివేదిక వ్యాపార తేదీ: 7 నవం, 2026 (Asia/Kolkata) ఆర్డర్లు: 2 · బిల్లులు: 2 అమ్మకాల సారాంశం స్థూల వసూళ్లు: ₹598.50 రీఫండ్లు: ₹0.00 నికర వసూళ్లు: ₹598.50 పన్ను: ₹28.50 తగ్గింపు: ₹0.00 సర్వీస్ ఛార్జ్: ₹0.00 ప్యాకేజింగ్: ₹0.00 డెలివరీ: ₹0.00 చెల్లింపు విధానాలు - నగదు: ₹350.00 - కార్డ్: ₹248.50 అగ్ర ఉత్పత్తులు 1. హైదరాబాదీ బిర్యానీ (1) - ₹320.00 2. పునుగులు (1) - ₹250.00Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
✅ **Review** - passed
✅ No issues found.
✅ No issues found.
✅ **Test** - passed
✅ No issues found.
npm run i18n:checknpm run test:print-labelsnpm run test:phase7-setup-i18nnpm run test:status-messagesnpm run test:thermal-capabilitiesnpm run test:rasternpm run test:print-kernelnpm run test:rtl-setup-auth-settingsnpm run test:rtl-dashboard-pos-commonnpm run test:rtl-kds-server-whatsappnpx ts-node --transpile-only -P tests/tsconfig.json tests/browser-receipts.test.tsnpx ts-node --transpile-only -P tests/tsconfig.json tests/decoupled-ui-locale.test.tsnpx ts-node --transpile-only -P tests/tsconfig.json tests/i18n-audit-remediations.test.tsnpx ts-node --transpile-only -P tests/tsconfig.json tests/phase3-print-regressions.test.tsnpx ts-node --transpile-only -P tests/tsconfig.json tests/reports-whatsapp.test.tsnpm run docs:checkcd frontend && npx playwright test e2e/telugu-live-evidence.spec.ts e2e/phase7-setup-print-i18n.spec.ts --config=playwright.config.ts --project=chromium✅ No issues found.
cd frontend && npx playwright test e2e/telugu-live-evidence.spec.ts e2e/phase7-setup-print-i18n.spec.ts --config=playwright.config.ts --project=chromiumnpm run test:translationsnpm run test:print-labelsnpm run test:print-kernelnpm run test:thermal-capabilitiesnpm run test:browser-receiptsnpm run test:decoupled-ui-localenpm run test:i18n-audit-remediationsnpm run test:rtl-setup-auth-settingsnpm run test:rtl-dashboard-pos-commonnpm run test:rtl-kds-server-whatsappnpm run test:status-messagesnpm run test:phase7-setup-i18nnode tests/run-electron-node-test.cjs tests/reports-whatsapp.test.tsnpx ts-node --transpile-only -P tests/tsconfig.json tests/raster-printing.test.ts./node_modules/.bin/electron --no-sandbox tests/raster-renderer-electron.test.cjs✅ **Document** - passed
✅ No issues found.
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ No issues found.
✅ **Push** - passed
✅ No issues found.
✅ No issues found.