Agreement editor layout — prevent whitespace overflow and content jamming
- Add width: 100% to root flex container - Add minWidth: 0 to right panel and content area to prevent flex overflow - Add overflowWrap/wordBreak to preview HTML...
Pass includeInactive=true default for agreement templates endpoint
Templates management UI needs to see inactive templates too.
Return all agreement templates including inactive ones
Add findByOrganizationId to repo (no active filter) and includeInactive param to getAgreementTemplates service method. Defaults to true so the management UI sho...
Standardize brand naming across site — Kamo → KamoCRM / KamoCRM Inc.
Legal pages (terms, privacy, GDPR, footer copyrights) now use "KamoCRM Inc." for the corporate entity. Product/brand references across marketing copy, metadata,...
Migrate all pipeline components from commerceMarketApi to commerceApi
Update 10 files to import directly from commerceApi instead of the deleted commerceMarketApi. Remove the compatibility shim and dead CommerceMarketManager compo...
Restore commerceMarketApi.ts as compatibility re-export from commerceApi
Pipeline components (PipelineOrdersTab, PipelineView, orders detail page, etc.) still import from commerceMarketApi. Re-export needed symbols from commerceApi.
Add enterprise-grade Agreement Templates tab to all market types
Reusable MarketAgreementTemplatesTab added to every commerce market with: - Two-panel layout: template list sidebar + full editor - Commerce-type-specific templ...
Reduce hero section padding on mobile so headline is fully visible
Tightened pt and mb spacing at base breakpoint so "Unify Your Clients," is no longer pushed off-screen on portrait phones where the fixed banner and nav consume...
Make preview banner fixed to viewport and reduce hero text size on mobile
Banner is now position:fixed so it stays visible while scrolling, with body padding injected dynamically to prevent content overlap. Hero headline reduced from ...
Correct API paths, professional page layouts, remove dead code
- Fix frontend API path mismatches: use subscription-features, subscription-addons, subscription-bundles, **************** subscription-plan-prices, subscri...
Promote Features, Add-ons, Bundles to market-level tabs for SUBSCRIPTION markets
Features, add-ons, and bundles are shared market-level resources, not per-plan. - Add Features tab (manage + feature matrix), Add-ons tab, Bundles tab to market...
Add missing vendor-categories endpoints to CommerceMarketController
GET/POST/PUT/DELETE /{marketId}/vendor-categories were missing, causing 404 when the Vendors tab tried to load categories.
Unwrap backend response envelopes in all commerceApi single-object methods
Backend wraps responses in { market: {...} }, { product: {...} }, etc. but API client was returning the raw envelope, causing market.id and other properties to ...
Make preview banner responsive with dynamic height and raise chat z-index
Banner now measures its own height via CSS variable so nav/content adapt automatically when text wraps on small screens. Chat widget z-index raised above the ba...
Add marketId to CreateRentalAssetRequest and wire market association in CommerceService
Refactor commerce POS settings to market-centric architecture
Major restructure of the commerce settings page: Frontend: - Replace flat tab layout (Products, Inventory, Rental Assets, Subscription Plans) with market-cen...
Expand CommerceMarketController with nested market-centric endpoints
Replace flat POS endpoints with market-scoped REST hierarchy: - Products, inventory, vendor categories under /{marketId}/products, /inventory, /vendor-categorie...
Add marketId support to retail product DTOs and CommerceService
Add marketId/marketTitle fields to RetailProductDTO, add marketId to CreateRetailProductRequest, and wire CommerceMarketRepository into CommerceService to set m...
Add field config logging to trace preview rendering pipeline
Adds console.log statements to SignaturePreview and EmailSignatureManager to verify fieldConfig state propagation and field filtering at runtime. Check browser ...
Mailbox dropdown now loads emails from the selected mailbox
Pass mailboxId through fetchMessages/fetchFullMessage to the backend, fix stale closure in mailbox-changed handler by passing mailbox directly to loadMessages i...
Support mailbox switching by resolving IMAP credentials per mailboxId
Added getMailCredentialsByEmail to look up virtual_users by email directly, resolveForMailbox to MailProviderResolver with access verification, and optional mai...
Align Status Labels nav order with CRM page tab order across all 3 locations
Move department & job title from Roles tab to My Profile page
Department and job title fields now appear on the My Profile page as a SectionCard, shown only for team members. Editable via Autocomplete dropdowns when user h...
Include memberType, departmentId/Title, jobTitleId/Title in member profile GET response
Update Farm/Grim example labels to Dead/Bad and remove search field from status labels settings
Add CRM status label customization with settings UI and end-to-end wiring across leads pages
Add LeadStatusLabelController for org-level CRM status label CRUD endpoints
Add LeadStatusLabel entity, repository, service, and DTO for org-level CRM status label customization
Add department and job title selectors to member security tab
Team members can now be assigned to a department and job title via Autocomplete dropdowns in the Edit Security dialog. Summary card shows current assignments. R...
Add department and job title assignment to member security endpoint
GET now returns departmentId/Title and jobTitleId/Title for team members. PUT accepts departmentId and jobTitleId to assign/unassign department and job title, w...
Apply field config end-to-end across preview, save, compose, and send
The field config toggles were only wired up as UI — they had no effect on signature rendering. This commit: - Extracts applyFieldConfig to types.ts as a shared...
Email signature field toggles, normalized social links, and Content tab reorder
- Move Content sub-tab to first position in email signature settings - Add admin-configurable contact field toggles per scope (user/department/company) with e...
Sync social links to normalized social_links table
Write member social links to both the embedded EmbSocialLinks columns (backward compat) and the new normalized social_links table. Add socialLinksNormalized to ...
Add email signature field config API
Add service and REST controller for managing email signature field visibility configuration per organization. Admins can toggle which contact fields appear in s...
Add SocialLinkEntity and EmailSignatureFieldConfigEntity
Add normalized social_links table to replace embedded social link columns, supporting both predefined platforms and custom social links with sort ordering. Add ...
Implement mailbox switcher with privilege-based access on /messages page
- Add Meet, POS, and 3 new email access privileges to frontend RoleRightType - Add ServiceType.MEET to frontend ServiceType enum - Add getAccessibleMailboxes AP...
Add accessible mailboxes endpoint with privilege-based expanded access
Add AccessibleMailboxService and GET /api/email/mailboxes/accessible endpoint that returns personal mailboxes, shared mailboxes, and privilege-gated access to d...
Add email mailbox access privileges for member, department, and job type scopes
Add ACCESS_ALL_MEMBER_MAILBOXES (104), ACCESS_ALL_DEPARTMENT_MAILBOXES (105), and ACCESS_ALL_JOB_TYPE_MAILBOXES (106) to RoleRightType for privilege-based email...
Rewrite Roles & Permissions tab as singleton security config panel
Replaces role creation dialog with DepartmentManager-style singleton config: - Associated Roles: multi-select checkboxes from existing OrgRoles - Direct Rights:...
Rewrite MemberSecurityController as singleton config with roles, direct rights, session timeout
GET returns full member security config (associated roles, direct rights, session timeout override, applied rights with sources). PUT saves the entire config as...
Add MemberRightRepository for managing member-level direct rights
Rename DomainService to EmailDomainService to resolve bean name conflict
The shared library's DomainService and EmailService's local DomainService both registered as 'domainService' bean, causing CrashLoopBackOff on deploy.
Remove duplicate inline help from email templates page
The help information was shown both inline above the templates list and in the Help & Tips sidebar. Removed the inline rendering to avoid wasting space, since t...
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.