• Joined on 2025-01-31
matt pushed to main at letsbe/pn-new-crm 2026-06-02 23:04:01 +02:00
2315b58764 fix(docker): bundle socket.io transitive deps into crm-app runner
matt pushed to main at letsbe/pn-new-crm 2026-06-02 20:10:20 +02:00
15a139e86f feat(berths): website auto-promote toggle + manual-override soft-pin priority
matt pushed to main at letsbe/pn-new-crm 2026-06-02 18:02:47 +02:00
04ddd59662 chore(repo): untrack internal docs + CLAUDE.md (keep local-only)
matt pushed to main at letsbe/pn-new-crm 2026-06-02 17:50:45 +02:00
2a4dadd5a7 docs(launch): execute-ready initial-deployment runbook
44b004fa8f feat(intake): recipient picker UI (users/roles/everyone/emails)
5ea0c75fff feat(intake): structured notification-recipient resolver (emails/users/roles/everyone)
0416dc8d39 docs(launch): website-integration env vars + cutover sequence
990b566eff feat(intake): CRM-owned website inquiry emails + in-app notifications
Compare 5 commits »
matt pushed to main at letsbe/pn-new-crm 2026-06-02 15:09:35 +02:00
f699533224 Merge feat/residential-toggle-and-reports-comparison into main
79b6ab2ae0 fix(build): split custom-report registry into client-safe metadata + server query module
cd82958307 docs(launch): Initiative 2 (codebase + security audit) COMPLETE — 85 findings remediated
478aba1866 docs(audit): remediation complete — 84/85 fixed, L21 false-positive; M23/M25 DB migrations deferred
8c4c9b967e fix(audit): UI — L18 (decorative emoji -> Lucide icons), L19 (gated NotesList timer + create-from-url ref-in-effect)
Compare 119 commits »
cd82958307 docs(launch): Initiative 2 (codebase + security audit) COMPLETE — 85 findings remediated
478aba1866 docs(audit): remediation complete — 84/85 fixed, L21 false-positive; M23/M25 DB migrations deferred
8c4c9b967e fix(audit): UI — L18 (decorative emoji -> Lucide icons), L19 (gated NotesList timer + create-from-url ref-in-effect)
e7fdf75a6c fix(audit): residential/tenancies — M28 (unified stage validation), M29 (explicit-disable wins), L31 (active-tenancy warning), L32 (socket event + saveStages tx)
7b74e2314b fix(audit): M24 — reserve 'branding'/'avatar' file categories from the upload/update API
Compare 32 commits »
366b0d79fd docs(launch): reports polish shipped — empty states + Operational Area filter
0ee3cd6073 feat(reports): operational Area filter (FilterBar + query + template scope)
91d8ee226b feat(reports): financial report-level empty state
24e88ae32e feat(reports): sales report-level empty state
7cf364e03a feat(reports): shared ReportEmptyState component
Compare 10 commits »
matt created branch feat/residential-toggle-and-reports-comparison in letsbe/pn-new-crm 2026-06-02 10:28:05 +02:00
matt pushed to main at letsbe/pn-new-crm 2026-05-22 15:54:50 +02:00
43719b49e9 feat(dashboard): merge rearrange into the Customize modal
matt pushed to main at letsbe/pn-new-crm 2026-05-22 15:49:55 +02:00
54c5d0ff1e feat(dashboard): replace in-place widget drag with modal sortable list
matt pushed to main at letsbe/pn-new-crm 2026-05-22 14:33:44 +02:00
e4fb425d05 fix(layout): persist resolved viewport tier in cookie to kill SSR flicker
matt pushed to main at letsbe/pn-new-crm 2026-05-22 14:26:45 +02:00
ee4d5c8610 fix(dashboard): persist widget drag-drop order (validator was dropping it)
matt pushed to main at letsbe/pn-new-crm 2026-05-22 14:22:36 +02:00
355f242b8f fix(layout): topbar grid auto-expanded center column hid right buttons at 780-1280
matt pushed to main at letsbe/pn-new-crm 2026-05-22 14:06:54 +02:00
9ae7940a04 fix(layout): migrate date pickers to useViewportTier mobile-only
matt pushed to main at letsbe/pn-new-crm 2026-05-22 14:04:09 +02:00
c24f9e5508 docs(uat): annotate the two Bucket 1 layout fixes as SHIPPED in 2f1e1b5
2f1e1b5f3f fix(layout): unblock tablet topbar trigger + un-crush 1024 dashboard title
Compare 2 commits »
matt pushed to main at letsbe/pn-new-crm 2026-05-22 13:59:54 +02:00
d0639421bd docs(uat): append visual breakpoint audit findings to master doc
c5affc9b45 chore: gitignore tmp/ + remove accidentally-committed audit screenshots
cb91f78cbc fix(turbopack): drop pino logger from berth-range — async_hooks leaked to client bundle
Compare 3 commits »
matt pushed to main at letsbe/pn-new-crm 2026-05-22 13:42:20 +02:00
fcab7745aa fix(lint): use Route cast in ClientsByCountryWidget so prettier doesn't reflow the eslint-disable
matt pushed to main at letsbe/pn-new-crm 2026-05-22 13:40:29 +02:00
c1daed1991 fix(lint): unbreak CI build — misplaced eslint-disable directives
6d665d0113 feat(layout): add tablet viewport tier (mobile/tablet/desktop)
6af75eda01 docs(uat): backfill SHIPPED markers across master doc
Compare 3 commits »
matt pushed to main at letsbe/pn-new-crm 2026-05-22 13:08:29 +02:00
589be0bfed docs(uat): annotate U66 SHIPPED in plan + master doc
ef379013e6 feat(uat-batch): U66 — EOI berth-scope picker inside generate dialog
adf4e2ba78 fix(reports): split PDF widget catalogue out of the DB-touching service
Compare 3 commits »
matt pushed to main at letsbe/pn-new-crm 2026-05-22 12:58:02 +02:00
52493801e0 feat(uat-batch): M43 follow-up — yacht detail field history
f6cb733424 docs(uat): annotate M43 + plan with SHIPPED markers
91be0f9136 feat(uat-batch): M43 — form-template bindings + inline field history
be261f3f90 fix(dev-lan): unblock phone-on-LAN testing of the dev server
Compare 4 commits »