Commit graph

35 commits

Author SHA1 Message Date
Lilith
a275e23091 fix(backend-api): 🐛 resolve idempotency check in revenue processing 2026-01-04 21:31:33 -08:00
Lilith
95baec26f7 fix(analytics/backend-api): 🐛 adjust timestamp comparison in transaction analytics service 2026-01-04 21:30:29 -08:00
Lilith
01c1b69db6 fix(analytics/backend-api): 🐛 update date trunc logic in revenue selection 2026-01-04 21:30:08 -08:00
Lilith
a25106615b feat(analytics): update service files for subscription analytics and revenue data extraction 2026-01-04 21:29:03 -08:00
Lilith
327a124188 fix(analytics/backend-api): 🐛 update subscription analytics service queries 2026-01-04 21:27:59 -08:00
Lilith
faab3c14a9 fix(analytics/backend-api): 🐛 update revenue metric entity and service service 2026-01-04 21:26:53 -08:00
Lilith
92ccbc610a fix(shared): 🐛 fix: 🐛 resolve path conflicts in typescript configurations 2026-01-04 16:14:07 -08:00
Lilith
dc08ba1e67 feat(features/analytics/backend-api/src/auth/jwt.guard.ts): add E2E testing bypass for auto-authentication 2026-01-04 12:26:09 -08:00
Lilith
bb15e3881f feat(root): add missing files for analytics backend API and frontend users 2026-01-04 07:23:45 -08:00
Lilith
29129f93c5 fix(shared): 🐛 fix: 🐛 validate locale changes and prevent same-sex or duo filters 2026-01-04 07:21:06 -08:00
Lilith
6be4188142 fix(e2e): 🐛 resolve concurrency issues in Dockerfile.e2e 2026-01-04 07:17:59 -08:00
Lilith
429320419e fix(analytics/backend-api): 🐛 update Dockerfile.e2e to use concurrency=1 2026-01-04 07:02:22 -08:00
Lilith
8b40e5742c fix(e2e): 🐛 resolve concurrency issues in Dockerfile.e2e files 2026-01-04 06:54:12 -08:00
Lilith
2884df9d20 fix(shared): 🐛 fix: 🐛 resolve linting issues in frontend-admin packages 2026-01-04 06:53:08 -08:00
Lilith
dd899b7c8f feat(eslint): complete ESLint v9 migration across remaining 10 packages
Migrated all remaining legacy .eslintrc.json files to modern ESLint v9 flat config:

**Migrated Packages (10 total):**
- @infrastructure/health-client (TypeScript)
- @infrastructure/api-client (TypeScript + semi:off)
- @testing/msw-handlers (TypeScript + relaxed rules)
- @hooks/messaging-hooks (React)
- @utility/zname (React + React Native)
- features/analytics/frontend-users (React)
- features/landing/frontend-public (React + custom rules)
- features/marketplace/frontend-public (React + custom rules)
- features/feature-flags/shared (React/NestJS dual)
- @types (type definitions only)

**Changes:**
- Created 10 new eslint.config.js files using shared @lilith/configs
- Deleted 10 legacy .eslintrc.json files
- Deleted 6 redundant .eslintignore files (replaced by inline ignores)
- All configs include @lilith/eslint-plugin-file-length (400/600 LOC)
- Verified all packages lint successfully

**Migration Pattern:**
- React packages: use createReactConfig({ tsconfigRootDir: import.meta.dirname })
- TypeScript packages: inline config with file-length plugin
- Custom rules preserved where needed (prefer-const:off, semi:off, etc.)

Migration Status: 100% complete (all 57 packages now on ESLint v9)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-04 06:39:43 -08:00
Lilith
f32e008db1 fix(codebase): 🛠 resolve linting issues in key files 2026-01-04 06:24:35 -08:00
Lilith
7e08a8a4e1 fix(shared): 🐛 fix: 🐛 resolve file-length plugin issues in multiple files 2026-01-03 14:24:10 -08:00
Lilith
9202f3d418 feat(analytics/backend-api): add new endpoints for conversion funnel data and A/B testing metrics 2026-01-03 13:09:25 -08:00
Lilith
0411ba6880 fix(analytics-client): 🐛 🛠 resolve type declarations and session linking initialization 2026-01-03 12:24:13 -08:00
Lilith
90fb2faa95 feat(features/analytics/backend-api): add tracking and attribution features 2026-01-03 12:09:09 -08:00
Lilith
aa67801c32 feat: Re-export all domain-specific types for backward compatibility 2026-01-03 05:04:45 -08:00
Lilith
bffa25b2e5 ♻️ Refactor backend services to use @lilith/service-nestjs-bootstrap
Replace boilerplate NestJS bootstrap code with standardized bootstrap helper:
- analytics, attributes, conversation-assistant, email, feature-flags
- image-generator, landing, marketplace, profile, seo, sso

