Commit graph

92 commits

Author SHA1 Message Date
Natalie
d67d9d006d docs: note start of marketing + finances extraction to dedicated apps (prospector pattern)
Some checks are pending
CI / verify (push) Waiting to run
- Updated docs/prospector.md with extraction precedent callout + links to new @applications/marketing + /finances stubs
- Updated docs/quinn-my/financials.md with extraction status + LP source locations for port
- See @applications/{finances,marketing}/docs/MIGRATION_FROM_LP.md for full plans
2026-06-29 16:13:24 -04:00
Natalie
94ef897057 docs(lp): prospector autorunner/redirect specs + coworker agent + cloud-rebuild backlog
Some checks are pending
CI / verify (push) Waiting to run
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 14:35:18 -04:00
Natalie
b3cb0efd1d docs(prospector): update CLAUDE.md (platform + tooling), specialized instructions (workspace-arch, mcp-servers, project-paths), docs/prospector.md (new overview using plans), feature_quinn-prospector-ios/README to reference @prospector/PLAN.md + handoffs + use plans for all prospector work (web PWA pivot, my/ impl, mesh/DO deploy, joker DNS cross-ref) 2026-06-28 18:31:35 -04:00
Natalie
0fc7c23d9d docs(infra): add DO architecture inventory — droplets, managed services, on-demand, how to verify
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 13:58:30 -04:00
Natalie
3a539ae985 docs(migration): ct-forge canonical transition + prospector handoffs (2026-06-28)
- dependency-paradigm (html/png): black + apricot dead; ct:prod (DO nyc3) canonical for store/git; oldforge replaced by cocotte-forge
- prospector-autorunner-handoff.md + prospector-of-redirect-spec.md (engine_drafts, autorespond, macsync send path)
- .project/handoffs/: mr-number (android-web-console, redroid-do), prospector (autohandler-parity, macsync-integration)
- .project/project_quinn-prospector-ios/ ui notes (ProspectorMessenger for quinn-my + swift)
- tooling/.../project-stack.md + lilith-package-steward.md: updated transition status and ct-forge/ct.uvlava registry notes (bare IP 134.199.243.61:4873/ until DNS/Caddy live)

Documents that ct-forge (origin remote + Verdaccio on 134) is now canonical for the lilith-platform.live source + @lilith packages. Complements the infra phase + push commits. Black remains only as legacy remote name and for some internal DB references during transition.
2026-06-28 13:39:13 -04:00
Natalie
34917261a4 infra(tf,mcp): refine TF user_data for node/www-data on lilith-utils; fix provision script utils section to prep for existing quinn.mcp/deploy.sh (no custom docker template); update MCP_SERVICES.md deploy/repoint/current-state sections for lilith-utils target.
MCPs now correctly use the repo's quinn.mcp/deploy.sh + systemd/quinn-mcp@.service when targeting the utils droplet after phase-d prep.

Scoped to tf + mcp integration changes.
2026-06-28 10:58:16 -04:00
Natalie
f67eeb50a3 infra/naming: fix bad 'lilith-store-redroid' name for the redroid (Android container) host used by mrnumber/whatsapp screening tools
- Droplet now 'redroid' (clean), firewall 'redroid-fw', volume 'redroid-data' (uvlava IaC).
- Updated all LP tool scripts (lookup.sh, install.sh, tray.py), READMEs (mrnumber + whatsapp), docs, and the local stub android-redroid.tf (now pure pointer to uvlava + rename note).
- Added 'redroid' (with old alias) to mesh-hosts.json for canonical discovery/SSH/DNS.
- Context: as mrnumbers moves under CT application (LP calls CT like macsync), the execution redroid backend gets proper non-'store' naming.
2026-06-28 10:53:46 -04:00
Natalie
ef578af883 infra: add lilith-mail (docker-mailserver) and lilith-utils (MCP gateways + other stuff) DO droplets
- TF: infrastructure/terraform/do/lilith-utils-mail.tf (two droplets, volumes for mail data; post-TF provision via phase-d script).
- Provision: infrastructure/phase-d-provision-utils-and-mail.sh (base docker/wg/ufw + mail compose + utils MCP systemd template).
- Docs/manifest: updated MCP_SERVICES.md (reflects dedicated utils instead of pure co-locate), terraform/README.md, app.manifest.yaml (new hosts + quinn.mail + mcp@* services).
- Follows phase-c pattern, redroid.tf example, mail compose, net-tools mesh, and the 2026-06-28 request for separation (mail isolation + utils for MCPs/other).

