Commit History
-
feat(observability): log Meta Graph API version at startup
CognxSafeTrackBoth API and Worker now emit a ✅ info log at boot showing the active META_GRAPH_API_VERSION, or a ⚠️ warn if the version is below v21.0 (which signals a likely-deprecated version). Visible directly in Railway logs without digging into the code.d66ae60
-
chore: force redeploy v1.1.2
CognxSafeTrack3b4544a -
chore: trigger redeploy for technical debt resolution verification
CognxSafeTrack44f1818 -
revert: remove startup seed function — data inserted directly in DB
CognxSafeTrack +1: Claude Sonnet 4.6WhatsAppPhoneNumber (969048009628694 -> default-org-id) and systemUserToken for XAMLÉ Global seeded directly via script. No runtime seed needed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>6f838af -
fix(seed): auto-register global WhatsApp phone number from env vars on startup
CognxSafeTrack +1: Claude Sonnet 4.6On API start, if WHATSAPP_PHONE_NUMBER_ID + WHATSAPP_ACCESS_TOKEN are set, finds the org whose systemUserToken (decrypted) matches the env token and upserts WhatsAppPhoneNumber so webhook routing works without manual setup. Fixes first/global organization breaking after multi-org migration. Idempotent — no-op if record already exists. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>34691b4 -
feat: backlog P0→P3 — toast system, payments, tenant isolation, feedback handler, i18n parity
CognxSafeTrack +1: Claude Sonnet 4.6P0 — Critical fixes - Fix generate-feedback job silently dropped: register FeedbackHandler in worker index.ts - Wire FeedbackHandler: AI feedback, Day 11 TeamMember extraction, atomicity enforced P0 — Toast system (replace all alert()) - Add useToast hook + ToastContext + Toaster component - Replace every alert() across admin pages with toast.success/error/warning/info - Migrate all raw fetch() in pages to api.upload() / api.get() / api.post() P1 — Type safety - CrmAIAssistant: icon prop any → React.ElementType - useAudioRecorder: add onError callback instead of alert() - api.ts: add upload() method for multipart FormData P1 — Payment gateway - Add payment-gateway.ts: Orange Money + Wave initiation and webhook parsing - Rewrite payments.ts routes: initiate, status, webhook handlers with auto-enrollment on SUCCESS P1 — AI regression tests - Add apps/api/test/regression/ai-gold-standards.test.ts (12 tests, 5 suites) P2 — Visual recruitment (Day 11) - FeedbackHandler extracts TeamMem…6dd9bad
-
fix: update production port to 7860 for Hugging Face compatibility and add audit report
CognxSafeTrack10211c3
-
chore: stabilization, audit fixes and project synchronization
CognxSafeTrack7b0c22b
-
fix: log silent catch blocks, remove emojis from production logs
CognxSafeTrack +1: Claude Sonnet 4.6- MediaHandler.ts: .catch(()=>({})) on normalization rules now logs warning with err context before returning empty fallback - indexing.ts: catch{} on URL parsing now logs at debug level; remove duplicate logger import - index.ts: remove emoji characters from logger calls (🚀 ❌ 🛑 👋) — replaced with plain ASCII text prefixes for clean log aggregation Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>3165bfa -
fix: batch scheduler updates, typed JWT user, log catch blocks, move script
CognxSafeTrack +1: Claude Sonnet 4.6- scheduler.ts: collect completed enrollment IDs in loop, single updateMany after — eliminates N queries per day for completions - ContentHandler.ts: log Redis cache failures instead of swallowing silently - index.ts: remove (request as any).user cast — now safe via FastifyJWT augmentation in types/fastify.d.ts - types/fastify.d.ts: augment @fastify/jwt FastifyJWT interface so request.user resolves to {id, role, organizationId} after jwtVerify(), not string|object|Buffer - delete-user.ts: moved from apps/api root to apps/api/scripts/ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>2859b85 -
feat: implement inbound audio/image transcription, secure media proxy, and client-side bulk contact import
CognxSafeTrack30d60ea -
feat: implement centralized API ErrorHandler
CognxSafeTrack- Created standardized error mapping for Prisma, JWT, and validation errors - Registered setupErrorHandler in Fastify entry point - Improved API reliability and observability through consistent error structurec51c0db
-
feat: implement AI campaign generation logic and frontend integration
CognxSafeTrack9f0410f -
chore: deploy manual fixes for TS strict mode
CognxSafeTrack9b8717a -
chore: finalize Sprint P2 & P3 optimizations, baseline prisma migrations, and update technical audit docs
CognxSafeTrackcfbb685 -
feat: push notifications, CRM analytics, Fastify v5 upgrades, schema updates
CognxSafeTrack +1: Claude Sonnet 4.6- Add web push notification service and admin endpoints - Add CRM analytics component and conversational dashboard - Extend Contacts page with campaign management - Update AI and whatsapp routes (Fastify v5 compat, webhook fixes) - Extend Prisma schema with new models and indexes - Add CRM campaign prompt template Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>b43e552
-
fix: resolve 401/400 errors by centralizing API client and injecting organizationId in backend
CognxSafeTrackcfeac02 -
fix: add 'as any' casts to resolve TS2769 plugin registration errors (cors, rate-limit, bullboard)
CognxSafeTrack255a85a -
security: restrict CORS, enforce secrets validation, fix internal forwarding header
CognxSafeTrack89847a8 -
fix: move setupRateLimit before server.listen() to fix AVV_ERR_ROOT_PLG_BOOTED
CognxSafeTrackf934d3b -
chore: synchronize latest API routes and lockfile changes to GitHub
CognxSafeTrackce5b580 -
chore: implement Phase 3 initial setup (TypeScript cleanup and health test)
CognxSafeTrackdf5c8fa -
fix: rename rate-limit middleware to rateLimit to help IDE resolution
CognxSafeTrack303f611 -
fix: add global types and inject prisma into fastify to resolve build errors
CognxSafeTracke3c056c -
fix: finalize API index imports and cleanup types
CognxSafeTrackde7231f -
fix: resolve IDE errors and missing middleware in API index
CognxSafeTrack6f87c06 -
fix: restore and stabilize API index with clean route registration
CognxSafeTrack071d56f -
debug: capture full stack trace on fatal startup error
CognxSafeTrack4b70b95 -
fix: change worker port to 8082 and log API port for diagnostic
CognxSafeTrack9a936fa -
debug: add verbose startup tracing for route registration
CognxSafeTrack0a2a069 -
fix: remove duplicate health route
CognxSafeTrackf34444d -
fix: open port before heavy initializations to prevent 502
CognxSafeTrack804312b -
fix: revert to tsx and add diagnostic routes
CognxSafeTracke1c8d70 -
chore: use compiled JS in Docker and add startup logs
CognxSafeTrack9d3cd28 -
fix: update CORS policy to allow all origins for easier debugging
CognxSafeTrack44df82e
-
fix: resolve api build errors and multi-tenant unique key constraints
CognxSafeTracka37afe6
-
feat: migrate to multi-tenant SaaS architecture with JWT auth and BullMQ notifications
CognxSafeTrack2ab1980
-
feat: Premium Onboarding with Meta SDK and Technical Debt resolution
CognxSafeTrack6248bf4
-
deploy: force fresh build for multi-tenant gateway and worker synchronization
CognxSafeTracka993a81
-
feat: B2B SaaS Multi-tenant architecture & Tech Debt Resolution
CognxSafeTracke289c5c -
chore: stabilize whatsapp-worker with strict typing and multi-tenant hardening
CognxSafeTrack1a00f18 -
feat: implement end-to-end B2B client management with Meta Embedded Signup
CognxSafeTrackddc506d
-
fix: allow CORS preflight OPTIONS requests in guarded routes
CognxSafeTrackac6a112
-
chore: major tech debt cleanup v2.1 - Type Safety & Observability
CognxSafeTrack853ee72 -
Fix: Add Garbage Collector (GC) for media and temp files
CognxSafeTrackf4e46e8 -
Refactor: Technical Debt Repayment (Clean Dashboard, Strict Typing, Pino Logging, SQL Migration)
CognxSafeTrackde6a95b
-
chore: execute Sprint 38 technical debt resolution (Type Safety, Zod validation, Vitest, Mock LLM extracted)
CognxSafeTrackd9879cf -
feat: Genspark-Standard upgrade, MLOps audit fixes, and XAMLÉ branding
CognxSafeTrackeac938a
-
fix(logic): prioritize commands over exercises and strictly lock gateway routing
CognxSafeTrack4a79a6d
-
fix: port alignment, cascade delete, and audio pipeline hardening
CognxSafeTrack0de1348