3.0.33 (2026-06-11)
- content: generate Mongolian-aware CMS slugs from title (#7962) (4b57c26)
- content: preserve CMS page slug on edit (#7969) (84852a3)
- cp link (#7963) (16e0889)
- date range filter, company edit and target a sales deal in Give Score with name/number search (#7947) (ed9384b)
- filter with sessionkey (#7961) (bf9426d)
- frontline: fix report pagination, chart data limits, and smooth page transitions (94fe486)
- frontline: settings layout overflow and response template breadcrumbs (cb31d5d)
- sales checklist (#7966) (10cc29a)
- sales: improved (#7954) (78ab14d)
- sales: sales stage query bug (#7965) (7ea1131)
- some trpc check (236c514)
- add brand select to Add/Edit Call integration form (c1fc409)
- add file upload support and fix image persistence in BlockNote editor (#7946) (55ae0c9)
- automations: add loyalty actions, flow direction support, and automation builder enhancements (#7952) (002a6d0)
- core: add branch, department, unit filters and columns to team members table (0b2adff)
- mongolian: improved MS Dynamics sync history table (#7934) (ff7213b)
- show members tab in permission group details dialog (#7957) (108f6af)
3.0.32 (2026-06-09)
- FetchError: request to https://asd/api failed, reason: getaddrinfo ENOTFOUND asd (#7944) (#7945) (b1cd2b0)
- frontline: fix timezone-aware day grouping and default call report range to last 3 months (59092fd)
- loyalty: refactor and commands and runtime (#7933) (39edb09)
- frontline: add admin permission to call integration queries (70c5580)
- frontline: call report , report ui refactor (23e0b32)
- frontline: conversation report export, pagination, and perf fixes (01c2a75)
- frontline: improve inbox brand sidebar UX (7a8f466)
- frontline: make response template search fully dynamic (225c04b)
3.0.31 (2026-06-08)
- content: Fixing CMS post translations (#7890) (ed23ae9)
- exchange-rates-currency-fix (#7919) (81f2d8f)
- frontline: use Facebook Private Reply API for new comment-triggered conversations (997e630)
- frontline: widgets (#7884) (32bdf81)
- loyalty-score-filter-fix (#7921) (9f74343)
- loyalty-score-record-table-refactor (#7887) (499f6e1)
- mongolian: replace MS Dynamics settings form with config management table (#7905) (aaa08cc)
- operations: migrationTask (c81201f)
- provide default icon fallback in property forms (#7616) (a8445ae)
- route conversation push notifications to CP users (53d6806)
- sales to transaction sync update and loyalty score correct (#7894) (1ca7d7a)
- skip Claude Code Action on PRs from read-only contributors (#7911) (d266978)
- some trpc (9edbb68)
- add client portal ticket notes support and unify ticket search filter (1722480)
- add issue webhook dispatcher for auto-fix listener (856099f)
- add module-specific import/export permissions (#7913) (03e7fb0)
- add tag filtering and inline tag editing for packages (9bc89a9)
- add tag support to packages (fe65934)
- add tags column to projects table (#7918) (35db2b6)
- add webhook action for bug/sentry issue auto-fix (#7897) (014da90)
- content: Add CMS public post links, view count, and author (17a081b)
- core: product customProperty (e9250c9)
- cpDealsChange mutation (e0e914a)
- federate plugin locale through gateway (#7900) (ae53ad7)
- frontline: Erxes messenger automation (#7929) (d2fa6c5)
- frontline: restrict inbox channel list to user's own channels (9e20df3)
- implement file upload for property field type (#7899) (1673f76)
- payment: integrate TDB card payment method (#7904) (baafb55)
- Sentry error monitoring (frontend + backend) with expected-error classification (#7907) (23f4024)
3.0.30 (2026-06-04)
- core: fix export field selection modal layout and pluralized titles (c60e0cc)
- frontline: ticket export (f7e7433)
- sales product scroll (#7879) (7e1a242)
- add error classifier and Sentry filtering for expected errors (#7865) (c2ede97)
- frontline: add client portal queries, mutations, and subscriptions (bc1f1c9)
- frontline: forms and messenger widget ui (#7869) (06a764d)
3.0.29 (2026-06-03)
- add status field to Department GraphQL type (#7861) (be4644b)
- Exchange rates UI enhancement (#7860) (07dbb4e)
- loyalty-score-statistics with filter param (#7864) (a313341)
- loyalty-scores-detail-sheet (#7852) (50ec649)
- operation: enforce ObjectId types for all cross-document reference fields (d95a060)
- operation: migration task (ef52a0a)
- operation: patch legacy nanoid teamIds to ObjectId in migrateTasks (70c32d3)
- operation: use string IDs for schema relations and add task migration (1a06638)
- restrict export button to users with exportsManage permission (#7862) (02fb5cb)
- schema return (#7863) (b2badf6)
- core: add custom field import/export for core and tickets; add load more for frontline response templates; fix inbox image preview, (0677927)
3.0.28 (2026-06-02)
- Accounting reverse tax and syncerkhet improve (#7804) (e2f5a09)
- allow core app admins to read oauth clients (#7849) (9fcacbf)
- cp password change (#7822) (12d7853)
- frontline: migrate forms, permissions, and file upload handling (59c27e3)
- loyalty: score list to normalize (#7817) (0c81bc8)
- mongolian: ebarimt productGroup list (a71b61a)
- remove missing sentry.instrument.cjs references from Dockerfiles (68a25bf)
- sales bugs (#7847) (766e342)
- sales: deal detail with stages shortcut (#7840) (8371418)
- sales: some improve (#7797) (5ade01b)
- update .agents system - fix missing references and skill contracts (#7829) (0bea2b1)
- add 3 options to confidential oauth (#7846) (01c7074)
- add detect-scope skill with pre-flight validation (#7821) (51ad42c)
- add package management module (#7830) (7850f77)
- add ticket sort control by latest updated/created (ed17ef1)
- ai agents rules (a5b4f05)
- core-ui: add editor gallery and image floating (#7831) (d83ff5a)
- enhance Sentry OpenCode automation with .agents protocol (#7837) (771fe8a)
- import-export: implement custom property handling and enhance import functionality (542a53e)
- loyalty: register loyalty permissions in permission groups (meta) (#7851) (0199170)
- mongolian: add permission group support (#7823) (7f0963d)
- structure: add status filter and restore deleted records (#7815) (3750f6c)
- revert sentry setup (3b41d63)
3.0.27 (2026-05-28)
- account add and edit ui (c4f29a0)
- accounting: improve safeRem to transaction and ctax some bug (#7798) (688da3d)
- accounting: safe-remainders-filter-enhancement (#7793) (ec9b564)
- accounting: safeRemainder to transction (3ac3a21)
- bugs (8e67716)
- clean selectProductCategory and ebarimt taxRule (#7795) (e5e67ab)
- content: cp user edit, password reset permission (#7805) (a27a1a0)
- content: fix cms menu page target (#7766) (f5f774d)
- content: move CMS deletion to settings with confirmation (da80f0b)
- edit form use textField reactive (2b7dcdf)
- feature-loyalty-widget-and-score-refactor (#7791) (fad07c4)
- frontline: fix integrationsGetUsedTypes returning empty array (930b360)
- frontline: response template search via backend searchValue (#7807) (1be7fcc)
- handle null user in cpSalesPipelines client portal query (#7783) (2fe0106)
- logs: try afterProcesses (89ff810)
- loyalty score some bugs (#7772) (f026365)
- loyalty-scores-list-bug (a0eeeec)
- loyalty: loyalties change score fix and set score (#7774) (9a56765)
- loyalty: Loyalty widget (#7786) (af743b0)
- mongolian: ebarimt settings reverse tax rule with array (#7800) (5d5a81d)
- mongolian: syncerkhet config on posOrder improve (fa721f4)
- mongolian: syncerkhet resync (#7803) (be95c1a)
- posorder to loyalties score (#7775) (e133071)
- preserve userType when creating cpUsers (b20ba5b)
- sales form editor debounce (6d4c612)
- sales products changed then vibration (66d92db)
- sales: add common search and go to settings (7f31ccd)
- sales: deal detail productsData dont miss (f159a97)
- sales: deals filter with number (5bddb08)
- SalesFormField desc fix (e2aa474)
- sales: limit deal notifications to assigned users and remove duplicate notification creation (#7778) (48a8363)
- some trpc result and input improve (#7765) (586e015)
- syncerkhet check deals filter by without board and pipeline (e26f026)
- use username for company primaryName in client portal contact service (434b706)
- add invoice relation widget for relation detail (8ec2c58)
- attachments & submission details view (f7f69f9)
- content: add CMS menu reordering drag and drop (ebe8137)
- content: improve single CMS navigation (#7771) (589169c)
- core-ui: add parent/status filters and total count to product (#7768) (0fbaa73)
- core: add change state (lead ↔ customer) for customers (#7790) (c87cc96)
- frontline: ticket number/name config, pipeline attribution,migrations update (4ee9291)
- implement pdfattachments feature, fix cpInvoiceCreate (25266ef)
- operation: add project relation widget and inbox notifications (fe3750c)
- operation: add project relation widget and inbox notifications (c2daae4)
- sales: add cpDealsEdit and cpDealsCreateProductsData (660d5ce)
3.0.26 (2026-05-22)
- loyalty: pricing trpc without status (#7755) (9234d59)
- sales pipeline card enhancement (#7754) (8ffcee5)
- scoreCampaign refactor and products and productCategories trpc(#7757) (3f55f9c)
- syncerkhet first end (#7748) (b93cdb8)
- content: cms menu has types for web (8eac54d)
- payment: add QR code generation (d3827af)
- pos: add QZ Tray printing and improve report receipts (#7749) (d475479)
3.0.25 (2026-05-21)
- accounting: transaction status improve (#7737) (af56792)
- content: CMS tag and category pagination (#7741) (b86aa27)
- loyalty: clean code on pricing (#7733) (5f89038)
- sessioncode on new tab new code (#7739) (a104273)
- update product handling and improve product type display in sale and deal move from detail(#7740) (d084ef0)
- add bulk permission change (c0bc83d)
- add permission popup to invite members flow (c9000b5)
- content: cms category translation, fix tag translation and more (#7727) (7af0aa1)
- frontline: submissions & customer related fields (#7747) (c6fd6a6)
- mongolian: Add checkPermission to mongolian resolvers ,meta permissions, add event logging for ProductRule and ProductGroup models (#7735) (ddeac80)
3.0.24 (2026-05-19)
- accounting: branch department is allow null (#7731) (3308492)
- accounting: Document transaction print (#7715) (173d395)
- accounting: improve ux by ptrInfo and subscription transaction (#7711) (ecbea2c)
- check gateway graphql proxy (93d4b43)
- clientportal: switch CallPro SMS to v1 JSON endpoint (c5c60d4)
- company and customer chooser with a add event and some bugs (#7713) (1683d08)
- cp remove (#7723) (d9c98f5)
- frontline: remove 16-character limit on ticket status name (efb1f02)
- gateway reconnect apollo router (50f27e3)
- loyalty cp queries (c16c2ba)
- loyalty cp queries (d72805d)
- loyalty cp queries (922cb77)
- loyalty full cycle with sales (#7712) (3eef375)
- loyalty score logs paginate by cursor (#7729) (84334f6)
- loyalty score with pagenate (#7726) (0e61f97)
- loyalty: improve, score (#7724) (ac28bf3)
- mongolian getconfig from mnconfigs and branch department default filter (#7730) (1767be7)
- resetpassword fix (#7717) (0f9c030)
- sales: add cpSalesCheckFreeTimes and fix cpSalesBoards pipelines and loyalty(#7707) (aa28679)
- sync skip permission, and acctransactionByCOntent (#7700) (2a6e778)
- use active status for published score campaigns (#7725) (d5f057c)
- add checkPermission to all loyalty resolvers and define permiss (#7622) (4b728af)
- add cpGetRelationsByEntity query for client portal (#7716) (54bbb58)
- add cpManageRelations mutation for client portal (#7714) (0876bae)
- add cpSalesBoardDetail query for client portal (#7721) (af23d5d)
- add cpShareScore mutation and cpDonateCampaigns query for client portal (#7718) (49ed0e0)
- add pos.create tRPC mutation with owner fallback (0045d0c)
- content: cpCurrentOrder checks pos-user but dont need on cp (#7720) (8f4c322)
- sync pos to client on trpc create and gate by ALLOW_OFFLINE_POS (31eff65)
3.0.23 (2026-05-18)
- accounting sales plugins relations (#7698) (96c18aa)
- accounting: check perm on transactions (#7699) (5ff3de9)
- accounting: transaction order by ptrNumber (28bc9ba)
- accounting: transaction status other validations (#7676) (7ba4aa6)
- ci (f4768cd)
- gateway restart and not consumed core on gateway (#7688) (0dc4afd)
- index of cms_categories (e040d60)
- loyalty: score campaign improve (#7671) (2f06ead)
- products remainder synced on posclient and some clean (#7697) (51fa973)
- sales and products some bugs (#7696) (9f354af)
- sales: add cpSalesPipelines GraphQL query schema (#7694) (5988508)
- sales: deal payment form with loyalty score (#7684) (c8592bf)
- sales: fix cpDeals crash when user is null in getItemList (d66a559)
- sales: fix cpDeals crashing and skip internal user permission check for client portal (870278b)
- some customFieldsData to propertiesData (#7685) (22525d4)
- tour plugin category query (f95e2e9)
- tourism: improve custom fields inputs and layout (#7669) (c04701f)
- update Docker build platforms to only include linux/amd64 (d011a79)
- update Docker build platforms to only include linux/amd64 (2b8116a)
- update gateway continue from PR#7688 (d566752)
- accounting: Accounting permission front (#7677) (6c9ae17)
- add beforeResolvers hook for plugins to mutate or reject resolver args (#7660) (68809db)
- add clientPortal to checkOwnerScore, donatesMain, and scoreLogList queries (#7686) (f513181)
- add cms permissions (f980ca0)
- add cpSalesBoards and cpPricingPlans client portal queries (#7678) (71137e3)
- add Kimi Coding integration and knowledge chunking functionality (bc75f25)
- add safe remainder bulk edit and import functionality (#7644) (b437bc3)
- add scroll integration configuration (c45cf4a)
- gate customer widget write actions behind access prop (b151163)
- refactor AI agent utilities and enhance connection secret management (dfcfdcf)
- tourism turn off cron (e721a33)
3.0.22 (2026-05-13)
- accounting: transaction status and ptrNumber (#7658) (6b239ba)
- payment: align paymentRemove mutation with schema using _ids (#7668) (80c2463)
3.0.21 (2026-05-13)
- accounting: products remainder filter (#7633) (42d4f03)
- accounting: settings with sheet (#7567) (0eae376)
- added index internalNote activityLog (ecc068e)
- added products filter some fields (#7634) (f21cd47)
- check customer widget customerId (b9d319d)
- clean pos.type (#7635) (4b362ea)
- content: custom field ui, add field drawer selector search (#7612) (b215a23)
- content: custom fields mapping and file upload (#7603) (19b3cbc)
- ebarimt responded per opened tab and set sessioncode on core(#7650) (79f3753)
- frontline: widgetsSaveLead crash and form query type errors (81881c0)
- get activity exchange rate from mongolina (daf6371)
- import template file with unicode (2578ece)
- mongolian: Sync erkhet front settings enhancement (#7582) (e955132)
- Pos order with afterProcesses to transaction (#7610) (dc8ae5f)
- posclient: improve pos and sales (#7554) (c2079cf)
- reduced and optimized the backend Docker image size during build (#7584) (1031010)
- sales pos order sync posclient (#7608) (9163765)
- sales: extradata field added in deal query (#7645) (8a4a3a4)
- transaction to products inventories with costs (#7613) (ce00dc9)
- accounting: account permission with level read write (#7609) (c35855f)
- add AI provider connection support and enhance automation components (#7648) (bd7b2a3)
- add client portal ticket status query (1474ab8)
- add getConfigByToken tRPC query to posclient API (d131d72)
- add Kimi and Grok agent connection interfaces and update AI agent connection type (c1fb2a7)
- add payment invoices find tRPC procedure (e774bf3)
- add permission checks to all POS resolvers and pos to meta/permission.ts (#7585) (6f88b60)
- add trpc product lookup by token to posclient (4abdbad)
- cms main fields, cms_menu (#7611) (1a81e8c)
- content: add editor custom field in cms (f68f38c)
- content: cms menu mapping (page, category, post , post type, tag) (#7604) (4ec3bac)
- content: list order and category parent tree in selector (28739c5)
- edit tour with multi-date creates additional tours (#7619) (d7c006f)
- expose saas organization bundle details (d7d66ea)
- frontline: add markResolvers and clean up inbox resolvers (603037d)
- payment: implement cursor-based pagination for invoices (1c7e834)
- tourism: add tour crew assignments (leader/driver/guide) (a79abbf)
3.0.20 (2026-04-30)
- accounting: products remainder recalc remainder params (#7574) (4d98874)
- accounting: translate to only mongolia (#7580) (7d5c53a)
- frontline: type and fix conversationProgress API and UI (60929bc)
3.0.19 (2026-04-30)
- accounting: follow transaction state up and sub table hotkeys fix (#7573) (1421729)
- accounting: table hotkey (df97a0a)
- forms-widget css (#7568) (f76c0cf)
- frontline: fix createdBy null on widget ticket and internal message conversation mismatch (e56e0c9)
- frontline: fix customer state incorrectly set to lead when creating messenger tickets (36d5812)
- frontline: skip channel query when channelId is undefined and add fields to ConversationMemberProgress (73e9d76)
- logic of customfieldsMap for content (#7563) (4ba02bc)
- loyalty: clean up pricing rule and options ui (#7561) (559d8e6)
3.0.18 (2026-04-28)
- loyalty: go to settings and action (#7562) (d1c9899)
- mongolin: product-places-ui-enhancement (#7539) (5641427)
3.0.17 (2026-04-27)
- imap saas (5d11c00)
- accounting: transaction table-actions (#7157) (e77bddb)
- core-api: guard entityType against type confusion in download-template (#7499) (8aa4689)
- frontline-widgets: defer embed form iframe creation until placeholder is ready (#7538) (66b299c)
- frontline-widgets: improve form embed initialization (19c8eda)
- gateway: add generous global rate limit (#7465) (1f65f16)
- logging: add console logs for debugging in afterProcess handlers (a4246f8)
- mongolian: define ProductPlacesResponse type for productPlacesResponded (#7552) (1b7aad5)
- mongolian: fix ebarimt (#7521) (e559e89)
- product: display all selected scope brands (d37534b)
- sales: empty table bug after editing cell in ProductsTable in Sales/Deal (#7540) (3c23e41)
- sales: enhance drag-and-drop functionality with custom collision detection (#7502) (e66a86e)
- sales: pos config resolve slots detail double scroll and improve slot creation (#7543) (80cc4c6)
- tour: update itinerary selection (#7524) (3b29cef)
- accounting: import transactions (#7542) (4b1f448)
- add cp mutations on cms (246559b)
- add cp queries on BMSitinerary (#7526) (694811f)
- add cpDetail (e851b55)
- add cppost count argument (#7553) (9f4aee6)
- expand conversation date filtering to include updatedAt (72bfa00)
- frontline imap (e1a27e6)
- frontline imap (3e1b41f)
- frontline imap saas (56faf41)
- frontline imap saas (84453f8)
- frontline instagram (b0df872)
- frontline: integrate Instagram API for messaging (54fbc93)
- navigate to create brand sheet when brand search is empty and fix status name (#7520) (613f7fc)
- pos: refactor pos(settings) module (6af4174)
- translation of cms(category,tag,menu), cronjob for tour (a88579b)
3.0.16 (2026-04-21)
- accounting: account category import (#7501) (d57ac90)
- add missing dependencies installation in Dockerfile for runtime stage (6a62f30)
- disable hotkeys on form tags by default (#7478) (dd5cb6f)
- form widget (c8377b9)
- make models property optional in IMainContext interface (c4acd30)
- pms room queries to use a single date range and return rooms overlapping that range (#7519) (8d86470)
- specify type for orderQueries to enhance type safety (360c83d)
- accounting: import accounts and some fix upload and read file(#7491) (a453c5c)
- add cpPageList query (14f4168)
- hide verify button and disable email validation status based on version (#7504) (a4c852f)
- imap conversation (d31fa35)
- implements pos order item export support and refines multiple pos-related UIs (#7486) (1547427)
- show paymentTypes in erkhet config with account mapping (#7495) (a1d6bd6)
- tourism: add amenity-specific icon picker matching base design (0d98a75)
- tour: support adult/child/infant pricing per package (b90e952)
- update resolver types to include IContext and refactor AI agent components (3fad7a0)
3.0.15 (2026-04-19)
- build error (688ff89)
- content: category list by alphabetical order (#7494) (6c33c78)
- frontline forms (#7471) (f21cb87)
- frontline: add propertiesData argument to updateTicket mutation (6a5a6e8)
- loyalty: loyalties-change-query (#7469) (39bda14)
- pdf: downgrade react-pdf to stable version (#7475) (3c9a89c)
- pos: fix build error by syncing radix ui dependencies (#7482) (7a1d1fd)
- products sync to posclient (#7497) (453f9ae)
- tourism: improve grouped tour display and add quick add action (4373a09)
- update @react-pdf/renderer to 4.3.2 (6ce740c)
- update pnpm-lock.yml (bbe844e)
- add a client-portal tour categories GraphQL query that supports optional filtering and language-aware translations. (#7489) (18459a0)
- improve properties empty state and extend columns in org tables (#7492) (da97631)
- pos: implement new features in pos 3.0 (#7477) (3c24790)
- refactor import/export flow and add OAuth client management (#7498) (c146aaa)
- tourism: enable tour and itinerary pdf section and label customization (3d51ced)
3.0.14 (2026-04-14)
- accounting: tr side, details with branch department and manage relAccounts (#7458) (6d8f9e9)
- content-ui: harden html text extraction in post submission (#7463) (72dab53)
- improve email broadcasting batching, tracing, and attachment URL handling (829bd9a)
- missing authorization on multiple mutations (#7240) (e817366), closes #7032
- payment: remove clear-text logging of sensitive data in Toki API (#7452) (3dbc493), closes #1062 #7365 #7365
- replace eval() with safe arithmetic parser in score campaign (#7242) (3dcc78d), closes #6968
- sanitize Facebook conversation inputs to prevent NoSQL injection (#7456) (e4b2777), closes #1175
- Security Fix (XSS) and Refactoring for Content CMS - Alert 1151 (#7461) (8292ec5)
- SSRF in Facebook integration uploadMedia (#7376) (2d7eac4), closes #1012
- streamline UI components with improved layout, scrolling, and toast notifications (9381344)
- accounting: transaction with documents at bank (#6852) (ec574d3)
- add broadcast traces logging (#7464) (110ea1d)
- add score field and FieldPhone component with inline editing support (3bea49c)
- Document update (#7285) (53c96be)
- enhance automation UI with internationalization support (fbbc25f)
- pos: tax flag, table refresh, print fixes (#7323) (3282faf)
- rename sales queries for consistency and clarity (c0ba511)
3.0.13 (2026-04-13)
- cp user searchText bug and broadcast tag group select (#7446) (5a01386)
- improve broadcast subdomain handling in email utilities (0849ede)
- simplify Checkbox onCheckedChange handling in MessageTriggerConditionCard (73adec3)
3.0.12 (2026-04-12)
- account edit and ebarimt sidebar improve (#7447) (12def55)
- accounting: account edit from (3d3b45a)
- activity-logs: stop redundant refetching on scroll (#7445) (0d2800d)
- add error handling for Cloudflare Images upload (18f670d)
- call cookie related issues (25cf054)
- enhance error handling in file upload and reading processes (ac7cfb0)
- improve error handling for Cloudflare Images upload (fae0ebb)
- improve loyalty (#7451) (3463884)
- improve nullable field handling, assignee notifications, and batch user status updates (7551118)
- improve Product places (#7035) (20654b2)
- normalize broadcast config keys and config update flow (2e9985c)
- accounting: census detail with keyboard shortcut (#7385) (e19988f)
- add broadcast trace logging for email worker (a8caf82)
- Added field logic and required attributes in detail, chore: minor ux improvements (cf193f3)
- automations: enhance builder UX, AI agent tooling, and core actions (#7441) (ff28842)
- cms posts view and reaction (17e7436)
- implement applyTrustProxy in multiple services and utilities (d9040a2)
- tms: add additional improvements and enhancements (#7399) (cc452d1)
- tourism: improve tour and itinerary pdf generation (#7423) (e943256)
3.0.11 (2026-04-08)
- accounting return deal and some refactors (#7398) (7d93f82)
- core-api: sanitize chunkIndex and uploadId in chunked upload to prevent path traversal (#7364) (37e0bc4), closes #1063 #1072
- core-api: use escapeRegExp before applying wildcard replacements in product similarities (#7366) (539842c)
- accounting: inventory sale return transaction (#7388) (407bed8)
- add cms url options, cp categories fix, bmtoursgroup, bmtoursgr (4f40020)
- add cpProductDetail client portal product query (2bebb20)
- add properties (cc372d0)
- add translations for tourism ui tms (#7392) (03b64a7)
- add travel insurance, regions, tiered pricing & multi-traveler support (#7375) (1e73ef9)
- add webbuilder logs (b31bbba)
- sales: add posItems export (#7316) (7b2168e)
3.0.10 (2026-04-03)
- add custom field in page and cat, remove audio and video field … (#7358) (9d600d3)
- add per-module access control to relation widget side tabs (0700e3d)
- implement translation support for amenities and elements (#7378) (e1c10c9)
- payment: introduce toki as payment option (#7363) (0bec208)
- sales: add checkDiscount query in 3.0 with loyalties integration (#7368) (cce538c)
3.0.9 (2026-04-01)
- accounting: census bug, syncdeal config (#7353) (abfc64e)
- core-ui: truncate permission group text (#7361) (08a3684)
- fix duplicated import (d5f53e5)
- posclient: pos choose config is public (1963dc1)
- products remainder improve (#7344) (aa94f10)
- remove activity header (7dbb2ee)
- sonar resolve frontend/module/logs (#7341) (6c9f4b7)
- add branchId to tour categories (#7346) (572e0d0)
- add logging for collectionType in checkCustomTrigger (22c12bf)
- core-ui: guard core actions with can (485a44d)
- implement Facebook bot health notification system and update notification types (#7349) (90c8410)
- logs: enhance log detail view and add new filters (#7357) (918916d)
- tms: improve tourism components and layout (#7350) (4f9cd48)
- update checkCustomTrigger to log arguments and return false (4c42eb1)
- remove activity from contact overview (de25831)
3.0.8 (2026-03-30)
3.0.7 (2026-03-30)
- census detail improvement (#7329) (87ce0e9)
- resolve pdf image not displaying issue (#7324) (87edaec)
- show fallback text in BroadcastSettingsVerifiedEmail when no search query (faa9082)
- frontline ticket report and export (d3a4ea5)
- pdf: use itinerary color instead of branch primarycolor (#7334) (b41a792)
- tour: add attachment field to form and apply improvements (#7330) (2ab20f8)
- tour: add itinerary color field (#7333) (238cbc4)
- tour: add mongolian cyrillic support in pdf export (#7332) (3e96a27)
- tour: add variable to elements (#7335) (e284433)
- validation: prevent duplicates in tour, itinerary, elements and amenities (#7338) (f212452)
3.0.6 (2026-03-27)
- allow unicode letters in sanitizeKey (95965b3)
- handle optional customer ID in buildCustomerTarget function (1de6dc4)
- loyalty improve (#7303) (6f83af2)
- restore broadcast, template, and import/export routes (68bd7aa)
- show uploaded image on editor (#7320) (7131f00)
- sonar resolve be/erxes-api-shared/utils (#7299) (703a9b7)
- sonar resolve be/frontline/modules/inbox/graphql/resolvers/mutations (#7301) (45acdd1)
- core: guard contact actions with can (#7282) (c04c76f)
- enhance sales deal overview, activity logs, and configurable record-table columns (#7315) (07f1f74)
- lang switcher in detail page, no content indicator (#7296) (74ecf3c)
- tms: add language fields and remove preview page from create form (#7283) (7698e6a)
3.0.5 (2026-03-25)
3.0.4 (2026-03-25)
- core use dynamic import for file-type to resolve ESM compatibility error (867d0d7)
3.0.3 (2026-03-25)
3.0.2 (2026-03-25)
3.0.1 (2026-03-25)
- add organization handling when IMAP SAAS mode is detected (76c46d8)
- typing bug on customers,companies (#6885) (dd29e87)
- accounting configs upgrade (ef10a3a)
- accounting sync deal config (f227060)
- accounting-ui some bug (#6802) (77ce65e)
- add @key directive to Channel type for federation (f7c975f)
- add error logging to empty catch blocks (#6991) (c1b9979)
- add git, ca-certificates, and curl to content_api Docker image (56215ef)
- add global flag to regex patterns in sanitize utils (ce9df37)
- add missing newline at end of Colors.ts file (#6996) (33c23a4)
- add missing newline at end of file-upload/types.ts (#7007) (4c4c57a)
- add missing newline at end of i18n/config.ts (#7003) (6106820)
- add missing newline at end of settings/constants/data.ts (#7004) (a13a15a)
- add missing newlines at end of team-member files (#7028) (87a864a)
- add propertiesData field to ticket query (9356568)
- add proxy agent & pool settings ong apollo router (2612ad8)
- add redis caching for active plugins list (f4ea37c)
- added board movement component & fix archive (#6803) (55cff2a)
- added customer, company widget (48dc5ab)
- added filter by product on sales (#6936) (4ca6f10)
- added sales common board, pipeline, stage chooser (#6931) (28fd88c)
- align personCost schema and ts types with the new object-based structure (#7121) (dd88c0d)
- build (ce89fed)
- build (c46cce7)
- build, delete posclient-front of eslintrc (35e22fc)
- categories and pagination bug (#7189) (31cef1a)
- claude-code ci (1dcc9de)
- clean code conformities on sales_ui (#6865) (27c5beb)
- clean some code (d581719)
- clientportal comments (#6855) (b9d3e7d)
- clientportal trpc (#6924) (af26886)
- clientportal: standardize userType field and expose registration code (cbfa5df)
- cms: content archive (#6788) (fdada95)
- cmspages (869cb41)
- cmstags (#7150) (da00571)
- conformities to relations (80689c3)
- content module remove webids except content plugin (442c093)
- content navigation (#6826) (6a9375d)
- content: tag remove error, refactor page detail page with parent id (1f5c294)
- core build (6ff44a4)
- correct additional 'occured' to 'occurred' typos in backend files (#6990) (dad0eb0)
- correct all typos across the codebase (17 fixes) (#7069) (8d3502e)
- correct arrow function expression in DeepSource skip coverage (3246171)
- correct notification read status check in useNotification hook (b480b9a)
- correct typo 'dont' to 'don't' in comment (#7025) (08c8c8e)
- correct typo 'dont' to 'don't' in migratePropertiesData.ts (#7024) (8043ed7)
- correct typo 'occured_at' to 'occurred_at' in factories.ts (#7018) (d5d62e2)
- correct typo 'occured' to 'occurred' in backend files and add error detail (21f67ce)
- correct typo 'occured' to 'occurred' in backend files and add error detail (#6987) (0f1494b)
- correct typo 'occured' to 'occurred' in broadcast common utils (#7001) (9b6dfce)
- correct typo 'occured' to 'occurred' in eventLogHandler.ts (#6998) (59b54d1)
- correct typo 'occured' to 'occurred' in eventLogHandler.ts (#7098) (9bc61a4)
- correct typo 'occured' to 'occurred' in facebook helpers (#6999) (ea7fdf0)
- correct typo 'occured' to 'occurred' in Fields model (#7000) (796b5ed)
- correct typo 'occured' to 'occurred' in Fields.ts (#7021) (4c955bf)
- correct typo 'occured' to 'occurred' in POS client components (00b5cfa)
- correct typo 'occured' to 'occurred' in POS client components (#6988) (d2e89c7)
- correct typo 'occured' to 'occurred' in useUsersInvite.tsx (f605176)
- correct typo 'occured' to 'occurred' in useUsersInvite.tsx (#6985) (43607be)
- correct typo 'occured' to 'occurred' in useUsersInvite.tsx (#7011) (ee71403)
- correct typo 'seperate' to 'separate' in translation files and component (709c15f)
- correct typo 'seperate' to 'separate' in translation files and component (#6986) (f8aecaf)
- correct typo 'seperate' to 'separate' in translation files and component (#7010) (d1d3f15)
- correct typo 'seperate' to 'separate' in translation files and component (#7099) (978e738)
- correct typos 'Cant' to 'Can't' in Fields.ts (#7026) (abb318b)
- correct typos 'cant' to 'can't' in Transactions.ts (#7023) (d0a6b3a)
- correct typos 'occured' to 'occurred' in common.ts (#7020) (3c0196f)
- correct wrong logical operators causing runtime errors and broken validation (#6994) (39a220f)
- cp config overwrite (#7184) (f88630e)
- cp otp code (#7041) (d0c84ac)
- cpNotificaiton result (#6913) (a3716e3)
- create-owner (0959a40)
- custom field add on custom field group fix (1df852d)
- customer company note (7b4b100)
- deal activity logs (#6849) (9bac7b8)
- deal list detail some bug (dcf7dca)
- deals default ordery by (5195d5c)
- edit related contacts for cp user (#7060) (1ce17f7)
- EM bugs (#6903) (02f21ad)
- enable broadcast feature for all editions (2b5e0c2)
- enable early return in client portal token middleware (372f6fe)
- enhance client portal token handling and error management (b1934db)
- error fallback revert (0d656da)
- erxes-ui -> colors.ts (#6880) (7b6a0ca)
- eventlog validation error (78e9736)
- extend client-auth-token time (#7074) (91f2fa9)
- fix build (8df228d)
- fix build of content (f28bee5)
- fix customer eventlog (fdc39ff)
- frontline inbox report and ticket permission (9161a46)
- frontline report source filter (5f3c247)
- frontline resolve scroll issue in pipeline permissions on production (237f71f)
- frontline resolve scroll issue in pipeline permissions on production (eb04d97)
- frontline-ticket: fix remove functionality in UI and API (e3216c9)
- import missing import for frontline (b485833)
- improve broadcast config email input and form layout (#6872) (fe0c9a2)
- improve form field handling and validation (9860359)
- improve insurance frontend robustness and type safety across multiple pages (#7138) (195dc08)
- improve layout and styling in MemberDetail, ActivityLogRow, and FieldsInDetail components (033141a)
- include excludeWorkspaceTags parameter to tagsMain query (242227d)
- kimi code analysis and review automation (af200bd)
- logo and icon issues in payment settings (#6979) (58242cd)
- loyalty: add serviceName binding (#6972) (49349b1)
- missing manager IDs in branch resolvers and correct general manager user lookup queries (#7107) (4d39fe3)
- modify client portal token verification flow (725f7b7)
- mongolian:ebarimt improvement (#6863) (c06d7fc)
- move cards bug (#6966) (68aefff)
- move deals search input (#6841) (c83d15e)
- new afterMutations, mongolian/product-places, and Product places configs saved list (#6871) (cab7ede)
- only fetch existing group when code is being updated (e51df6d)
- operation bugfixes (#6768) (1a9ee78)
- operation build (a9b224e)
- operation fixes v2 (#6832) (5be046b)
- optimize event handling and fix Facebook integration (4893280)
- otp limit bug & customer switch for cpuser (#6929) (df06547)
- payment bug (#6944) (0da71ef)
- payment invoices routing and payment integrations (#6951) (cabff1e)
- payment worker timeout error (#7141) (c96d5f9)
- payment worker timeout in invoicesCheck (#7135) (9a3e5aa)
- payments invcoice detail query skip permission (e1f084b)
- permission posclient (#7289) (d768b6d)
- pipeline product config button, sales product other payment (#6866) (dbdd6c6)
- pipeline stage order in settings (#6767) (5602eda)
- pos order remove and some bugs (#6760) (3893b5f)
- pos: moved the pos page to the settings and new features (#6728) (bd8fe0e)
- posts published date filter and published date automatically applied when not specified (#7239) (99a1c74)
- product infos, company, customer filter, update boards in sales (#6772) (a41bbe8)
- products filter by pipline config (e43c30d)
- products list vendor (17fabb5)
- products list with tags (a71468a)
- products navigation (87ef51d)
- realtime sales product (#6812) (c3eac00)
- remove check role (ec5d509)
- remove debug console.log from Export component (#7030) (9b0198a)
- remove debug console.log from useTags.tsx (#7031) (792eb42)
- remove debug console.log statements and extra blank lines (#7029) (4257e64)
- remove debug console.log statements and extra blank lines (#7102) (79b4a00)
- remove debug console.log statements from broadcast components (#7100) (1319671)
- remove debug console.log statements from production code (#6992) (015de12)
- remove debug console.log statements from production code (#7012) (b548f5e)
- remove debug console.log statements from sales module (#7027) (5cbd1c1)
- remove debug console.log statements from structure hooks (#7019) (6019457)
- remove eval() usage to prevent RCE vulnerability (#6837) (4ce7ddc)
- remove permission check (2b5dc85)
- remove pool from apollo (70c3105)
- remove renderFullname from sales card (95a2dfe)
- remove trailing whitespace in descriptionTypes.ts (#7103) (6d881c1)
- remove trailing whitespace in GraphQL query file (#7005) (230068a)
- remove trailing whitespace in NotificationContent.tsx (#7014) (2e85ccf)
- remove trailing whitespace in TopicDrawer.tsx (#7002) (229e708)
- remove unused import from usePositionActions.tsx (#7009) (7409c90)
- remove widgetsave browser info mutation (dd13707)
- replace Object.assign with object spread syntax (#6900) (d8d7ca1)
- replace tabs with spaces for consistency (#7015) (ad77c7f)
- replace var with const in script injection code (#6993) (56243f3)
- report API conversation report queries and pipelines (7f8fb0f)
- report release date filtering and correct fallback skeletons (7bfc407)
- reset websocket queue state on reconnection and increase HTTP server keep-alive and headers timeouts. (1e3e624)
- resolve TODO by renaming assignedTo to createdBy in documents filter (#6925) (622b4aa)
- response template require login for response template queries and mutations (9905d2b)
- restore notifcation archive functionality (75ccf11)
- rever content enhancement (cf0ea2f)
- router urls (#6831) (6a47c44)
- router urls in payment (#6838) (736f5f0)
- sales customers and companies with relations and dataloader (#6858) (835240f)
- sales deal change subscription with refetch (ff9e8d6)
- sales deal labels with subscription (45aded8)
- sales deal stages probability (49baf58)
- sales deals update (#6844) (aec8c40)
- sales fixes (#7039) (2dc67f6)
- sales label bug (#6822) (5ed8abf)
- sales overview (#6850) (7cac331)
- sales pipeline age (#6843) (89fe0c1)
- sales router (b7d71c7)
- sales settings router (1150694)
- sales settings, bulk remove pipelines (#7159) (afdc230)
- sales stages sortby and document actions (#6800) (d3f62f1)
- sales subscription and some refactor (#6848) (90d1208)
- sales to ebarimt (#6809) (f83d5b5)
- sales trpc (#7288) (e74a93f)
- sales-api deals order not override (634430e)
- set ticketConfigId nullable, enhancement: schedule day options are richer (2332ac7)
- show deals total numbers (#6813) (96cdcff)
- simplify client portal user type determination in comment mutations (017276d)
- skip permission for widget form mutations (878ab85)
- sonar resolved on backend/utils (#7143) (14509a2)
- sonar resolved on erxes-messenger (#7265) (f41c79e)
- sonar resolved on frontend/conversation/components (#7247) (e4ce2c2)
- sonar resolved on frontend/integration/components (#7252) (c31386f)
- sonar resolved on frontend/structure/components (#7246) (6085ab9)
- sonar resolved on knowledgebase (#7142) (5c91814)
- sync-erkhet settings menu (a511c60)
- test user (#7044) (ac7c92a)
- ticket pipeline add bottom padding to scroll container to ensure 'Show Less' button is visible" (66177fe)
- ticket: pipeline permissions (46c1239)
- trpc on payment (#6759) (3f3ff3b)
- unknown payment bug (#7125) (4a59cdd)
- update checklist and widget card on sales (60056e5)
- update customer, company select on deals (26b1e8a)
- update forms owner permission check and remove debug log (95f2345)
- update notification filters and links for improved functionality (69c73c6)
- update on deals card (#6859) (079beab)
- update payment, productData, detail on sales (64dde42)
- update product actions on sales (c00be57)
- update sales overview (2342111)
- use single quotes for consistency in roles.ts (#7006) (28211d0)
- webbuilder backend all logic without filter by clientPortal for lists and arrays (#7104) (b40ff60)
- workspace general settings bug (#6883) (3612088)
- Accounting ac report (#6742) (4d3f6d5)
- accounting census and show liveRemainder (#7279) (d3c8986)
- add export, import on Products (#6904) (837de95)
- Add 20 most popular fonts to FontFamilyButton (#6860) (bcd891d)
- add a new client portal post list query that supports offset-based pagination (#6956) (7a6c14e)
- add activity logs to sales_api (#6762) (a19220c)
- add auth token logic (7bb73bb)
- add back button to report filter (148c375)
- add client portal ticket management functionality (#6928) (8b4e0c9)
- add client protal ticket detail query (1a4f297)
- add copy-ID actions to tag and category tables and surface an external Web Builder link in the content navigation. (77b024d)
- add cpGetDeploymentEvents query (c5c0531)
- add cpInvoicesCheck (11ffffb)
- add cpTags query for client portal (5116675)
- add datefilter to cmsPostList query (#6976) (93fff9a)
- add decline triage feature and add status to triage(#6868) (c0e7079)
- add env hide modules (6326729)
- add explicit
_idexistence checks for customer and user objects in various integration modules. (637341e) - add form widget implementation with multi-step form support and routing restructuring (#6963) (82e2fbb)
- add import export teammember, download template file for custom… (#6921) (9088d0b)
- add inbox insight (40cf350)
- add loading state for plugin configuration and update NotFoundPage to display loading screen (b3c87d9)
- add LogsIndexPage and integrate logs routing in SettingsRoutes (b1e243c)
- add members in project (6d3c94f)
- add multiple category selection and improve service charge handling (da11d42)
- add notification sound for frontline widgets (f6cb251)
- add pipeline-aware product filtering on the backend and enable opening PMS/TMS (#7106) (62f8184)
- add posCovers query and align schema with sales_api (#7170) (8e81ba4)
- add ProductsTotalCount component and improve block editor content sync (among other changes) (#6959) (cf79fe8)
- add propertiesData to CP user registration (6b02a75)
- add REACT_APP_HIDE_CORE_MODULES env (97691ba)
- add redis logic on app token (84c2e87)
- add release it and revert gateway dockerfile (f1fbae3)
- add stageId on ticket collection (#7250) (9c939c0)
- add status field to page (#7034) (182c447)
- add template in operation (a3604fd)
- add tooltip for marking notifications as read in NotificationItem (f896848)
- add tourism tms development (6f95ccc)
- client-portal: add edit & delete actions to client portal list (#6886) (6919c07)
- clientportal ui,notification (#6906) (89544e5)
- cms translation (#7173) (0688879)
- content cms enhacement (#7056) (162809e)
- core contacts impovements (560e6e6)
- core settings enhancements (42c709f)
- core stabilization (#6941) (b29f1e1)
- core-api: add chunked file upload support for large files (1387406)
- ecommerce module (#7091) (1a3eca2)
- enable self-editing for team member profiles and refactor permission checks (d74b17e)
- enhance client portal and document management features (#6943) (ec360e5)
- enhance client portal ticket user handling (c885696)
- enhance email broadcast functionality (#6857) (8567dae)
- enhance RenderPluginsComponentWrapper and update UIConfig with new widget flags (#6912) (2d3f00f)
- enhance tag filtering and validation (e6ef669)
- enhance tag query and filtering for client portal (#6927) (657a2f7)
- Enhance ticket management by adding propertiesData support, including validation and schema updates across backend and frontend. (#7062) (b493512)
- enhance user notification settings (#7038) (daf32ff)
- enhanced menu and page schemas to support language selection and translation management (#7149) (f0c453e)
- Enhances CMS with skip-based pagination, improved sorting, UI updates, and language support, while consolidating constants and types (#6954) (f61090b)
- exchange Rates to mongolian (#6918) (6aa3f91)
- fix customfieldDatas (4c3cbf9)
- frontline add brand to integrations and refactor ticket permission UI (cbf8486)
- frontline imap (#6887) (09580fb)
- frontline inbox assign and report call filter (7ff023c)
- frontline knowledgebase api (0ce2ae7)
- frontline remove channel members many (#7119) (f5ee34e)
- frontline ticket attachment (0e559fc)
- frontline-ticket add logic to show only tickets assigned to the user (1915944)
- frontline: add mobile notification feature (4d872ba)
- frontline: implement ticket pipeline delete action in UI (00d2ac7)
- implement bulk form deletion functionality (#6939) (2e7642a)
- implement permission-based access control system (67e0e92)
- implement properties module migration and UI improvements (#6870) (380b0ae)
- implement template module & structure (#7070) (ba4fe22)
- implement user-scoped permissions for team member updates (ac9897f)
- implements the sales pos order feature, adding comprehensive order management functionality (#7201) (6b998e2)
- improve the CMS post creation experience by restructuring the content editor and post type handling (#6840) (92299c2)
- insurance plugin (#6973) (f56d752)
- insurance: improve contract and customer filtering with enhanced queries (#7067) (9171a0d)
- insurance: introduce insurance plugin (#6869) (4e7673e)
- integrate FieldsInDetail component into CompanyDetail and CustomerDetail with improved layout (d694fd0)
- integrate graphql resolvers and schemas for loyalty features (#6792) (04621a2)
- Introduce a new unified tagging system across tasks and settings, integrating inline tag assignment, tag type management, and updated backend tag type metadata. (f4d0e2d)
- Introduce a ticket properties tab in the frontline ticket detail view to display and edit custom fields (#6980) (2cf73b6)
- invCost report and some refactors (#6764) (7036fe7)
- Loyalty pluging convert (#6879) (2be0b03)
- migrate loyalty & pricing trpc consumers (#7144) (c34adcf)
- mongolian_api: add productPlaces module and ebarimt improve (#6739) (6ce0489)
- new flag for website reservation locking and extend day model with titles. (#7086) (a231365)
- notification sound in inbox (#7208) (4ff3b7e)
- permissions core check (20f77d4)
- permissions view (237fef2)
- pos: add service charge field to payment configuration (deae4d7)
- posts media videoUrl field (23ec840)
- pos: update pos delete and settings page (#6845) (57d6563)
- product uoms (#6818) (e2488fb)
- products add settings configuration (c98d2c5)
- products remainder and discount schema and census (#7055) (09c747a)
- properties: add client portal queries with offset pagination (#7047) (eaa4e48)
- refine CMS content management UX and translation handling across posts, custom fields, and listing pages (b13372d)
- remainder with products (#7088) (2579e01)
- remove ticket required (6ede5e6)
- sales deal sync to accounting transaction (#6901) (3c8fc06)
- ticket add status filter to ticket list (d9c528e)
- ticket: add frontline permissions (91dd0ed)
- tour: add flexible date scheduling (f8a6335)
- ui for broadcast module & replace message queue to worker (#6805) (35e22b0)
- Unify and simplify authentication and onboarding UI flows while improving focus handling and removing SaaS-specific branches. (#6953) (29081bf)
- webbuilder version 3 (5189d79)