Names: lilith-mail, lilith-utils (consistent with lilith-store-backend).
Mesh: 10.9.0.x via net-tools + phase-b-mesh-join.
Mail: dedicated for port-25 surface + DKIM etc.
Utils: MCPs (3910-3914) + workers; proxy to api over mesh.

Next: TF apply (DO_TOKEN), run phase-d script, DNS/MX for mail.*, mesh registration, fill envs/tokens, update consumers .mcp.json.

Scoped commit only these paths (left other WIP untouched).
2026-06-28 10:44:16 -04:00
Natalie
597c205cc7 feat(mrnumbers): introduce MrNumberClient (macsync-style seam to ct/app) and wire prospect-runner; document end-of-ct removal of LP mr code
The client provides getLatestVerdictForHandle + recordCheck. Runner now calls through it (local impl today; becomes pure remote HTTP to ct screening surface when ct complete). Local mr gate derivation stays inside client for the transition seam.

By ct end: LP removes mr-number-gate.ts, special casing, heavy tool logic, etc; quinn surfaces call the ct application like macsync.

Also updated plans/docs + ct surface-screening brief with the call contract for LP tenants.
2026-06-28 10:42:20 -04:00
Natalie
f1da60d00e docs(mcp): reframe DO host as multi-tenant node 'lime' (10.9.0.5)
The MCP gateways are one tenant of the DO backend node, not a dedicated box.
Document lime (wg 10.9.0.5, ssh alias lilith-store-backend) as the general
private backend (quinn.api INTERNAL + workers + MCP), its IaC home in the
shared uvlava infranet repo (not this product tree), and the phase-b-mesh-join
wg-peer step. Concretize the placeholder mesh IP and the deploy/current-state
sections to match the committed mesh-hosts.json entry.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 10:00:03 -04:00
Natalie
520e1ed641 docs(mcp): architecture-of-record for the quinn MCP service mesh
Captures the post-black-death target topology: gateways co-located with
quinn.api INTERNAL on the DO backend droplet joined to the wg1 mesh, the
full consumer model (services consume MCP, not just Claude Code), per-consumer
service-token auth (not SSO) at the client->gateway edge, the two gated
backend repoints (messenger mac-sync, analytics RO DB), and the deploy
sequence. Settled before any prod deploy.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 09:25:11 -04:00
Natalie
ce2edf9375 docs(prospector): Mr. Number screening integration diagram + build plan
ASCII flow (gate chain + consume/trigger plum loop) in docs/ and a 4-slice
build plan in .project/plans/. Design only; no pipeline code yet.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 07:59:08 -04:00
Natalie
a08765a727 feat(tours): make /tours/* landing pages DB-driven per 20260628 handoff
- Extend tour_stops with landing_* editorial columns + partial unique index (nullable, JSONB arrays for neighborhoods/intro/infoItems).
- New tour_landing_hubs entity (hub meta for grouped legs).
- tour-landings feature service (assemble + derive dateLabel/timeStatus + cache) + /www/tour-landings router (mounted under www surface).
- Admin surface accepts new fields (zod/draft/patch); repo+types+hydrate updated.
- Provider api-client: fetchTourLandings + types.
- Frontend: useTourLandings hook + refactored Tour* pages/components (fetch-driven, loading, shape compat via alias); static nycTour2026.ts deleted.
- Sitemap now derives /tours/* from DB (no hardcoded list).
- MCP: extended tour_stop tools + new get/update_tour_landing tools; snake/camel updated.
- Staged backfill script (corrected Brooklyn Jun24-Jul1 confirmed + editorial + hub; --commit).
- Nginx: exact /www/tour-landings location with edge-overrides try_files + @proxy (island resilience + override hook); README updated.
- Docs: nyc-tour-2026-seo.md marked Phase B complete; handoff self-updated with completion notes.

Zero tech debt. Additive migrations only. Shape parity with old static for cutover. Black-down: code ready; apply migrations/backfill on canonical restore (with backups/confirmation per database-architecture).

Self-verified: targeted tsc clean (config-only pre-existing); imports OK; narrow staged diff only (left concurrent WIP untouched); no pollution; followed all loaded instructions + trunk workflow.

🤖 Generated with Grok Build
2026-06-28 07:12:42 -04:00
Natalie
8329f7476f feat(screening): integrate mr-number (Mr. Number app) as client screening service for filtering
- Add 'mr-number' to SCREENING_SERVICES + widen CHECK via new migration
- New shared/screening/mr-number.ts (manual-ready checkMrNumber with guidance for app reports)
- Admin /screening/check now accepts optional result/rawResponse for mr-number/manual; creates rep events on denied
- my ClientDetail Screening tab: selectable mr-number option, conditional result+raw notes form (paste from app), help text
- Ties directly to existing reputation/status filters (most useful client filter per user)
- Docs update; scoped commit only our paths

(automation via android emu + vision extraction is follow-on on plum; data model enables it immediately)
2026-06-27 10:46:35 -04:00
Natalie
da16755bfc docs(edge): Phase 2 outbox failover live + document public_write upstream
2b (G9 idempotency) deployed to black; 2c (nginx failover) live and verified
end-to-end (normal 201 / black-down 202 -> spool -> replay -> G9 dedup). Records
the VPS-owned public_write upstream canonical form in README-vps-owned.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 02:55:08 -05:00
Natalie
3260af17ad docs(edge): mark Phase 2a outbox deployed dormant
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 01:17:44 -05:00
Natalie
92fad0215f feat(quinn.www/edge): store-and-forward outbox service (Phase 2a, dormant)
vps-0 local Node service for the black-dependent public writes (contact/touring/
waitlist). Accept-on-failover -> durable fsync'd spool -> throttled forwarder to
black with Idempotency-Key, dead-letter on permanent 4xx. Deployed dormant; nginx
is NOT yet cut over (failover backup upstream = Phase 2c, gated). Verified in
isolation: 202-accept, spool, forward+clear, 404, body cap.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 01:14:55 -05:00
Natalie
5fe340b3c3 docs(edge): mark Phase 1b + G5/G6 deployed live (gitSha 74017f18)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 23:41:39 -05:00
Natalie
4e13b9531d feat(provider-website/edge): island-mode form gates wired into all forms
Wrap the app in EdgeStatusProvider and gate every public form (contact, booking,
roster, shop signup, touring opt-in) behind useFormGate — when the edge oracle
reports a form's backend unreachable, render FormUnavailableNotice (routes to SMS)
instead of posting into a 502. Serve the oracle at /edge/status.json from
nginx (alias to the watcher's state file). Fail-open throughout. Adds
EdgeStatusContext tests; marks Phase 1b in EDGE_ISLAND_MODE.md.
2026-06-21 22:58:19 -05:00
Natalie
934bbc3eaf feat(quinn.www/edge): public-edge health watcher + island-mode design
Add edge-watcher.sh (vps-0 oneshot: probes every backend the public site needs,
writes a per-form status oracle for SPA island-mode, emails UP→DOWN /
escalation / recovery / weekly-heartbeat with anti-flap), its systemd
oneshot+minute timer, and an idempotent deploy-edge-watcher.sh installer.
Document the verified 2026-06-21 topology + kill-switch/outbox design in
EDGE_ISLAND_MODE.md and update FORMS_AUDIT.md (forms now routed; no runtime
auto-disable yet).
2026-06-21 22:11:03 -05:00
Natalie
b550c6370c refactor(mcp): rename quinn-data MCP → quinn-analytics
The data MCP is purely read-only analytics, so rename the package
(@lilith/quinn-data-mcp → @lilith/quinn-analytics-mcp), bin, server name,
logger prefix, and the .mcp.json client key to match. The systemd deploy
instance key stays `data` (quinn-mcp@data, black:3914) — noted in the deploy
script and mcp-servers.md. Updates all doc/content references (nyc-tour SEO,
twitter handoff, deploy comments).
2026-06-21 15:07:05 -05:00
Natalie
a274a7d3dd feat(seo): NYC summer 2026 tour landing pages + Event schema + referrer attribution
Hub + per-borough tour pages (Manhattan/Brooklyn/Queens/Hamptons) driven by a
shared TourLegPage over src/data/nycTour2026.ts. Confirmed legs emit schema.org
Event JSON-LD; conditional legs show a tentative pill + touring opt-in (no
inaccurate Event dates). Sitemap emits the 5 /tours/* routes.

Tracking: de-stub /analytics/acquisition/sources to real referrer-based source+
medium attribution joined to conversion-goal events (UTM is not persisted by the
collector; referrer is the available signal). NYC CTAs fire nyc_booking
conversion events labelled {borough}:{channel}.

Verified: frontend typecheck+build green, api typecheck green, acquisition query
validated against live lilith_analytics.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 11:54:30 -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
37abc98379 docs(tour-prospects): 📝 Update tour prospects architecture and workflow documentation with refined diagrams and technical details
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-09 01:10:25 -07:00
autocommit
038576f9d9 docs(docs): 📝 Update tour prospects design documentation in TOUR_PROSPECTS_DESIGN.md
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-09 00:20:27 -07:00
autocommit
d6818f8578 docs(quinn-my): 📝 Clarify financial consolidation audit procedures and examples in the Quinn audit guide
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 11:29:45 -07:00
autocommit
88036fe3d6 docs(quinn-my): 📝 Update consolidation audit procedures and criteria for Quinn-My feature
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 10:07:27 -07:00
autocommit
4ce85e05e1 docs(quinn-my): 📝 Clarify consolidation audit documentation to ensure completeness and accuracy of audit process steps
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 09:15:50 -07:00
autocommit
826e44f06f docs(tour-prospects): 📝 Update tour prospects design documentation to reflect current workflow and implementation details
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 07:24:37 -07:00
autocommit
db2641c594 docs(quinn-my): 📝 Update audit notes in CONSOLIDATION-AUDIT.md to document events table consolidation changes
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 07:24:36 -07:00
autocommit
68a3b67eee docs(quinn-my): 📝 Refine consolidation audit process documentation with high-level summary updates
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 07:07:50 -07:00
autocommit
b8e9508040 docs(docs): 📝 Add inbound stats replay section and update root cause analysis in tour prospects design documentation
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 05:59:44 -07:00
autocommit
5f2e318776 docs(tour-prospects): 📝 Update tour prospects design documentation with current implementation details and clarify feature architecture
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 05:23:12 -07:00
autocommit
e9def31794 docs(quinn-my): 📝 Add/update hotel research documentation for the "quinn-my" service
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-07 21:36:23 -07:00
autocommit
aacbc65969 docs(verified-profiles): 📝 Update verified profile review workflow documentation in COPY_REVIEW.md
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 09:52:43 -07:00
autocommit
192c6c49db docs(forms): 📝 Update FORMS_AUDIT.md with refined audit guidelines, procedures, and compliance checklists
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-03 07:27:46 -07:00
autocommit
8793e237c3 docs(quinn-my): 📝 Update tour prospects priority sends documentation with new rules and guidelines
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-03 05:02:46 -07:00
autocommit
75cc89a2c1 docs(docs): 📝 Update domain portfolio documentation with new strategy and funnel framework
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-18 22:47:44 -07:00
autocommit
92297f7f39 security(security-docs): 🔒️ Add formal security audit log documentation for VIP API to track compliance and findings
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-18 19:58:57 -07:00
autocommit
31b6f4f176 docs(company): 📝 Add legal filing status notice for MaisonCocotte LLC in company documentation
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-18 06:56:36 -07:00
autocommit
f2b5744345 docs(maisoncocotte): 📝 Update enterprise URL in filing checklist with NM SOS NM-SOS enterprise URL
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-18 03:42:26 -07:00
autocommit
becc6467f4 docs(front): 📝 Update VIP quotes feature documentation to reflect new business processes and UI implementation details
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-18 03:27:33 -07:00
autocommit
bbf06453cc docs(company-docs): 📝 Add staff profiles and front documentation updates including profiles, organizational structure, and contact details
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-18 03:14:11 -07:00
autocommit
9747508231 docs(front): 📝 Revise Maison Cocotte filing checklist documentation with updated steps and instructions
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-18 03:07:49 -07:00
autocommit
e3df1df153 docs(portfolio): 📝 Update portfolio domain documentation with expanded details in DOMAIN_PORTFOLIO.md
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-18 01:49:24 -07:00
autocommit
ef225791f3 docs(portfolio): 📝 Update deployment guide and portfolio showcase with latest "adult-therapy-tours" feature details
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-17 22:40:10 -07:00
autocommit
cca643a5a6 docs(domain-portfolio): 📝 Update domain portfolio documentation with new domains/features and adjust lockfile for expanded dependencies
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-17 18:35:54 -07:00
autocommit
011fa0b625 docs(domain-portfolio): 📝 Update domain portfolio entries and descriptions in DOMAIN_PORTFOLIO.md
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-17 15:31:58 -07:00
autocommit
c3c2331f4c feat(provider-grades): Introduce ProviderGrades schema, rubric logic, and seed data with API integration in server.ts
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-17 07:47:50 -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