Commit Graph

  • fe4bd59248 refactor(whisper): use shared whisper service instead of local model main Ruslan Bakiev 2026-03-07 10:51:40 +07:00
  • 12af9979ab feat(crm): add deal create/update controls with status and payment Ruslan Bakiev 2026-02-27 09:44:15 +07:00
  • 881a8c6d39 feat(workspace): use selects for quick event date/time controls Ruslan Bakiev 2026-02-26 15:50:06 +07:00
  • b2a948889e fix(workspace): restore quick-menu handlers for events and docs Ruslan Bakiev 2026-02-26 14:45:54 +07:00
  • aae2a03340 fix(contacts): keep unread inbound-only while refreshing outbound preview Ruslan Bakiev 2026-02-26 12:27:06 +07:00
  • 0a470d3922 feat(calendar): show contact avatars on event cards Ruslan Bakiev 2026-02-26 12:18:14 +07:00
  • 5063dfdecf Trigger frontend webhook redeploy Ruslan Bakiev 2026-02-26 11:49:03 +07:00
  • a0ff1d00f6 Hydrate Telegram avatars on demand in frontend API Ruslan Bakiev 2026-02-26 11:43:47 +07:00
  • 97fb67f68c Fetch Telegram avatars via API when webhook has no photo Ruslan Bakiev 2026-02-26 11:22:57 +07:00
  • 6bae0300c8 Cache Telegram avatars locally and refresh avatar file ids Ruslan Bakiev 2026-02-26 10:59:44 +07:00
  • ba3e5f7cac Fix Telegram contact avatars in CRM list Ruslan Bakiev 2026-02-26 10:41:27 +07:00
  • 0f87586e81 fix: OUT messages no longer create unread status + handle Telegram read receipts Ruslan Bakiev 2026-02-25 14:53:55 +07:00
  • 6291797bb6 chore: upgrade Prisma 7, LangChain 1.x, Tailwind 4.2, Vue 3.5.29 and other deps Ruslan Bakiev 2026-02-25 09:27:26 +07:00
  • f4891e6932 fix: replace prisma.$use with $extends for Prisma 6 compatibility Ruslan Bakiev 2026-02-25 09:08:20 +07:00
  • 5c29cde13d refactor: remove manual upsertClientTimelineEntry from GraphQL resolvers Ruslan Bakiev 2026-02-25 09:04:04 +07:00
  • 693a96cffd feat: auto-create ClientTimelineEntry via Prisma middleware Ruslan Bakiev 2026-02-25 09:01:30 +07:00
  • bf7f4ae933 feat: broadcast pilot agent traces via WebSocket for live status on reconnect Ruslan Bakiev 2026-02-25 08:45:32 +07:00
  • b830f3728c fix: show action label (Показать/Скрыть) instead of status in inbox settings Ruslan Bakiev 2026-02-25 08:28:52 +07:00
  • 5ff7dc8d65 chore: update instructions submodule to latest Ruslan Bakiev 2026-02-25 08:21:04 +07:00
  • 7d647bef25 fix: disable context picker mode after selecting a scope Ruslan Bakiev 2026-02-25 08:18:45 +07:00
  • 9b6e8291fe fix: waveform not rendering on voice messages after thread switch Ruslan Bakiev 2026-02-25 08:17:17 +07:00
  • 6e3763a5fd fix: refetch contacts after hiding inbox, redirect to most recent chat Ruslan Bakiev 2026-02-25 07:56:10 +07:00
  • 292d587fe1 debug(calendar): add console.warn to GSAP zoom animation functions Ruslan Bakiev 2026-02-25 07:32:33 +07:00
  • 1a6840cdc6 fix: optimistic message send — no full timeline reload Ruslan Bakiev 2026-02-25 07:14:56 +07:00
  • 898f0dc0c5 feat: auto-scroll chat to bottom on thread switch and new messages Ruslan Bakiev 2026-02-25 07:07:05 +07:00
  • cb685446a5 fix: show loading spinner when switching between contact threads Ruslan Bakiev 2026-02-24 21:45:01 +07:00
  • 3ff9120070 fix: export isCommCallPlaying from useCallAudio composable Ruslan Bakiev 2026-02-24 21:09:39 +07:00
  • c07ef2026d fix: export isCommCallPlayable from useCallAudio composable Ruslan Bakiev 2026-02-24 21:00:10 +07:00
  • 5492e0d05c feat: unread message tracking with blue dot indicator Ruslan Bakiev 2026-02-24 20:25:32 +07:00
  • 643d8d02ba feat: granular WebSocket message.new events Ruslan Bakiev 2026-02-24 20:04:55 +07:00
  • ac9c50b47d feat: remove CommunicationsQuery, load messages on-demand only Ruslan Bakiev 2026-02-24 20:02:58 +07:00
  • 601de37ab0 feat: add lastMessageText and lastMessageChannel to contacts query Ruslan Bakiev 2026-02-24 16:02:02 +07:00
  • c229bdee23 fix(calendar): restore GSAP fly-rect + fly-label animation in useCalendar composable Ruslan Bakiev 2026-02-24 15:50:35 +07:00
  • 3775d881f9 fix: pass selectedCommThreadId to refreshSelectedClientTimeline Ruslan Bakiev 2026-02-24 15:45:19 +07:00
  • 195df8e16a fix: stop aggressive 2s chat polling, use WebSocket instead Ruslan Bakiev 2026-02-24 15:41:58 +07:00
  • 19d001815c fix: add missing ClientTimelineItem import in useDocuments Ruslan Bakiev 2026-02-24 15:33:22 +07:00
  • d892d0c604 refactor: distribute types from crm-types.ts to owning composables Ruslan Bakiev 2026-02-24 15:21:30 +07:00
  • a4d8d81de9 refactor: decompose CrmWorkspaceApp.vue into 15 composables Ruslan Bakiev 2026-02-24 15:05:01 +07:00
  • e5ad3809e0 feat(calendar): flying label animation from card title to toolbar on zoom Ruslan Bakiev 2026-02-24 15:03:16 +07:00
  • 00e036946c feat(calendar): move labels outside card borders for visual continuity Ruslan Bakiev 2026-02-24 14:42:09 +07:00
  • 9505cecab2 feat(calendar): header continuity with week numbers + skeleton content in fly-rect Ruslan Bakiev 2026-02-24 14:28:31 +07:00
  • 77141978c5 feat(calendar): seamless zoom animation with clone-and-swap + full-area coverage Ruslan Bakiev 2026-02-24 11:56:42 +07:00
  • 227030b9ae feat(calendar): replace CSS-transform zoom with GSAP flying-rect animation and scope data to year Ruslan Bakiev 2026-02-24 11:41:35 +07:00
  • 638652b4d8 fix(calendar-lab): enable hover on grid cells by removing pointer-events block Ruslan Bakiev 2026-02-24 11:16:20 +07:00
  • f553c26931 fix: add browserHttpEndpoint for client-side Apollo requests Ruslan Bakiev 2026-02-24 10:40:08 +07:00
  • 5657da13c1 feat(calendar-lab): add hover-targeted zoom with progressive tension and zoom slider Ruslan Bakiev 2026-02-24 10:36:22 +07:00
  • 947ef4d56d refactor: migrate CRM data layer from manual gqlFetch to Apollo Client Ruslan Bakiev 2026-02-24 10:06:29 +07:00
  • 3e711a5533 fix(calendar-lab): rewrite zoom as GSAP flying-rect with proper async sequencing Ruslan Bakiev 2026-02-24 09:47:45 +07:00
  • b316b024be feat(calendar-lab): replace tldraw with two-layer panzoom canvas Ruslan Bakiev 2026-02-24 01:09:46 +07:00
  • 1db8e58da1 fix(calendar-lab): rewrite tldraw zoom as LOD — render only current level shapes Ruslan Bakiev 2026-02-24 00:52:58 +07:00
  • 6cce211c0b fix(calendar-lab): use local tldraw runtime to avoid react/cdn instance mismatch Ruslan Bakiev 2026-02-23 19:47:57 +07:00
  • c5d3a90413 refactor(voice): extract chat dictation into reusable component Ruslan Bakiev 2026-02-23 19:43:00 +07:00
  • c1e8f912d1 fix(communications): restore voice dictation in message composer Ruslan Bakiev 2026-02-23 19:34:39 +07:00
  • ed78532260 feat(calendar-lab): use tldraw canvas engine with nested zoom rectangles Ruslan Bakiev 2026-02-23 19:29:52 +07:00
  • 94d8d46693 fix telegram contact identity context for in/out messages Ruslan Bakiev 2026-02-23 19:28:03 +07:00
  • 79f1012f41 fix(calendar-lab): restore nested calendar canvas demo on zoom route Ruslan Bakiev 2026-02-23 19:22:14 +07:00
  • faea65dfcb style(communications): show call play button only on waveform hover Ruslan Bakiev 2026-02-23 19:21:54 +07:00
  • bb628a7c0d feat(calendar-lab): switch demo route to tldraw canvas preview Ruslan Bakiev 2026-02-23 18:48:34 +07:00
  • 2e1014d726 style(communications): center play control on call waveform Ruslan Bakiev 2026-02-23 18:44:35 +07:00
  • 5fb8113ed7 feat(communications): add play/pause for call voice messages Ruslan Bakiev 2026-02-23 18:42:21 +07:00
  • 2a3d18f326 compact pilot change summary row in sidebar Ruslan Bakiev 2026-02-23 18:37:44 +07:00
  • 0ed2a6b353 fix(calendar-lab): stabilize center fit and wheel direction Ruslan Bakiev 2026-02-23 18:26:07 +07:00
  • 179cc39d53 fix(calendar-lab): center panzoom fit on selected target Ruslan Bakiev 2026-02-23 18:19:09 +07:00
  • 6ab3b374a2 feat(calendar-lab): switch zoom scene to panzoom engine Ruslan Bakiev 2026-02-23 18:12:05 +07:00
  • 49c4757490 feat(calendar-lab): switch to hierarchical grid zoom mechanics Ruslan Bakiev 2026-02-23 18:03:27 +07:00
  • 67a186e916 feat(calendar-lab): render content only after zoom settle Ruslan Bakiev 2026-02-23 17:47:58 +07:00
  • 6d5402dcc1 feat(calendar-lab): amplify nested board zoom depth Ruslan Bakiev 2026-02-23 17:42:19 +07:00
  • 295b3a3dda fix(frontend): use exported toast-ui entry to fix nuxt build Ruslan Bakiev 2026-02-23 16:04:38 +07:00
  • 94c01516ba precompute call waveforms and stop list-time audio loading Ruslan Bakiev 2026-02-23 16:02:57 +07:00
  • 2eb2f3109c feat(calendar): add nested zoom lab page with four persistent levels Ruslan Bakiev 2026-02-23 15:57:12 +07:00
  • 6bc0bfa156 fix(documents): switch markdown editor to single-pane wysiwyg Ruslan Bakiev 2026-02-23 15:53:29 +07:00
  • cb2d12819c fix(calendar): stretch year months grid to full viewport height Ruslan Bakiev 2026-02-23 15:39:09 +07:00
  • 0bbeef5594 fix(calendar): scope zoom selectors by layer and stretch week days to full height Ruslan Bakiev 2026-02-23 15:32:52 +07:00
  • df8c06d313 refactor(review): rollback-only flow and compact change summary Ruslan Bakiev 2026-02-23 15:28:46 +07:00
  • f716a0ea26 feat(documents): use toast-ui markdown rich editor Ruslan Bakiev 2026-02-23 15:23:58 +07:00
  • 7c019a6300 fix(calendar): keep depth layers mounted in one card without display swap Ruslan Bakiev 2026-02-23 14:58:52 +07:00
  • ec94dd6e2a fix(calendar): zoom selected block first, then commit level Ruslan Bakiev 2026-02-23 14:56:11 +07:00
  • 40a225783d feat(documents): render markdown as rich text in editor Ruslan Bakiev 2026-02-23 14:54:03 +07:00
  • 60b9bb9fd1 remove contact company/country/location across db and ui Ruslan Bakiev 2026-02-23 14:52:26 +07:00
  • f6b738352b fix(calendar): use full available calendar viewport height on desktop Ruslan Bakiev 2026-02-23 14:40:59 +07:00
  • db49c4a830 fix(calendar): make nested block zoom smooth in both directions Ruslan Bakiev 2026-02-23 14:33:24 +07:00
  • 6ad53e64c5 feat(documents): delete document from context menu Ruslan Bakiev 2026-02-23 14:27:00 +07:00
  • 68cbe7bc64 fix(chat-ui): move source settings to thread header Ruslan Bakiev 2026-02-23 14:24:58 +07:00
  • a19ba07baa fix(chat-ui): align voice cards by message direction Ruslan Bakiev 2026-02-23 12:52:33 +07:00
  • 894210cd42 fix(calendar): remove overlay swap and keep in-place zoom flow Ruslan Bakiev 2026-02-23 12:50:11 +07:00
  • d3b751db65 refactor(graphql): replace dashboard query with resource queries Ruslan Bakiev 2026-02-23 12:46:29 +07:00
  • aa465f65bd feat(workspace): add hidden contacts filter and remove calendar scene swap Ruslan Bakiev 2026-02-23 12:38:30 +07:00
  • f076726362 fix(communications): move source settings gear to contact row Ruslan Bakiev 2026-02-23 12:30:26 +07:00
  • acd974766a feat(telegram): ingest and render inbound voice messages Ruslan Bakiev 2026-02-23 12:21:53 +07:00
  • c94c229a1a fix: avoid pilot sidebar trim crash on input prop Ruslan Bakiev 2026-02-23 12:03:51 +07:00
  • 43960d0374 feat(auth): enforce login route with global middleware Ruslan Bakiev 2026-02-23 12:01:03 +07:00
  • 5918a0593d fix(workspace): guard trim calls against undefined data Ruslan Bakiev 2026-02-23 11:51:55 +07:00
  • 8be6e7d581 refactor(workspace): extract communications sidebars Ruslan Bakiev 2026-02-23 11:44:53 +07:00
  • 82bc5dd04e refactor(frontend): extract calendar scene into workspace component Ruslan Bakiev 2026-02-23 11:35:57 +07:00
  • d5f7280297 refactor(frontend): extract pilot sidebar into workspace component Ruslan Bakiev 2026-02-23 11:30:49 +07:00
  • 2b72d42956 refactor(frontend): split documents and review into workspace components Ruslan Bakiev 2026-02-23 11:22:05 +07:00
  • 47ed805ac7 refactor(frontend): extract auth and topbar workspace components Ruslan Bakiev 2026-02-23 11:15:29 +07:00
  • e5030a321f refactor(nuxt): split CRM into page routes and workspace shell Ruslan Bakiev 2026-02-23 11:09:59 +07:00
  • 64b25bb189 refactor: flatten scheduler service to root schedulers dir Ruslan Bakiev 2026-02-23 11:04:47 +07:00
  • 6e40c96abd fix(chat-ui): move source visibility controls to contact row Ruslan Bakiev 2026-02-23 10:59:04 +07:00