Browsers abort the outer Save settings form when a Reinstall package form is nested inside it. Move reinstall outside the main form and harden update validation so package failures cannot block saving.
Co-authored-by: Cursor <cursoragent@cursor.com>
Queue Core stays generic; selecting Healthcare, Banking, Restaurant, and other industries installs departments, stages (queues), service points, workflows, terminology, and announcement profiles without code changes per vertical. Care-linked orgs skip stage materialization so Care remains the clinical provisioner.
Co-authored-by: Cursor <cursoragent@cursor.com>
Counters gain destination/staff metadata; tickets can be pre-assigned to a
service point with assigned_only queues for healthcare while shared_pool
preserves generic bank/government behavior. Display and announcements expose
ticket, staff, and destination clearly for Care and public boards.
Co-authored-by: Cursor <cursoragent@cursor.com>
Care needs POST /tickets on the service-auth stack so check-in and
department handoffs can create queue tickets without Sanctum.
Co-authored-by: Cursor <cursoragent@cursor.com>
Specialty module activation needs idempotent queue/counter upserts
(by external_key or name+branch) plus soft deactivate, without
opening Queue admin for each Care specialty.
Co-authored-by: Cursor <cursoragent@cursor.com>
Filter now-serving to the latest called/serving ticket per destination so historical calls no longer crowd the public board, and scale ticket cards so numbers no longer clip destination text.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use count-aware ticket grids and complete service destinations so active calls stay legible without clipping across TV and mobile layouts.
Co-authored-by: Cursor <cursoragent@cursor.com>
Org name, branches, ticket customers, and staff Members now come from
DemoWorld so Queue continuity matches Care/Frontdesk across the suite.
Also resolve organization by owner_ref when metadata.queue.organization_id
is missing, and skip reseed-on-login for DemoWorld staff emails.
Co-authored-by: Cursor <cursoragent@cursor.com>
act_runner v0.2.x does not expose gitea.run_attempt, so release archive and
workspace paths rendered with a trailing dash. Use gitea.run_id only, matching
the Meet/CRM deploy workflows.
Demo Free/Pro/Enterprise accounts wipe and reload sample data on
authorization-code SSO callbacks so every sales walkthrough starts clean.
Co-authored-by: Cursor <cursoragent@cursor.com>
Handoff now frees the counter, ends the service session, and requeues
the same ticket for the next department — critical for hospital flows
like doctor → lab.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the once-per-session sessionStorage guard (which suppressed the loading
screen after its first appearance) with entry-aware logic: show on app entry
and reloads, suppress on internal link navigations and back/forward.
Match Analytics and Reports styling with shadow panels on the filter bar
and audit table instead of bordered card wrappers.
Co-authored-by: Cursor <cursoragent@cursor.com>
Analytics, Reports, Feedback, and Branches use simple headers again;
report and related show views use shadow panels instead of card borders.
Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce shared x-qms.page-hero with summary stats across queues,
tickets, counters, admin pages, and insights; remove bordered cards on
Analytics, Reports, Feedback, and Branches list views.
Co-authored-by: Cursor <cursoragent@cursor.com>
Route model binding fell back to numeric id after route:cache; models now
resolve by uuid so Care and Frontdesk counter consoles work in production.
Co-authored-by: Cursor <cursoragent@cursor.com>
Queue orgs were created with care_enabled false, blocking counters API;
provision now syncs the caller integration flag automatically.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace local member UUID invites with platform email invites, SSO post-auth
redirect, and provisioner-backed pending access until accept.
Co-authored-by: Cursor <cursoragent@cursor.com>
Extract the Pro upsell into a shared partial so free orgs see View plans on the dashboard, not only in the sidebar.
Co-authored-by: Cursor <cursoragent@cursor.com>
When 6/12/24 month Paystack is selected, Pro and Business prices display the full term amount instead of /mo.
Co-authored-by: Cursor <cursoragent@cursor.com>
Enterprise charges per active branch (GHS 299+) with wallet subscribe/renew; sidebar and dashboard upsell no longer gated behind settings.view.
Co-authored-by: Cursor <cursoragent@cursor.com>
Welcome screen, choice cards, form progress, and success state now follow the same lobby-tablet visual language with idle reset.
Co-authored-by: Cursor <cursoragent@cursor.com>
Customers can pick a service, optionally enter details, and receive a ticket on a branded touchscreen flow with admin-configurable queues and auto-reset.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the small pill with a two-column layout, accent bar, and prominent counter name for waiting-area displays.
Co-authored-by: Cursor <cursoragent@cursor.com>
Lock layout to 100dvh without scroll, scale ticket cards with clamp(), and replace powered-by text with the dark wordmark.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove waiting, estimate, and service queue sidebar; replace text header with customer logo when uploaded.
Co-authored-by: Cursor <cursoragent@cursor.com>
Server-render initial payload, poll with same-origin relative URLs, fall back to branch queues when none assigned, and improve contrast so stats remain visible if custom CSS is missing.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add corporate layout, live preview, URL copy, queue details, and a polished TV display with clock, stats sidebar, and branded now-serving cards.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add tap-to-enable speech overlay, stop marking announcements played on TTS errors, pick voices by locale, and scope pending announcements to the display's queues.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace Alpine-incompatible Set and stuck speaking lock with a plain-object queue; resume speechSynthesis and exempt display ack from CSRF.
Co-authored-by: Cursor <cursoragent@cursor.com>
Poll displays every 1.2s with client-side TTS ack; expose service API for sibling apps; redesign tickets, counters, and staff console.
Co-authored-by: Cursor <cursoragent@cursor.com>
Match Care/Frontdesk nav icon styling, admin icons, and settings footer; add proper table layouts and empty states for Devices and Displays.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use class-only Tailwind dark variant and color-scheme: light so the app shell ignores system dark preferences.
Co-authored-by: Cursor <cursoragent@cursor.com>
Point layout partials at qms routes and add wallet/afia endpoints so shared shell renders on queue.ladill.com.
Co-authored-by: Cursor <cursoragent@cursor.com>