Commit Graph
54 Commits
Author SHA1 Message Date
isaacclad 32a174c826 Simplify destination helper copy on the link detail page.
Deploy Ladill Link / deploy (push) Successful in 2m26s
2026-07-16 20:16:27 +00:00
isaacclad efe7d43f4a Remove source-app and dynamic-destination badges from link detail.
Deploy Ladill Link / deploy (push) Has been cancelled
2026-07-16 20:15:52 +00:00
isaacclad 86cac606e0 Surface destination edits as the core dynamic short-link feature.
Deploy Ladill Link / deploy (push) Successful in 1m40s
Move destination editing to the top of the link page, clarify that the short URL never changes, prevent caches from pinning old redirects, and test that later destination updates take effect immediately.
2026-07-16 20:12:14 +00:00
isaacclad d45f4b5c58 Make Ladill Link short URLs fully dynamic at click time.
Deploy Ladill Link / deploy (push) Successful in 1m55s
Forward query strings and path suffixes to the live destination, resolve public hosts from config/custom domains instead of hardcoding ladl.link, and keep proxy Location rewrites on the visitor host.
2026-07-16 20:05:43 +00:00
isaacclad a9ddd600db Remove Merchant, Mini, and Give from the app launcher.
Deploy Ladill Link / deploy (push) Successful in 2m16s
Registry marks them soon pending BoG licensing; propagate the clean launcher so every app matches.
2026-07-15 13:28:38 +00:00
isaaccladandCursor 520284d766 Exempt Mini Pay POSTs from Link CSRF checks.
Deploy Ladill Link / deploy (push) Successful in 1m4s
Proxied ladl.link/{slug}/pay requests carry CSRF tokens from Mini HTML, which cannot bind to Link's session — the same 419 failure mode as event registration.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-13 23:11:59 +00:00
isaacclad fe268e7bfa Remove desktop header search from app topbars.
Deploy Ladill Link / deploy (push) Successful in 1m11s
Drop the lg+ topbar search field; mobile search entry points are unchanged.
2026-07-09 06:57:33 +00:00
isaacclad d580683867 Sync app launcher from registry
Deploy Ladill Link / deploy (push) Successful in 52s
2026-07-07 23:13:16 +00:00
isaacclad a4632004b5 Show boot splash on app open/reload for logged-in users.
Deploy Ladill Link / deploy (push) Successful in 35s
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:34:42 +00:00
isaacclad 2aa3e243e1 Sync app launcher from registry
Deploy Ladill Link / deploy (push) Successful in 59s
2026-07-07 14:42:29 +00:00
isaacclad a71cae516a Prefer system npm in deploy CI when portable node-gyp is broken.
Deploy Ladill Link / deploy (push) Successful in 51s
Falls back to downloading Node only when host npm is unavailable, fixing npm ci failures on ladill-deploy-runner.
2026-07-07 00:46:53 +00:00
isaacclad 2c7021632f Sync app launcher from registry
Deploy Ladill Link / deploy (push) Failing after 2s
2026-07-07 00:21:33 +00:00
isaaccladandCursor 67742586fd Standardize settings pages on shared centered card layout.
Deploy Ladill Link / deploy (push) Successful in 53s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-05 21:11:26 +00:00
isaaccladandCursor 99a0cdb013 Add hero section to My Links index with wallet stats and balance gate.
Deploy Ladill Link / deploy (push) Successful in 41s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 23:53:41 +00:00
isaaccladandCursor 5e87debe32 Clarify GeoIP update env setup for cached config deployments.
Deploy Ladill Link / deploy (push) Successful in 41s
Point operators at shared/.env and config:clear when MaxMind credentials are missing.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 23:45:24 +00:00
isaaccladandCursor 344bf76391 Add GeoIP country fallback for link click analytics.
Deploy Ladill Link / deploy (push) Successful in 39s
Resolve countries from CDN headers first, then MaxMind GeoLite2 via visitor IP, with an artisan command to download and refresh the database.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 23:36:01 +00:00
isaacclad af0bdf9081 Sync mobile notification badge and dashboard icon-link partials.
Deploy Ladill Link / deploy (push) Successful in 42s
Align mobile unread badge with desktop and add plus icon support for panel actions.
2026-07-03 22:41:01 +00:00
isaaccladandCursor 01371663fb Proxy speaker portal paths on ladl.link to Events.
Deploy Ladill Link / deploy (push) Successful in 43s
Route /{slug}/speaker/{token} through the Events app so speaker invite links resolve instead of hitting the account QR hub or a broken proxy patch.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 17:47:27 +00:00
isaaccladandCursor b86fee86df Cap public landing page logos at half the viewport width on mobile.
Deploy Ladill Link / deploy (push) Successful in 1m9s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 14:58:54 +00:00
isaaccladandCursor ac7bef1e24 Exempt public event registration POST from ladill-link CSRF checks.
Deploy Ladill Link / deploy (push) Successful in 46s
Registration forms post to ladl.link first; Events-issued CSRF tokens cannot
validate against the Link app session and caused token mismatch errors.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 14:18:33 +00:00
isaaccladandCursor 4dedcf84f6 Forward JSON registration POST bodies through the ladl.link proxy.
Deploy Ladill Link / deploy (push) Successful in 41s
Event signup from ladl.link sends application/json; re-encoding as form
data dropped the payload and caused failed registrations to redirect to
ladl.link/undefined.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 14:06:36 +00:00
isaaccladandCursor 317a2f1981 Route event registration paths directly to Events so confirmation pages resolve.
Deploy Ladill Link / deploy (push) Successful in 1m30s
ladl.link was proxying registered/* through ladill.com first, where registrations
do not exist, causing 404s after successful event signup.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 13:44:51 +00:00
isaaccladandCursor a79fac78a5 Add reusable copy-to-clipboard button for Link UI.
Deploy Ladill Link / deploy (push) Successful in 52s
Share clipboard helper and Alpine copyButton component across link views.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 08:25:27 +00:00
isaaccladandCursor 1742fb859f Fall back to Events when platform QR proxy returns 404.
Deploy Ladill Link / deploy (push) Successful in 48s
Event pages like sales-webinar live on events.ladill.com, but ladl.link
only proxied to ladill.com/q/* — fix by retrying events.ladill.com when
the platform hub has no matching code.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 08:19:29 +00:00
isaacclad c73a0d869b Sync app launcher from registry
Deploy Ladill Link / deploy (push) Successful in 43s
2026-07-01 17:04:36 +00:00
isaaccladandCursor 8c73f157be Throttle platform SSO session checks to cut per-request auth latency.
Deploy Ladill Link / deploy (push) Successful in 1m11s
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:51:35 +00:00
isaacclad dd2ecb5501 Add Queue to app launcher config and icon.
Deploy Ladill Link / deploy (push) Successful in 42s
Propagated from ladill monorepo launcher sync.
2026-06-29 22:12:15 +00:00
isaaccladandCursor c5e92012ff Fix ladl.link transfer QR redirect loop causing 500 errors.
Deploy Ladill Link / deploy (push) Successful in 1m1s
Proxy transfer paths directly to transfer.ladill.com and stop following ladl.link redirects server-side so recipient links resolve.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 20:55:48 +00:00
isaacclad 62bab93b26 Sync app launcher from registry
Deploy Ladill Link / deploy (push) Successful in 31s
2026-06-29 17:52:53 +00:00
isaaccladandCursor a64083ce19 Cap launcher dropdown at 15 visible apps (5 rows).
Deploy Ladill Link / deploy (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 17:46:20 +00:00
isaaccladandCursor a0881b1b39 Hide launcher down arrow when scrolled to the end.
Deploy Ladill Link / deploy (push) Successful in 27s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 14:49:36 +00:00
isaaccladandCursor 0ab3dcd9ae Revert launcher scroll rail and fade; keep down arrow hint.
Deploy Ladill Link / deploy (push) Successful in 1m5s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 14:03:11 +00:00
isaaccladandCursor d80cb10dde Make launcher scroll affordance visible on open.
Deploy Ladill Link / deploy (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 13:53:43 +00:00
isaacclad dab2ca8100 Sync app launcher from registry
Deploy Ladill Link / deploy (push) Successful in 1m19s
2026-06-29 13:29:03 +00:00
isaacclad 808bc2398d Always show launcher scroll indicator and cap at 18 apps.
Deploy Ladill Link / deploy (push) Successful in 32s
Apply ladill-launcher-apps scroll styles unconditionally with a persistent
scrollbar track; propagate launcher blade and CSS across all Ladill apps.
2026-06-29 13:06:28 +00:00
isaaccladandCursor 04abc3db05 Use + icon buttons on mobile dashboards.
Deploy Ladill Link / deploy (push) Successful in 27s
Sync mobile-header-btn partials, mobile x-btn.create, and update dashboard header actions for consistent mobile FABs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 16:21:28 +00:00
isaaccladandCursor 92d3226950 Place wallet widget after Billing link in mobile profile sheet.
Deploy Ladill Link / deploy (push) Successful in 47s
Remove duplicate Billing header above Home; wallet card follows Billing
in menu order to match the desktop avatar dropdown.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 14:08:27 +00:00
isaaccladandCursor 2d89f6ef67 Sync mobile profile wallet card and 24h session idle timeout.
Deploy Ladill Link / deploy (push) Successful in 36s
Show wallet balance prominently in the mobile profile bottom sheet with refresh
on open; align session lifetime with the platform default.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 12:46:20 +00:00
isaaccladandCursor cdb8d448f6 Hide header avatar on mobile and sync shared mobile nav partials.
Deploy Ladill Link / deploy (push) Successful in 1m7s
Profile moves to the bottom nav sheet on small screens; optional search tab
support is synced from the Ladill platform template.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 12:04:32 +00:00
isaacclad 27e80260f6 Sync app launcher from registry — add Frontdesk.
Deploy Ladill Link / deploy (push) Successful in 26s
2026-06-28 01:46:11 +00:00
isaaccladandCursor 0e5e0f6ca5 Add device, platform, and country analytics to link show page.
Deploy Ladill Link / deploy (push) Successful in 32s
Record parsed user-agent and geo data on clicks, then surface breakdowns and richer recent-click context on per-link and account analytics views.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 19:32:40 +00:00
isaaccladandCursor 9d89aef17e Sync app launcher from registry
Deploy Ladill Link / deploy (push) Successful in 32s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 19:03:57 +00:00
isaaccladandCursor 97831fb118 Use generic copy on Link overview and My Links headers.
Deploy Ladill Link / deploy (push) Has been cancelled
Drop per-link GHS pricing from page subtitles; wallet billing stays on the overview stat card.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 18:59:16 +00:00
isaaccladandCursor 6f8c5da728 Sync app launcher from registry
Deploy Ladill Link / deploy (push) Successful in 35s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 18:28:04 +00:00
isaaccladandCursor 7cdb1ef409 Redirect legacy /q/* URLs to canonical ladl.link addresses.
Deploy Ladill Link / deploy (push) Successful in 27s
External /q requests 301/307 to ladl.link; internal X-Ladill-Internal requests still serve content for platform proxying.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 17:19:04 +00:00
isaaccladandCursor 5982165128 Fix ladl.link 404s for QR ecosystem slugs.
Deploy Ladill Link / deploy (push) Successful in 31s
Only direct Link redirects use destination_url; catalog QR slugs proxy through the platform resolver instead of malformed summary URLs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 15:26:27 +00:00
isaaccladandCursor db6be67f26 Align Link buttons with platform btn-primary style.
Deploy Ladill Link / deploy (push) Successful in 42s
Use indigo pill CTAs and sidebar accents to match Merchant, Give, and other Ladill apps.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 15:00:42 +00:00
isaaccladandCursor 29993040bd Read Afia AI credentials from platform admin settings.
Deploy Ladill Link / deploy (push) Successful in 58s
Link Afia now resolves provider, model, and API keys from ladilldb.platform_settings like the monolith, with .env fallbacks for local dev.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 14:34:43 +00:00
isaaccladandCursor 5a3631cd2e Fix Afia AI assistant for Ladill Link.
Deploy Ladill Link / deploy (push) Successful in 31s
Wire the chat route and Link-scoped system prompt, include the Afia panel in the main layout, and point the UI at link.afia.chat instead of the copied QR Plus route.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 14:31:00 +00:00
isaaccladandCursor f1fe749934 Aggregate ladl.link slugs from all platform apps in the link list.
Deploy Ladill Link / deploy (push) Successful in 29s
Sync QR and storefront short codes from sibling apps via a platform catalog API so My Links shows every ladl.link URL in one place.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 13:26:16 +00:00
isaaccladandCursor b4ad797c38 Use shared signed-out page with Ladill Link branding.
Deploy Ladill Link / deploy (push) Successful in 50s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 12:40:12 +00:00
isaaccladandCursor 9516fcb9f3 Expand Link app with analytics, settings, and custom domains.
Deploy Ladill Link / deploy (push) Successful in 37s
Add Bitly-style branded domain support via Ladill Domains SSL API,
account analytics dashboard, settings page with default domain picker,
and fix SSO/dashboard issues from QR Plus template leftovers.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 12:16:34 +00:00
isaaccladandCursor d9c91ad7d8 Add Ladill Link URL shortener on ladl.link.
Management UI at link.ladill.com with GHS 0.05 per link wallet billing,
click analytics, and legacy fallback to ladill.com/q for QR ecosystem codes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 10:58:41 +00:00
isaacclad 04e4f6ab51 Bootstrap Ladill Link from QR Plus extract template. 2026-06-27 10:54:31 +00:00