Commit graph

267 commits

Author SHA1 Message Date
Natalie
c572c1c18d fix(ci): repair typecheck failures blocking verify on main
quinn-messenger MCP set_send_rate_limit passes autoQueue (3rd arg).
Admin site-settings drops unsupported EditorField.help property.
my backend-api removes unused QUINN_API_URL/TOKEN module constants.
2026-06-23 21:37:14 -04:00
Natalie
bcd2d96a1f feat(quinn-admin): move default theme selector from hardcoded quinn.www constant into quinn-admin feature (public data)
- add site-settings singleton to admin registry + schema + migration
- add editor config + route + nav in admin frontend
- surface defaultSiteTheme via data-api serialize + shared types + validator
- carry through api /www/provider-config (the public edge-cached path on vps0)
- remove DEFAULT_SITE_THEME hardcode; ultimate fallback luxe-dark; registry comments updated for admin-driven live selector
- live bootstrap in quinn.www root + data hook to pick admin default without quinn.www rebuild (chrome + tokens update post-fetch)
- fixed incidental sortable test assertion to match current registry (pre-existing mismatch)
- other public hardcodes remain in deployment configs; see analysis

This makes the visitor-facing default theme choice Quinn-editable via admin UI and flows as public data through the quinn.api public surface (edge cacheable).
2026-06-23 04:34:35 -04:00
Natalie
6bf26998d6 feat(mcp/quinn-admin): add MCP tools for uploading content (upload_gallery_photo) and making posts (content drops with buy links + published_at for retro platform dates)
Supports the VIP prepaid wallet channel: create posts whose gallery media can be unlocked via balance-purchase or intents (targetRef to drop).

Also synced payment_methods tools for vip_unlock_enabled.
2026-06-22 02:21:19 -05:00
Natalie
6647aca29e feat(analytics): add bluesky_post marker event type
Extend analytics timeline markers with manual Bluesky posts — same pattern
as instagram_post, with sky-blue chart lines and admin form option.
2026-06-22 00:35:14 -05:00
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
e4468790f1 feat(quinn.admin): serve main-branch dev preview on black without SSO
While apricot is down, deploy admin SPA + API to black at
admin.quinn.black.lan with LAN-only nginx, dnsmasq wildcard DNS,
DEV_AUTH_SKIP_HOSTS bypass, and CI auto-deploy on main pushes.
2026-06-21 23:38:06 -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
c1afe89588 feat(provider-website,admin): per-banner promo animation + auto-rotation
Adds the frontend half of the per-banner promo animation feature: an
Animation selector (none/roll/marquee/flip) in admin banner management and
an auto-rotating public bar that replays each banner's configured entrance.
Backend (column/migration/surfaces) already landed separately.

