Commit Graph
268 Commits
Author SHA1 Message Date
MahdiandCursor 831c682eb3 feat: show the full work history and load every lead stage on the board
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 19:47:32 +03:30
MahdiandCursor 2cc81bb596 feat: keep deletions restorable and confirm a pipeline's deals before it is removed
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 22:23:09 +03:30
MahdiandCursor c04582072d fix: drop the unused button import that blocked the type check
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 21:08:14 +03:30
MahdiandCursor 42f0573a5f feat: send one SMS from a person or lead and keep the dashboard inside the phone frame
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 21:05:17 +03:30
MahdiandCursor 13ee70764b feat: show this month's birthdays and send a greeting SMS
Each owner sees their customers born this Jalali month and can text a custom greeting.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 19:55:11 +03:30
MahdiandCursor cf326d1ed9 fix: keep birthdays and show Shamsi dates
Imported customers keep their birthday, and assistant text plus remaining calendars use the Jalali date.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 18:04:53 +03:30
MahdiandCursor 5f4cc47c41 fix: share the dashboard assistant and count leads from data
The hero ask box now uses the same confirm-before-create path as the assistant, count questions use real filters, and lead mobile, Jalali follow-ups, and rial labels stay consistent.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 14:45:29 +03:30
MahdiandCursor 0e420a443f fix: keep deal edits and right-align club leaderboard
Empty product lists were wiping the manual amount on update, and follow-ups were only created for new deals. Leaderboard rows were laid out left-to-right on an RTL page.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 11:38:59 +03:30
MahdiandCursor 6b4bd0b03e fix(web): drop unused merge wizard props after preview load fix
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 22:02:56 +03:30
MahdiandCursor 910c7f51b0 fix(web): load pipeline merge preview when wizard opens
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 21:59:46 +03:30
MahdiandCursor 609ce3d006 rename pipeline settings hub card to تنظیمات مسیر فروش
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 21:46:04 +03:30
MahdiandCursor 9bed6cac03 fix(api): guard unmoved deals before pipeline merge delete
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 21:32:21 +03:30
MahdiandCursor fd6e79c15d feat(web): pipeline merge wizard
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 20:55:14 +03:30
MahdiandCursor 9b42fec0a8 feat(web): pipeline settings page and nav entry
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 20:33:29 +03:30
MahdiandCursor d00f362376 feat(api): pipeline merge preview and merge endpoints
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 20:23:56 +03:30
MahdiandCursor fd8966e13f feat(pipelines): merge stage-map util and shared DTOs
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 20:15:11 +03:30
MahdiandCursor 91eb9be1d4 docs: add pipeline merge implementation plan
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 20:10:03 +03:30
MahdiandCursor ffae63edbf docs: add pipeline merge design spec
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 20:07:09 +03:30
Mahdi cba4ad6a49 fix deal edit save; add new person from deal form; club and multi-select 2026-10-12 19:23:07 +03:30
Mahdi faac26d07d club home redesign; deal multi-select delete; anchored card menus 2026-10-12 17:59:07 +03:30
Mahdi a2b01f787e club home redesign; deal card menu anchored to button + delete 2026-10-12 14:54:32 +03:30
Mahdi 8af78047d9 club home redesign; deal card menu: delete with confirmation 2026-10-12 12:39:52 +03:30
Mahdi b43ed68e82 feat(automations): multi-option form-field conditions (all / any / none / exact) 2026-10-11 17:26:17 +03:30
Mahdi f4398cdb3e fix(web): mobile automation canvas/inspector, compact activity row, timestamped comments 2026-10-11 16:48:37 +03:30
Mahdi 17638786a8 feat(automations): parallel branch canvas, simple/advanced level per org, rules list UX 2026-10-11 14:48:12 +03:30
Mahdi b3b92abae9 feat(automations): form-driven branching rules, round-robin assignment, lead-linked activities 2026-10-11 14:12:36 +03:30
Mahdi b30f68563d docs: update user guide, roadmap and progress; comprehensive features catalog 2026-10-11 12:06:23 +03:30
Mahdi 51ca23b398 docs: update user guide, roadmap and progress; add comprehensive features catalog 2026-10-11 11:54:08 +03:30
MahdiandCursor 60d797f184 feat: باشگاه امتیازات کارکنان (موتور امتیاز، جدول رتبه، فروشگاه پاداش، نشان‌ها، پنل مدیریت و گزارش ROI)
- موتور رویدادمحور با شرط، محدودیت، تأیید مدیر و idempotency
- اتصال به لید، مشتری، معامله، فعالیت، روتین، پیش‌فاکتور، فاکتور و تیکت
- صفحه /club و /club/admin، اعلان زنده امتیاز، آیتم منو
- انتقال فرم‌ساز سرنخ به ابزارها

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 21:28:49 +03:30
Mahdi b87ebb22e0 Montify: robust pagination (beyond 50), endpoint diagnose button 2026-10-10 18:01:55 +03:30
Mahdi 792b3d29fa Montify: allow restarting stuck sync from UI; log sync progress 2026-10-10 17:11:51 +03:30
Mahdi 0802c2f436 Montify sync: save progress every 5 customers; skip endpoints returning 404, summarize instead of per-customer errors 2026-10-10 16:56:58 +03:30
Mahdi 37157620e2 Montify settings: send empty JSON body on sync (fix 400 null body) 2026-10-10 16:35:23 +03:30
Mahdi f27b4c264a Montify: mark sync running before responding; no 400 when already running 2026-10-10 16:18:25 +03:30
Mahdi e82bd2b2df Montify stores integration: multi-store connections, customer/order/transaction sync, webhooks 2026-10-10 15:59:12 +03:30
MahdiandCursor fa3fe0d364 Web: fix mobile overflow on activities, activity form, assets panel, routines, team/audit/API settings
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 11:58:45 +03:30
MahdiandCursor 4e26658092 e2e: public form test finds an active form itself; drop E2E_FORM_TOKEN
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-08 21:05:38 +03:30
MahdiandCursor 287f88abc0 e2e: public form test stays read-only and reports a wrong token clearly
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-08 20:49:55 +03:30
MahdiandCursor 09f05d4ecc e2e: fix ambiguous selector in Tahesab assets test
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-08 20:28:38 +03:30
MahdiandCursor 46a7693ea0 QA: unit tests for API logic, Playwright smoke tests, pre-push check, manual QA checklist
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-08 20:11:07 +03:30
MahdiandCursor e6755d0c2e Tahesab: show raw data from Tahesab, invoice-style document view with metal labels
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-08 13:49:54 +03:30
MahdiandCursor 2f3646d085 feat(ui): modals close only via Esc/X/cancel; standard 3:1 form cover processing
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-07 15:23:14 +03:30
MahdiandCursor f5b6a47f3c feat(lead-forms): public form matches builder preview; live unsaved preview in new tab
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-07 14:25:52 +03:30
MahdiandCursor 678cb87de7 fix(lead-forms): multiline options, editable title, color palette, builder validation and unique new form names
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-07 13:49:27 +03:30
MahdiandCursor d683932d1b feat(forms): merge notes tab into main info for activity and deal forms; show activity hashtags
- Activity form: notes/tags card inline, live hashtag preview, focus notes when required
- Hashtags shown in activity detail (clickable search) and list rows; search accepts #tag
- Deal form: remove mobile tabs

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-07 13:17:29 +03:30
MahdiandCursor 13668c4ba4 feat(activities): split customer column, wider search, custom activity types with type-specific fields
- Table: separate assignee and customer columns; search by assignee and activity type
- ActivityTypeDef model with per-type field definitions (text, select, checklist, participants, ...)
- Default types incl. meeting subject/participants and task checklist; admins manage types
- Participants see activities in their lists and get notified

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-07 12:29:23 +03:30
MahdiandCursor aa2f39256a feat(activities): editable stages with tab and kanban views
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-07 11:18:53 +03:30
MahdiandCursor b4ffef9b6f rename: کاریز فروش → مسیر فروش, کاریز پروژه → تابلوی پروژه
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 20:51:50 +03:30
MahdiandCursor b3784818fc feat: routines module; super admin subscription badge, 7-day trial and lifetime plan
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 19:54:38 +03:30
Mahdi 3de2d0fa67 Deals import: imported pipelines keep only Didar stages; remove unused default stages 2026-10-06 16:58:25 +03:30