サブスクリプションプランID配列のJSON解析の回避
バックエンドは JSON 文字列の代わりに適切な配列を返すので、 try/parse/catch フォールバックロジックは、アドオン、バンドル、 そして昇進の格子細胞のレンダー.
Use List<String> instead of manual JSON strings for promotion plan/cycle IDs
Update KamoCRMPricingLoader to use List.of() for applicablePlanIds and applicableBillingCycles, matching the shared library's migration from JSON strings to ent...
サブスクリプション JSON フィールドをエンティティティベース @ManyToMany 関係に移行
Jsonb 文字列列を置換します(互換性のあるPlanIds、includeInPlanIds、該当するPlanIds) 適切な JPA @ManyToMany の結合テーブルと @ElementCollection で、BillingCycles を有効にします。 JSON をシリアライズするのではなく、プランのエン...
ダイアログベースからサブページナビゲーションへWebinarの設定を再設計する
ポップアップ ダイアログを置換し、2 レベルのアコーディオン セクションを分離 インライン運行流れ: - レベル1:クリックツーナビゲートできれいなウェビナータイプテーブル - レベル2:タブベッドインターフェイス(詳細、 プレゼンター、リマインダー、可用性スロット) すべてのフォームはインラインで、これ以上のモーダル...
会員レベルのサポートページから個別のサポート設定を専用の設定ページへ
- 設定タブを/サポートページから削除し、チケットと分析のみを維持 - アナリティクスにサブタブを追加します。: 概要とステータスと応答時間(設定から削除) - トピック、分析、スケジュールされたサポートタブで /settings/features/support を再構築する - 更新 設定StatusWindow ...
アカウントエンドポイントは、直接連絡先フィールドを使用し、ユーザーは必要ありません
POST/customers は firstName、 lastName、電子メール、電話、アドレスを直接救います ログイン PUT /customers/{uid} は、すべての直接フィールドを更新します。 表示名, 電子メール、電話の解像度は、ユーザーフォールバックで直接フィールドを優先します。 口座は完全に自己...
別のアカウントチームメンバーマネージャー/アカウントページ
3ページレベルのタブ:クライアントと顧客、メンバー、チームメンバー。 - タブ 0: 新しい AccountManager コンポーネント — スタンドアローン, 実際のアカウントを取得 accountApi、ag-gridテーブル、検索、クリックして/account/view/{uid} - タブ 1/2:既存のチー...
顧客エンドポイントを更新してアカウント(Long uid)を使用して、アドレスエンドポイントを削除
顧客/グループ @PathVariable は UUID から長いアカウントのエンティティティティに合わせて変更できます。 アドレスのエンドポイントを削除 — アドレスは、アカウントのプライマリメンバー(メンバーのエンティティティティ)から来ています.
リテール顧客をアカウントベースの顧客モデルに置き換える
Account.java は、すでに コマースの顧客エンティティティティティティティティティティティティティティティでしたが、 少々 であった。 小売顧客はこの概念を複製しました。 このコミット: - 取引フィールドでアカウントを強化:会社、ノート、受け入れマーケティング、 税金免除、合計注文、合計金額、通貨、外部I...
カモ → カモCRM / カモCRM 代表取締役.
法的ページ(用語、プライバシー、GDPR、フッター著作権)が使用できるようになりました コーポレート・エンティティティティティティのための「KamoCRM Inc.」 製品/ブランド参照 マーケティングコピー、メタデータ、FAQ、ブログ、価格設定、ページ 字幕は現在、「KamoCRM」を使用しています。 カジュアルUI...
CommerceMarketApi から CommerceApi へ全てのパイプラインコンポーネントを移行
削除されたのではなく、 CommerceApi から直接インポートする 10 ファイルを更新する 取引MarketApi. 互換性のシムとデッドコマースMarketManagerを削除します 部品(1117ラインは、もはや輸入しません).
決定的なレイアウトエンジンでHexHead配置システムを書き換える
バギー衝突防止システム(spiralSearch, resolveCollisions)を置き換えます。 FlyToHomeRow, ドック/グループ RAF ループ) は、単一の決定的なリフロー() 関数を使用します。 ツールウィンドウ(z:100→250)の背後にある六角頭が現れ、互いに重なり、 そして矛盾した動き...
Strip SchemaCleanupRunner to only post-Hibernate fixups
Hibernate ddl-auto: update handles all table/column creation from JPA entities. Removed all redundant CREATE TABLE/ADD COLUMN statements that duplicated what Hi...
Split mailboxes tab into sub-tabs for primary, aliases, shared
Primary Mailboxes, Email Aliases, and Shared Mailboxes are now each under their own sub-tab within the Mailboxes settings page, matching the existing sub-tab pa...
Remove notes code, moved to KBService
Notes management (controller, service, encryption) has been relocated to KBService where it better aligns with knowledge and content management responsibilities...
Update internal entity ID types from number to string for UUID migration
Updates TypeScript types, hooks, and components to use string IDs for entities converted to UUID on the backend. User-facing entity IDs (User, Organization, Mem...
Update commerce product and market ID references from Long to UUID
Update version ID references from Long to UUID
Article IDs remain Long. Version IDs now use UUID.
Update KB media and version ID references from Long to UUID
Article IDs (KbArticle) remain Long. Version, media, pin, and review IDs now use UUID for improved CockroachDB write performance.
Update AI entity ID references from Long to UUID
Updates all controllers, services, and WebSocket handler to use UUID for AI entity IDs (providers, models, sessions, messages, folders, policies, MCP configs). ...
Update controllers and services for UUID entity IDs
Updates all controller @PathVariable and service method signatures to use UUID instead of Long for internal entity IDs (avatars, backgrounds, roles, departments...
Long/unique rowid() から UUID/gen random uuid() に内部のエンティティティティティティ ID を変換します
ランダムに配布されたUUIDを使用して、CockroachDB書き込み性能を改善 sequential unique rowid() の値の代わりに、内部のエンティティティティ プライマリ キーの場合。 ユーザ・フェーシング・エンティティティ(ユーザー、組織、メンバー、アカウント、リード、コンタクト、 コンタクトブック...
[連絡先のソースの管理] ダイアログでソースを追加置換
- AddSourceDialog → ManageSourcesDialogをフルCRUD(リスト)で名前変更する 既存のソースをステータス + 削除, プラスインラインフォームを追加) - 左パネルの下部に「コンタクトソースの管理」ボタンを移動、ピン留め 上記のフッターを同期(またはソースが存在しない場合にのみ) ...
Remove Client ID and Secret fields from RingCentral UI
These are platform-level credentials set once in the K8s secret. Customers only need to provide their JWT Key and main phone number.
Read RingCentral client-id/secret from platform config, not per-org DB
Client ID and Secret identify the Kamo app on RingCentral's platform — they are shared across all orgs. Inject them from Spring Boot properties (backed by the K...
VoipProviderConfig から clientId/clientSecret を削除
これらは、すべての組織間で共有されるプラットフォームレベルの資格情報です。 jwtKey と mainPhoneNumber のみが per-org です.
Extract resolveUserId helper, add ETag comment in KamoGroupwareProvider
Move AI to Enabled Apps section and remove settings slideout search/recents
Remove the search bar and recent items section from the settings slideout panel. Move Artificial Intelligence from main topics to the Enabled Apps section so it...
利用可能な/インキュベーションタブとリストのみビューでアプリページを簡素化
統計バナー、検索バー、カテゴリフィルタ、グリッド/リストトグル、および機能ダイアログを削除します。 アプリは2つのタブに編成され、「機能を調整」が/settings/features/{key}に移動します.
Extract useOperatorLabels hook shared between useFilters and Funnel
Integrate New Message composer into tool window system
Replace the standalone fullscreen/mini composer windowing with the shared tool window infrastructure (minimize, maximize, hexheads). MessageSystem.openNewMessag...
Remove theme query param — Docs derives it from WOPISrc
Docs now has its own getThemePath() logic ported from kamo-internal's Theme.tsx, so DocsService no longer needs to pass the theme URL.
Migrate JPA entities and repos to kamo-shared-library
Entities and repositories moved to **************** in the shared library. All imports updated to reference shared lib.
Compact pipeline tab layouts for more datagrid vertical space
- Remove page titles from all pipeline tab components (tab already serves as title) - Remove market ID/label chips from tab headers - Move toolbar (filters, sea...
Replace hardcoded organization/network labels with dynamic branch labels
Use **************** from useUserInfo hook so the /network and /network/create pages respect the branch label configured on ****************
Remove Notes tabs from all pipeline detail pages
Notes functionality is replaced by the Communications component which is auto-appended by PipelineRecordLayout. Removed notes-related state, handlers, types, an...
分割年齢ReqType とメンバー/チーム登録ルートを追加
- 年齢を置換ReqType会員と年齢ReqTypeTeamMember - ページ.tsx から registerFlow コンポーネントを抽出する - 別々の登録フローに /member と /team ルートを追加 - 会員とチームのサインアップを提供するランディングページでホームページを置き換える
Split ageReqType into member and team member fields
Update Organization type, PublicProvider, route schema, and BranchSetupManager with separate member/team member age requirement sections.