KamoCRM

Live Change Log

Every feature, fix and improvement, posted as it ships. Nothing is held back for a launch.

17,500
Total Changes
5,986
Features
5,284
Fixes
30
Projects
Filter by project
All Projects17,500AIService251APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService576InitializerService329KBService151KlusterServices740MCPGatewayService251MediaService602RAGService79SecurityService1,847TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,349kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,657kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore774Docs3,254Feature5,986Fix5,284Other994Performance165Refactor278Revert23Style42Test160Upgrade1
March 26, 2026
Fixkamo-internal

Provider save for non-configurable types and mailbox member email mapping

**************** selections now immediately persist via saveProvider API instead of only updating local state. Mailboxes tab now correctly extracts emailAddress...

kamo·7mo ago
Fixkamo-internal

Fix Pre TICKET DB constrângere + reproiectare formă de creare

- Constrângere fix CEC pe suport ticket.status pentru a permite ordinal 14 - Reproiectat TicketCreationForm cu UI moderne bazate pe carduri: - "Cum putem ajuta?...

kamo·7mo ago
Fixkamo-internal

Extragerea array-ului temelor din {topice: [...]} Răspuns API

Criteriul final GET /api/support/topics întoarce {topice: [...]}, nu a matricea brută. Toți consumatorii extrag acum date.topice înainte de a utiliza matricea.

kamo·7mo ago
Fixkamo-internal

Deschide fereastra de suport instrument de eroare și 404 pagini

Înlocuirea vechi / ajutor / tichet / navigare nou cu instrument:deschis CustomEveniment Pentru a deschide fereastra popup de sprijin direct.

kamo·7mo ago
March 25, 2026
Fixkamo-shared-library

Atribuiți roluri implicite membrilor privind crearea

*************** acum atribuie "membrilor" Rolul organizaţiei. Acum le dă pe amândouă. Rolul "membrilor" (toată lumea) și rolul "membrilor echipei" de la Organi...

Kamo·7mo ago
March 24, 2026
FixSecurityService

Recalculate member_rights_applied after role create/update/delete

The member_rights_applied table was never recalculated when roles were modified, causing all members to have 0 applied rights. Now calls **************** after ...

Kamo·7mo ago
Fixkamo-internal

Adaugă afișarea de erori atunci când crearea de topic eșuează

Afișează mesajul de eroare API în dialog în loc să cedeze în tăcere.

kamo·7mo ago
Fixkamo-internal

Fixaţi încărcarea departamentului în topicManager

Trimite antet X-***-Token (matching DepartmentManager model) și extrage departamente din forma de răspuns date.departamente.

kamo·7mo ago
Fixkamo-internal

Adăugați Array.isArray gardieni pe răspunsurile API pentru a preveni erorile .map

API poate returna obiecte de eroare în loc de array-uri atunci când mesele backend Nu există încă. Păziţi toate operaţiunile cu Array.isArray.

kamo·7mo ago
FixDaemonService

Enable redirect following for MaxMind download

MaxMind returns 302 redirect to the actual file. HttpClient wasn't following it, causing the sync to fail with HTTP 302.

Kamo·7mo ago
FixDaemonService

Add SecurityConfig to permit daemon trigger and actuator endpoints

