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
April 25, 2026
OtherSecurityService

ログを追加してアップロードバックグラウンドエンドポイントへ

Org/index, ファイル情報, userId, auth の決定, および MinIO のステージング バックグラウンドアップロードがステージングバケットに表示されない理由を追跡するキー.

Kamo·6mo ago
Otherkamo-internal

アップロードバックグラウンドプロキシルートにロギングを追加

Org/index、ファイル名/size/type、および上流応答ステータスのログ 背景アップロードがAPIServiceに達していない理由を診断します.

kamo·6mo ago
Featurekamo-internal

チケットのデータグリッドに場所の列を追加する

フィードバック メニュー SupportTicketDTO を直進 (現在のチケットの実体をスナップショット) 作成時間 — 往復なし レンダリングの旗+都市/地域/国 ツールチップに示す IP で、ジオデータがない場合、em-dash に戻ります。 チケットは当日券となります。 エージェントビューのみ。 Ticke...

kamo·6mo ago
PerformanceMediaService

作成時にチケットの地理を保存し、GeoLiteを読み込む

******************** では、訪問者の地理をキャプチャ 一度 (GeoLookupService 経由) と persists ip/country/city/subdivision 上の サポートチケット自体。 SupportTicketService.toDTO は、チケットを直接削除するジオを...

Kamo·6mo ago
Featurekamo-shared-library

チケットエンティティの訪問者ジオをスナップショット

VISITOR IP ADDRESS、VisitOR COUNTRY CODE、VisitOR COUNTRY NAME、 VISITOR CITY、VisitOR SUBDIVISION 列。 チケット作成時に回収 そのため、リスト/詳細エンドポイントは GeoLite 範囲のスキャンや 別の訪問者テーブルのルックア...

Kamo·6mo ago
PerformanceMediaService

バルクロード訪問者とGeoLiteの検索をリストでスキップ

/api/support/tickets リストのエンドポイントが実行されました。 - 20**************** 呼び出し (N+1) - GeoLookupService.lookup への 20 呼び出し、各範囲スキャン GeoLiteブロックテーブル(行のミリオン)と位置に対して fetch — 〜4...

Kamo·6mo ago
Performancekamo-shared-library

Add バルクローディングのためのfindBySessionGuidIn

サポートチケットリストのエンドポイントで使用して、すべての訪問者に N の代わりに 1 つのクエリのページは、findBySessionGuid 呼び出しを分離します.

Kamo·6mo ago
Fixkamo-internal

LoadThread 再試行ボタンにフォルダーを渡します

loadThread は (threadId, フォルダ); のみエラー状態のリトライボタン kamo-internal ビルドを破棄して、sreadId を渡しました。 コールにマッチする 署名.

kamo·6mo ago
ChoreSecurityService

会員JsonIdentityをピックアップする改造 kamo-shared-libraryからの情報修正

kamo-shared-library b57d156 は @JsonIdentityInfo(property = "uniqueId") を修正しました。 →「id」は、PUT /api/security/org/{id} で 400 エラーを解決します.

Kamo·6mo ago
Fixkamo-shared-library

正しいJsonIdentity 'uniqueId' から 'id' までの情報プロパティ

@JsonIdentityInfo(property = "uniqueId") を宣言したメンバーのエンティティティティ 実際の主キーフィールドは 'id' と呼ばれます。 ジャクソン・スルー "uniqueId" という名前のプロパティが見つかりません。 参照されたメンバー(組織など)、PUT /org/{id} ...

Kamo·6mo ago
FeatureMediaService

SockJS と一緒に /ws/public-chat-native plain WebSocket エンドポイントを追加

/ws/public-chat-nativeでSockJSなしで2番目のSTOMPエンドポイントを登録する フロントエンドは、必要に応じてネイティブWebSocket(brokerURL)と接続できます sockjs-client ライブラリは、アンロードハンドラを登録し、 サイトマップ 元の /ws/public-c...

