Changelog
What's new.
Every improvement to the platform, as it ships.
· EmailService
Add AES-GCM encryption service for provider credentials
· EmailService
Add capability interfaces and provider model classes
· EmailService
Add provider SDK dependencies for email providers
· kamo-shared-library
Add repositories for email provider entities
· kamo-shared-library
Add MemberImapConfigEntity for per-member IMAP config
· kamo-shared-library
Add OrgEmailOAuthTokenEntity for OAuth token storage
· kamo-shared-library
Add OrgEmailProviderEntity for email_provider schema
· kamo-shared-library
Add EmailProviderType and EmailProviderStatus enums
· kamo-internal
Double-click tool window title bar to maximize/restore
· kamo-internal
Expand all settings groups by default
· kamo-internal
Replace editor/preview toggle with inline template editor
New TemplateInlineEditor component renders the full template (header, backgrounds, margins, signature) with a borderless Quill editor embedded in the body area. The user types directly within the template — no visible text box, borders, or background on the editable area. The Quill toolbar sits above the template via an external toolbar reference. The template sections (header, signature, etc.) are rendered as static HTML above and below the editable area. Removed the Editor/Preview toggle from the footer bar since the inline editor serves both purposes simultaneously.
· kamo-internal
Add "No Template" option to template scope dropdown
Adds a "No Template" option at the top of the template dropdown list. When selected, skips the backend fetch and renders plain email body without any header, signature, or layout wrapping. Default remains "Individual".
· kamo-internal
Add template scope dropdown and preview tab to tool window email composer
Add to the MessageTool (tool window email composer, not the standalone MessageComposer): - Template scope dropdown in the subject row: Individual (default), Department, Organization — fetches saved template from backend - Editor/Preview toggle buttons next to the scope dropdown - Preview renders email body wrapped in the selected template layout (header + body + signature divider + signature + legal + footer image) with proper background colors, margin, padding, and center-email settings - Loading spinner while template loads - Compact mode hides button labels when window is narrow
· kamo-internal
Add template scope selector and preview tab to email composer
- Add template scope dropdown (Organization / Department / Individual User) to the toolbar row, defaulting to Individual User - Fetch the saved template from GET **************** when scope changes - Add Editor/Preview toggle button pair next to the scope dropdown - Preview tab renders the email content wrapped in the template layout: far background > margin > near background > padding > header + body + signature + legal + footer image - Template loading state shows a spinner in preview mode
· kamo-internal
Wire signature templates to backend for persistent save/load
- Add backendAdapter.ts with bidirectional mapping between frontend SignatureConfig and backend flat entity format - Generate pre-rendered HTML with placeholders ({{member.firstName}}, {{organization.name}}, {{email.body}}, etc.) for fast email dispatch - On mount/scope change, load template from GET **************** - Save button sends PUT with all config fields + rendered placeholder HTML - Add loadFromBackend action to Zustand store - Handle 404 (no saved template) gracefully with defaults - Full wrapper HTML includes email layout structure with {{email.body}} placeholder
· EmailService
Add email signature template CRUD endpoints
REST controller at /api/email/signature-templates with: - GET /{scope} — retrieve template by org+scope - PUT /{scope} — create or update template (upsert) - DELETE /{scope} — remove template Service layer handles upsert logic (finds existing by org+scope, updates in place or creates new). All endpoints authenticate via OTK session and extract orgId from session data.
· kamo-shared-library
Add EmailSignatureTemplate entity and repository
JPA entity for persisting email header/signature/footer template configurations per organization scope. Stores all design settings, template selections, image sources, and legal footer config as normalized columns. Also includes denormalized rendered HTML columns (header, signature, legal, footer image, full wrapper) with placeholders like {{member.firstName}}, {{organization.name}}, etc. for fast email dispatch without re-rendering.
· kamo-internal
Derive signature content from backend, add social links management
- Remove manual Personal Information, Company Information, and Social Links sections from the signature Content tab — data is now pulled automatically from the member profile and organization via backend - Add useSignatureData hook that fetches member + org data and populates signature content fields (name, email, phone, company, social links) - Add Website & Social Links section to member profile page (ProfileTab) with fields for website and all 7 social platforms - Add Website & Social Links section to organization behavior-labeling page (LabelManager) for org-level social presence management - Content tab now shows only image source selectors with an info banner explaining data is derived from profile/org settings
· SecurityService
Add website and social links to member profile GET/PUT endpoints
GET /api/security/members/{id} now returns website and socialLinks fields. PUT /api/security/members/{id} accepts website (string) and socialLinks (map of platform -> URL) for updating member social media profiles.
· kamo-shared-library
Add website and social links fields to Organization and Member
Add EmbSocialLinks embeddable with fields for LinkedIn, Twitter, Facebook, Instagram, YouTube, TikTok, and GitHub URLs. Add website (VARCHAR 500) and embedded socialLinks to both Organization and Member entities with column prefix disambiguation (o_ and m_).
· kamo-internal
Add near/far background colors, margin/padding sliders, center email option
Design tab additions: - Near Background color (content area background, default white) - Far Background color (outer email area background, default white) - Margin slider (0-80px) — space between far edge and content area - Padding slider (0-60px) — space between near edge and content - Center Email toggle — locks content width to 600px and hides margin Live preview reflects all settings with proper nesting: far background > margin > near background > padding > content.
· kamo-internal
Add image scale sliders, signature image type, and footer alignment
- Add three image source selectors: Header Image, Signature Image, Footer Image (each with None / Member Avatar / Logo Simple / Logo Full options) - Add scale slider (20%-300%) for each image to resize as desired - Preserve aspect ratio on all images (object-fit: contain, auto height) - Add left/center/right alignment control for footer image - Footer image renders as standalone block below legal footer in signature - Signature image is used within the signature template layout itself - Header images respect scale in all header templates that render logos
· kamo-internal
Replace photo upload with Header/Footer image source selectors
Replace the drag-and-drop photo upload with two dropdown selectors: - Header Image: None | Member Avatar | Logo Simple | Logo Full - Footer Image: same options Images are resolved from existing sources (member profile avatar via /api/security/members, organization logos from theme CDN branding settings). A useImageResolver hook fetches and caches the URLs.
· kamo-internal
Add Header tab with 29 header templates and rename UI labels
- Add "Header" tab with 29 email header templates (banner, accent, branded, decorative categories) plus "No Header" option - Rename "Template" tab to "Signature" and add "No Signature" option - Rename settings tab from "Signatures" to "Headers & Footers" - Remove "Email Signature Builder" title/subtitle - Rename "Signature Scope" to "Email Sender Source" - Update live preview to show header above body and signature below - Move action buttons into the scope card for cleaner layout
· kamo-internal
Add 21 additional email signature templates
Add elegant-border, two-column-grid, banner-top, gradient-accent, card-style, left-aligned-clean, right-photo, centered-minimal, executive, creative-blocks, tech-modern, rounded-card, split-color, underline-accent, icon-focused, newspaper, wave-divider, dotted-border, photo-banner, social-first, and signature-stamp templates — bringing the total to 29 signature layouts.
· kamo-internal
Rebuild email signature manager with template-based visual builder
Replace the basic Quill rich text editor with a structured, form-driven signature builder featuring 8 professional templates, design customization controls (colors, fonts, spacing, dividers, photo shape, social icon styles), social media link management, and legal footer templates — all with live email-context preview.
· kamo-internal
Add unpublish and delete buttons to KB article view
Add Unpublish button (visible on PUBLISHED articles) that reverts to DRAFT and removes from AI chat. Add Delete button with confirmation dialog. Add proxy route for the unpublish endpoint.
· RAGService
Handle unpublished events by removing vectors from Qdrant
When an article is unpublished, delete its vectors from Qdrant so the AI chat no longer references it.
· KBService
Add unpublish endpoint for KB articles
Add POST /articles/{guid}/unpublish that sets status back to DRAFT and publishes a kb.article.unpublished NATS event so RAGService can remove the article from the vector database.
· kamo-shared-library
Add eager-fetch query for pending reviews with article details
Add **************** query that JOIN FETCHes the article entity so review listings can include article guid/title without LazyInitializationException.

Your universe is waiting.
Start free in minutes. Add products whenever you are ready — no migration, no new logins.
Free forever — no credit card required