Commit graph

98 commits

Author SHA1 Message Date
Natalie
d1504dcf40 feat(ftw): mint short links via quinn-admin MCP and track clicks in analytics
Add list/create/delete_short_link tools to quinn-admin MCP wrapping quinn.api
/admin/short-links. Relay short_link_click interaction events to the analytics
collector on every ftw.pw /s/:code redirect (alongside existing click_count).
2026-06-22 00:26:20 -05:00
Natalie
7fbc8696b1 feat(analytics): timeline markers (deploys, tour stops, content drops)
Add an analytics-marker entity (types/schema/repo + migration) and a
record-analytics-marker helper, with an admin CRUD surface + AnalyticsMarkersPage
(nav in AdminLayout). Auto-record markers when tour stops and content drops are
created/changed. Expose them via /analytics/markers (analytics-queries +
user-data router proxy + useMarkers hook + api types), and render them as
reference lines with a legend on the dashboard Overview trend chart.
2026-06-21 22:57:26 -05:00
Natalie
b617f4bcb9 fix(tour): arriving stop wins on transition days
When a stop's endDate equals the next stop's startDate (the travel/check-out
day), both overlap 'today'. Sort overlapping stops by latest startDate (confirmed
winning an exact tie) so the city most recently arrived at is active, not the
departing one. Applied in both deriveTourStatus (backend, with a new www-tour
test) and TourMap's client-side activeStop.
2026-06-21 17:33:48 -05:00
Natalie
c5bca260e9 test(api): auto-skip DB-dependent tests off the fast LAN path
The api suite is ~95% Postgres integration tests against black, which is only
low-latency from apricot/LAN. Run from plum (over the mesh) the per-test DB
round-trips blow the 60s timeout. New scripts/run-tests.ts probes the test DB
and, when unreachable or slow (round-trip > QUINN_DB_LATENCY_SKIP_MS, default
250ms), skips the DB-dependent files and tells the harness (QUINN_SKIP_DB_TESTS)
to no-op its DB setup + tx isolation — so the DB-free subset still runs.

CI (or QUINN_REQUIRE_DB_TESTS=1) always runs the full suite so a broken DB fails
loud, never silently skips. test-env.ts is the shared gate; test:full / test:no-db
force either mode. From plum: 370 pass, 0 fail (92 DB files skipped, logged).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 18:20:11 -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
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
4e8198415e refactor(api): ♻️ Implement transaction-based database isolation in test harness for faster, parallel test execution
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 23:30:08 -07:00
autocommit
b54a8c0ba8 ci(api): 👷 Optimize test harness with increased timeout and optimized DB migration setup to reduce flaky tests and speed up execution
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 22:23:00 -07:00
autocommit
eb42e3c0b0 fix(api-tests): 🐛 Prevent concurrent migration race conditions by adding thread-safety to migration execution in test harness
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 17:33:35 -07:00
autocommit
2250dd439f test(api): Update test harness and financials tests to reflect adversary view jobs behavior changes
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 12:03:16 -07:00
autocommit
610bdbd981 test(api): Add test harness and test cases for financials and journal entry migrations in the API module
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 11:46:41 -07:00
autocommit
0848df5617 feat(tour-stops): Add PricingTier types, methods, and tier management UI components
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 04:45:04 -07:00
autocommit
d4daa3eb0e feat(credentials): Implement credential entity, database schema, API routes, and encryption utilities for secure credential storage with self-hosted validation
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 00:20:08 -07:00
autocommit
d1f1d62ed7 feat(promo-banner): Implement promo banner entity with schema, types, repo, admin API endpoints, and frontend components
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-03 06:04:12 -07:00
autocommit
dc3d3a1ad5 db(api-api): 🗃️ Add Content Drop migration tables and update API server startup to handle scheduled drops with test coverage
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-03 03:33:32 -07:00
autocommit
480b2a3414 feat(content-drops): Implement Content Drops entity, admin/public API routes, frontend page, and supporting hooks with schema validation and repository logic
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-03 03:33:31 -07:00
autocommit
8a546836f4 feat(api-surfaces): Introduce gallery reactions API endpoints with add/remove functionality and comprehensive test coverage
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-31 20:43:26 -07:00
autocommit
9b23c802f1 feat(gallery-reaction): Introduce GalleryReaction entity with repository, schema, and types for managing user reactions on gallery items, including comprehensive tests
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-31 20:43:26 -07:00
autocommit
4d56869609 feat(admin): Add photo protection and management API endpoints with admin privacy/monetization controls and comprehensive test coverage
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-16 00:52:29 -07:00
autocommit
03e50645d6 feat(api): Implement payment methods API endpoints, add comprehensive test coverage for admin/provider/www scenarios, and include data migration scripts for legacy payment method cleanup and backfilling
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-16 00:45:50 -07:00
autocommit
0629b4b476 test(api): Update test database connection URL to use .lan domain for local development
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-15 22:21:03 -07:00
autocommit
0ab3d6d66a feat(admin): Add payment editors, photo protection routes, and AI photo-intake personas with legacy migration and infrastructure updates
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-15 21:19:17 -07:00
autocommit
a52b5c5cba feat(prospector): Add engine_drafts table support with new API routes and test coverage
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-14 01:00:13 -07:00
autocommit
b517690283 test(api): Add AI schema bootstrap logic to test harness to validate API schemas in production-like environment
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-14 00:06:24 -07:00
Natalie
e420f09fd5 reconcile: 🔧 plum/apricot divergence resolution + apricot-only authoring rule
Some checks failed
CI / verify (push) Has been cancelled
Resolves 630/374 plum-vs-origin divergence by resetting plum to origin/main and
porting forward the genuinely net-new plum work atop apricot's evolution.

