- Add the Afia AI assistant to the header (topbar AI button + slide-over),
matching every other Ladill app. Ports config/afia.php, AfiaService, a POS
AiController (pos.ai.chat) scoped to register/sales/products, and includes
the slide-over in the app layout. The afia() Alpine component already existed.
- Hide the header "Open register" button while on the register page.
- Move Settings to a pinned bottom section of the sidebar, like other apps.
- Commit the updated POS logo + launcher icon assets.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Finish removing the upstream platform fork: drop the Hosting/SSL/Domain
notification classes + their mail views, the email/mailbox/domains/hosting
view trees, the Mini/Afia/search/paystack partials and unused components, and
the now-orphan support helpers (DomainConfig, MailboxPricing,
ResellerClubLegacy), SmsService, and fork configs (afia, hosting, domain,
email, mailbox, qr, mail_brands, notifications, ...). Reparent the
notifications page off the hosting layout onto the POS app layout (it had
referenced undefined hosting./mini. routes). Computed the removable set from a
reachability scan of the POS view graph; kept views reference no removed
routes/services.
Branding: favicon now uses the updated favicon.ico (favicon.svg removed);
signed-out fallback logo points at the POS logo.
CRM import: constrain the catalogue pull to type=product so CRM services are
never imported as POS products (server-side filter + defensive client skip).
Test suite green (8 passed, 29 assertions); all routes resolve and every
remaining Blade compiles.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>