Commit Graph
74 Commits
Author SHA1 Message Date
isaaccladandCursor a4d8775a82 Add industry packages that provision workflow stages on onboarding.
Deploy Ladill Queue / deploy (push) Successful in 1m39s
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>
2026-07-17 18:00:31 +00:00
isaaccladandCursor 0854b431bc Add service-point routing so call-next cannot steal assigned tickets.
Deploy Ladill Queue / deploy (push) Successful in 2m17s
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>
2026-07-17 17:21:56 +00:00
isaaccladandCursor 2d1f8c1eff chore: retrigger deploy for Care ticket issue API.
Deploy Ladill Queue / deploy (push) Successful in 2m6s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 16:30:29 +00:00
isaaccladandCursor 0275ec603d Allow Care service API to issue tickets.
Deploy Ladill Queue / deploy (push) Has started running
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>
2026-07-17 16:27:51 +00:00
isaaccladandCursor 9edf573d39 Expose Care service-token APIs to create queues and counters.
Deploy Ladill Queue / deploy (push) Successful in 1m0s
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>
2026-07-17 16:03:16 +00:00
isaaccladandCursor 01792b38e7 Fix display board to one ticket per counter
Deploy Ladill Queue / deploy (push) Successful in 1m16s
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>
2026-07-17 15:51:03 +00:00
isaaccladandCursor 9e52ddd1e7 Redesign public display for busy queues
Deploy Ladill Queue / deploy (push) Successful in 1m19s
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>
2026-07-17 15:06:44 +00:00
isaaccladandCursor 8ff100a55b Wire Queue demo seeder to shared DemoWorld
Deploy Ladill Queue / deploy (push) Successful in 1m3s
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>
2026-07-17 13:35:17 +00:00
isaacclad ef7ceb076f Fix deploy tmp paths: drop unset gitea.run_attempt.
Deploy Ladill Queue / deploy (push) Successful in 1m20s
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.
2026-07-17 12:54:09 +00:00
isaaccladandCursor c6d482db1b Reseed demo tenants after each SSO login.
Deploy Ladill Queue / deploy (push) Successful in 1m32s
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>
2026-07-17 11:20:00 +00:00
isaaccladandCursor f15857d76f Add Queue demo:seed for ticket walkthroughs.
Deploy Ladill Queue / deploy (push) Successful in 1m53s
Seed branches, queues, counters, and tickets with plan-aware limits and reset.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 10:03:46 +00:00
isaacclad 17d888fdf7 fix(email): use client/org name as From display, not Ladill product
Deploy Ladill Queue / deploy (push) Successful in 43s
Customer-facing outbound mail should appear from the business (organizer,
clinic, company, location), not the Ladill product brand.
2026-07-16 12:01:22 +00:00
isaacclad 4647fd97e0 Drop setup fee from Enterprise onboarding copy.
Deploy Ladill Queue / deploy (push) Successful in 32s
Dedicated onboarding remains; setup fees apply only to VPS and dedicated servers.
2026-07-16 10:06:09 +00:00
isaacclad 7b2722f471 Gate ticket handoff as Pro; reorder settings cards.
Deploy Ladill Queue / deploy (push) Successful in 1m19s
Transfer between queues requires Pro (console UI, API, and plans copy).
Branches & team now sits after Organization on the settings page.
2026-07-16 09:54:53 +00:00
isaacclad 26c9edc131 Nest Branches and Team under Settings as Pro features.
Deploy Ladill Queue / deploy (push) Successful in 50s
Match Frontdesk: settings cards and nested routes, Pro-gated access,
and legacy /admin redirects to /settings/branches and /settings/team.
2026-07-16 09:48:32 +00:00
isaacclad 8be3eaeb4b Add branch count control to Queue plans page.
Deploy Ladill Queue / deploy (push) Successful in 33s
Match Care/Frontdesk: branches stepper next to billing period, live
totals, and checkout charges for the selected seat count.
2026-07-16 09:36:36 +00:00
isaacclad 8892316664 Bill Queue Pro per active branch like Enterprise.
Deploy Ladill Queue / deploy (push) Successful in 33s
Show /branch/mo pricing with live branch totals on the plans page,
charge subscribe/prepaid/renewals by branch count, and store pro_billed_branches.
2026-07-16 09:33:03 +00:00
isaacclad 4e45ef4b65 Raise Pro and Enterprise by GHS 1500; add hardware to Pro.
Deploy Ladill Queue / deploy (push) Successful in 53s
Pro is GHS 2490/mo and Enterprise GHS 4490/branch/mo. Pro now lists
Ladill-provided kiosk, display, and audio system.
2026-07-16 09:28:09 +00:00
isaacclad f90c00abbe Raise suite Pro and Business/Enterprise prices tenfold.
Deploy Ladill Queue / deploy (push) Successful in 47s
Free tiers stay free. Paid defaults and marketing copy use the new GHS amounts (e.g. Pro 79→790, Business 249→2490).
2026-07-15 13:54:21 +00:00
isaacclad 1e44285132 Sync launcher after Mini/Merchant/Give pause.
Deploy Ladill Queue / deploy (push) Successful in 1m16s
2026-07-15 01:26:41 +00:00
isaaccladandCursor 1e2701679e Hide Queue Pro upgrade banner from team members.
Deploy Ladill Queue / deploy (push) Successful in 29s
Staff without billing access see Report Issue instead of plan upsells.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 23:06:44 +00:00
isaaccladandCursor 7c8a8f889e Replace Upgrade to Pro with Report Issue for staff.
Deploy Ladill Queue / deploy (push) Successful in 38s
Non-owners submit Queue issues to Ladill admin via Identity.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 22:23:48 +00:00
isaaccladandCursor 6e66f7c584 Scope Queue team members and add mailbox invite picker.
Deploy Ladill Queue / deploy (push) Successful in 53s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 21:59:51 +00:00
isaaccladandCursor d2f5ff11d2 Fix queue handoff so tickets keep their number across services.
Deploy Ladill Queue / deploy (push) Successful in 40s
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>
2026-07-14 21:22:01 +00:00
isaaccladandCursor d938acf909 Add Sent via Ladill Queue to branded outbound emails.
Deploy Ladill Queue / deploy (push) Successful in 1m1s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-12 20:14:39 +00:00
isaaccladandCursor 2c2fcf9659 Add settings logo upload and brand queue notification emails.
Deploy Ladill Queue / deploy (push) Successful in 55s
Let orgs manage logos in settings and render customer-facing mail with company branding.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-12 20:08:16 +00:00
isaaccladandCursor b798819191 Replace native browser confirms with Ladill confirm dialogs.
Deploy Ladill Queue / deploy (push) Successful in 1m20s
Mobile ticket cancel now uses the shared modal UI instead of window.confirm.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-12 17:51:23 +00:00
isaacclad d5aa8b8da6 Remove desktop header search from app topbars.
Deploy Ladill Queue / deploy (push) Successful in 1m0s
Drop the lg+ topbar search field; mobile search entry points are unchanged.
2026-07-09 06:57:33 +00:00
isaaccladandCursor cfef8bee06 Replace ghost action links with shared btn components in Queue.
Deploy Ladill Queue / deploy (push) Successful in 1m6s
Aligns kiosk, appointment, queue, and admin destructive actions with the Frontdesk pill-button pattern.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-09 06:38:09 +00:00
isaacclad 5780ace7d0 Sync app launcher from registry
Deploy Ladill Queue / deploy (push) Successful in 58s
2026-07-07 23:13:59 +00:00
isaacclad 9fd5d96d00 Show boot splash on app open/reload for logged-in users.
Deploy Ladill Queue / deploy (push) Successful in 1m26s
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.
2026-07-07 20:35:45 +00:00
isaacclad 60fe4b22e8 Sync app launcher from registry
Deploy Ladill Queue / deploy (push) Successful in 52s
2026-07-07 14:43:11 +00:00
isaacclad d8316f04d7 Prefer system npm in deploy CI when portable node-gyp is broken.
Deploy Ladill Queue / deploy (push) Successful in 45s
Falls back to downloading Node only when host npm is unavailable, fixing npm ci failures on ladill-deploy-runner.
2026-07-07 00:46:54 +00:00
isaacclad 865e1be1e4 Sync app launcher from registry
Deploy Ladill Queue / deploy (push) Failing after 3s
2026-07-07 00:22:09 +00:00
isaaccladandCursor 725d0b346a Remove bordered cards from Audit log page.
Deploy Ladill Queue / deploy (push) Successful in 48s
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>
2026-07-06 10:25:13 +00:00
isaaccladandCursor 89300fc6d6 Drop heroes from analytics pages and remove bordered show cards.
Deploy Ladill Queue / deploy (push) Successful in 43s
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>
2026-07-06 08:21:35 +00:00
isaaccladandCursor bf879d6abe Add hero sections to Queue index pages and soften analytics cards.
Deploy Ladill Queue / deploy (push) Successful in 36s
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>
2026-07-06 07:32:10 +00:00
isaaccladandCursor 29bf896f21 Fix counter console 404 when routes are cached.
Deploy Ladill Queue / deploy (push) Successful in 47s
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>
2026-07-05 22:31:54 +00:00
isaaccladandCursor ebfc9693c7 Fix Care integration not enabled after provision.
Deploy Ladill Queue / deploy (push) Successful in 58s
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>
2026-07-05 22:06:02 +00:00
isaaccladandCursor 1abc99fa1f Standardize settings pages on shared centered card layout.
Deploy Ladill Queue / deploy (push) Successful in 32s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-05 21:11:29 +00:00
isaacclad 9b29aad6d5 Use mobile icon button for New queue and sync mobile nav partials.
Deploy Ladill Queue / deploy (push) Successful in 38s
Replace text-only queue create button on mobile dashboard.
2026-07-03 22:41:00 +00:00
isaacclad 8346e7cfb3 Sync app launcher from registry
Deploy Ladill Queue / deploy (push) Successful in 1m18s
2026-07-01 17:05:25 +00:00
isaaccladandCursor d0fbbe0672 Switch team invites to email-only flow via identity API.
Deploy Ladill Queue / deploy (push) Successful in 55s
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>
2026-07-01 00:25:12 +00:00
isaaccladandCursor a0b5230c4c Add dashboard upgrade banner for free Queue plans.
Deploy Ladill Queue / deploy (push) Successful in 1m8s
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>
2026-06-30 18:13:16 +00:00
isaaccladandCursor 6e7255b9f5 Add tests for throttled platform session middleware.
Deploy Ladill Queue / deploy (push) Successful in 39s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 16:51:53 +00:00
isaaccladandCursor d2803fafb5 Throttle platform SSO session checks to cut per-request auth latency.
Deploy Ladill Queue / deploy (push) Successful in 1m26s
Verify auth.ladill.com at most once every 90s; recommend Redis for session/cache in .env.example.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 16:49:09 +00:00
isaaccladandCursor a49c049ff5 Show consolidated prepaid totals on plan pricing cards.
Deploy Ladill Queue / deploy (push) Successful in 51s
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>
2026-06-30 11:39:25 +00:00
isaaccladandCursor 07998b29b9 Add Paystack prepaid billing and fix sidebar footer spacing.
Deploy Ladill Queue / deploy (push) Successful in 2m27s
Monthly Pro/Enterprise stays on wallet; 6/12/24 month plans checkout via Paystack.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 01:55:38 +00:00
isaaccladandCursor 165c7238fe Add Queue Enterprise billing and visible upgrade CTAs for all roles.
Deploy Ladill Queue / deploy (push) Successful in 1m32s
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>
2026-06-30 01:23:36 +00:00
isaaccladandCursor 0770faaa9f Add Queue Pro billing, renewal, and scheduler.
Deploy Ladill Queue / deploy (push) Successful in 42s
Organizations can upgrade from wallet with plan expiry enforcement and nightly qms:pro-renew charges.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 01:07:24 +00:00
isaaccladandCursor 1d50f10c3f Add Queue plan price defaults for Pro and Enterprise.
Deploy Ladill Queue / deploy (push) Successful in 45s
Set Pro at GHS 99/mo and per-branch Enterprise at GHS 299+ in qms config.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 00:32:54 +00:00
isaaccladandCursor c3e1609578 Remove queue prefix badges from kiosk service cards.
Deploy Ladill Queue / deploy (push) Successful in 27s
Service selection shows the service name only, without the colored letter icon.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 23:38:13 +00:00
isaaccladandCursor 4a608fedf2 Restyle Queue kiosk to match Frontdesk kiosk design.
Deploy Ladill Queue / deploy (push) Successful in 35s
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>
2026-06-29 23:31:29 +00:00
isaaccladandCursor 492eec9cda Add self-service kiosk for queue ticket issuance.
Deploy Ladill Queue / deploy (push) Successful in 36s
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>
2026-06-29 23:25:51 +00:00
isaaccladandCursor d982e28191 Enforce Figtree across the entire public display page.
Deploy Ladill Queue / deploy (push) Successful in 57s
Apply font-sans on html/body and cascade Figtree to all display text including overlays.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 23:17:09 +00:00
isaaccladandCursor c1113bc5a2 Simplify now-serving card to a single centered column.
Deploy Ladill Queue / deploy (push) Successful in 33s
Remove counter arrow line and stack ticket number above desk name with clean alignment.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 23:16:00 +00:00
isaaccladandCursor 615a07adac Use Figtree on public display and drop monospace clock.
Deploy Ladill Queue / deploy (push) Successful in 30s
Load Figtree from Bunny Fonts and apply sans-serif to the waiting-area screen.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 23:14:05 +00:00
isaaccladandCursor 6357c29c8b Remove Live badge from public display header.
Deploy Ladill Queue / deploy (push) Successful in 33s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 23:11:55 +00:00
isaaccladandCursor 7e3e9fba6b Redesign now-serving card with split ticket and counter panels.
Deploy Ladill Queue / deploy (push) Successful in 29s
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>
2026-06-29 23:11:06 +00:00
isaaccladandCursor ad615325b6 Put Live badge inline with date on public display header.
Deploy Ladill Queue / deploy (push) Successful in 30s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 23:09:16 +00:00
isaaccladandCursor f5f1d0b9fb Remove queue name from public display ticket cards.
Deploy Ladill Queue / deploy (push) Successful in 42s
Customers already know which area they are in; show ticket number and counter only.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 23:06:41 +00:00
isaaccladandCursor 3d79dfad10 Fit public display to viewport and use Ladill Queue logo in footer.
Deploy Ladill Queue / deploy (push) Successful in 39s
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>
2026-06-29 23:05:40 +00:00
isaaccladandCursor 98d14a213a Lighten public display and show org or Ladill Queue logo.
Deploy Ladill Queue / deploy (push) Successful in 36s
Remove waiting, estimate, and service queue sidebar; replace text header with customer logo when uploaded.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 22:59:19 +00:00
isaaccladandCursor 326769204d Fix public display not showing queue stats and ticket data.
Deploy Ladill Queue / deploy (push) Successful in 43s
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>
2026-06-29 22:51:29 +00:00
isaaccladandCursor 2243ccf95a Redesign display admin show page and public waiting-area screen.
Deploy Ladill Queue / deploy (push) Successful in 33s
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>
2026-06-29 22:42:02 +00:00
isaaccladandCursor af764f77fb Fix display voice prompts requiring browser unlock and failed acks.
Deploy Ladill Queue / deploy (push) Successful in 28s
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>
2026-06-29 22:21:56 +00:00
isaacclad 3fd7c22ec9 Add Queue to app launcher config and icon.
Deploy Ladill Queue / deploy (push) Has been cancelled
2026-06-29 22:06:09 +00:00
isaaccladandCursor 5a8844410f Fix display voice announcements broken by poll refactor.
Deploy Ladill Queue / deploy (push) Successful in 35s
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>
2026-06-29 22:01:45 +00:00
isaaccladandCursor c5c2c02e47 Define btn-secondary to match btn-primary sizing and alignment.
Deploy Ladill Queue / deploy (push) Successful in 28s
Secondary actions were unstyled links beside pill buttons; add shared btn-group helper for form rows.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 21:59:14 +00:00
isaaccladandCursor bc6bf0a07c Faster voice announcements, Care/Frontdesk API, and console UI polish.
Deploy Ladill Queue / deploy (push) Successful in 28s
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>
2026-06-29 21:51:13 +00:00
isaaccladandCursor 051372672b Polish Queue Devices empty state and align sidebar with other apps.
Deploy Ladill Queue / deploy (push) Successful in 38s
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>
2026-06-29 21:22:44 +00:00
isaaccladandCursor 660cc8d351 Disable OS dark mode so Queue stays light-themed.
Deploy Ladill Queue / deploy (push) Successful in 26s
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>
2026-06-29 20:58:14 +00:00
isaaccladandCursor 6bb181bbc1 Fix onboarding 500 by replacing leftover Frontdesk route references.
Deploy Ladill Queue / deploy (push) Successful in 38s
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>
2026-06-29 20:47:42 +00:00
isaaccladandCursor cca98eefd2 Initial Ladill Queue release — enterprise QMS standalone app.
Deploy Ladill Queue / deploy (push) Successful in 56s
Phases 1–6: tickets, counters, displays, appointments, workflows, rules, analytics, reports, feedback, admin, device API, and Gitea deploy workflow for queue.ladill.com.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 20:19:52 +00:00