Ruslan Bakiev
c1fc8841bd
Use absolute HTTPS submodule URLs for Dokploy
2026-03-15 11:30:04 +07:00
Ruslan Bakiev
9d1e667895
Use relative HTTPS-friendly submodule URLs for Dokploy
2026-03-15 11:28:55 +07:00
Ruslan Bakiev
3fc9e44e23
Move avatar profile resolution into telegram backend
2026-03-12 18:44:46 +07:00
Ruslan Bakiev
6d1bface33
Update frontend submodule with Telegram avatar loading fix
2026-03-12 18:34:31 +07:00
Ruslan Bakiev
030ce1e0df
Update frontend submodule with Schedule-X Temporal fix
2026-03-12 18:08:54 +07:00
Ruslan Bakiev
ae7e453969
Update frontend submodule to include routing and calendar fixes
2026-03-12 18:05:53 +07:00
Ruslan Bakiev
b78f49171c
Update frontend submodule after removing GigaChat path
2026-03-12 17:33:43 +07:00
Ruslan Bakiev
762ec0b56f
Update frontend submodule after model fallback removal
2026-03-12 17:24:19 +07:00
Ruslan Bakiev
42de04c1f6
Use Postgres state DB for Telegram profile updates
2026-03-12 17:15:36 +07:00
Ruslan Bakiev
64e0d7565f
Track Telegram avatar changes in telegram backend state DB
2026-03-12 16:53:16 +07:00
Ruslan Bakiev
44f4e9d90d
Update backend_worker submodule after Vault-based Hatchet fix
2026-03-12 15:39:53 +07:00
Ruslan Bakiev
a2dd7b0e76
Update backend_worker submodule with Hatchet endpoint pin
2026-03-12 15:26:39 +07:00
Ruslan Bakiev
39cf198e11
fix(vault): auto-init when not initialized, then unseal
2026-03-10 21:03:25 +07:00
Ruslan Bakiev
2722aa860d
fix(vault): use proven GL vault entrypoint for auto-unseal
2026-03-10 20:55:23 +07:00
Ruslan Bakiev
bb2fab8b40
fix(vault): properly use VAULT_UNSEAL_KEY from env
2026-03-10 20:49:57 +07:00
Ruslan Bakiev
8eec280b9d
fix(vault): read unseal key from init.json fallback
2026-03-10 20:41:51 +07:00
Ruslan Bakiev
08a31383f0
fix(vault): auto-init and auto-unseal on first start
2026-03-10 20:32:37 +07:00
Ruslan Bakiev
9283ab436f
chore: update frontend submodule
2026-03-10 20:22:58 +07:00
Ruslan Bakiev
25623b8f65
feat(vault): auto-unseal on container start via VAULT_UNSEAL_KEY env
2026-03-10 20:10:35 +07:00
Ruslan Bakiev
29309419bf
chore: update frontend submodule (add preact)
2026-03-10 19:42:43 +07:00
Ruslan Bakiev
035f24387b
chore: update frontend submodule (Schedule-X calendar)
2026-03-10 19:32:15 +07:00
Ruslan Bakiev
2ca1e75651
chore(repo): split frontend backend backend_worker into submodules
2026-03-09 10:23:40 +07:00
Ruslan Bakiev
e96b57a55f
refactor(pilot-chat): stream native ai sdk reasoning parts
2026-03-09 09:47:32 +07:00
Ruslan Bakiev
c2cf4e6dd8
fix(backend): configure prisma datasource and client generator
2026-03-08 20:56:08 +07:00
Ruslan Bakiev
ad0f61fa8d
fix(backend): set DATABASE_URL for prisma generate in docker build
2026-03-08 20:47:48 +07:00
Ruslan Bakiev
22e04e0a34
chore: clean up workspace and fix backend prisma build
2026-03-08 20:31:32 +07:00
Ruslan Bakiev
f1cf90adc7
add vault bootstrap for services and vault deploy app
2026-03-08 19:37:02 +07:00
Ruslan Bakiev
e4870ce669
add backend hatchet worker for calendar predue sync
2026-03-08 19:15:30 +07:00
Ruslan Bakiev
0df426d5d6
refactor pilot chat api contract and typed ai-sdk flow
2026-03-08 19:04:04 +07:00
Ruslan Bakiev
7d1bed0d67
refactor chat delivery to graphql + hatchet services
2026-03-08 18:55:58 +07:00
Ruslan Bakiev
fe4bd59248
refactor(whisper): use shared whisper service instead of local model
...
Replace @xenova/transformers in-process model with HTTP calls to shared
whisper-asr-webservice container (http://whisper:9000 ). Converts PCM16
samples to WAV and sends to /asr endpoint. Env: WHISPER_URL.
2026-03-07 10:51:40 +07:00
Ruslan Bakiev
12af9979ab
feat(crm): add deal create/update controls with status and payment
2026-02-27 09:44:15 +07:00
Ruslan Bakiev
881a8c6d39
feat(workspace): use selects for quick event date/time controls
2026-02-26 15:50:06 +07:00
Ruslan Bakiev
b2a948889e
fix(workspace): restore quick-menu handlers for events and docs
2026-02-26 14:45:54 +07:00
Ruslan Bakiev
aae2a03340
fix(contacts): keep unread inbound-only while refreshing outbound preview
2026-02-26 12:27:06 +07:00
Ruslan Bakiev
0a470d3922
feat(calendar): show contact avatars on event cards
2026-02-26 12:18:14 +07:00
Ruslan Bakiev
5063dfdecf
Trigger frontend webhook redeploy
2026-02-26 11:49:03 +07:00
Ruslan Bakiev
a0ff1d00f6
Hydrate Telegram avatars on demand in frontend API
2026-02-26 11:43:47 +07:00
Ruslan Bakiev
97fb67f68c
Fetch Telegram avatars via API when webhook has no photo
2026-02-26 11:22:57 +07:00
Ruslan Bakiev
6bae0300c8
Cache Telegram avatars locally and refresh avatar file ids
2026-02-26 10:59:44 +07:00
Ruslan Bakiev
ba3e5f7cac
Fix Telegram contact avatars in CRM list
2026-02-26 10:41:27 +07:00
Ruslan Bakiev
0f87586e81
fix: OUT messages no longer create unread status + handle Telegram read receipts
...
Only inbound (IN) messages determine hasUnread in getContacts(). Telegram
read_business_message events are now parsed and processed to auto-mark
contacts as read for the entire team.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 14:53:55 +07:00
Ruslan Bakiev
6291797bb6
chore: upgrade Prisma 7, LangChain 1.x, Tailwind 4.2, Vue 3.5.29 and other deps
...
- Prisma 6 → 7: new prisma-client generator, prisma.config.ts, PrismaPg adapter, updated all imports
- LangChain 0.x → 1.x: @langchain/core, langgraph, openai
- Tailwind 4.1 → 4.2.1, daisyUI 5.5.19, Vue 3.5.29, ai 6.0.99, zod 4.3.6
- Fix MessageDirection bug in crm-updates.ts (OUTBOUND → OUT)
- Add server/generated to .gitignore
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 09:27:26 +07:00
Ruslan Bakiev
f4891e6932
fix: replace prisma.$use with $extends for Prisma 6 compatibility
...
prisma.$use middleware API was removed in Prisma 6. Switched to
$extends query hooks which is the supported approach.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 09:08:20 +07:00
Ruslan Bakiev
5c29cde13d
refactor: remove manual upsertClientTimelineEntry from GraphQL resolvers
...
CalendarEvent and FeedCard timeline entries are now handled by Prisma
middleware automatically. Document timeline entry is inlined since
WorkspaceDocument stores contactId in scope field, not on the model.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 09:04:04 +07:00
Ruslan Bakiev
693a96cffd
feat: auto-create ClientTimelineEntry via Prisma middleware
...
CalendarEvent and FeedCard now automatically get a ClientTimelineEntry
when created/updated with a contactId. This ensures events created by
the agent (or any other code path) appear in the contact timeline
without needing explicit upsertClientTimelineEntry calls.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 09:01:30 +07:00
Ruslan Bakiev
bf7f4ae933
feat: broadcast pilot agent traces via WebSocket for live status on reconnect
...
Agent trace logs are now stored in-memory (pilotRunStore) and broadcast
through the existing /ws/crm-updates WebSocket channel. When a client
reconnects, it receives a pilot.catchup with all accumulated logs so the
user sees agent progress even after page reload. Three new WS event
types: pilot.trace, pilot.finished, pilot.catchup.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 08:45:32 +07:00
Ruslan Bakiev
b830f3728c
fix: show action label (Показать/Скрыть) instead of status in inbox settings
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 08:28:52 +07:00
Ruslan Bakiev
5ff7dc8d65
chore: update instructions submodule to latest
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 08:21:04 +07:00
Ruslan Bakiev
7d647bef25
fix: disable context picker mode after selecting a scope
...
When a context scope is picked via the pipette, the picker mode now
turns off automatically since the selection is done and shows as a chip.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 08:18:45 +07:00