Kamo·6mo ago
Fixkamo-marketing

SSRガードを取り外し、水和不一致を引き起こし、ネイティブWebSocket用のSockJSをドロップ

- Hero.tsx: ParticleFieldの周りのtypeofウィンドウのチェックを削除 — ParticleFieldは既に ssr:false を持っているので、ガードはサーバー/クライアントツリーのミスマッチを生成しました (React #418) - LiveSupportPanel.tsx:sockj...

Kamo·6mo ago
Featurekamo-internal

パーチケット未読バッジ+「新しいメッセージのみ」フィルタ

- チケットリストには、次の未読カウントでチャットバブルバッジが表示されます セッションがエージェントよりも新しいメッセージを持つときのticket# 最後に表示されたメッセージ。 - フィルタバーに「新しいメッセージのみ」フィルタスイッチを追加します。 - チケットチャットは、初期の****************を...

kamo·6mo ago
FeatureMediaService

訪問者メッセージのエージェントに未読のカウントをブロードキャスト

訪問者がサポートメッセージを送信した後、最新の未読アカウントを押します ****************************************************************************************************************************...

Kamo·6mo ago
Featurekamo-shared-library

未読のメンバーシップクエリでサポートチケットセッションを含める

findChatMembershipsByMemberId は、CHAT と CAT の両方のメンバーシップを返すようになりました。 Support TICKET セッションタイプなので、既存のパーメンバーの未読アカウント インフラ(getUnreadCountsByMember、/topic/chat/unread/...

Kamo·6mo ago
Fixkamo-internal

会話が開いたときに、未読のインジケータをクリア

ThreadDetailView は、マーク変換後にメール:folder-changed をディスパッチできるようになりました。 MailButton は、navtop の受信トレイのバッジカウントを refetches するので成功します。 会話一覧ビュー 選択されたスレッドのunreadCountを最適化的にゼロ化...

kamo·6mo ago
FixAPIService

Move CORS to Traefik via kamo-middlewares, remove in-app CorsFilter

The CorsFilter @Bean in the Spring app was silently not applying headers after WebConfig.java was removed. CORS is now handled entirely at the Traefik layer by ...

Kamo·6mo ago
Fixkamo-marketing

Use /public/{mainDomain}-{tld} path matching actual MinIO bucket layout

The getThemePath() was generating /domain/{tld}/{split}/kamosite paths that don't exist in MinIO — theme files live in the public bucket under kamocrm-com/, bad...

Kamo·6mo ago
Fixkamo-internal

Min-w-0 チェーンを破り、本文列のメールスクロールのみを含む

外の容器および主要な内容の屈曲のdivにmin-w-0を加えて下さい従って屈曲の子供 ページ全体を引き起こしていたメールの最小コンテンツ幅に拡大できません。 水平スクロールバー。 カラム3からオーバーフローxヒデンを削除(マスク) 問題)は冗長w-fullの内部のラッパーを取除きます.

kamo·6mo ago
Fixkamo-internal

ToolProviders上のホイストプロバイダ

ChatWebSocketProviderホイストと同じ根本的な原因: サポートTicketWindow コールコール **************** と ChatBox の呼び出し useUnread().markAsRead() ですが、ツールウィンドウは ToolDock 内でレンダリングします。 ABOVE ...

kamo·6mo ago
Fixkamo-marketing

壊れたプレースホルダー画像を追加し、修正

<html> でspressHydrationWarning は、ブラウザーによる React エラー #418 を防止します。 拡張子 (例: 翻訳、ダークモード) SSR との間の html 属性をミュート クライアントの水和。 placehold.co の placehold.co との.placeholder...

Kamo·6mo ago
FixKlusterServices

/domain/ パスプレフィックスを CORS のテーマ IngressRoute で許可する

Theme.kamocrm.com/domain/ で設定したテーマは、 既存のルートルール(/public///internal/のみ)で、Trefik CORSヘッダなしで503を返し、ブラウザがフェッチを拒否する。 HTTP と HTTPS IngressRoute ルールの両方に PathPrefix('/do...

Kamo·6mo ago
FixAPIService

重複したCorsFilterを削除し、ゲートウェイ内のCORSヘッダーを上流に除去

WebConfig.java は、CortsConfig と競合する第 2 回 CorsFilter ビーンを定義しました。 javaの bean、重複ヘッダーの書き込みを危険にさらす。 削除すると、CorsFilter が 1 つしか存在しません。 Forward() メソッドは、上流から Access-Contr...

Kamo·6mo ago
FixSecurityService

重複したCorsFilterのビーンを削除して、二重Access-Control-Allow-Originヘッダーを引き起こします

Explicit CorsFilterの豆はばねと2番目のCORSフィルターを引き起こしました セキュリティの組み込みの CORS サポート (CorsConfigurationSource を使用する). どちらのフィルタもオリジンパターンを解決し、同じヘッダを書いたり、 複製 'https://www.kamocr...

Kamo·6mo ago
Fixkamo-internal

Debug console.log ステートメントを削除し、不足しているルートを追加します

WebSocket のトレース中に追加されたすべての一時的なデバッグログを削除します。 ChatBox、ticketChat、MemberItem、ChatTool、およびuseChatWebSocketを追加 /help → /support と /settings/member → /settings/team-m...

kamo·6mo ago
Fixkamo-internal

長いアドレスで展開する列からメッセージヘッダーを防止

ヘッダーの左のフレックスの子供はマイナスw-0を持っていなかったので、長い壊れやすいメール From/To/Cc のアドレスは、最小限のコンテンツ幅を強制して成長し、ドラッグします ヘッダー(および列のレイアウト)はより広い。 min-w-0, break-all を追加 アドレス テキスト、/date 行の flex...

kamo·6mo ago
Fixkamo-internal

ToolProvider上のHoist ChatWebSocketProvider

ToolDock(およびサポートTicketWindow→ticketChatのようなツールウィンドウ)は、 ツリーにABOVE PresenceWrapperを座るToolProvidersの内部に取付けられて auth/navigationの変更にアンマウントを避けるため。 ChatWebSocketProvide...

kamo·6mo ago
Fixkamo-internal

メールレンダーでシャドウ DOM をドロップするので、オーバーフローx-auto 火災

Shadow DOMは根本原因でした。 ワイドメールコンテンツ(固定幅表) 影の木の内側は、貢献せずにホストを貼り付けた ホストのレイアウトボックスなので、親ボディラッパーのオーバーフローx-auto オーバーフローを検知し、スクロールバーを生成しません。 明白なdiv +危険なSetInnerHTMLで影の根を置き...

kamo·6mo ago
Fixkamo-internal

一致するプロバイダへのチャットWebSocketContextインポートパスをアライグする

TicketChatとChatNotificationListenerは、コンテキストを経由してインポートしました '@/app/contexts/...' alias while PresenceWrapper (プロバイダ) それをインポートします 相対 '../contexts/...' パスを使って。 Next...

kamo·6mo ago
Otherkamo-internal

TicketChat STOMP サブスクリプションパスをトレースするための一時的な Console.log

サブスクリプションパイプラインのすべての段階でコンソールログを追加します。(効果火災、 ガードパス、subscribe()コール、adssionSubscription、クライアント。 購読する /app/chat/subscribe 公開, メッセージを受信). 一度再変換されるため リアルタイムの訪問者メッセージの...

kamo·6mo ago
Fixkamo-internal

強制シャドウのホストは、インラインスタイル+が含まれています:レイアウト

影ホストのクラスベースのオーバーフローx-autoは確実に勝てなかった シャドーに対して ':host { all: 初期値 {' リセット, 広いメール コンテンツ(固定幅表)は、ホストの過去に視覚的に絵画 レイアウトボックスと3列幅の水平スクロールバーを引き起こします。 明示的な幅のインラインスタイル(最も高い著...

kamo·6mo ago
Fixkamo-internal

外部ではなくシャドウ DOM 内の広いメールコンテンツをスクロール

以前の試みは、DOMの先祖を軽くするためにオーバーフローxオートを追加 シャドウツリーの視覚的なため、広いメールコンテンツをキャッチできませんでした ペイントオーバーフローは、ホストのレイアウトボックスには貢献しません。 ホスト 過去に塗られた広いテーブルがコラムの幅にとどまり、打つこと 外側のオーバーフロー-x-hi...

kamo·6mo ago
FixEmailService

GetHasAttachments() を使用して、Boolean のラッパータイプにマッチします

****************は、ボオラン(ワラッパー)なので、ロボク isHasAttachments() ではなく getHasAttachments() を生成します。 後者のみ プリミティブボオランに存在します。 Boolean.TRUE.equals() を使用して安全にハンドルを処理します。 null の...

Kamo·6mo ago
FixMediaService

JPAリポジトリのスキャンを拡大して、コマースパッケージを含める

Kamo-shared-library がリリースされました。 必須条件 メニュー (com.kamo.z.shared.commerce で). MediaServiceはスキャンしたdonotmodify.dao.reposだけなので、 Beanは欠落しました アプリケーションが起動できなかった。 より広いスキャン...

Kamo·6mo ago
FixMediaService

ChatWebSocketControllerでHashMapのインポートを復元する

以前のリファクタは、HashMap のインポートが削除されましたが、 handleTyping メソッドは、タイピングイベントのペイロード用のHashMapをまだ構築します。 Forgejo ビルドで 'cannot find 記号: class HashMap' で失敗します.

Kamo·6mo ago
Fixkamo-internal

Min-w-0 をメール コンテンツ div に追加して、オーバーフローx-auto の火災

Min-w-0 がなければ、flex-col の子のデフォルト min-width:auto は解決します 最小コンテンツ、広いメールテーブルが列を貼り付けたdivを拡張することを可能にします 幅。 外側のオーバーフローx-hiddenは、代わりに拡張されたdivをクリップしました スクロールバーの作成 min-wid...

kamo·6mo ago
Fixkamo-marketing

SendMessageで重複するConnectStompコールを削除します

最初のメッセージが新しいセッションを作成するとき、onSessionCreated の更新 props これは、connectStompを呼び出すためにuseEffectをトリガーします。 sendMessage のインライン呼び出し useEffects のdisconnectStomp によって、冗長ですぐに殺され...

Kamo·6mo ago
FixMediaService

セッション作成時にNATSの消費者を積極的に作成し、メッセージの損失を防ぐ

以前、NATS JetStream プッシュコンシューマーは STOMP クライアントでのみ作成されました。 /app/chat/subscribe を送信しました。 配送ポリシー 新しい、以前に公開されたメッセージ 消費者は永続的に失われた - 訪問者メッセージと名前の変更を引き起こします エージェントが最初に購読さ...

Kamo·6mo ago
Fixkamo-internal

リアルタイムメッセージが低下するギャップを閉じる

サブスクリプション使用から `connected` を削除します。ticketChat のエフェクトの deps は、 チャットボックス。 以前は、すべてのWebSocketがトリガーされたエフェクトを再接続する unsubscribe() と呼ばれる cleanup は、セッションを削除しました。 サブスクリプション...

kamo·6mo ago
FixSecurityService

システムユーザーが org ブランディングを管理し、ロゴ auth を固定することを可能にします

- canManageOrgBranding のプラットホームの最初の監視としてシステム ユーザーバイパスを加えて下さい システム ユーザーはすべての非親のorgs上のフル ブランディング制御を持っています - ロードされた生のorg所有者のみチェックを持っていたアップロードLogoエンドポイントを修正 両方canMa...

Kamo·6mo ago
Fixkamo-internal

電子メールビューペインの水平オーバーフローを3番目の列に保持

- MessageBrowser の外コンテナにハード境界としてオーバーフローx-hidden を追加 - 列3ラッパーとオーバーフローx-autoにオーバーフローx-hiddenをメールコンテンツエリアに追加する - 制約SanitizedEmailRenderer Shadow ホストと max-w-full オー...

kamo·6mo ago
FeatureKlusterServices

生産はPJSIPの刑務所およびpersistentの状態と2ban失敗します

- [asterisk] と [freepbx-web] の jails で、fail2ban-configmap.yaml を追加します。 増分禁止エスカレーション(1h→24h→30d天井)、LAN無視、およびa PJSIP SecurityEvent レコードをターゲットとするカスタム asterisk-secu...

Kamo·6mo ago
FixKlusterServices

Coqui TTSをPiper TTS(en US-norman-medium)に置き換える

Coqui VCTKモデルには、スピーカーの名前が付けられていないため、Piper TTSに置き換えられます。 正確にノーマン[中] 声。 パイパーバイナリ(〜3 MB)とモデル(〜60 MB) 最初に実行してキャッシュされた init コンテナによってダウンロードされます。 /var/lib/piper/{bin,m...

Kamo·6mo ago
FixEmailService

Reset stale hasAttachments on sync and accumulate correctly

- Reset has_attachments=false at start of bulk sync so stale true values from old false-positive MIME detection are cleared before re-indexing - Accumulate ha...

Kamo·6mo ago
Featurekamo-shared-library

Add resetHasAttachmentsForFolder query to ConversationRepository

Allows sync to reset stale has_attachments flags before re-indexing so corrected MIME detection can rebuild the field from actual attachment data.

Kamo·6mo ago
FeatureKlusterServices

Integrate Coqui TTS with norman voice (VCTK p267)

- Deploy coqui-tts server (VCTK VITS model, CPU-only) as ClusterIP service on port 5002 with model cache at /var/lib/coqui-tts on k1m1 - Inject coqui_tts.agi ...

Kamo·6mo ago
Fixkamo-internal

返信/フォワードおよび修正の送信先のアドレスに事前に入力

- DraftMessageは、OpenNewMessageから流れているので、今から運びます 作曲者へ - MessageBrowser は、アクティブなメールボックスのメールアドレスを格納します。 個人的なメールボックスは、返信/フォワードを開くときにそれを渡す - MessageToolは、初期データからMetア...

kamo·6mo ago
FixEmailService

送信先のアドレスオーバーライドのサポート

FromAddressRequest を emailSendRequest に追加して、フロントエンドを指定できます alias/shared/mailbox アドレスから送信する。 SmtpOnlyProvider リリース 現在、ヘッダのアドレスを継承し、 設定されていないときにプロバイダの設定メール.

Kamo·6mo ago
FeatureKlusterServices

Add LAN DNS pod for split-DNS on k1m1

Deploys a dnsmasq pod with hostNetwork on k1m1 that listens on 192.168.4.22:53. Overrides pbx.k1.kluster.kamocrm.com -> 192.168.4.22 so LAN phones reach the PBX...

Kamo·6mo ago
FixKlusterServices

Split-DNS/LANクライアント RTP 修正用に local net を追加

K1m1と同じLAN上の電話は、分割されたDNSを介して接続します(ドメインが解決する) 192.168.4.22 内部で。 local net がなければ、Asterisk はまだ広告しています SDP の外部ドメインを LAN クライアントにルーティングし、パブリック IP 経由で RTP をルーティングします。 ...

Kamo·6mo ago

配送を見るのが好きですか?

自分のワークスペースに到着します。 無料プランをスタートし、月に再度このページをお読みください.

永遠に無料で始める料金を見る