Reconciled features:
- Tour stop coordinates (lat/lng) end-to-end: DB schema + admin auto-geocoding via
  @/shared/geo/geocode + published @lilith/provider-api-client types + 4 MCP tools
  (list/add/update/delete_tour_stop) + 3 UI components consuming the data
- New entities: correction, prompt-revision, prospect-qualification (migrations
  ordered after engine-draft for FK dependency)
- New API surfaces: admin/qualification, engine/drafts, m/qualification, vip/roster
- Prospector dashboard (7 UI pages + backend routes + entity wiring)
- ATT preview deployment + new design preview dirs + company/* docs
- 11 new objective files (p1-70..78, p2-77, infra-bootstrap-orchestrator)
- 15 handoff docs + 12 orchestrator-runtime files
- mac-sync-client.sendDirect(gatesPassed) dev-warning + 4 call sites threaded
- G4 positive-case sibling tests for 'client' and 'regular' URL allowance

Workflow rule change:
- CLAUDE.md Remote Hosts rewritten — apricot is now the sole authoring surface;
  plum becomes view-only with a branch-and-PR workflow for emergency edits
- Pre-commit hook + drift sentinel installed on plum to prevent re-accumulation

Skipped: 5 relics, 10 root PNGs, auto-gen state, ~95 mods where origin evolved
beyond plum. Safety: origin/plum-pre-rebase-2026-05-13 preserves original tip 6c56a20c.
2026-05-13 21:16:34 -07:00
autocommit
3b72adddc9 test(api): Add test cases for contact rendering and client override rendering in API module
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-04 14:45:52 -07:00
autocommit
dc75b91608 test(api-api): Refine TypeScript types and add test utilities for API test data, assertions, and validation in m-contact-render, www-blog, and www-tour test files
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-03 15:11:03 -07:00
autocommit
7da2d6a318 ci(api): 👷 Increase timeout for test execution in api tests to handle CI environment delays
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-03 02:49:26 -07:00
autocommit
76fd3ee38b test(api): Increase timeout for contact render tests to improve reliability in slower environments
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-03 02:31:20 -07:00
autocommit
2e25537464 perf(api): Optimize test performance by using shared DB connections and migrating setup to beforeAll
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-03 02:01:13 -07:00
autocommit
86b582127f test(api): Update test coverage for emoji slots rendering in client contact previews
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-03 01:55:23 -07:00
autocommit
7509821784 breaking(provider-config): 💥 Restructure ProviderConfigService endpoints to enforce new endpoint paths, update config.ts and server.ts routes, and ensure backward-compatibility tests in m-contact-render.test.ts are maintained
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-03 01:49:13 -07:00
autocommit
759658e827 test(api): Add test cases for "my calls" API surface and update test coverage for public contact, roster, and touring surfaces; enhance test harness
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-26 19:12:30 -07:00
autocommit
d0f9b0ef5e test(api): Add test coverage for "my-contacts" geo-enrichment endpoints with schema validation, edge cases, and error handling.
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-26 02:38:28 -07:00
autocommit
80fb892d7b infra(api): 🧱 Update server startup logic, middleware, and test harness mocking utilities for API deployment and testing
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-26 02:32:23 -07:00
autocommit
0c52bfba2a feat(contact-backfill): Add backfillContacts function and Contact entity schema updates with test coverage
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-26 02:32:22 -07:00
autocommit
e87ae6fec1 feat(geo-enrichment): Add client geo-enrichment backfill and enrichment pipeline with entity repository and test coverage
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-26 02:32:22 -07:00
autocommit
120948feac test(api): Enhance test stability and performance for calendar events by updating test harness and adding timeout configurations
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-26 02:13:02 -07:00
autocommit
ef8bdd1f74 feat(calendar-events): Extend CalendarEvents API to include participant names and add comprehensive test coverage for participant data handling
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-26 00:44:43 -07:00
autocommit
04873444c8 test(api): Add test coverage for calendar event refresh-summary API endpoints
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-26 00:00:38 -07:00
autocommit
40d3860de0 feat(api-entities): Add calendar-event, client-booking, and mac-sync-status entities with repositories, schemas, and API endpoints; implement calendar projection processor
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-25 23:10:06 -07:00
autocommit
5d1c783dbc feat(contact-render): Introduce new rendering logic, styling, and preview APIs for contact previews and decisions
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-25 23:10:06 -07:00
autocommit
b054220565 chore(api): 🔧 Update test database connection URL in API module test config
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-25 19:52:08 -07:00
autocommit
342f6c575a test(api): Add and update test coverage for VIP API endpoints and the "story" feature in vip-api.test.ts and story.test.ts
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-25 18:50:40 -07:00
autocommit
a5883374ca test(vip-api): Add migration test cases for VIP entities (client, invite, gift, meeting) in API module
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-25 18:39:24 -07:00
autocommit
c4a595395c test(api): Improve test database initialization and cleanup for API features with parallel cleanup and better error handling
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-25 18:29:06 -07:00
autocommit
e5016a2656 feat(contacts): Add suppression logic and emoji override support for contact decision rendering
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-25 18:29:06 -07:00
autocommit
b683421965 test(api-tests): Update test utilities for API feature testing with improved mocking, lifecycle handling, and database schema migrations
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-25 18:18:58 -07:00
autocommit
70028ae8e5 feat(my): Introduce ClientContactPreview and ClientRenderOverrides components with unit tests and exports
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-25 17:16:23 -07:00
autocommit
a08e19b77b feat(api): Add contact preview endpoint and UI component for My surface
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-25 15:37:24 -07:00