Commit graph

496 commits

Author SHA1 Message Date
Natalie
7a1534991e fix(ci): unblock typecheck for messages Thread and my frontend
Thread.tsx imported iMessage primitives from @lilith/ui-messaging where
they are not exported; point at @lilith/ui-imessage instead. Add
skipLibCheck to my/frontend-public and raise the tsc heap in
typecheck-all.sh so the CI sweep no longer OOMs on large frontends.
2026-06-22 00:10:22 -05:00
Natalie
00b6329e4e feat(my-api/health): report build stamp on GET /health
Mirror the api/sso build stamp on quinn-my-api: inject __BUILD_INFO__ via bun
build --define in deploy.sh and return version/buildCount/sha/builtAt + service
+ startedAt as JSON from /health (was bare 'ok'). Falls back to env then 'dev'.
2026-06-21 22:10:47 -05:00
Natalie
813d3b99b4 fix(quinn.my): build frontend with vite build directly, not lixbuild
deploy-quinn-my's build job hung ~40 min at the lixbuild step inside the
Forgejo runner's act Docker container, then died on the job timeout — the
long-standing reason quinn.my never deployed via CI.

Root cause: lixbuild's frontend builder runs `execa("vite", ["build"],
{ stdio: "pipe" })`. vite spawns esbuild's persistent service process, which
inherits execa's stdout/stderr pipe fds. When vite exits, execa keeps waiting
for those pipes to reach EOF, but the lingering esbuild service holds them
open — so execa (and thus lixbuild) blocks forever. The deadlock only shows in
the container; on a normal shell esbuild's service tears down cleanly. quinn.www
never hit this because quinn.www/root builds with `vite build` directly.

Switch my/frontend-public to `vite build` (exactly what lixbuild runs
internally, minus the piped-execa wrapper). Verified: identical dist output,
3.5s build, and it matches the already-working quinn.www pattern in the same
runner. (The underlying lixbuild stdio:"pipe" bug should be fixed at source in
@lilith/lix-build so every frontend consumer benefits — tracked separately.)

Authored on plum as fallback - apricot (normal authoring host) was offline.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 03:58:13 -05:00
Natalie
528eca3a8b feat(quinn.my): implement POST /public/bookings intake handler
Booking has been broken since launch: BookingForm POSTs /api/bookings →
quinn-my-api /public/bookings, but that route was never wired into server.ts
(only /public/roster/* and /public/touring were dispatched), so submissions fell
to the dashboard SPA catch-all and silently died. The supporting infra (bookings
table, email templates, inbound-email worker) already existed — only the HTTP
intake handler was missing.

- routes/booking-intake.ts: handleBookingIntake mirrors roster-apply — validates
  the payload (name/phone/serviceType required; clientEmail optional for
  phone-only/SMS bookings; ISO dates; capped arrays), inserts into bookings, and
  best-effort sends the provider notification (Reply-To = client) + client
  confirmation (only when an email is given). Email failures never fail a
  persisted booking.
- schema-bookings.ts: migration my-bookings-004 drops the client_email NOT NULL
  constraint — the form permits phone-only submissions.
- server.ts: register POST /public/bookings with the standard addCors wrapper.

Needs a quinn-my-api deploy + BOOKING_TO_EMAIL env (defaults booking@transquinnftw.com).
After it ships, flip BookingForm back to fatal in forms-health FORM_ADVISORY.

Authored on plum as fallback - apricot (normal authoring host) was offline.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 18:02:06 -05:00
Natalie
231b58b2d3 chore(ci): typecheck-all.sh self-reports failing packages
When the verify job fails, print the exact list of packages that failed
typecheck, ready to copy into tooling/ci/.typecheck-debt. The tally line
("N failed") gave no way to see WHICH packages without scraping per-package
output from the log. Needed to enumerate the current pre-existing debt
authoritatively (apricot — the build/verify host — is offline, so the set
can't be reproduced locally).

Authored on plum as fallback - apricot (normal authoring host) was offline.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 05:05:39 -05:00
autocommit
81ff5544a6 types(api): 🏷️ implement stricter request/response payload and error schema types for API contract validation
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-10 21:33:02 -07:00
autocommit
18db1b8f41 deploy(infrastructure): 🚀 Update server configurations, deployment scripts, and infrastructure files; increment build version and deployment count
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-10 21:33:02 -07:00
autocommit
dfc107d243 feat(prospect-cockpit): Add API endpoints for prospect-cockpit and tour-stops integration and frontend ConversationDrawer component to display unified prospect data
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-10 21:33:02 -07:00
autocommit
2260138af8 feat(prospector): Introduce three new tab-based views (Stream, Board, Cohort) for prospect management UI and backend queue logic
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-10 21:33:02 -07:00
autocommit
aadd679c4b feat(tour-logistics): Add incall hotels data types, schemas, and repository logic; implement tour logistics feature with prospect queue integration; introduce frontend editor and display components
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-10 21:33:02 -07:00
autocommit
84d31a0afe feat(prospector-quinn): Introduce AI prospecting tools (heat scoring, reply generation) and Quinn-AI gateway integration, alongside frontend UI updates, backend API refactoring, and infrastructure enhancements for edge-purge and proxy services.
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-10 20:40:01 -07:00
autocommit
511f81e428 refactor(backend-api): ♻️ Remove deprecated booking routes and consolidate handlers into the main API module
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-10 20:40:00 -07:00
autocommit
d59c9d5d67 chore(frontend-public): 🔧 Update Vite config with performance plugins, proxy settings, and introduce environment variables for gateway feature
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-10 20:40:00 -07:00
autocommit
158a704418 breaking(api): 💥 Update client entity schema, prospector classification, and admin photo export routes with breaking changes
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-10 14:58:14 -07:00
autocommit
12de9ea5e5 deps-upgrade(deps): ⬆️ Update dependency versions to enforce consistent and compatible package.json and lockfile across the codebase
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-10 14:58:14 -07:00
autocommit
549fc45270 types(fontend-public): 🏷️ Add TypeScript types for prospect backfill API responses in api.ts
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-09 02:56:08 -07:00
autocommit
bc4f30e081 ui(pages): 💄 Add ProspectorBackfillBar component and styled styling for backfill functionality in the prospector page
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-09 02:56:07 -07:00
autocommit
9bef0c3570 feat(prospector): Add prospector cockpit frontend components (ConversationDrawer, ProspectorOwedReplyTab, ProspectorPage, ProspectorTourBoardTab) and styled utilities, plus updated API type definitions
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-09 02:02:15 -07:00
autocommit
58ac19d184 feat(frontend-public): Add ProspectorTourBoardTab and ProspectorTourCohortTab components with React hooks, state management, and API integration for tour-based data exploration
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-09 01:10:25 -07:00
autocommit
29b63ee7fc refactor(prospector): ♻️ Replace CockpitTabId with CockpitModeId in ProspectorPage and update tab labels for mode-based navigation
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-09 01:10:25 -07:00
autocommit
b1c52ad800 feat(prospector): Add ProspectorOwedReplyTab, ProspectorTourCohortTab, and styled components for prospector cockpit/tour UI, plus API type definitions
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-09 00:53:31 -07:00
autocommit
9ae5d40a1a feat(prospect-classifier): Introduce prospect classifier logic, queue management system, and frontend UI for viewing/managing prospects, noise, owed replies, and tour leg cohorts
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-09 00:03:14 -07:00
autocommit
0f5c6dd13c chore(frontend-public): 🔧 Update Vite build config for frontend-public with new plugins and adjusted build settings
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-09 00:03:14 -07:00
autocommit
75f691943a chore(frontend-public): 🔧 Update Vite config for frontend-public builds with optimized plugins and environment settings
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 06:50:34 -07:00
autocommit
77a599a418 feat(prospector): Implement ProspectorPage component with JSX structure and prospect data rendering logic
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 03:36:21 -07:00
autocommit
8e5c56210c feat(prospector): Introduce drafted prospects count in prospector funnel and update frontend display
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 03:19:15 -07:00
autocommit
ab4aef4d9e docs(backend-api): 📝 Clarify test documentation to distinguish between local and proxied operations in projects routes
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 01:38:46 -07:00
autocommit
5aedbea6b3 refactor(api-routes): ♻️ Update route handlers to align with API changes, including request parsing, response formatting, and middleware adjustments
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 01:21:05 -07:00
autocommit
c89e667f0c refactor(bookings): ♻️ Proxy booking routes to backend API and update tests
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 01:21:04 -07:00
autocommit
014556fcb9 feat(financials-specific): Add financials API endpoints with auth validation and data processing logic
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 01:03:26 -07:00
autocommit
acac586805 test(device-link): Add test cases for device link TTL validation and cookie expiration scenarios
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 01:03:25 -07:00
autocommit
d2f2ef5774 refactor(backend-api): ♻️ Improve test infrastructure by refactoring mock handling and test setup utilities
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 01:03:25 -07:00
autocommit
03e575d819 test(backend-api): Add comprehensive test cases for credential validation, generation, and storage logic
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 00:45:28 -07:00
autocommit
72a458b3c5 test(backend-api): Update client route tests to validate BFF proxy behavior in backend API
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 00:45:28 -07:00
autocommit
bf80e4f0b5 feat(backend-api): Implement CRUD API routes for roster types with route definitions and data management logic
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 00:45:28 -07:00
autocommit
a26893ce49 feat(backend-api): Add Express.js route handler for roster management in roster-apply.ts and implement corresponding unit/integration tests in roster.test.ts
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 00:45:28 -07:00
autocommit
d53f87a2da feat(projects): Implement project CRUD API routes for project management functionalities
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 00:45:27 -07:00
autocommit
9d4d5d84fe feat(planner): Implement planner API routes for task scheduling and unit tests
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 00:45:27 -07:00
autocommit
846be3f74c feat(backend-api): Add booking API endpoints for creating, listing, and managing bookings
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 00:45:27 -07:00
autocommit
10a8ba4a80 feat(backend-api): Implement dynamic test database naming for parallel execution
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 00:27:53 -07:00
autocommit
6cb3010d65 db(backend-api): 🗃️ Update ProjectSchema columns and migrations for new structural compatibility
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 00:10:31 -07:00
autocommit
cac5f4f292 chore(backend-api): 🔧 Update dev env vars, Vitest config, and deployment examples for backend API
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 00:10:31 -07:00
autocommit
83068496ea feat(backend-api): Implement booking-related server routes and enhance booking template logic
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-07 23:18:03 -07:00
autocommit
ae65295a95 breaking(backend-api): 💥 Remove contact outbox, templates, and schema from backend API and update configs
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-07 23:18:03 -07:00
autocommit
2b69a24ff6 feat(backend-api): Introduce migration advisory lock in db.ts to prevent duplicate migrations during concurrent boots
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-07 22:59:45 -07:00
autocommit
f9fbb1742f feat(outreach): Add deferred query parameter support for outreach search in API surface and frontend UI
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-07 21:18:59 -07:00
autocommit
547619f035 feat(frontend-public): Add Outreach Compose and Review tabs with new components and API types for drafting/reviewing outreach messages
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-07 20:59:25 -07:00
autocommit
c9fb2c0839 feat(outreach): Add API route handlers for outreach campaigns and user interactions
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-07 20:41:39 -07:00
autocommit
421ca65e9d feat(frontend-public): Introduce OutreachPage with multi-tab UI (Qualification, Compose, Review, Settings), responsive layouts, and dedicated routes, plus API types for outreach endpoints
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-07 20:41:38 -07:00
autocommit
54ad4b9dfd chore(my): 🔧 Update Vite build config for frontend-public to optimize my feature builds
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-07 20:41:38 -07:00