Nenda kwenye maudhui
KAMOUniverse

Mabadiliko

Nini kipya.

Kila kuboresha jukwaa, kama ni meli.

  1. · kamo-marketing

    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 comparison FAQ, email hosting FAQ, updated annual savings to 18% - Setup fee callout updated from $2,500 to "$15,000-75,000" (competitor comparison) - Calculator: Business plan max users updated to 100, fallback prices updated - Offer page: renamed from "Prelaunch" to "Early Bird", code from 18DOFF to EARLYBIRD - Offer: updated fallback business prices to $72/$59, expiry to 2026-07-31 - Updated pricing terms last updated date to April 2026 - "Up to 50 Users" references updated to "Up to 100 Users"

  2. · InitializerService

    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 eSignatures add-on ($8/user/mo, included in Business+) - Email hosting now included free on all paid plans (removed as paid add-on) - Updated bundles: Productivity $13, Full Platform $25 (now includes eSign) - Volume discounts: added 51-100 seat tier for Business at 15% - Replaced 18DOFF promo with EARLYBIRD ($18 off Business for 12 months, expires 2026-07-31) - Free plan storage increased from 3GB to 5GB

  3. · DocsService

    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.

  4. · kamo-shared-library

    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. Hibernate will auto-add CREATED_BY_MEMBER_ID column on next startup.

  5. · DocsService

    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 convertedDat, enabling the frontend to show a full storage breakdown tooltip on the doc manager Size cell.

  6. · kamo-internal

    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. Thumbnails from both ImgDat rows are summed into a single line since only one is ever populated.

  7. · kamo-internal

    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 and Upload Document passed as actions prop to DocManager, rendered to the right of the quick search bar - Bulk Upload button removed entirely - Refresh is now an icon-only button (no label) built into DocManager toolbar, calls loadDocuments() - Search bar width reduced by 35% (400 -> 260px minWidth)

  8. · SecurityService

    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 can distinguish team members from regular members via session data.

  9. · DocsService

    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

  10. · kamo-shared-library

    Add findActiveSharesForSwMember and countNewSharesForSwMember queries to ImgShareRepository

  11. · kamo-internal

    Add per-row Share button to Actions column in DocManager

  12. · kamo-login

    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 to the intended destination after session validation.

  13. · kamo-internal

    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 With Me tab with notification badge for new shares (server-side count) - Add shared document indicator (purple people icon) in grid rows - Support ?shared=true&filter=ID URL params for shareable links - Add 6 new API routes for share CRUD, shared-with-me, new-count, mark-seen, alias resolution - Add share utility functions to imagingApi.ts - Add 4 new RoleRightType entries for doc sharing permissions (search/alias for members/team) - Support ?next= forward parameter in validate page for post-login redirect

  14. · kamo-shared-library

    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.

  15. · kamo-internal

    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 server for existing file before uploading - Duplicate files skip upload entirely, showing 'Complete (deduplicated)'

  16. · ConversionService

    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 ImgDat without file upload

  17. · kamo-shared-library

    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-scoped dedup query to ImgDatRepository - Add checkHashExists() for pre-upload hash lookup - Add registerExistingDocument() to create Img records without re-uploading

  18. · DocsService

    Include extBlackList in assoc-config response

  19. · kamo-internal

    Add proxy route for thumbnail backfill endpoint

  20. · DocsService

    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 repeatedly until remaining reaches 0.

  21. · ConversionService

    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 asynchronously after the upload response returns, so all documents have previews available in the document manager.

  22. · kamo-internal

    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 deselection. Right panel shows per-page thumbnail preview with navigation. Bottom bar offers merged PDF or ZIP download with Include Modifications toggle. Add API proxy routes for general document thumbnails and bulk download endpoint.

  23. · DocsService

    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 DocumentMetadata. Add DocumentPrepareService with PDF merging, ZIP bundling, design modification flattening (page ops, modifiers, annotations), and cover page generation for unconvertible files. Add PDFBox 3.0.3 dependency.

  24. · DocsService

    Include folderName, folderPath, and docTypeName in DocumentMetadata response

  25. · DocsService

    Add isConverted, hasDesignVersion, isHidden to DocumentMetadata response

    The /api/docs/imaging/list endpoint now returns conversion status from ImgDat and design version status (isSigTemplate) so the frontend can enable/disable the Edit button and filter Modified Docs.

  26. · kamo-internal

    Restructure DocManager tabs, add Edit icon, embed editor and multi-file uploader

  27. · kamo-internal

    Create MultiFileUploader component with per-file conversion pipeline

  28. · kamo-internal

    Create DocumentEditor component for inline editing in DocManager

  29. · kamo-internal

    Fix watermark above-layer z-index, add page right-click menu, add page above/below, improve drag indicator

    - ModifierLayer: 'above' pass now uses zIndex 20 so watermarks render on top of fields and annotations - PdfCanvas: right-click context menu with rotate, delete, add page above/below - PageThumbnailSidebar: same context menu; drag indicator now renders as a horizontal rule between thumbnails (not inside overflow:hidden box); drag-over uses insert-position semantics for precise drop targeting - designStore: addPage action inserts blank virtual pages with matching aspect ratio; setTotalPages accounts for virtual page count; snapshot/load/revert all persist virtualPages - DesignTab: wires getPageAspectRatio and onAddPage to sidebar

  30. · kamo-internal

    Drag-and-drop field placement, floating annotation toolbar, and PDF page spacing

    - Replace click-to-place with @dnd-kit drag-and-drop for all signature, identity, and input field tools; drag ghost matches the exact visual appearance of the dropped field (FieldDragPreview renders FieldControl at default dimensions) - Each PDF page is now a useDroppable target; drop coordinates are converted to - Move annotation tools out of the left toolbox into a new floating AnnotationToolbar positioned top-left of the canvas area (mirroring the zoom toolbar on the right) - AnnotationToolbar shows icons only with MUI Tooltips as labels; active tool renders in a pressed/inset state until deselected Divider separating it from the annotation tool buttons - AnnotationToolbar is draggable via a grip handle and auto-clamps back into the visible canvas area whenever the browser window is resized - Drawing settings (color palette, color picker, thickness/opacity sliders) expand inline below the toolbar via Collapse when an annotation tool is active - Add 40px padding above the first PDF page and below the last page in the canvas

Ulimwengu wako unasubiri.

Kuanza bure katika dakika. Ongeza bidhaa wakati wowote wewe ni tayari - hakuna uhamiaji, hakuna logins mpya.

Bure milele - hakuna kadi ya mkopo inahitajika