KamoCRM

Журнал змін

Кожна особливість, фіксація та вдосконалення, розміщена в ній кораблі. Ніщо не відбувається за запуском.

17,500
Загальні зміни
5,986
Особливості
5,284
Фіксатори
30
Проекти
Фільтр за проектом
Всі проекти17,500AIService251APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService576InitializerService329KBService151KlusterServices740MCPGatewayService251MediaService602RAGService79SecurityService1,847TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,349kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,657kamo-signer-monorepo56kamolos114
Фільтр за типом
Всі типиBuild16CI523Chore774Docs3,254Feature5,986Fix5,284Other994Performance165Refactor278Revert23Style42Test160Upgrade1
March 17, 2026
FixAIService

Serialize entity IDs as strings to prevent JavaScript precision loss

CockroachDB unique_rowid() generates INT8 values that exceed JavaScript's Number.MAX_SAFE_INTEGER, causing ID corruption in the frontend.

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

Extend email content to full width of detail panel

Remove max-w-4xl constraint so the email body, attachments, and quick reply fill 100% of the available panel width.

kamo·7mo ago
Fixkamo-internal

Rename Messages to Emails in NavPri sidebar

kamo·7mo ago
FixAIService

Add OTK authentication support matching SecurityService pattern

- Add OTKPreAuthFilter to validate X-OTK header and resolve to *** session - Update SessionHelper to read from request attributes set by filter - Update all con...

Kamo·7mo ago
FixEmailService

Use @Value for RspamdConfig and make training non-blocking

RspamdConfig now uses @Value to match existing project patterns. Rspamd training failures no longer prevent the message from being moved.

Kamo·7mo ago
Fixkamo-internal

Забезпечити Junk та інші папки системи завжди з'являються в бічній панелі

Додавання гарантованих системних папок (INBOX, Sent, Проекти, Junk, Trash, Архів) на сервері IMAP не існує.

kamo·7mo ago
Fixkamo-internal

Auto-refresh message list when draft is saved or email is sent

MessageTool dispatches email:folder-changed events after saving a draft (Drafts) or sending an email (Sent). MessageBrowser listens and refreshes if the affecte...

kamo·7mo ago
Fixkamo-internal

Match message tool color scheme to other tools and rename to New Email

Switch from dark theme to the light theme used by chat/calculator tools: light gray gradients, white inputs, var(--color-primary) accents. Rename tool from "New...

kamo·7mo ago
Fixkamo-internal

Restore full WYSIWYG toolbar options in message tool

Adds back headers, strike, background color, alignment, and image options. Toolbar wraps onto two lines when in compact (non-maximized) mode via flex-wrap.

kamo·7mo ago
Fixkamo-internal

Mark messages as read on IMAP server and refresh folder counts

Clicking a message now calls PUT **************** with seen:true on the backend, persisting the read state to IMAP. Sidebar folder unread counts refresh after m...

kamo·7mo ago
FixEmailService

Save copy to Sent folder after sending email

Transport.send() only sends via SMTP without saving to IMAP. Added saveToSent() to append the message to the Sent folder with the SEEN flag set. Applies to send...

Kamo·7mo ago
FixEmailService

Disable STARTTLS and auth for port 25 internal SMTP

Port 25 on internal Postfix doesn't support STARTTLS and allows relay from cluster IPs via mynetworks. Only enable auth and STARTTLS when using port 587 (submis...

Kamo·7mo ago
Fixkamo-internal

Move useState hook before early returns to fix React error #300

useState(syncing) was declared after conditional early returns, violating React's rules of hooks.

kamo·7mo ago
FixEmailService

Use SMTP port 25 instead of 587 for internal Postfix

Postfix only listens on port 25 inside the cluster. Port 587 (submission) is not enabled in the container.

Kamo·7mo ago
Fixkamo-internal

Quick reply send button - remove client OTK, add credentials and feedback

The quick reply was sending a client-generated OTK header that the proxy doesn't use (proxy generates its own). Removed the unnecessary OTK call, added credenti...

kamo·7mo ago
Fixkamo-internal

LabelPicker now fetches and displays current message labels

