Commit Graph

  • a837c95d8c fix: contact form creates Lead only, not Patient hardening/apr-week2 saridsa2 2026-04-21 16:41:11 +05:30
  • ac76ef5487 feat: add telephonyEnabled to ui-flags endpoint saridsa2 2026-04-21 16:38:18 +05:30
  • 99954c1ff2 fix: widget build outputs to ./dist instead of sidecar public/ saridsa2 2026-04-21 14:26:03 +05:30
  • 4b84792619 fix: instant widget lead assignment + SSE notification saridsa2 2026-04-21 13:08:59 +05:30
  • 9890559ec1 fix: append IST offset (+05:30) to bare datetime in appointment booking saridsa2 2026-04-21 11:14:24 +05:30
  • 9cb4d1c122 docs: website widget operations guide + archive widget source saridsa2 2026-04-21 06:39:23 +05:30
  • 014b27cf90 fix: restore full widget.js with chat-start flow from aa41a2a saridsa2 2026-04-21 06:21:17 +05:30
  • 826ced1e62 feat: include widget.js in Docker image for embed script serving saridsa2 2026-04-21 05:51:30 +05:30
  • bbea12185d feat: Claude skill for generating WhatsApp flow JSON definitions saridsa2 2026-04-20 21:31:00 +05:30
  • f1c026cf7a fix(flow): serialize per-phone execution to prevent concurrent flows saridsa2 2026-04-20 20:48:55 +05:30
  • d819888351 feat: appointment QR code — generated and sent via WhatsApp after booking saridsa2 2026-04-20 20:23:06 +05:30
  • 300fff25c1 feat(flow): handle 'Choose Another Date' with AI date parsing saridsa2 2026-04-20 19:32:31 +05:30
  • 9ee087b898 fix: extract datetime from slot selection ID before booking saridsa2 2026-04-20 19:05:47 +05:30
  • 963cf28d23 fix: link patientId to appointment in WhatsApp booking saridsa2 2026-04-20 18:56:39 +05:30
  • 903e82b536 fix: include default-flows JSON in nest build assets saridsa2 2026-04-20 18:48:22 +05:30
  • 2e0527e1d8 feat: config-driven flow runtime engine for WhatsApp conversations saridsa2 2026-04-20 18:27:29 +05:30
  • 4549241b78 docs: flow runtime design spec — config-driven WhatsApp conversation engine saridsa2 2026-04-20 18:18:17 +05:30
  • 6a3834a7eb feat(messaging): conflict check before booking appointment saridsa2 2026-04-20 15:46:27 +05:30
  • 6847f5de95 fix(messaging): appointment field is 'status' not 'appointmentStatus' saridsa2 2026-04-20 15:44:56 +05:30
  • d857a0b270 fix(messaging): truncate WhatsApp list section titles to 24 char limit saridsa2 2026-04-20 15:37:30 +05:30
  • 214cc60917 fix(messaging): teach AI to parse selection_id format for tool dispatch saridsa2 2026-04-20 15:31:20 +05:30
  • c4c437abd6 fix(messaging): parse postbackText from Gupshup list_reply, pass selection ID to AI saridsa2 2026-04-20 15:25:35 +05:30
  • b1922809d0 fix(messaging): generate hourly slots from visitSlots day-of-week data saridsa2 2026-04-20 15:19:09 +05:30
  • 8aae95e8cc fix(messaging): directive prompt — force interactive lists, add hospital name saridsa2 2026-04-20 15:09:19 +05:30
  • 2c947517af feat: WhatsApp AI assistant — provider-agnostic messaging with Gupshup saridsa2 2026-04-20 14:45:10 +05:30
  • 473183869a Merge branch 'hardening/apr-week2' of https://dev.azure.com/globalhealthx/EMR/_git/helix-engage-server into hardening/apr-week2 Kartik Datrika 2026-04-20 14:40:31 +05:30
  • 3bb4315925 fix: persist LOGIN events for session rollup — fixes zero dashboard metrics saridsa2 2026-04-20 10:27:40 +05:30
  • 350fcdd926 fix: persist LOGIN events for session rollup — fixes zero dashboard metrics saridsa2 2026-04-20 10:27:40 +05:30
  • 7402590969 fix: always include Health Packages section in KB — empty state says "not configured" saridsa2 2026-04-18 17:47:13 +05:30
  • 3f22166ac0 fix: dispose creates inbound Call record, webhook enriches — eliminates UCID mismatch + timing race saridsa2 2026-04-18 08:31:07 +05:30
  • 8c8b1e78b0 feat: caller context cache invalidation endpoint saridsa2 2026-04-18 05:29:56 +05:30
  • 77b3e917db fix: fetch Lead first to resolve patientId before appointments query saridsa2 2026-04-17 16:23:48 +05:30
  • 34eae1c19a merge: hardening/apr-week2 → master (v0.13-ai-coaching) master saridsa2 2026-04-17 12:47:37 +05:30
  • 68ba3e135d fix: remove example from schema description — AI was copying it verbatim v0.13-ai-coaching saridsa2 2026-04-17 11:58:59 +05:30
  • e1babb30e5 fix: AI message formatting — plain text sentences, no markdown/data dump saridsa2 2026-04-17 11:46:44 +05:30
  • ae360a183d feat: enforce structured JSON output via AI SDK Output.object saridsa2 2026-04-17 11:40:25 +05:30
  • e03b1e6235 feat: structured JSON output + suggestion rules in AI system prompt saridsa2 2026-04-17 11:11:13 +05:30
  • 2d18110786 feat: suggestion rules engine + caller context evaluation saridsa2 2026-04-17 11:09:47 +05:30
  • a576552f8a feat: pre-fetched caller context replaces tool-based patient lookups saridsa2 2026-04-17 09:56:18 +05:30
  • b11f4ea336 feat: log backfill endpoint for desktop log panel saridsa2 2026-04-17 08:51:55 +05:30
  • 96ae867288 feat: server log streaming via SSE for desktop log panel saridsa2 2026-04-17 08:22:11 +05:30
  • 9a016a2ed0 feat: real-time active call SSE — hold/unhold status for supervisor live monitor saridsa2 2026-04-17 05:45:14 +05:30
  • 9cf0f69dde feat: SSE push for worklist updates — instant missed-call notifications v0.10-apr-16-disposition-sla-sse saridsa2 2026-04-16 18:32:57 +05:30
  • a6f4c51ca9 fix: disposition for answered inbound calls + SLA timing wiring + backfill saridsa2 2026-04-16 18:02:49 +05:30
  • 2d8308bed8 fix: remove hardcoded Inbound_918041763265 campaign fallback saridsa2 2026-04-16 17:33:35 +05:30
  • 2666a10f48 fix: await Ozonetel logout + per-agent sipPassword + campaign name on missed calls saridsa2 2026-04-16 16:54:08 +05:30
  • 1dd8413297 Revert "AI Summary not showing appointments fix." Kartik Datrika 2026-04-16 14:54:20 +05:30
  • 7d8424b446 Revert "AI Summary not showing appointments fix." Kartik Datrika 2026-04-16 14:54:17 +05:30
  • 55b8680923 AI Summary not showing appointments fix. Kartik Datrika 2026-04-16 12:50:33 +05:30
  • 973614749b AI Summary not showing appointments fix. Kartik Datrika 2026-04-16 11:36:10 +05:30
  • a00668c517 feat(ai): UUID-safe agent tools + lookup_lead_activities + tool logging saridsa2 2026-04-16 05:39:08 +05:30
  • a1413aae40 fix(supervisor): sweep stale activeCalls before returning to Live Monitor saridsa2 2026-04-16 05:38:52 +05:30
  • 6adb3985cb feat(config): ui-flags endpoint driven by HELIX_SETUP_MANAGED saridsa2 2026-04-15 18:55:25 +05:30
  • 67c41f4783 feat(maint): session-status endpoint for agent picker saridsa2 2026-04-15 18:55:18 +05:30
  • d459d6469a fix(worklist): include patientId in assigned-leads query saridsa2 2026-04-15 18:55:08 +05:30
  • 60d2329dd8 fix(call-attribution): resolve Ozonetel chain AgentNames to agent.id saridsa2 2026-04-15 18:55:00 +05:30
  • f375e7736c fix(my-performance): LOGIN TIME uses AgentSession rollup, not Ozonetel summary saridsa2 2026-04-15 12:25:23 +05:30
  • 96977e84a1 feat(maint): backfill-appointment-clinics endpoint saridsa2 2026-04-15 12:01:08 +05:30
  • 00303df95b fix(slots): hide past slots today even on cache hit saridsa2 2026-04-15 11:38:23 +05:30
  • 34e053204f feat(leads): sidecar polling service for auto-assigning unassigned leads saridsa2 2026-04-15 11:23:53 +05:30
  • 98f5bc0347 fix(ai-chat): use correct Clinic schema in knowledge-base query saridsa2 2026-04-15 10:31:00 +05:30
  • 048545317d fix: set platform name on every entity create — patients/appts/calls/etc no longer "Untitled" saridsa2 2026-04-15 09:32:28 +05:30
  • 8dcfa5a72f feat(performance-alerts): rules-engine-driven alerts, persisted as PerformanceAlert saridsa2 2026-04-15 09:02:02 +05:30
  • 5b40f49b65 feat(agent-lookup): resolve by Ozonetel display name too saridsa2 2026-04-15 08:25:14 +05:30
  • fb616d47ee feat(maint): backfill-call-agents-by-name for historical Calls saridsa2 2026-04-15 07:58:06 +05:30
  • 6fd17acf78 fix(cdr-enrichment): 35s sleep between date fetches — Ozonetel caps at 2/min saridsa2 2026-04-15 07:49:14 +05:30
  • 846c5f4c9b feat(calls): consolidate agent identity via Ozonetel CDR saridsa2 2026-04-15 07:43:28 +05:30
  • 9472f83cd8 feat(supervisor): team-performance reads AgentSession first, Ozonetel as fallback saridsa2 2026-04-15 07:14:16 +05:30
  • 6de1989536 feat(maint): backfill-agent-event-durations endpoint saridsa2 2026-04-15 07:05:54 +05:30
  • 2acba59963 fix(supervisor): separate pending slots per event category to pair CALL/ACW correctly saridsa2 2026-04-15 06:53:23 +05:30
  • 4eb8cb80b2 feat(supervisor): Phase 2 metrics ingest — AgentEvent/AgentSession rollup saridsa2 2026-04-15 06:49:15 +05:30
  • fbe782b5ac fix+feat: morning QA fixes, worklist pagination, misc sidecar improvements saridsa2 2026-04-15 06:49:02 +05:30
  • b6b597fdda fix: clinicId on all appointment paths + startedAt on call records saridsa2 2026-04-13 14:52:30 +05:30
  • a4ff052fef fix: stop auto-creating Unknown leads on caller resolve saridsa2 2026-04-13 11:23:22 +05:30
  • 5969441868 fix: map Ozonetel 'pause' webhook action to break state saridsa2 2026-04-13 10:52:52 +05:30
  • 01348123e6 fix: map HelixEngage Supervisor platform role to admin app role saridsa2 2026-04-13 06:47:01 +05:30
  • d97d73dd1a fix: wrap raw base64 public key with PEM headers for Node crypto saridsa2 2026-04-12 21:09:00 +05:30
  • 7b178f9dc7 fix: remove ConfigThemeModule import — it's @Global, no import needed saridsa2 2026-04-12 20:59:36 +05:30
  • 3d790e51dc fix: circular dependency — forwardRef ConfigThemeModule in SupervisorModule saridsa2 2026-04-12 17:03:47 +05:30
  • 1c3e42ad7c fix: non-null assertion on cachedToken return saridsa2 2026-04-12 16:50:10 +05:30
  • ea60787da0 feat(sidecar): supervisor barge endpoints — initiate, mode switch, end saridsa2 2026-04-12 16:06:57 +05:30
  • c23792496b feat(sidecar): Ozonetel admin auth service — RSA login, JWT cache saridsa2 2026-04-12 16:05:24 +05:30
  • 27a3fbcfed feat(config): add Ozonetel admin credentials to TelephonyConfig saridsa2 2026-04-12 16:03:51 +05:30
  • 0f5bd7d61a ci: fix Teams notification — use Adaptive Card with curl saridsa2 2026-04-11 15:37:20 +05:30
  • f1313f0e2f ci: use Teams notification plugin saridsa2 2026-04-11 15:34:30 +05:30
  • 44f1ec36e1 ci: add Woodpecker pipeline — unit tests + Teams notification saridsa2 2026-04-11 15:29:49 +05:30
  • 4bd08a9b02 fix: remove defaultAgentId fallback — require agentId from caller saridsa2 2026-04-11 12:10:31 +05:30
  • 0248c4cad1 fix: #536 #538 performance metrics — filter CDR by agentId, add team call counts saridsa2 2026-04-10 19:33:59 +05:30
  • be505b8d1f fix: #540 ignore call events for offline agents in live monitor saridsa2 2026-04-10 19:27:09 +05:30
  • dbefa9675a feat: master data endpoint — cached departments, doctors, clinics saridsa2 2026-04-10 17:19:12 +05:30
  • 9dc02e107a fix: E.164 phone format for outbound call records (+91 prefix) saridsa2 2026-04-10 16:27:50 +05:30
  • c807cf737f fix: outbound call records via dispose + campaign-filtered polling saridsa2 2026-04-10 16:20:45 +05:30
  • 96d0c32000 fix: skip outbound calls in webhook + filter abandon polls by campaign saridsa2 2026-04-10 16:03:48 +05:30
  • 9665500b63 fix: dispose uses per-agent ID + campaign fallback operator precedence saridsa2 2026-04-10 15:49:10 +05:30
  • 9f5935e417 feat: telephony dispatcher registration — sidecar self-registers on boot saridsa2 2026-04-10 15:08:30 +05:30
  • 898ff65951 fix: camelCase field names + dial uses per-agent config saridsa2 2026-04-10 14:29:19 +05:30
  • 7717536622 fix: server-side ACW auto-dispose (Layer 3) — 30s timeout safety net saridsa2 2026-04-10 12:29:41 +05:30
  • 33dc8b5669 merge: feature/omnichannel-widget → master saridsa2 2026-04-10 09:36:11 +05:30
  • ab65823c2e test: unit tests for Ozonetel integration, caller resolution, team, missed calls feature/omnichannel-widget saridsa2 2026-04-10 09:32:40 +05:30
  • 695f119c2b feat: team module, multi-stage Dockerfile, doctor utils, AI config overhaul saridsa2 2026-04-10 08:37:58 +05:30