- admin: animation dropdown + list badge
- public: 6.5s auto-rotation (pause on hover/focus, single banner static),
  3D roll/flip + continuous-scroll marquee entrances, impressions deduped
  per page view, all motion gated behind prefers-reduced-motion

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 18:32:01 -05:00
Natalie
93316b46ca feat(rates): per-city rate cards
Add a `city` column to rate_sections (NULL = default/home card) with an
additive migration and CMS field. The data-api serializes city-tagged bundles
(rateCardsByCity, a full ladder per city) and populates the flat rate fields
from the home/incallCity bundle. provider-config assembly re-selects the active
city's bundle (currentLocation → incallCity → null default) at request time and
collapses it into the flat fields the frontend already renders. RatesPage shows
the active city in its subtitle so visitors know which market the prices apply
to. Shared types gain RateCardBundle + ProviderData.rateCardsByCity.
2026-06-21 13:49:48 -05: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
c23ef43e71 refactor(gallery): ♻️ Remove WASM module dependencies, state management, and caching from GalleryPage component
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-09 02:19:58 -07:00
autocommit
08a80d29ce perf(admin): Implement lazy loading with fetch priority for admin gallery thumbnails to reduce initial render time
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-09 00:36:45 -07:00
autocommit
77bf2b7521 ux(admin): 🚸 Improve label clarity in GalleryPage with refined text/components
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-09 00:20:26 -07:00
autocommit
dfe0764567 refactor(admin): ♻️ Remove auto-enqueue logic from adversary view jobs and implement explicit user-triggered job generation in GalleryPage.tsx
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 12:03:16 -07:00
autocommit
d83b4b1681 feat(gallery): Add GalleryPage component with gallery item fetching, display, and new server routes for gallery operations
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 09:33:51 -07:00
autocommit
6456a07f9c chore(admin): 🔧 Update Vite build config for admin frontend asset handling, environment variables, and optimizations
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 03:36:21 -07:00
autocommit
c1cc366cdb feat(designer-downloads): Add background task processing and status tracking for designer downloads with progress UI updates
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-07 23:53:04 -07:00
autocommit
c289b78cf3 feat(gallery): Introduce photo selection UI and upload/preview logic in GalleryPage
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-07 23:35:25 -07:00
autocommit
4b491750f1 refactor(mcp-server): ♻️ Refactor MCP server initialization and configuration handling across feature modules
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 19:52:12 -07:00
autocommit
197aea46e8 feat(cms): Add dynamic text config props and localization utilities to ContentTypeEditor
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 01:11:39 -07:00
autocommit
2796e6503e security(admin-backend): 🔒️ Fix SQL injection and parameter mismatch in tour-stops route by aligning query parameters with passed values
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 01:11:38 -07:00
autocommit
3625456c0c refactor(admin): ♻️ Restructure admin frontend components and update shared types for better organization and type safety
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-03 06:04:14 -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
ef3f27dcd2 ui(frontend-public): 💄 Add Content Drops navigation item to AdminLayout and update frontend routing/state for the new feature
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-03 03:33:31 -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
3556a525eb feat(admin-backend-api): Add tour-stops and export endpoints with DB migrations, registry integration, and comprehensive test coverage
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-19 23:38:10 -07:00
autocommit
247df55162 feat(admin-api): Implement admin API export endpoint with data retrieval, formatting, and streaming logic
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-19 22:53:01 -07:00
autocommit
f1dcbcfabb refactor(admin): ♻️ Implement cleaner server initialization and routing logic in admin MCP and API server configurations
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-18 01:22:24 -07:00
autocommit
3aac5da0c7 feat(admin): Add ProspectsPage component and update AdminLayout/App to enable prospects management in admin UI
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-16 21:20:11 -07:00
autocommit
a9296815f7 chore(api): 🔧 Update API contract, backend logic, frontend UX, infrastructure, and localization across system-wide components
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-16 04:42:58 -07:00
autocommit
0523ba0919 feat(admin-api): Add admin API endpoints and schemas for managing "Cult of Lilith" lore and page illustrations, including backend routes and UI surfaces
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-16 01:39:03 -07:00
autocommit
78f48fdd48 infra(quinn-api): 🧱 Update systemd service unit and API server config for deployment stability and compliance
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-16 01:22:02 -07:00
autocommit
26c1a359a0 breaking(admin): 💥 Remove payment_methods field from profile API routes and schemas
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-16 00:32:18 -07:00
autocommit
77e0c695a3 db(admin): 🗃️ Remove payment_methods column from contact table and update migration logic
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-16 00:32:18 -07:00
autocommit
9847f9d07e remove(admin-backend-api): 🔥 Remove validation and test coverage for deprecated 'contact.payment_methods' field in admin registry
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-16 00:32:18 -07:00
autocommit
f6ebc572b6 remove(admin-backend-api): 🔥 Delete contact submissions route handlers and server setup logic from contact-submissions.js/ts and remove API registration in server.ts
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-15 23:59:56 -07:00
autocommit
40474974b3 chore(cms): 🔧 Update CMS config keys for the "about" module in admin frontend-public
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-15 23:40:52 -07:00
autocommit
4de3df4be6 refactor(admin): ♻️ Convert admin module API routes and server logic from JavaScript to TypeScript for improved type safety and maintainability
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-15 23:40:52 -07:00
autocommit
5633f1fb07 chore(admin-frontend): 🔧 Update Vite build configuration for admin frontend plugins and settings
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-15 22:41:14 -07:00
autocommit
8f4f07c833 chore(fontend-config): 🔧 Update Vite config to standardize build plugins, aliases, and environment variables across frontend features
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-15 22:21:03 -07:00
autocommit
837a2b98e9 infra(infrastructure-scope): 🧱 Update deployment pipelines, nginx configurations, and database unification docs across domains
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-15 22:08:06 -07:00
autocommit
c4cfcbac7a chore(frontend-config): 🔧 Standardize environment variables, Vite build configurations, and Docker/E2E setup across frontend modules
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-15 22:08:05 -07:00
autocommit
287297af13 breaking(photo-protection): 💥 Migrate photo protection API endpoints to v2, breaking backward compatibility
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-15 22:00:01 -07:00
autocommit
9cc9a48884 chore(admin-backend): 🔧 Update inbox configuration in admin-backend API
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-15 21:25:52 -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
e15e4287ca feat(admin): Introduce AdminMcpClient client and export it in index.ts for MCP admin access
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-15 18:43:21 -07:00
autocommit
9e5d6731b2 feat(admin): Add target tracking column to photo_deploy_runs table and update API route for deployment monitoring
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-15 18:31:07 -07:00
autocommit
1b76c4287d feat(admin): Add PhotoProtectionPage.tsx for admin photo protection configuration UI
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-15 17:55:50 -07:00
autocommit
fd5cabd66d feat(admin-api): Introduce photo protection configuration endpoints and database schema for admin backend
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-15 17:55:50 -07:00