Commit Graph
100 Commits
Author SHA1 Message Date
isaacclad e99e64b517 Contain Paystack Inline checkout inside Ladill sheet mount.
Deploy Ladill Mini / deploy (push) Successful in 1m39s
Redirect Paystack iframes into the bottomsheet/modal body (where the spinner
is) instead of allowing a second full-viewport Paystack modal on top. Hide
Paystack background dimmer; keep Ladill header/close chrome.
2026-07-21 22:31:56 +00:00
isaacclad bd8764523c Fix Paystack Fullscreen permission policy for Inline iframes.
Deploy Ladill Mini / deploy (push) Successful in 44s
Pre-set allow=fullscreen on Paystack iframes before navigation (createElement
hook + MutationObserver on allow/src/id), re-apply if Paystack overwrites
allow, and send Permissions-Policy HTTP headers so checkout.paystack.com can
use fullscreen inside the in-app sheet.
2026-07-21 22:17:14 +00:00
isaacclad 4291d95518 Allow Paystack fullscreen on Mini payment pages.
Deploy Ladill Mini / deploy (push) Successful in 47s
Patch Inline iframes for fullscreen/payment permissions and advertise a
Permissions-Policy on the public payment landing.
2026-07-21 22:09:51 +00:00
isaacclad 75d201bcae Fix ladl.link CORS for Mini payment assets and pay URL.
Deploy Ladill Mini / deploy (push) Successful in 44s
Allow cross-origin module loads of Mini build assets and use a same-origin
pay path when HTML is proxied through ladl.link so fetch and Vite JS work.
2026-07-21 22:05:36 +00:00
isaacclad e03a5dc30f Harden Mini Paystack sheet so payment modals open reliably.
Deploy Ladill Mini / deploy (push) Successful in 49s
Use Alpine watches for checkout sync, prewarm the Paystack script, and
preserve bottomsheet wrapping around in-page Inline.
2026-07-21 21:55:37 +00:00
isaacclad de6e6f5331 Fix Mini payment bottomsheet wrap and Inline launch.
Deploy Ladill Mini / deploy (push) Successful in 1m55s
Always show the mobile bottomsheet/desktop modal shell, extract access_code
from checkout URLs when needed, and open the sheet immediately on Pay.
2026-07-21 21:43:42 +00:00
isaacclad 4f2293ec4a Hide Ladill One from the Mini app launcher until launch.
Deploy Ladill Mini / deploy (push) Successful in 52s
2026-07-21 21:32:36 +00:00
isaacclad a50b5c6a44 Keep Mini QR Paystack checkout fully in-app.
Stop form POSTs from 307ing to ladl.link or redirecting away to
checkout.paystack.com, open Paystack Inline with access_code, and use
the single-chrome sheet so payment stays on the Mini page.
2026-07-21 21:32:36 +00:00
isaacclad 86d2dcbf0b Restore Paystack Inline in-page sheet/modal; stop separate-browser checkout.
Deploy Ladill Mini / deploy (push) Successful in 1m4s
Pass access_code through pay responses and launch PaystackPop from the shared sheet instead of window.open.
2026-07-21 19:12:24 +00:00
isaacclad 42257ab444 Fix Mini Pay sheet: same-origin pay URL and visible chrome.
Deploy Ladill Mini / deploy (push) Successful in 57s
Cross-origin fetch to ladl.link had no CORS, so showSheet never ran. Open the sheet immediately and keep Paystack behind the Continue CTA.
2026-07-21 18:46:26 +00:00
isaacclad 50e1b68b5f Open Paystack from the Pay click gesture, not after fetch.
Deploy Ladill Mini / deploy (push) Successful in 1m10s
Paystack blocks iframes, so checkout uses a popup beside the sheet/modal chrome. Opening about:blank on the user tap keeps that window from being blocked after the async initiate response.
2026-07-21 18:13:13 +00:00
isaacclad 58819832f2 Fix Paystack sheet: stop iframe embeds that Paystack blocks.
Deploy Ladill Mini / deploy (push) Successful in 1m0s
Paystack checkout.paystack.com returns X-Frame-Options: SAMEORIGIN, so the shared sheet opened empty. Keep mobile sheet/desktop modal chrome, launch checkout in a named window with a Continue CTA fallback, and escape payment-return via window.opener or top.
2026-07-21 17:34:17 +00:00
isaacclad 8937e67c73 Present Paystack checkout in a responsive mobile sheet and desktop modal.
Deploy Ladill Mini / deploy (push) Successful in 55s
Standardize customer-facing Ladill Pay checkout shells across products, open them on all viewports, and escape iframe callbacks back to the product flow.
2026-07-21 16:50:06 +00:00
isaaccladandCursor 5cdc0a046d Use Paystack/Ladill Pay on Mini payment landing.
Deploy Ladill Mini / deploy (push) Successful in 1m23s
Drop the required MTN MoMo number field and MoMo copy so public payment QRs open Paystack checkout via Ladill Pay like the other restored storefronts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 14:55:14 +00:00
isaaccladandCursor 8951f470a3 Sync launcher after restoring Mini in app registry.
Deploy Ladill Mini / deploy (push) Successful in 1m37s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 13:38:16 +00:00
isaacclad 4276694c78 Fix deploy tmp paths: drop unset gitea.run_attempt.
Deploy Ladill Mini / deploy (push) Successful in 59s
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:55:47 +00:00
isaacclad 9abd9783d2 Sync launcher after Mini/Merchant/Give pause.
Deploy Ladill Mini / deploy (push) Successful in 38s
2026-07-15 01:27:12 +00:00
isaaccladandCursor 67470badb8 Exempt public Payment QR POSTs from CSRF checks.
Deploy Ladill Mini / deploy (push) Successful in 1m27s
Browser sessions stay on ladl.link while Pay is proxied server-side to Mini without cookies, so satellite CSRF tokens cannot bind.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-13 23:12:16 +00:00
isaaccladandCursor a2bf4f435f Make Mini Pay never fail silently.
Deploy Ladill Mini / deploy (push) Successful in 48s
Use form POST fallback, re-register Alpine Pay handler in Blade, timeout fetch, and always full-page navigate for MoMo so the waiting page is not blank in the Paystack iframe.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-13 23:04:28 +00:00
isaaccladandCursor 53a83b84c5 Collect MoMo MSISDN and open waiting page on Pay.
Deploy Ladill Mini / deploy (push) Successful in 42s
Payment QR was still Paystack-only: no customer_phone and mobile iframe sheet. Require MoMo number, pass it to Ladill Pay, and full-page redirect for mtn_momo waiting URLs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-13 22:52:52 +00:00
isaacclad de6fa9b3eb Remove desktop header search from app topbars.
Deploy Ladill Mini / deploy (push) Successful in 54s
Drop the lg+ topbar search field; mobile search entry points are unchanged.
2026-07-09 06:57:33 +00:00
isaacclad facfd7446d Sync app launcher from registry
Deploy Ladill Mini / deploy (push) Successful in 28s
2026-07-07 23:13:41 +00:00
isaacclad bdd2ab87e0 Show boot splash on app open/reload for logged-in users.
Deploy Ladill Mini / deploy (push) Successful in 39s
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:04 +00:00
isaacclad 800097e343 Sync app launcher from registry
Deploy Ladill Mini / deploy (push) Successful in 35s
2026-07-07 14:42:48 +00:00
isaacclad bc6603b554 Prefer system npm in deploy CI when portable node-gyp is broken.
Deploy Ladill Mini / deploy (push) Successful in 36s
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 5764be6be8 Sync app launcher from registry
Deploy Ladill Mini / deploy (push) Failing after 2s
2026-07-07 00:21:51 +00:00
isaaccladandCursor ff6e5aee51 Add Merchant-style hero to My Payment QR index page.
Deploy Ladill Mini / deploy (push) Successful in 39s
Surface wallet balance, QR count, and active stats in a gradient hero with balance-gated create CTA.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 20:34:29 +00:00
isaaccladandCursor e792916a1a Propagate shared copy-button component and clipboard helper.
Deploy Ladill Mini / deploy (push) Successful in 1m22s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 23:04:14 +00:00
isaacclad 41971dbe9b Use mobile icon buttons on Mini and QR dashboards.
Deploy Ladill Mini / deploy (push) Successful in 28s
Add header create action and sync mobile notification badge partial.
2026-07-03 22:41:00 +00:00
isaacclad 0fed27af9a Sync app launcher from registry
Deploy Ladill Mini / deploy (push) Successful in 40s
2026-07-01 17:04:55 +00:00
isaaccladandCursor 4fed91150f Throttle platform SSO session checks to cut per-request auth latency.
Deploy Ladill Mini / deploy (push) Successful in 56s
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:01 +00:00
isaacclad c027ad579b Add Queue to app launcher config and icon.
Deploy Ladill Mini / deploy (push) Successful in 43s
Propagated from ladill monorepo launcher sync.
2026-06-29 22:12:15 +00:00
isaacclad 37817192f4 Sync app launcher from registry
Deploy Ladill Mini / deploy (push) Successful in 1m12s
2026-06-29 17:53:08 +00:00
isaaccladandCursor 1be70ea6ad Cap launcher dropdown at 15 visible apps (5 rows).
Deploy Ladill Mini / deploy (push) Successful in 46s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 17:44:19 +00:00
isaaccladandCursor dd6e4f9678 Hide launcher down arrow when scrolled to the end.
Deploy Ladill Mini / deploy (push) Successful in 43s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 14:48:04 +00:00
isaaccladandCursor 04448ec885 Revert launcher scroll rail and fade; keep down arrow hint.
Deploy Ladill Mini / deploy (push) Successful in 39s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 14:01:13 +00:00
isaaccladandCursor c312bd811f Make launcher scroll affordance visible on open.
Deploy Ladill Mini / deploy (push) Successful in 29s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 13:52:14 +00:00
isaacclad 899a354ddf Sync app launcher from registry
Deploy Ladill Mini / deploy (push) Successful in 1m19s
2026-06-29 13:29:33 +00:00
isaacclad 800cfaafd0 Always show launcher scroll indicator and cap at 18 apps.
Deploy Ladill Mini / deploy (push) Successful in 1m19s
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:03:46 +00:00
isaaccladandCursor ab95f69639 Use + icon buttons on mobile dashboards.
Deploy Ladill Mini / deploy (push) Successful in 25s
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:22:51 +00:00
isaaccladandCursor 1f46af5361 Place wallet widget after Billing link in mobile profile sheet.
Deploy Ladill Mini / deploy (push) Successful in 1m9s
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:06:57 +00:00
isaaccladandCursor cc0df3ccde Sync mobile profile wallet card and 24h session idle timeout.
Deploy Ladill Mini / deploy (push) Successful in 1m4s
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:19 +00:00
isaaccladandCursor 0b0193b5d7 Hide header avatar on mobile and sync shared mobile nav partials.
Deploy Ladill Mini / deploy (push) Successful in 37s
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 297f7646f8 Sync app launcher from registry — add Frontdesk.
Deploy Ladill Mini / deploy (push) Successful in 29s
2026-06-28 01:46:21 +00:00
isaaccladandCursor 88da4ff62a Sync app launcher from registry
Deploy Ladill Mini / deploy (push) Successful in 33s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 19:03:57 +00:00
isaaccladandCursor 10ccb397ae Sync app launcher from registry
Deploy Ladill Mini / deploy (push) Successful in 32s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 18:28:04 +00:00
isaaccladandCursor 517d7c52e3 Redirect legacy /q/* URLs to canonical ladl.link addresses.
Deploy Ladill Mini / deploy (push) Successful in 25s
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 a07dd558a3 Wire LadillLink through QrCode model and remaining QR surfaces.
Deploy Ladill Mini / deploy (push) Successful in 35s
Public URLs, encoded payloads, slug preview, payment callbacks, and asset paths now use ladl.link instead of ladill.com/q/*.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 16:16:25 +00:00
isaaccladandCursor 3fd5d785e3 Use ladl.link URLs for all front-facing QR and short-link surfaces.
Deploy Ladill Mini / deploy (push) Successful in 39s
Public landing pages, asset paths, payment callbacks, and redirects now go through QrCode::publicPath() / LadillLink instead of ladill.com/q/* routes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 15:46:22 +00:00
isaacclad d66200e10d Sync app launcher from registry
Deploy Ladill Mini / deploy (push) Successful in 36s
2026-06-27 15:15:44 +00:00
isaaccladandCursor dfad9461e8 Sync app launcher config and add POS icon.
Deploy Ladill Mini / deploy (push) Successful in 27s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-23 22:53:18 +00:00
isaaccladandCursor 84471c3081 Standardize desktop topbar widgets to match CRM layout.
Deploy Ladill Mini / deploy (push) Successful in 24s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-23 18:15:34 +00:00
isaaccladandClaude Opus 4.8 9cbdd1a26c Add wallet balance widget to the profile menu (after Billing)
Deploy Ladill Mini / deploy (push) Successful in 25s
Wallet balance peek rendered as a menu row directly under Billing, backed by
a /wallet/balance endpoint (BillingClient) and guarded by Route::has. Also
opens Afia via a direct window event for reliability.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 12:26:03 +00:00
isaaccladandCursor 99f994f4e5 Add slash keyboard shortcut to focus search.
Deploy Ladill Mini / deploy (push) Successful in 31s
Press / from any non-input page to jump to the topbar or full-screen search field, with a fallback route when search is not visible.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-23 02:51:39 +00:00
isaaccladandClaude Opus 4.8 fd1a94d79d Add CRM to the Ladill app launcher
Deploy Ladill Mini / deploy (push) Successful in 1m4s
crm.ladill.com is now live in the suite; add its launcher row + icon
(byte-identical shared launcher config).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 22:41:28 +00:00
isaaccladandCursor ea51b49342 Serve assetlinks.json for Android App Links verification.
Deploy Ladill Mini / deploy (push) Successful in 40s
Expose /.well-known/assetlinks.json from env-configured Play app signing fingerprints so mini.ladill.com passes Play Console deep link domain checks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-22 00:08:56 +00:00
isaaccladandCursor 094bd5b886 Bind app sessions to the platform auth session.
Deploy Ladill Mini / deploy (push) Successful in 26s
Clear local sessions when auth.ladill.com signs out and ping the platform session from keepalive.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-20 08:26:30 +00:00
isaaccladandCursor 2b4445302c Add Ladill SMS to shared app launcher.
Deploy Ladill Mini / deploy (push) Successful in 30s
Include sms.ladill.com in the cross-app launcher and ship the SMS icon asset.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 23:12:36 +00:00
isaaccladandCursor 1ef6148ee3 Lower Mini platform fee from 5% to 3.5%.
Deploy Ladill Mini / deploy (push) Successful in 26s
Update checkout constant, payout copy, and Afia prompts to match the new Ladill Pay rate.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 19:51:35 +00:00
isaaccladandCursor ab84f66128 Hide the current page link in the unified profile dropdown.
Deploy Ladill Mini / deploy (push) Successful in 59s
Skip Home, account, and admin menu items when the user is already on that destination.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 10:16:39 +00:00
isaaccladandCursor de9ea50744 Fix corrupted profileMenuItems in layouts after menu propagation.
Deploy Ladill Mini / deploy (push) Successful in 54s
Remove orphaned array entries that caused Blade parse errors and 500 responses on authenticated pages.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 10:04:42 +00:00
isaaccladandCursor 3e76b06bc9 Unify logged-in profile dropdown with platform account menu.
Deploy Ladill Mini / deploy (push) Successful in 34s
Wire UserProfileMenu and shared Blade partial into topbar, mobile nav, and layouts so menu items match the account portal (Ladill Mail excluded).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 09:33:55 +00:00
isaaccladandCursor b3de340fdc Remove centralized account nav from app sidebar; redirect legacy URLs.
Deploy Ladill Mini / deploy (push) Successful in 28s
Wallet, Billing, Team, Developers, and Support live on account.ladill.com.
Siloed sidebars keep product nav and app Settings only.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 00:42:25 +00:00
isaaccladandCursor 4d4b7a05f5 Restore silent SSO on app entry for users switching between apps.
Deploy Ladill Mini / deploy (push) Successful in 26s
Guests without a local session try prompt=none SSO first; marketing pages
are only for visitors with no platform session (localhost fix retained).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-18 13:47:12 +00:00
isaaccladandCursor 9ff73ed17b Fix guest entry: correct marketing URL and stop auto silent SSO.
Deploy Ladill Mini / deploy (push) Successful in 37s
Correct localhost marketing_url default and stop redirecting guests through
/sso/connect on visit; SSO starts only via explicit sign-in.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-18 13:08:56 +00:00
isaaccladandCursor df07b9731d Send SSO guests to ladill.com/products/mini instead of subdomain landings.
Deploy Ladill Mini / deploy (push) Successful in 39s
Remove interactive OAuth fallback on silent SSO failure and add ladill.marketing_url config so app subdomains open the dashboard when signed in locally.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 22:21:52 +00:00
isaaccladandCursor b952020890 Fix auto-withdraw deploy and accept POST on wallet settings route.
Deploy Ladill Mini / deploy (push) Successful in 37s
Drop the fragile column ordering in the migration and allow POST as well as PUT so the mobile clients can save auto-withdraw after deploy.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 08:02:42 +00:00
isaaccladandCursor 2c4eaf1241 Add wallet auto-withdraw threshold support for Ladill Mini.
Deploy Ladill Mini / deploy (push) Failing after 42s
Store per-user auto-withdraw amounts, expose them via the wallet API, and process withdrawals when balances reach the configured threshold after payments or on a schedule.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 07:44:42 +00:00
isaaccladandCursor 9790788d42 Ignore local mobile app sources under /apps.
Deploy Ladill Mini / deploy (push) Successful in 28s
Keep Android and iOS prototypes out of this repo so they are not committed with backend changes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 22:32:33 +00:00
isaacclad 1dba54c55b Revert "Add Ladill Mini native Android and iOS apps."
This reverts commit ea6afb80a4.
2026-06-11 22:32:29 +00:00
isaaccladandCursor ea6afb80a4 Add Ladill Mini native Android and iOS apps.
Deploy Ladill Mini / deploy (push) Successful in 35s
Ship full-featured mobile clients with auth, payments, QRs, push notifications, and iOS polish including Figtree typography, app icons, and QR previews.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 22:30:35 +00:00
isaaccladandCursor ec9f09f997 Fix payment notification copy to say paid to the business, not via.
Deploy Ladill Mini / deploy (push) Successful in 29s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 19:26:36 +00:00
isaaccladandCursor 136bfbea47 Wire seller push notifications with FCM, inbox API, and payment milestones.
Deploy Ladill Mini / deploy (push) Successful in 52s
Sellers get instant payment alerts on Android; withdrawals respect payout prefs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 19:04:44 +00:00
isaaccladandCursor ad96754099 Add Mini API endpoint for Afia chat so the Android app can reach the assistant with Bearer auth.
Deploy Ladill Mini / deploy (push) Successful in 28s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 18:12:32 +00:00
isaaccladandClaude Opus 4.8 06efef53b6 Mini API: include saved phone in account settings.
Deploy Ladill Mini / deploy (push) Successful in 30s
settings() now fetches phone from the central identity profile (guarded), so the
app's Profile screen shows the phone the user previously saved.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 13:11:17 +00:00
isaaccladandClaude Opus 4.8 1b134d7fd3 Mini API: banks endpoint for payout-account picker.
Deploy Ladill Mini / deploy (push) Successful in 1m22s
GET /api/v1/mini/wallet/banks?type=bank|mobile_money proxies to the central
identity banks endpoint so the app's payout sheet populates from Paystack.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 12:52:19 +00:00
isaaccladandClaude Opus 4.8 3406bd730a Mini API: support ticket endpoints (replaces Afia support chat).
Deploy Ladill Mini / deploy (push) Successful in 28s
Support is now a ticket system proxied to the central identity support API:
GET/POST /mini/support/tickets and GET /mini/support/tickets/{id}. Removed the
Afia-backed /support/chat route.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 12:29:35 +00:00
isaaccladandClaude Opus 4.8 af1f197059 Mini API: avatar, wallet payout/withdraw, stale-payment auto-cancel.
Deploy Ladill Mini / deploy (push) Successful in 48s
Adds account avatar upload (multipart proxy to identity), wallet payout-account
+ withdrawal endpoints, and a hourly mini:cancel-stale-payments command that
cancels payments pending beyond 6h (new MiniPayment::STATUS_CANCELED).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 12:03:48 +00:00
isaaccladandClaude Opus 4.8 c39e38cbe0 Mini API: account settings, wallet & support endpoints for the app.
Deploy Ladill Mini / deploy (push) Successful in 40s
Adds /api/v1/mini account (settings, profile, change-password), wallet (balance
+ ledger, Paystack top-up) and support (Afia chat) endpoints. Account/profile/
password/top-up proxy to the central identity API via a CallsIdentityApi trait;
notifications, wallet balance and support chat are served locally.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 11:03:33 +00:00
isaaccladandClaude Opus 4.8 90d7aab547 Fix 500 on mobile sign-in: acting account + connection errors.
Deploy Ladill Mini / deploy (push) Successful in 1m31s
presentUser() ran on the public login/register routes where SetActingAccount
never runs, so ladill_account() was null and dereferencing it 500'd. Default
the acting account to the user at sign-in, and route identity-API calls through
a helper with timeouts that turns ConnectionException into a clean message
instead of an unhandled 500.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 09:51:41 +00:00
isaaccladandClaude Opus 4.8 a286f3d977 Afia: render markdown bold in chat instead of showing raw asterisks
Deploy Ladill Mini / deploy (push) Successful in 1m3s
Replies came back with **bold** markup that displayed literally to users.
Render the bubble as HTML (escaped first for safety) and convert **text** to
<strong>; newlines already handled by whitespace-pre-line.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 08:41:14 +00:00
isaaccladandClaude Opus 4.8 9f175c5334 Afia: fix context() calling undefined QrTypeCatalog::eventTypes()
Deploy Ladill Mini / deploy (push) Successful in 27s
Use paymentTypes() (this app's catalog) so the chat context loads instead of
500ing — the eventTypes() call was a QR Plus leftover.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 07:45:17 +00:00
isaaccladandClaude Opus 4.8 2065306541 Afia: rebrand assistant from QR Plus to Ladill Mini
Deploy Ladill Mini / deploy (push) Successful in 1m13s
Mini shipped the QR Plus Afia prompt. Rewrite it for Ladill Mini — payment
QRs, payments, payouts, 5% fee.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 07:34:17 +00:00
isaaccladandClaude Opus 4.8 cd56771b59 Mobile auth: native login + register via central identity API.
Deploy Ladill Mini / deploy (push) Successful in 31s
Login no longer uses the OAuth password grant (which wasn't enabled, the cause
of login failures). Both login and the new register endpoint proxy to
auth.ladill.com /api/identity/auth/* (shared IDENTITY_API_KEY_MINI), provision
the local mirror, and issue a Sanctum token — one Ladill identity across web
and app.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 23:04:04 +00:00
isaaccladandClaude Opus 4.8 307248749b Add mobile API for Ladill Mini Android app.
Deploy Ladill Mini / deploy (push) Successful in 47s
Token login via OAuth password grant against auth.ladill.com (AuthController),
plus /api/v1/mini endpoints (overview, payment-qrs CRUD + preview, payments,
payouts) mirroring the web Mini controllers. Sanctum abilities mini:read/write.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 22:13:30 +00:00
isaaccladandClaude Opus 4.8 70ded0e668 Add product landing page at root (replaces SSO redirect).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 22:13:30 +00:00
isaaccladandClaude Opus 4.8 019c450cdd Per-app logout keeps platform SSO session (quick password-less re-entry).
Deploy Ladill Mini / deploy (push) Successful in 1m14s
Local-only sign-out: end this app's session but leave the auth.ladill.com
session intact, so the signed-out page's Sign in again re-auths silently via
prompt=none. Full sign-out of all Ladill apps remains on account.ladill.com.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 11:23:33 +00:00
isaaccladandClaude Opus 4.8 5a64c8e52f Add Merchant to app launcher.
Deploy Ladill Mini / deploy (push) Successful in 41s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 11:03:10 +00:00
isaaccladandCursor ce3b4e1a41 Fix SSO popup callback infinite loop and post-login 500.
Deploy Ladill Mini / deploy (push) Successful in 36s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 20:21:24 +00:00
isaaccladandCursor ce14266a05 Make SSO popup fallback URL work without controller changes.
Deploy Ladill Mini / deploy (push) Successful in 32s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 16:05:01 +00:00
isaaccladandCursor 669c27e953 Fix SSO popup login 500 and add branded signed-out pages.
Deploy Ladill Mini / deploy (push) Successful in 27s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 15:46:07 +00:00
isaaccladandCursor c42e5819dc Keep the app subdomain visible during Ladill SSO login and logout.
Deploy Ladill Mini / deploy (push) Successful in 42s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 12:14:48 +00:00
isaaccladandCursor 47b854a350 Add Ladill Give to the shared app launcher.
Deploy Ladill Mini / deploy (push) Successful in 1m16s
Sync ladill_launcher.php and give.svg across all extracted apps so Give appears in every product switcher.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 10:34:02 +00:00
isaaccladandCursor af3e800d76 Update payouts copy to reflect Ladill Pay is already live.
Deploy Ladill Mini / deploy (push) Successful in 39s
Replace stale placeholder text about future Ladill Pay integration with accurate wallet withdrawal guidance.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 09:30:39 +00:00
isaaccladandCursor b203774cc6 Unify primary buttons with gradient pill design across Ladill Mini.
Deploy Ladill Mini / deploy (push) Successful in 33s
Add shared btn-primary components and plus icons on create/new actions for a consistent Ladill UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 22:40:40 +00:00
isaaccladandCursor 7ffa44b128 Add mobile-only payment search for Ladill Mini.
Deploy Ladill Mini / deploy (push) Successful in 24s
Wire the mobile search tab to a payments search page and remove desktop header search shortcuts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 21:47:33 +00:00
isaaccladandCursor 4c2ce5526f Move Support link under Account in sidebar.
Deploy Ladill Mini / deploy (push) Successful in 29s
Place Support with Account navigation instead of the Settings footer.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 20:30:22 +00:00
isaaccladandCursor 8c37afc3ec Add app-specific mail branding and sidebar Support links.
Deploy Ladill Mini / deploy (push) Successful in 44s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 20:12:28 +00:00
isaaccladandCursor b29907385b Add Ladill Transfer to shared app launcher.
Deploy Ladill Mini / deploy (push) Successful in 35s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 11:20:27 +00:00
isaaccladandCursor 41ef2bdf29 Update payment footer to Ladill Pay branding.
Deploy Ladill Mini / deploy (push) Successful in 32s
Replace Ladill Mini with Secured by Paystack. Powered by Ladill Pay on checkout and Paystack sheet footers.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 06:28:39 +00:00