Spring Security defaults blocked all endpoints with 401. Added explicit config to permit /api/daemon/** and /actuator/** without authentication.

Kamo·7mo ago
Fixkamo-internal

Update ticket popup tool window to use light theme matching chatColors

Replace dark theme (dark backgrounds, white text, amber accents) with the light color scheme used by all other popup tool windows in the app.

kamo·7mo ago
Fixkamo-internal

Remove MANAGE_SUPPORT conditional from settings/analytics tabs, enable NavPri slide-out

All tabs now always visible. Removed disablePanel from NavPri Support entry so the slide-out panel works on hover.

kamo·7mo ago
Fixkamo-internal

Make description textarea fill remaining popup window height

Removed minRows/maxRows constraints and set flex layout on the input root so the textarea expands to fill all available vertical space.

kamo·7mo ago
Fixkamo-shared-library

Corect MediaObjImgDownload FK pentru a utiliza MediaObjImg UUID PK în loc de cheie compozite

Coloanele compozite FK (OBJ ID, IMG ID) care nu fac referire la un tip nepotrivire (uuid vs int). S-a schimbat în FK single pe referinţe OBJ IMG ID MediaObjImg....

Kamo·7mo ago
Fixkamo-shared-library

Utilizați interogarea nativă pentru timpul de rezoluție avg pentru a evita limitarea Hibernate EXTRACT (EPOCH)

Hibernate 6 nu se poate aplica EXTRACT[EPOCH DE la ...) la o scădere a intervalului de timp (produce tipul de durată, nu TEMPORAL). Comutat la o interogare SQL ...

Kamo·7mo ago
Fixkamo-internal

Redesign AI processing toggle as labeled switch with Assistant icon

Replace icon button with a toggle switch using the MUI Assistant icon, labeled "Train AI With This Note". Moved to the left of the save button. Renamed "Create"...

kamo·7mo ago
March 23, 2026
Fixkamo-internal

Add filter toggle button to notes header

The sidebar collapse button was hidden behind the app's left nav bar. Replaced it with a filter icon toggle in the NotesHeader that is always accessible regardl...

kamo·7mo ago
FixSecurityService

Transparent server-side encryption with stable master key

- Add permanent notes.master-encryption-key to ConfigMap (was generating a random key on each pod restart, making old notes undecryptable) - Always encrypt ...

Kamo·7mo ago
FixSecurityService

Clear undecryptable note content and disable encryption flag

When server-side decryption fails (corrupted data or key mismatch), clear the content and set isEncrypted=false on the entity so the note stops showing cipherte...

Kamo·7mo ago
FixSecurityService

Decrypt encrypted notes in getAllNotes and searchNotes responses

getAllNotes and searchNotes were returning raw encrypted content for notes with isEncrypted=true. Now decrypts content server-side before returning, matching th...

Kamo·7mo ago
Fixkamo-internal

Extract plain text from Lexical JSON for note card previews

The note content is now Lexical JSON, not HTML. The preview function was falling back to stripHtml which dumped raw JSON as the preview. Now parses Lexical JSON...

kamo·7mo ago
Fixkamo-shared-library

Serialize NoteDTO ID-uri lungi ca șiruri de caractere pentru siguranță de precizie JavaScript

CockroachDB unic rowid() ID-urile depășesc MAX SAFE INTEGER-ul JavaScript-ului; care cauzează pierderi de precizie atunci când sunt considerate numere. Adaugă @...

Kamo·7mo ago
FixDaemonService

Rewrite GeoLite sync — correct download URL, streaming hash, batch inserts

- Use MaxMind's current permalink API with HTTP Basic Auth (account-id + license-key) - Streaming SHA-256 instead of Files.readAllBytes (prevents OOM on 100MB+ ...

Kamo·7mo ago
Fixkamo-internal

Forward raw JSON responses in notes API routes to preserve ID precision

CockroachDB unique_rowid() IDs exceed JavaScript's MAX_SAFE_INTEGER. The previous response.json() + NextResponse.json() round-trip caused JSON.parse to convert ...

kamo·7mo ago
Fixkamo-internal

Improve notes save flow — keep editor open, show actual errors

- Don't close the editor after saving an existing note (only close after creating a new one) - Fix fetchWithAuth to read error.error instead of error.message ...

kamo·7mo ago
Fixkamo-internal

Open notes directly on click, derive categories from data, remove encryption

- Click a note to open it directly in the editor instead of making a separate API call that was failing - Derive categories and tags from loaded notes data in...

kamo·7mo ago
FixSecurityService

Use OTKPreAuthFilter attributes instead of re-validating OTK in NotesController

The OTKPreAuthFilter already consumes and validates the OTK, storing the session data in request attributes. NotesController was trying to re-validate the alrea...

Kamo·7mo ago
FixAPIService

Explicitly forward visitor IP to downstream services

ForwardedHeaderFilter consumes X-Forwarded-For from the incoming request, so when APIService forwards to SecurityService via RestTemplate the header is missing....

Kamo·7mo ago
March 22, 2026
Fixkamo-internal

Resolve notes page load failure and replace Quill editor with Lexical

Add missing runtime/dynamic exports to all notes API routes to enable proper OTK authentication. Replace React Quill WYSIWYG editor with the same Lexical-based ...

kamo·7mo ago
Fixkamo-internal

Forward visitor IP/User-Agent to backend, add duration unit picker

apiProxy: Now forwards X-Forwarded-For and User-Agent from the original visitor so backend logs the real client info instead of the Next.js server. AccessBlock...

kamo·7mo ago
FixInitializerService

Remove RoleRightsSyncRunner — rights are added manually for existing orgs

The underlying bug in **************** (detached entity issue) has been fixed in kamo-shared-library. New rights for existing roles will be added manually via S...

Kamo·7mo ago
Fixkamo-shared-library

Utilizați referințele de rol gestionate atunci când creați drepturi de rol în crearea Organizării

După organizareRepository.save(), rolul localAdmin/rolEveryone variabilele ar putea fi separate de contextul persistenței. creareRoleRights() a fost adăugarea d...

Kamo·7mo ago
Fixkamo-internal

Restore permission gate on AccessBlockManager

Re-adds the MANAGE_ACCESS_RULES permission check that was incorrectly removed. The underlying issue (admin roles missing new rights) is fixed by KamoInitializer...

kamo·7mo ago
Fixkamo-internal

Remove full-component permission gate from AccessBlockManager

New rights aren't assigned to any role yet, blocking all users. Other security settings tabs (API Access, OAuth2, System Debug) don't have permission gates — fo...

kamo·7mo ago
FixSecurityService

Remove GD check from ****************

The sed command that added the god-mode bypass incorrectly inserted it into all methods containing sessionData, not just hasRight. This caused 'return true' (bo...

Kamo·7mo ago
Fixkamo-internal

Initialize god mode state synchronously from localStorage

isGodMode was initialized as false and only loaded from localStorage in a useEffect (after first render), so checkRight() returned false on initial render even ...

kamo·7mo ago
Fixkamo-internal

Allow god-mode-active users to bypass right checks in checkRight

New security rights aren't assigned to any role yet, causing all users to be denied. God-mode-active users now pass all checkRight() calls.

kamo·7mo ago
FixSecurityService

Allow god-eligible users to bypass access security permission checks

New rights (MANAGE_ACCESS_RULES, VIEW_ACCESS_LOGS, etc.) aren't granted to any existing role yet, so all users get Forbidden. God-eligible users (GD=true in ses...

Kamo·7mo ago
FixAPIService

Move AccessEnforcementFilter to scanned package, revert ComponentScan

The widened @ComponentScan caused a corsFilter bean conflict between CorsConfig and WebConfig. Moved the filter into com.kamo.api.app.config (already scanned by...

Kamo·7mo ago
March 21, 2026
FixAPIService

Add Redis connection config to K8s configmap

APIService pod was failing to start because spring-boot-starter-data-redis auto-configuration couldn't connect to Redis at localhost:6379. Points to redis.kamo....

Kamo·7mo ago
Fixkamo-internal

Show KB nav item unconditionally in sidebar

Removed the isKnowledgeBase feature gate so KB always displays, matching the previous NavTop behavior.

kamo·7mo ago
Fixkamo-marketing

Elimină globurile GradientMeshBackground care urmează codorul mouse-ului

Cercurile de gradient albastru și violet au fost redate de către GradientMeshBackground componentă de urmărire poziția mouse-ului.

Kamo·7mo ago
Fixkamo-marketing

Eliminați licuricii și defilați animațiile de spargere a particulelor

Îndepărtaţi componente pufoase (Fireflies) din Hero, Caracteristici, preţuri, și Secțiune de Înscriere. Elimină pergamentParticleBurstAnimație de foc îmbunătăți...

Kamo·7mo ago
Fixkamo-login

Preveniți intrarea parolei de la reducerea primului apăsare de tastă pe tranziția pas

Bucla de votare se numea SetSelectionRange (0, lungime) la fiecare 50ms pentru 1.2s, care a selectat orice caracter tastat astfel încât următoarea apăsare de ta...

Kamo·7mo ago
Fixkamo-internal

Replace broken Anthropic, OpenRouter, and xAI logo SVGs

The original files were 404 placeholders (14 bytes). Replaced with proper SVG logos from Simple Icons.

kamo·7mo ago
Fixkamo-marketing

Înlocuiți SVG-urile antropice sparte, OpenRouter și logo-ul xAI

Fişierele originale în kamo-internă au fost 404 deţinători (14 bytes). Înlocuit cu logo-uri SVG corespunzătoare de la simple icoane.

Kamo·7mo ago

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing