Commit Graph

  • 8699f81879 chore(style): codebase em-dash sweep + minor layout polish main Matt Ciaccio 2026-05-04 22:57:01 +02:00
  • d62822c284 fix(migration): NocoDB import safety + dedup helpers + lead-source backfill Matt Ciaccio 2026-05-04 22:56:18 +02:00
  • 089f4a67a4 feat(receipts): upload guide page + scanner head-tag fix Matt Ciaccio 2026-05-04 22:55:42 +02:00
  • 77ad10ced1 feat(dashboard): custom date range + KPI port-hydration gate Matt Ciaccio 2026-05-04 22:54:55 +02:00
  • e598cc0708 feat(layout): unified Inbox + UserMenu extraction Matt Ciaccio 2026-05-04 22:54:06 +02:00
  • f5772ce318 feat(analytics): Umami integration with per-port admin settings Matt Ciaccio 2026-05-04 22:53:06 +02:00
  • 49d34e00c8 feat(website-intake): dual-write endpoint + migration chain repair Matt Ciaccio 2026-05-04 22:52:33 +02:00
  • c612bbdfd9 fix(migration): legacy bare-mooring lookup + port-nimara berth backfill Matt Ciaccio 2026-05-03 21:05:11 +02:00
  • 872c75f1a1 fix(safety): plug 3 EMAIL_REDIRECT_TO leaks + 10 unit tests + live smoke Matt Ciaccio 2026-05-03 20:55:53 +02:00
  • c45aac551d feat(dedup): wire --apply path for NocoDB migration Matt Ciaccio 2026-05-03 19:53:04 +02:00
  • 9ad1df85d2 fix(residential): mobile card list alongside the desktop table Matt Ciaccio 2026-05-03 17:24:58 +02:00
  • 8e4d2fc5b4 feat(safety): EMAIL_REDIRECT_TO now also pauses Documenso + webhooks Matt Ciaccio 2026-05-03 17:24:41 +02:00
  • 78f2f46d41 fix(admin): stack settings rows vertically on phone widths Matt Ciaccio 2026-05-03 17:24:20 +02:00
  • 3a9419fe10 chore(scripts): backfill client_contacts.value_e164 from value Matt Ciaccio 2026-05-03 17:24:08 +02:00
  • b703684285 fix(ux): pass-3 — yacht/company headers, reminder filters wrap, client tab counts Matt Ciaccio 2026-05-03 17:09:27 +02:00
  • a792d9a182 fix(ux): pass-2 audit fixes — admin grouping, Duplicates entry, header tooltips Matt Ciaccio 2026-05-03 16:35:32 +02:00
  • d7ec2a8507 Merge docs/dedup-migration-design: client dedup + NocoDB migration design doc Matt Ciaccio 2026-05-03 16:24:30 +02:00
  • cb83b09b2d Merge feat/dedup-migration: client dedup library + NocoDB migration script + admin queue Matt Ciaccio 2026-05-03 16:24:13 +02:00
  • 7574c3b575 chore(migrations): renumber 0020/0021 -> 0021/0022 to avoid clash with berth-parity feat/dedup-migration Matt Ciaccio 2026-05-03 16:22:58 +02:00
  • bb105f5365 Merge feat/mobile-ux-polish: berth/header/tab/contacts mobile fixes Matt Ciaccio 2026-05-03 16:20:12 +02:00
  • caafae15dd Merge feat/berth-schema-parity: NocoDB field parity, 117-berth seed, ports pruned to Port Nimara + Amador Matt Ciaccio 2026-05-03 16:18:43 +02:00
  • 46c7389930 Merge feat/mobile-foundation: 212 commits of mobile foundation, sales UX, audit fixes Matt Ciaccio 2026-05-03 16:18:10 +02:00
  • 80fc5932be chore: ignore tooling caches, scratch screenshots, sister website project feat/mobile-foundation Matt Ciaccio 2026-05-03 16:17:13 +02:00
  • b26b87b2fa chore(dev): react-grab viewport sync helper for in-page debug toolbar Matt Ciaccio 2026-05-03 16:15:47 +02:00
  • 88f76b6b04 feat(mobile): rework bottom nav (Dashboard/Berths/Clients/Documents/More) Matt Ciaccio 2026-05-03 16:15:37 +02:00
  • a32f41b91d fix(dashboard): scope h-full to xl + tighter mobile sizing on KPIs Matt Ciaccio 2026-05-03 16:15:20 +02:00
  • cf1c8b66db feat(client): phone-edit row dilation + mobile contacts layout Matt Ciaccio 2026-05-03 16:15:07 +02:00
  • 596476280d feat(ui): inline-edit dropdowns auto-open + auto-exit on dismiss Matt Ciaccio 2026-05-03 16:14:51 +02:00
  • e9359fc431 feat(client): interests tab + pipeline summary panel + list-row counts Matt Ciaccio 2026-05-03 16:14:37 +02:00
  • 4767caec01 feat(client): redesign detail header with action chips + condensed meta Matt Ciaccio 2026-05-03 16:14:19 +02:00
  • 49d92234dd fix(test): align stage names with consolidated pipeline enum Matt Ciaccio 2026-05-03 16:14:04 +02:00
  • cad55e3565 fix(mobile): clipping, dropdown-tabs and stale phone metadata feat/mobile-ux-polish Matt Ciaccio 2026-05-03 16:03:56 +02:00
  • 21868ee5fc feat(berths,seed): polish detail display + prune ports to Port Nimara + Amador feat/berth-schema-parity Matt Ciaccio 2026-05-03 15:59:36 +02:00
  • c7ab816c99 feat(seed): replace 12 hand-rolled berths with 117-row NocoDB snapshot Matt Ciaccio 2026-05-03 15:41:12 +02:00
  • e40b6c3d99 feat(berths): full NocoDB field parity, numeric types, sales edit access Matt Ciaccio 2026-05-03 15:30:32 +02:00
  • 4bcc7f8be6 feat(dedup): runtime surfaces — merge service, at-create suggestion, admin queue (P2) Matt Ciaccio 2026-05-03 14:59:04 +02:00
  • 18e5c124b0 feat(dedup): NocoDB migration script + tables (P3 dry-run) Matt Ciaccio 2026-05-03 14:50:01 +02:00
  • 8b077e1999 feat(dedup): normalization + match-finding library (P1) Matt Ciaccio 2026-05-03 14:28:59 +02:00
  • 36b92eb827 docs(spec): client deduplication and NocoDB migration design docs/dedup-migration-design Matt Ciaccio 2026-05-03 14:10:08 +02:00
  • e2398099c4 test(audit-fixes): cover the new permission and webhook surfaces Matt Ciaccio 2026-05-02 23:17:08 +02:00
  • d364b09885 fix(realtime): keep socket through reconnects, stop re-subscribe storm Matt Ciaccio 2026-05-02 23:11:52 +02:00
  • 57a099acc4 fix(ui): humanize enum labels, format dates, resolve actor names, loading skeleton Matt Ciaccio 2026-05-02 23:01:35 +02:00
  • a391934b73 feat(marina): end-reservation UI + global list, yacht tabs, dashboard distinct count Matt Ciaccio 2026-05-02 23:01:15 +02:00
  • e3e0e69c04 fix(documenso): expired event, real signer emails, query invalidation, double-fire Matt Ciaccio 2026-05-02 23:00:58 +02:00
  • 6af2ac9680 fix(auth): harden admin gate, X-Port-Id, portal JWT, saved-views Matt Ciaccio 2026-05-02 23:00:42 +02:00
  • a767652d74 feat(sales-ux): triage signals, reminders, realtime toasts, mobile FAB Matt Ciaccio 2026-05-02 04:09:51 +02:00
  • c824b2df12 feat(interests): Email / Call / WhatsApp deep-links on interest header Matt Ciaccio 2026-05-02 03:33:13 +02:00
  • d197f8b321 feat(eoi): align prerequisites with EOI document structure Matt Ciaccio 2026-05-02 03:11:14 +02:00
  • 76a7387dcc fix(ux): batch UX audit fixes across spine pages Matt Ciaccio 2026-05-02 01:24:15 +02:00
  • 868b1f40c0 fix(nav): drop dedicated EOI route + alerts sidebar entry, fix paginated-URL bug Matt Ciaccio 2026-05-02 00:30:27 +02:00
  • dbbd03fd22 feat(sales): admin-configurable EOI signers + richer timeline events Matt Ciaccio 2026-05-02 00:19:55 +02:00
  • ba5fb6db5e feat(sales): EOI queue route + invoice→deposit auto-advance + won/lost outcomes Matt Ciaccio 2026-05-02 00:01:33 +02:00
  • 886119cbde refactor(sales): consolidate pipeline stages + wire EOI auto-advance Matt Ciaccio 2026-05-01 23:33:53 +02:00
  • 0d357731ad chore(dev): install and wire react-grab Matt Ciaccio 2026-05-01 16:37:40 +02:00
  • a75d4f5d69 feat(mobile): redesign topbar + collapse cumbersome page-header on mobile Matt Ciaccio 2026-05-01 16:34:28 +02:00
  • 0fb7920db5 fix(auth/mobile): support LAN-IP access in dev + edge-to-edge auth bg Matt Ciaccio 2026-05-01 16:21:59 +02:00
  • 16ad61ce15 fix(mobile): hide duplicate detail-header title on mobile Matt Ciaccio 2026-05-01 16:09:32 +02:00
  • d080bc52fa feat(mobile): touch up new-invoice + scan-receipt forms Matt Ciaccio 2026-05-01 16:06:09 +02:00
  • a653c8e039 fix(mobile): wrap detail-header actions on narrow viewports Matt Ciaccio 2026-05-01 15:48:51 +02:00
  • 7e8110b2ff feat(mobile): show entity name in mobile topbar on detail pages Matt Ciaccio 2026-05-01 15:46:32 +02:00
  • 9eadaf035e fix(mobile): widen ListCard href type to Route Matt Ciaccio 2026-05-01 15:40:52 +02:00
  • bcea28cd71 feat(mobile): mobile cards for reminders, audit log, users Matt Ciaccio 2026-05-01 15:39:06 +02:00
  • 722491a9dd feat(mobile): mobile cards for yachts, companies, berths, invoices, expenses Matt Ciaccio 2026-05-01 15:34:04 +02:00
  • 6009ccb7de feat(mobile): mobile card view for clients + interests lists Matt Ciaccio 2026-05-01 15:27:53 +02:00
  • 71da6e8fdc feat(mobile): swap admin page headers to PageHeader Matt Ciaccio 2026-05-01 12:57:52 +02:00
  • c405124bc3 feat(mobile): swap reports header to PageHeader Matt Ciaccio 2026-05-01 12:55:11 +02:00
  • 53cbee1d3d fix(mobile): tighten Card padding on mobile (p-4 sm:p-6) Matt Ciaccio 2026-05-01 12:55:09 +02:00
  • ac7f1db62c fix(mobile): add horizontal padding to mobile shell main Matt Ciaccio 2026-05-01 12:45:20 +02:00
  • 5d44f3cfa4 fix(test): raise mobile-audit timeout to 30min for 4-viewport runs Matt Ciaccio 2026-04-29 15:15:26 +02:00
  • d0540dca55 fix(build): extract route.ts handlers to handlers.ts (CLAUDE.md convention) Matt Ciaccio 2026-04-29 15:14:40 +02:00
  • 0e9c24e222 test(visual): add mobile shell snapshot baselines (dashboard + more sheet) Matt Ciaccio 2026-04-29 14:47:26 +02:00
  • 3aba2181dc feat(test): extract anchor iPhone device descriptors to shared fixture Matt Ciaccio 2026-04-29 14:31:51 +02:00
  • 6237ad1567 feat(mobile): add FilterChips primitive (horizontal chip row with Add-filter trigger) Matt Ciaccio 2026-04-29 14:28:33 +02:00
  • 34916d855e feat(mobile): add DataView (TanStack table on lg+, card list below) with cardRender callback Matt Ciaccio 2026-04-29 14:27:17 +02:00
  • 41ae8a328f feat(mobile): add DetailPageShell with sticky header + mobile sticky-action shelf Matt Ciaccio 2026-04-29 14:25:45 +02:00
  • 1ff3160eac feat(mobile): add ActionRow with horizontal-scroll-snap on mobile, wrap on desktop Matt Ciaccio 2026-04-29 14:24:43 +02:00
  • 5698d742d3 feat(mobile): make PageHeader mobile-aware (stack below sm, hide description when actions present) Matt Ciaccio 2026-04-29 14:23:40 +02:00
  • e6ce265be0 fix(mobile): drop positive display rule that overrode desktop shell's flex layout Matt Ciaccio 2026-04-29 14:20:11 +02:00
  • 19bc2f2a54 feat(mobile): mount MobileLayout alongside desktop shell, remove legacy sidebar mobile-drawer Matt Ciaccio 2026-04-29 14:18:28 +02:00
  • b0a11f1785 feat(mobile): add MobileLayout shell composing topbar + content + bottom tabs + more sheet Matt Ciaccio 2026-04-29 14:16:30 +02:00
  • 3cbf2444fe feat(mobile): add MoreSheet (3-column grid of long-tail nav items in a bottom drawer) Matt Ciaccio 2026-04-29 14:15:25 +02:00
  • 0330be1312 feat(mobile): add Drawer (vaul wrapper) for native-feel bottom sheets Matt Ciaccio 2026-04-29 14:14:18 +02:00
  • 210360738d feat(mobile): add MobileBottomTabs with 5 fixed tabs (Dashboard/Clients/Yachts/Berths/More) Matt Ciaccio 2026-04-29 14:13:09 +02:00
  • 4df04e1a58 feat(mobile): add MobileTopbar with title, back-button, and primary-action slots Matt Ciaccio 2026-04-29 14:12:15 +02:00
  • 0c3baf04c5 feat(mobile): add MobileLayoutProvider context + useMobileChrome hook Matt Ciaccio 2026-04-29 14:11:27 +02:00
  • 79667b24da chore(pwa): add placeholder icons (icon-192/512/512-maskable, apple-touch-icon) Matt Ciaccio 2026-04-29 14:10:14 +02:00
  • c4fdb29bbe feat(mobile): render Dialog full-screen below sm, centered modal at sm+ Matt Ciaccio 2026-04-29 14:08:14 +02:00
  • 38527d71fc feat(mobile): bump touch-target heights on Button/Input/Textarea, keep 16px to prevent iOS zoom Matt Ciaccio 2026-04-29 14:06:59 +02:00
  • 3fbfba6598 chore(deps): add vaul for native-feel bottom sheets Matt Ciaccio 2026-04-29 14:05:10 +02:00
  • e3a835675b feat(mobile): add useIsMobile() hook backed by matchMedia (visual-test-only) Matt Ciaccio 2026-04-29 14:04:02 +02:00
  • 1b085f81ed feat(mobile): add CSS rules to switch shells based on data-form-factor + viewport Matt Ciaccio 2026-04-29 14:00:49 +02:00
  • 9f786fbcf3 feat(mobile): set data-form-factor body attr from User-Agent in root layout Matt Ciaccio 2026-04-29 13:59:03 +02:00
  • 906127a292 feat(mobile): add safe-area spacing utilities (pt-safe-top, pb-safe-bottom, etc.) Matt Ciaccio 2026-04-29 13:56:53 +02:00
  • 737b43589b feat(mobile): add viewport meta, theme-color, and PWA metadata to root layout Matt Ciaccio 2026-04-29 13:55:37 +02:00
  • fbb1f1f366 scaffold(mobile): branch setup — audit harness, spec, plan, gitignore + client-portal cleanup Matt Ciaccio 2026-04-29 13:49:38 +02:00
  • ba89b61b3f fix(security): port-scope clientId/berthId/yachtId on interests + clientRelationships refactor/data-model Matt Ciaccio 2026-04-29 04:14:09 +02:00
  • 4eea19a85b sec: lock down 5 cross-tenant FK gaps from fifth-pass review Matt Ciaccio 2026-04-29 03:28:31 +02:00
  • 47a1a51832 sec: webhook SSRF guard, IMAP-sync owner check, watcher port membership Matt Ciaccio 2026-04-29 03:15:39 +02:00
  • 9a5479c2c7 sec: lock down socket.io room subscription + crm-invite cross-tenant ops Matt Ciaccio 2026-04-29 03:00:55 +02:00
  • e06fb9545b sec: lock down 5 cross-tenant IDORs uncovered in second-pass review Matt Ciaccio 2026-04-29 02:48:43 +02:00