Ruslan Bakiev
|
ec94dd6e2a
|
fix(calendar): zoom selected block first, then commit level
|
2026-02-23 14:56:11 +07:00 |
|
Ruslan Bakiev
|
40a225783d
|
feat(documents): render markdown as rich text in editor
|
2026-02-23 14:54:03 +07:00 |
|
Ruslan Bakiev
|
60b9bb9fd1
|
remove contact company/country/location across db and ui
|
2026-02-23 14:52:26 +07:00 |
|
Ruslan Bakiev
|
f6b738352b
|
fix(calendar): use full available calendar viewport height on desktop
|
2026-02-23 14:40:59 +07:00 |
|
Ruslan Bakiev
|
db49c4a830
|
fix(calendar): make nested block zoom smooth in both directions
|
2026-02-23 14:33:24 +07:00 |
|
Ruslan Bakiev
|
6ad53e64c5
|
feat(documents): delete document from context menu
|
2026-02-23 14:27:00 +07:00 |
|
Ruslan Bakiev
|
68cbe7bc64
|
fix(chat-ui): move source settings to thread header
|
2026-02-23 14:24:58 +07:00 |
|
Ruslan Bakiev
|
a19ba07baa
|
fix(chat-ui): align voice cards by message direction
|
2026-02-23 12:52:33 +07:00 |
|
Ruslan Bakiev
|
894210cd42
|
fix(calendar): remove overlay swap and keep in-place zoom flow
|
2026-02-23 12:50:11 +07:00 |
|
Ruslan Bakiev
|
d3b751db65
|
refactor(graphql): replace dashboard query with resource queries
|
2026-02-23 12:46:29 +07:00 |
|
Ruslan Bakiev
|
aa465f65bd
|
feat(workspace): add hidden contacts filter and remove calendar scene swap
|
2026-02-23 12:38:30 +07:00 |
|
Ruslan Bakiev
|
f076726362
|
fix(communications): move source settings gear to contact row
|
2026-02-23 12:30:26 +07:00 |
|
Ruslan Bakiev
|
acd974766a
|
feat(telegram): ingest and render inbound voice messages
|
2026-02-23 12:21:53 +07:00 |
|
Ruslan Bakiev
|
c94c229a1a
|
fix: avoid pilot sidebar trim crash on input prop
|
2026-02-23 12:03:51 +07:00 |
|
Ruslan Bakiev
|
43960d0374
|
feat(auth): enforce login route with global middleware
|
2026-02-23 12:01:03 +07:00 |
|
Ruslan Bakiev
|
5918a0593d
|
fix(workspace): guard trim calls against undefined data
|
2026-02-23 11:51:55 +07:00 |
|
Ruslan Bakiev
|
8be6e7d581
|
refactor(workspace): extract communications sidebars
|
2026-02-23 11:44:53 +07:00 |
|
Ruslan Bakiev
|
82bc5dd04e
|
refactor(frontend): extract calendar scene into workspace component
|
2026-02-23 11:35:57 +07:00 |
|
Ruslan Bakiev
|
d5f7280297
|
refactor(frontend): extract pilot sidebar into workspace component
|
2026-02-23 11:30:49 +07:00 |
|
Ruslan Bakiev
|
2b72d42956
|
refactor(frontend): split documents and review into workspace components
|
2026-02-23 11:22:05 +07:00 |
|
Ruslan Bakiev
|
47ed805ac7
|
refactor(frontend): extract auth and topbar workspace components
|
2026-02-23 11:15:29 +07:00 |
|
Ruslan Bakiev
|
e5030a321f
|
refactor(nuxt): split CRM into page routes and workspace shell
|
2026-02-23 11:09:59 +07:00 |
|
Ruslan Bakiev
|
6e40c96abd
|
fix(chat-ui): move source visibility controls to contact row
|
2026-02-23 10:59:04 +07:00 |
|
Ruslan Bakiev
|
70369255a2
|
refactor: move timeline scheduler to isolated service
|
2026-02-23 10:58:55 +07:00 |
|
Ruslan Bakiev
|
2b5aab1210
|
calendar: keep zoom ladder inside month blocks on single scene
|
2026-02-23 10:57:51 +07:00 |
|
Ruslan Bakiev
|
f67cef22be
|
feat: add dedicated calendar timeline scheduler service
|
2026-02-23 10:54:06 +07:00 |
|
Ruslan Bakiev
|
4b9682e447
|
feat: add unified client timeline query
|
2026-02-23 10:48:21 +07:00 |
|
Ruslan Bakiev
|
95fd9a64ce
|
feat(chat): add contact inbox sources with per-user hide filters
|
2026-02-23 10:41:02 +07:00 |
|
Ruslan Bakiev
|
6bc154a1e6
|
calendar: mask scene before level swap after zoom-in fill
|
2026-02-23 10:37:26 +07:00 |
|
Ruslan Bakiev
|
23d8035571
|
fix(frontend): resolve graphql imports from root in app dir
|
2026-02-23 10:08:35 +07:00 |
|
Ruslan Bakiev
|
21d6e440e3
|
chat: pin messages via context menu and align pinned bubble layout
|
2026-02-23 10:05:59 +07:00 |
|
Ruslan Bakiev
|
d4af315e2e
|
chore(frontend): move nuxt ui source into app directory
|
2026-02-23 10:03:24 +07:00 |
|
Ruslan Bakiev
|
c41849745c
|
refactor nuxt entry: move monolith app to pages/index
|
2026-02-23 09:59:38 +07:00 |
|
Ruslan Bakiev
|
9c712e0129
|
calendar: make zoom-out use the same camera panzoom pipeline
|
2026-02-23 09:58:03 +07:00 |
|
Ruslan Bakiev
|
8ef266e09d
|
calendar: switch zoom-in to DOM camera panzoom flow
|
2026-02-23 09:55:45 +07:00 |
|
Ruslan Bakiev
|
43b487ccec
|
refactor ai naming and make omni raw-json first
|
2026-02-23 09:32:59 +07:00 |
|
Ruslan Bakiev
|
ab5370c831
|
calendar: enforce two-phase zoom-in morph before view switch
|
2026-02-23 09:15:12 +07:00 |
|
Ruslan Bakiev
|
eb298e786e
|
calendar: prevent zoom-in instant switch when anchor is offscreen
|
2026-02-23 09:11:55 +07:00 |
|
Ruslan Bakiev
|
1b3b215bff
|
fix(queue): use BullMQ-safe outbound job ids
|
2026-02-23 09:10:06 +07:00 |
|
Ruslan Bakiev
|
f1fb2fbfa6
|
feat(chat): add outbound delivery statuses to omnichat thread UI
|
2026-02-23 09:04:49 +07:00 |
|
Ruslan Bakiev
|
2f719219c4
|
Queue Telegram outbound on createCommunication
|
2026-02-23 08:45:23 +07:00 |
|
Ruslan Bakiev
|
05324de216
|
calendar: unify zoom-in pipeline with ghost card text
|
2026-02-23 08:44:03 +07:00 |
|
Ruslan Bakiev
|
24c771d143
|
pilot: show pipette icon without context label
|
2026-02-23 08:32:37 +07:00 |
|
Ruslan Bakiev
|
cd2267e9d3
|
Remove Telegram API avatar logic from frontend service
|
2026-02-23 08:24:04 +07:00 |
|
Ruslan Bakiev
|
cbc2a3b31b
|
Fallback Telegram avatars from identities in dashboard
|
2026-02-23 08:10:59 +07:00 |
|
Ruslan Bakiev
|
0f1028b0fa
|
Add Telegram avatar proxy and realtime CRM websocket updates
|
2026-02-23 08:09:53 +07:00 |
|
Ruslan Bakiev
|
f81a0fde55
|
Refine documents UX and extract document scope helpers
|
2026-02-23 08:04:58 +07:00 |
|
Ruslan Bakiev
|
9efb42f598
|
frontend: add create-workspace-document graphql operation
|
2026-02-23 07:50:38 +07:00 |
|
Ruslan Bakiev
|
38fcb1bfcc
|
pilot: move context pipette to left rail with chip replacement
|
2026-02-23 07:45:28 +07:00 |
|
Ruslan Bakiev
|
70c095bc67
|
calendar: delay zoom-in content switch until end of morph
|
2026-02-23 07:37:45 +07:00 |
|