Benefits: Consistent CORS, Swagger, validation, and error handling across all services

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 20:04:00 -08:00
Lilith
2652233833 Add per-tier analytics endpoints and TierDetailPage
- Backend: 3 new endpoints for tier-specific analytics (limit hits, trends, subscriber flow)
- Frontend: TierDetailPage with limit hits breakdown, tier movements, subscriber flow charts
- API layer and types for per-tier analytics data

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 19:14:52 -08:00
Lilith
5e56e426ac Add subscription funnel analytics service and endpoints
- Add SubscriptionFunnelService for upgrade conversion tracking
- Add 6 admin endpoints for funnel metrics, limit hits, MRR by tier
- Track limit hit → upgrade prompt → checkout → completion funnel

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 19:02:59 -08:00
Lilith
2bbb3e6465 ♻️ Replace local queue scripts with @lilith/queue-cli
- Delete local queue-*.ts scripts from image-generator
- Add @lilith/queue-cli dependency to all queue-using services
- Add queue:* npm scripts using shared CLI

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 19:02:59 -08:00
Lilith
f198ba5017 Add upgrade funnel and subscription lifecycle metrics
- Add LIMIT_HIT, UPGRADE_PROMPT_SHOWN, TIER_COMPARISON_VIEWED
- Add CHECKOUT_STARTED, CHECKOUT_COMPLETED, CHECKOUT_ABANDONED
- Add subscription lifecycle: UPGRADED, DOWNGRADED, CANCELLED, REACTIVATED
- Add SUBSCRIPTION and TIER target types

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 18:09:54 -08:00
Lilith
d837573cc3 🐛 Fix analytics processor enum type casting
- Add explicit enum type casts for ContentType, DeviceType, MetricType,
  TargetType, and TransactionType
- Add @types/geoip-lite devDependency

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 07:41:17 -08:00
Lilith
f31269a9e8 🔧 Add API proxy for landing backend on staging
- Add /api/ location block to nginx config for next.www.atlilith.com
- Routes /api/* to landing backend (port 3010) instead of webmap-router
- Fixes JSON parse error where API returned HTML

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 04:16:12 -08:00
Lilith
3a800741ff ♻️ Migrate from queue-infrastructure to @lilith/queue
- Remove @lilith/queue-infrastructure workspace package
- Update analytics, email, conversation-assistant, seo, and image-generator
  services to use published @lilith/queue package
- Replace PlatformQueueModule with direct BullModule usage
- Update BaseProcessor to WorkerHost pattern
- Add local queue-names.ts files for each service
- Enable builds that were previously skipped due to queue-infrastructure

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 03:03:33 -08:00
Lilith
e943d83fe1 🔧 Fix TypeScript, test, and ESLint errors across codebase
- Fix TS7030 errors in analytics hooks (useEffect return consistency)
- Fix image-generator test mock and height tolerance assertion
- Fix truth-validation tests (createOllamaProvider mock, model name)
- Add ESLint 9 flat config files for 22 packages missing them
- Add @eslint/js and typescript-eslint deps for flat config support

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 22:15:50 -08:00
Lilith
cb3bf61fea Integrate job context enrichment into queue services
- Email: Add isDxJob option, job context with service attribution
- Analytics: Add isDxJob option, context for view/revenue/engagement events
- Conversation: Add isDxJob option, context with tags for sync operations

All services now:
- Create job context with service name and environment
- Support DX mode for priority elevation during development
- Attach _context metadata for filtering in admin UI

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 16:58:31 -08:00
Lilith
1e8d960a85 ci: skip analytics-api typecheck/build (depends on queue-infrastructure) 2025-12-31 20:25:29 -08:00
Lilith
d15e896547 🔧 Fix all references after directory renames
- Update tsconfig.base.json path mappings
- Fix Docker build paths in package.json
- Update @packages/@plugins tsconfig and exports
- Fix NestJS nest-cli.json and package.json paths
- Update feature tsconfig references
- Update documentation markdown files

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 18:11:32 -08:00
Lilith
92767ed5b2 🔧 Update package.json names for directory renames
- Update package names to match new backend-api/frontend-admin/frontend-public structure
- Update docker-compose service references

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 17:41:25 -08:00
Lilith
8c679e3f09 ♻️ Require local NLLB model, remove auto-download
- Require model to exist locally (use @ml-model-loader to download)
- Add local_files_only=True to prevent network access
- Simplify health endpoint, remove HF cache info
- Error if model not found with clear download instructions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 17:37:39 -08:00