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 20, 2026
Fixkamo-internal

Add book buttons per source, remove redundant manage icon

- Remove redundant "+" manage sources icon from sources view header (already accessible via bottom "Manage Contact Sources" button) - Add "Add book" icon butt...

kamo·7mo ago
Featurekamo-internal

向源管理添加编辑模式、标题字段和活状态

- 管理 SourcesDialog 现在每个源都有编辑标题的按钮 和证书(CalDAV/CardDAV URL,用户名,密码) - 在添加新来源时添加标题字段, 以便用户可以区分它们 - 红/绿/黄状态点,每个来源由WebSocket公司驱动 状态(连接/连接/失败) - 更新WebSocket类型,以包括每源状态图

kamo·7mo ago
FeatureEmailService

Add per-source sync status in WebSocket + displayName support

- WebSocket sync status now includes per-integration statuses in a 'sources' map keyed by integration ID - applyConfig now handles displayName field for user-...

Kamo·7mo ago
Refactorkamo-internal

以管理联系人源对话框替换源

- 重命名添加SourceDialog → 用完整的 CRUD 管理SourceDialog( 列表) 有状态+去除的现有源,加上内加表) - 将“管理联系人源”按钮移到左面板下方,并固定 高于同步页脚( 或在无源时单独位于下方) - 从左面板源列表中删除按键 - 简化联系人LeftPanel道具(管理源替换) 关于A...

kamo·7mo ago
Featurekamo-internal

Add modern recipient fields with chips, autocomplete, and contact picker

Replace basic text inputs in email compose To/CC/BCC fields with rich recipient components: chip-based display with remove buttons, debounced autocomplete searc...

kamo·7mo ago
Featurekamo-internal

Add sync toggle, source management, and WebSocket status

- Overhaul ContactsLeftPanel with 3 display modes: org-only books, sources with nested books (sync off), and flat org books (sync on) - Add SyncFooter with re...

kamo·7mo ago
FeatureDaemonService

Include memberId in sync complete NATS messages

SyncCompletePublisher now accepts optional memberId parameter, and ContactSyncJob passes it from the integration's member reference. This enables EmailService t...

Kamo·7mo ago
FeatureEmailService

Add member-level sync toggle and WebSocket sync status

- Add PUT /member/sync-toggle endpoint to batch-toggle syncEnabled on all member integrations at once - Add ContactSyncWebSocketController broadcasting aggreg...

Kamo·7mo ago
Featurekamo-internal

Add Create Contact dialog with multi-tab form

Adds a fully-featured Create Contact dialog accessible via a "New" chip in the contacts toolbar. The dialog supports all contact sub-entities (emails, phones, a...

kamo·7mo ago
Featurekamo-internal

Send and display image attachments in chat

- SmsChatTab: read file as base64 via FileReader, pass to API, render <img> in message bubble - voipApi: add attachment params to sendSms

kamo·7mo ago
FeatureInitializerService

Add attachment_url column to voip_messages

Kamo·7mo ago
Featurekamo-shared-library

向 VoipMessage 实体添加附件Url 字段

Kamo·7mo ago
FeatureVOIPService

Add MMS attachment support — multipart send, base64 storage, image display

- RingCentralProvider: override sendSms with multipart/form-data MMS path - VoipMessageService: accept attachment bytes, store base64 data URL in attachmentUrl ...

Kamo·7mo ago
Featurekamo-shared-library

在 OrgOAuth 仓库中添加查找 AllByProvider

Kamo·7mo ago
FixVOIPService

Explicitly stringify Long IDs in SmsController responses

**************** Long-as-string approach was not taking effect. Directly call .toString() on all Long IDs in the controller flat-map responses to guarantee no J...

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

Use string conversationId throughout SMS tool to handle 64-bit IDs

Backend now serializes Long as string; update all conversationId types from number to string to match. Also enable send button when an attachment is present wit...

kamo·7mo ago
FixVOIPService

Serialize Long IDs as strings to prevent JS precision loss

CockroachDB unique_rowid() generates 64-bit integers larger than Number.MAX_SAFE_INTEGER (2^53-1). JS JSON.parse silently rounds them, causing conversation ID m...

Kamo·7mo ago
Fixkamo-internal

Remove duplicate Back button from RingCentralConfig

Parent PhoneProviderSetup already renders an IconButton with ArrowLeft in the config view header, making the Back button inside RingCentralConfig a duplicate.

kamo·7mo ago
FixVOIPService

Return flat map from send endpoint to prevent LazyInitializationException

VoipMessage.conversation is FetchType.LAZY; after @Transactional commits, Jackson serializing the entity would throw LazyInitializationException causing a 500, ...

Kamo·7mo ago
FixVOIPService

Fall back to org mainPhoneNumber when member has no VOIP config

Members without an individual MemberVoipConfig (or no fromPhoneNumber set) now use the org's mainPhoneNumber from VoipProviderConfig as the outbound number, ins...

Kamo·7mo ago
FixVOIPService

Remove getJwtKey() from WebhookController after OAuth migration

Signature validation used jwtKey as HMAC secret which no longer exists on VoipProviderConfig. Skip validation for now consistent with ****************

Kamo·7mo ago
FeatureAPIService

Add OAuth callback forwarding with no-redirect RestTemplate

- Add noRedirectRestTemplate bean (HttpClient.Redirect.NEVER) so the 302 from VOIPService's OAuth callback is passed through to the browser instead of being...

Kamo·7mo ago
Featurekamo-internal

Replace JWT config with OAuth connect UI for RingCentral

- RingCentralConfig: OAuth connect/disconnect button with status indicator, main phone number field, test connection (only when connected) - voipApi: add getO...

kamo·7mo ago
FeatureVOIPService

Refactor RingCentral to OAuth 2.0 Authorization Code flow

- New OAuthController: /oauth/start (returns authUrl), /oauth/callback (exchanges code, saves tokens), /oauth/status, DELETE /oauth/token - OTKValidationFilte...

Kamo·7mo ago
FeatureInitializerService

Create KamoTokens schema and org_oauth_token table

- CREATE SCHEMA IF NOT EXISTS kamotokens - CREATE TABLE kamotokens.org_oauth_token with unique (org_id, provider) - DROP COLUMN jwt_key from voip_provider_confi...

Kamo·7mo ago
Featurekamo-shared-library

为 OAuth 2.0 令牌存储添加 OrgOAuthToken 实体

- 在卡莫托肯斯计划(kamotokens.org oauth token)中添加 OrgOAuthToken实体 - 添加 OrgOuth Token 存储器, 并找到 ByOrgIdAnd Provider / 删除 ByOrgIdAndProvider - 从VoipProviderConfig(由OAuth流取...

Kamo·7mo ago
Featurekamo-internal

Equal-height feature cards and Kazoo-aware provider descriptions

- Set height: 100% on FeatureCard motion wrapper so cards in the same row match the tallest card - Update KamoPBX description to highlight Kazoo as a carrier-gr...

kamo·7mo ago
Chorekamo-internal

Add RingCentral and FreePBX SVG logos

kamo·7mo ago
Fixkamo-internal

Use plain img tags for local SVG provider logos

next/image does not reliably serve local SVGs without unoptimized flag. Plain img tags load /public assets directly with no issues.

kamo·7mo ago

就像你看到的运输?

所有东西都是靠自己运入你的工作空间的 从免费计划开始,一个月后再读这页.

永远开始自由查看定价