- Added getMessageLabels API call to emailApi - LabelPicker fetches applied labels on mount via GET endpoint - Toggle updates local state immediately for respon...

kamo·7mo ago
Fixkamo-internal

Wire up remaining unwired UI elements in messages page

- FolderSidebar: folder options button now opens rename/delete menu - FolderSidebar: Folder Settings button renamed to Manage Folders, toggles create folder - F...

kamo·7mo ago
Fixkamo-internal

Wire up quick reply Send Reply and Cancel buttons

The quick reply textarea and buttons were static with no state or onClick handlers. Now properly sends replies via the email API and clears the textarea on canc...

kamo·7mo ago
FixDocsService

Use docs-api.* for WOPISrc URL instead of api.*

The WOPI endpoints (/wopi/files/**) live on DocsService, which is exposed at docs-api.kamocrm.com — not api.kamocrm.com (APIService). Docs makes server-side WOP...

Kamo·7mo ago
FixDocsService

Set aliasgroup to api.kamocrm.com and force https WOPISrc

- Docs aliasgroup1 must match the WOPI host (api.kamocrm.com) - WOPISrc URL defaulted to http:// inside K8s; force https and construct api.* hostname from for...

Kamo·7mo ago
FixKlusterServices

Fix kubectl not found in pod, add docs alias, proactive SUBDOMAINS

- Mount /usr/local/bin/kubectl from host via hostPath instead of failing apt-get install (kubectl not in default Debian repos) - Add "docs" to SUBDOMAINS list...

Kamo·7mo ago
FixDocsService

Set MinIO bucket to 'internal' and upload blank templates

The default bucket placeholder was never configured. Use 'internal' bucket which has the blank document templates uploaded.

Kamo·7mo ago
Fixkamo-internal

Open doc editor tab synchronously to avoid popup blocker

window.open() after an async fetch is blocked by browsers because it's no longer in the user-gesture context. Open a blank tab immediately on click, then naviga...

kamo·7mo ago
Fixkamo-internal

Add DOCS_EDITOR to fallback org features in layout and API route

The layout's server-side org fetch often uses the fallback org (no auth context during SSR), which was missing DOCS_EDITOR. This prevented the New Document butt...

kamo·7mo ago
FixDocsService

Remove COPY .mvn/ from Dockerfile to fix CI build

The .mvn directory was empty and untracked, causing builds to fail. Maven is already provided by the base image.

Kamo·7mo ago
FixInitializerService

Enable Hibernate schema auto-creation for email_metadata

Add **************** property so Hibernate creates missing PostgreSQL schemas before creating tables.

Kamo·7mo ago
FixEmailService

Change ddl-auto from none to update for auto schema management

Hibernate was not creating the email_metadata schema and conversations table because ddl-auto was set to none in the k8s configmap.

Kamo·7mo ago
FixDocsService

Review fixes - dialect, error handling, CI/CD manifests

- Fix Hibernate dialect to CockroachDialect (matching K8s configmap) - Separate token validation from business logic in checkFileInfo - Add Docs and ingress man...

Kamo·7mo ago
Fixkamo-shared-library

Використовуйте рідну кварію для маркуванняConversationRead для вирішення Hibernate 6.2 типу mismatch

CURRENT TIMESTAMP в JPQL повертає java.sql. Перевага, що не відповідає Миттєвий тип оновленого поля Ат. Нативний запит з NOW() обходить це.

Kamo·7mo ago
March 15, 2026
Fixkamo-shared-library

Використовуйте таймери баз даних замість Instant.now()

Замініть всі @Builder.Default Instant.now() і @PreUpdate методи з @CreationTimestamp(source=DB) і @UpdateTimestamp(source=DB) Таким чином, база даних є одним дж...

Kamo·7mo ago
FixEmailService

Use native query for PostgreSQL text[] column in ConversationRepository

MEMBER OF is not supported by Hibernate for @JdbcTypeCode(ARRAY) fields. Switch to native SQL with ANY() for folder_ids array lookup.

Kamo·7mo ago

Як ви бачите відправлення?

Все це прибуває в робочому просторі. Почати безкоштовно план і читати цю сторінку знову в місяць.

БезкоштовноПерегляд цін