Commit Graph

  • f93de75bb5 fix(ops): /health DB+Redis checks, validated env.REDIS_URL across workers, error_events 90d retention Matt Ciaccio 2026-05-06 14:59:07 +02:00
  • 64f0e0a1b8 fix(security): brochures.service UPDATE/DELETE WHERE includes portId Matt Ciaccio 2026-05-06 14:58:47 +02:00
  • 3f6a8aa3b8 feat(bulk): synchronous bulk action endpoints + UI on interests/clients/yachts Matt Ciaccio 2026-05-06 14:58:34 +02:00
  • c90876abad feat(admin): inquiry inbox, send log, email-template overrides, reports dashboard, recommender keys, role-editor coverage; replace placeholder pages Matt Ciaccio 2026-05-06 14:58:17 +02:00
  • 8cdee99310 feat(activity): per-entity Activity timeline (clients/yachts/companies/berths) Matt Ciaccio 2026-05-06 14:57:51 +02:00
  • d19b74b935 feat(profile): /settings/profile page + change-password endpoint Matt Ciaccio 2026-05-06 14:57:35 +02:00
  • 1b78eadd36 feat(audit): extend AuditAction enum + audit logging on alerts + expense dedup Matt Ciaccio 2026-05-06 14:57:24 +02:00
  • 1fb3aa3aeb fix(regressions): client-bundle ioredis + Drizzle ANY() array bindings Matt Ciaccio 2026-05-06 14:56:59 +02:00
  • 7bd969b41a fix(audit-integrations): SMTP/PG/Socket.IO timeouts, prompt injection, secret-at-rest Matt Ciaccio 2026-05-05 21:31:50 +02:00
  • 63c4073e64 fix(audit-verification): regressions found in post-Tier-6 review Matt Ciaccio 2026-05-05 21:19:39 +02:00
  • 83239104e0 fix(audit-tier-6): validation, perms, ops/infra, per-port webhook secret Matt Ciaccio 2026-05-05 21:03:31 +02:00
  • 4bab6de8be test(audit-tier-5): webhook + cross-port test coverage Matt Ciaccio 2026-05-05 20:53:34 +02:00
  • 4eea4ceff9 fix(audit-tier-4): tenant-isolation defense-in-depth Matt Ciaccio 2026-05-05 20:48:13 +02:00
  • 7854cbabe4 perf(audit-tier-3): bulk-fetch the five hot N+1 loops Matt Ciaccio 2026-05-05 20:41:23 +02:00
  • d3a6a9beef fix(audit-tier-2-routes): manual NextResponse.json error sweep + admin form banners Matt Ciaccio 2026-05-05 20:36:59 +02:00
  • fc7595faf8 fix(audit-tier-2): error-surface hygiene — toastError + CodedError sweep Matt Ciaccio 2026-05-05 20:18:05 +02:00
  • 6a609ecf94 fix(audit-tier-1): timeouts, lifecycle, per-port Documenso, FK constraints Matt Ciaccio 2026-05-05 19:52:58 +02:00
  • cf430d70c3 fix(storage): route every file op through getStorageBackend() Matt Ciaccio 2026-05-05 18:41:02 +02:00
  • 312779c0c5 fix(security): tier-0 audit blockers (next CVE, role gate, perm traps, key validation, rate limits) Matt Ciaccio 2026-05-05 18:33:13 +02:00
  • 4723994bdc feat(errors): platform-wide request ids + error codes + admin inspector Matt Ciaccio 2026-05-05 14:12:59 +02:00
  • c4a41d5f5b feat(expenses+interests): trip/event grouping (lightweight) Matt Ciaccio 2026-05-05 13:46:54 +02:00
  • 687a1f1c2f fix(audit-v3): platform-wide deferred-list cleanup (rounds 1-4) Matt Ciaccio 2026-05-05 12:49:53 +02:00
  • ade4c9e77d fix(audit-v2): platform-wide post-merge hardening across 5 domains Matt Ciaccio 2026-05-05 05:51:39 +02:00
  • d4b3a1338f fix(security): scope berth-pdf service entrypoints by portId Matt Ciaccio 2026-05-05 05:31:33 +02:00
  • cf37d09519 Merge feat/berth-recommender into main Matt Ciaccio 2026-05-05 05:12:24 +02:00
  • 180912ba9f fix(audit-final): pre-merge hardening + expense receipt UI Matt Ciaccio 2026-05-05 05:11:26 +02:00
  • 014bbe1923 feat(expenses): streaming expense-PDF export + receipt-less expense flag + audit-3 fixes Matt Ciaccio 2026-05-05 04:38:32 +02:00
  • a3e002852b fix(audit-2): integration regressions + data-integrity from second-pass review Matt Ciaccio 2026-05-05 04:20:38 +02:00
  • 312ebf1a88 docs(eoi): document multi-berth Berth Range field + legacy parity Matt Ciaccio 2026-05-05 04:13:32 +02:00
  • 0b8d08b57e docs(claude): add berth-recommender + storage + send-outs conventions Matt Ciaccio 2026-05-05 04:09:27 +02:00
  • 86372a857f fix(audit): post-review hardening across phases 0-7 Matt Ciaccio 2026-05-05 04:07:03 +02:00
  • b4776b4c3c feat(interests): linked berths list with role-flag toggles + EOI bypass Matt Ciaccio 2026-05-05 04:01:56 +02:00
  • a0091e4ca6 feat(emails): sales send-out flows + brochures + email-from settings Matt Ciaccio 2026-05-05 03:38:47 +02:00
  • 249ffe3e4a feat(berths): per-berth PDF storage (versioned) + reverse parser Matt Ciaccio 2026-05-05 03:34:24 +02:00
  • 83693dd993 feat(storage): pluggable s3-or-filesystem backend + migration CLI + admin UI Matt Ciaccio 2026-05-05 03:15:59 +02:00
  • 15d4849030 feat(recommender): API endpoint + interest-detail panel + add-to-interest dialog Matt Ciaccio 2026-05-05 03:05:22 +02:00
  • e00e812199 feat(eoi): multi-berth EOI generation + berth-range formatter Matt Ciaccio 2026-05-05 03:03:29 +02:00
  • b1e787e55c feat(recommender): SQL ranking + tier ladder + heat scoring Matt Ciaccio 2026-05-05 02:58:34 +02:00
  • fb1116f1d4 feat(berths): public berths API + health env-match endpoint Matt Ciaccio 2026-05-05 02:52:44 +02:00
  • 5b70e9b04b feat(interests): desired-dimension form fields + size-desired column Matt Ciaccio 2026-05-05 02:49:01 +02:00
  • 57cbc9a506 fix(tests): cascade interest_berths in global teardown Matt Ciaccio 2026-05-05 02:45:45 +02:00
  • 6e3d910c76 refactor(interests): migrate callers to interest_berths junction + drop berth_id Matt Ciaccio 2026-05-05 02:41:52 +02:00
  • ff92a08620 feat(db): m:m interest_berths junction + role flags Matt Ciaccio 2026-05-05 02:22:11 +02:00
  • 05257723f6 fix(interests): list yacht join + EOI status column + col redesign Matt Ciaccio 2026-05-05 02:18:13 +02:00
  • 3017ce4b3a fix(clients): list contacts join + nationality backfill + col redesign Matt Ciaccio 2026-05-05 02:15:03 +02:00
  • a2588f2c4a chore(berths): refresh seed-data/berths.json from live NocoDB Matt Ciaccio 2026-05-05 02:08:53 +02:00
  • 18119644ae feat(berths): nocodb berth import script + helpers + unit tests Matt Ciaccio 2026-05-05 02:07:58 +02:00
  • 61e2fbb2db feat(berths): add per-berth pricing + last_imported_at columns Matt Ciaccio 2026-05-05 02:00:46 +02:00
  • 05be89ec6f feat(berths): normalize mooring numbers to canonical form Matt Ciaccio 2026-05-05 01:59:26 +02:00
  • 8699f81879 chore(style): codebase em-dash sweep + minor layout polish 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