Forward locale param to SecurityService on public subscription catalog endpoint
Add translation tables for commit logs, KB articles, and subscription plans
Add async translation for changelog and subscription plans, add locale-aware public APIs
Add async translation for KB articles, add locale-aware public article APIs
Expand messages/en.json with full page body copy coverage
Grew the translation catalogue from 172 keys (~12 namespaces) to 300+ keys across 26 namespaces, extracting every user-visible hardcoded English string from all...
Add translation entities and repositories for CommitLog, KbArticle, SubscriptionPlan
- CommitLogTranslation + CommitLogTranslationId (PK: commit_log_id, locale) - KbArticleTranslation + KbArticleTranslationId (PK: article_uid, locale) - Subscrip...
Add tooltips and fix scroll behaviour on language selector
- Add englishName to LOCALE_CONFIG for all 22 locales - Add title={englishName} to each language button (desktop + mobile) so hovering shows the English name ...
Replace offer badge with language selector in nav
Add a 2-column flag+name dropdown to the header navigation allowing users to switch between all 22 supported locales. Locale switching uses next-intl router.rep...
Restore removed languages with translationSupported field
Add translationSupported boolean to LanguageType enum. Restore URDU, MARATHI, TELUGU, and GUJARATI (translationSupported=false). All 22 previously supported lan...
Implement next-intl i18n with 22 locales, translate script, and [locale] routing
Initial TranslateService — Bergamot + LibreTranslate abstraction layer
Add Open in Docs button for editing documents, spreadsheets, presentations
- New "Open in Docs" button (EditNote icon) in doc manager Actions column for .docx, .xlsx, .pptx, .odg, .doc, .xls, .ppt files - Opens document in Docs edito...
Rewrite WOPI/Docs to use Img/ImgDat, add Open in Docs endpoint
- WopiController now uses imgId (Long) instead of Document fileId (String) - DocumentService creates Img + ImgDat records instead of Document records - WOPI Che...
Remove standalone Document entity — all docs now use Img/ImgDat imaging system
The Document entity, DocumentRepository, and DocumentNotFoundException are removed. DocsService WOPI and Docs integration now operates entirely through the Img ...
Build integrated auto lead imports UI with full endpoint management
Complete rewrite of LeadAutoImportManager with production-ready features: - Endpoint CRUD with unique webhook URLs for 3rd-party lead vendors - Copy-to-clipboar...
Add Quartz job for automated lead intake payload processing
Adds LeadIntakeProcessingJob that runs every minute to process queued raw payloads from 3rd-party vendors. Applies configured field mappings, transformations (t...
Add lead intake management and public receive controllers
Adds two controllers for the automated lead intake system: - LeadIntakeController: authenticated CRUD for intake endpoints, field mappings, payload queue mana...
Add public lead intake endpoint for 3rd-party lead submission
Adds LeadIntakePublicController at /api/public/lead-intake/{token} that accepts lead data in any format (JSON, form-urlencoded) from 3rd-party vendors and forwa...
Add Lead Intake system entities, repos, DTOs, and service
Adds the complete data layer for the automated lead intake system: - 4 entities: LeadIntakeEndpoint, LeadIntakeFieldMapping, LeadIntakeRawPayload, LeadIntakePro...
Integrate kamo *** (proof-of-work) into contact form, demo form, and chat widget
- Add ***Provider reusable component wrapping Capcha-widget with dark theme styling - Contact form: auto-verify on focus, gate submission until verified - Demo ...
Add animated cookie consent banner with glassmorphism design
Floating bottom-left card with spring animations, essential/analytics cookie toggles, localStorage persistence, and a Cookie Settings link in the footer to re-o...
Update marketing site for new production pricing
- Added eSignatures to addon icon maps and calculator toggle - Email hosting shown as "Included Free" instead of paid add-on toggle - Updated FAQs: added TCO co...
Update KamoCRM pricing to production go-to-market rates
- Starter: $34/mo ($28 annual), Business: $72/mo ($59 annual), Enterprise: from $109/mo ($99 annual) - Business plan expanded from 50 to 100 users - Added eSign...
Populate createdByName in DocumentMetadata from uploader member
convertToMetadata() now reads **************** and sets createdByName so the Uploaded By column in the doc manager shows the actual uploader's name.
Track uploaded-by member on Img entity
Add createdByMember (ManyToOne) field to Img so the uploader is persisted at upload time. ImageService.uploadDocument() now sets it from the calling member. Hib...
Expose thumb and converted file sizes in DocumentMetadata
Adds thumbFileSize, convertedFileSize, and convertedThumbFileSize to the DocumentMetadata DTO and populates them in convertToMetadata() from the ImgDat and its ...
Add stored size tooltip to Size cell in doc manager
Tooltip shows the breakdown of actual storage used per document: original file, thumbnails (original + converted combined), and converted doc — plus a total. Th...
Move doc manager action buttons to toolbar search row
- Removed Create Document, Upload Document, Bulk Upload, and Refresh from the gradient hero header - Hero header is now title/description only - Create Document...
Store memberType in Redis session at login
Adds CASE WHEN e.id IS NOT NULL THEN 'TEAM_MEMBER' ELSE 'MEMBER' END to the login SQL query and passes the result through createSession into Redis, so frontend ...
Add document sharing endpoints to ImagingController
Adds: shares/by-image, shares/create, shares/update/{id}, shares/delete/{id}, shares/shared-with-me, **************** **************** shares/resolve-alias
Add findActiveSharesForSwMember and countNewSharesForSwMember queries to ImgShareRepository
Add ?next= forward parameter support for post-login redirect
Captures ?next=/path from URL and carries it through both manual login and auto-login flows, appending it to the OTK redirect URL so kamo-internal can redirect ...
Implement document sharing system with share dialog, Shared With Me tab, and shareable links
- Add ShareDocumentDialog with permission-based member/team/dept/jobTitle recipient picker - Wire Share button in DocManager toolbar (MY_DOCS only) - Add Shared...
Add doc sharing security rights (SHARE_DOCS_SEARCH_MEMBERS, SHARE_DOCS_ALIAS_MEMBERS, SHARE_DOCS_SEARCH_TEAM_MEMBERS, SHARE_DOCS_ALIAS_TEAM_MEMBERS)
New RoleRightType entries (IDs 108-111) under ServiceType.DOCS to control member document sharing permissions with search vs alias-only access patterns.
Real BLAKE3 hashing and pre-upload dedup check in doc manager
- Replace BLAKE3 placeholder with real blake3 WASM in fileHashing.ts - Add check-hashes and register-existing API proxy routes - MultiFileUploader now checks se...
Add check-hashes and register-existing endpoints for upload dedup
- POST /check-hashes: client sends hashes before upload, server returns whether file exists - POST /register-existing: creates Img record pointing to existing I...
Add real BLAKE3 hashing, pre-upload dedup check, and org-scoped dedup
- Replace BLAKE3 placeholder with real BouncyCastle Blake3Digest in HashUtils - Add dedupScope column to ImgOrgAssoc (GLOBAL or ORG, default GLOBAL) - Add org-s...
Add thumbnail backfill endpoint for existing converted documents
POST /backfill-thumbnails processes up to 20 converted documents that are missing thumbnails per call, generating per-page PNGs and storing them in MinIO. Call ...
Add async conversion + thumbnail generation for regular document uploads
Previously only template uploads triggered the conversion/thumbnail pipeline. Now regular uploads also convert to PDF and generate per-page thumbnails asynchron...
Redesign Prepare Selected tab with reordering, preview, and bulk download
Replace mock Options panel with functional document preparation UI. Documents are reorderable via drag-and-drop and arrow buttons, with checkboxes for deselecti...
Add bulk download (merged PDF/ZIP) and general-purpose thumbnails
Remove e-signature template guard from thumbnail endpoint so all documents can serve per-page thumbnails. Add isThumbAvail and thumbPageCount to DocumentMetadat...
Include folderName, folderPath, and docTypeName in DocumentMetadata response
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.