お子様の org's ロビーは、プラットフォームではなく、独自の背景を提供
Orgのミーティングの背景とテーマコンフィグを保持するフォルダは、 ホスト名 — リクエスト、または org ドメインが渡されたサイドカー — を 最後の2つのラベルとそれらをダッシュで結合します。 何度も間違っていた。 gnosia.demo.kamocrm.com のようなサブドメインテナントが "kamocrm...
署名アプリは、カモではなく、送信者のブランドを取得します
同じ間違った仮定が現れた2つの別の方法。 署名ページのロゴ URL は https://<org fqdn>/theme/logo-full.<ext> で、 テーマホストが308に答えるのは、何も役立つパスではありません。 envelope はすべてのドキュメントのテキストをプレーンテキストに戻しました。 今のテー...
ドメインではなく、そのalias から org ロゴ URL を作成する
トランザクションメールは実際の受信トレイに送信されますので、ヘッダーとフッターのロゴは実際の受信トレイに送信されます。 クライアント側のテーマ JavaScript なしで解決するために — それらは正確に構築されます SecurityService が保存する方法 その構造は、ドットを持つorgのドメインを使用して...
トップレベルの行の編集は、すべてのオプションの行を削除しなくなりました
Quote.lineItems は orphanRemoval=true で、両方の引用符とオプションの行を設定します。 オプション — これは、KingOption() == null の 2 回で QuoteMapper フィルタの理由です。 ツイート replaceLineItems の bare clear()...
オプションの引用は、入力された税金と配送スタッフを維持します
見積もりがオプションを持っていたら、ゼロの税合計と配送総を再計算します。 どちらも行に保存され、QuoteMapper によってレンダーされるので、 スタッフは、ゼロの税線の横に分類された税金を見た 顧客の合計はそれによって短くされました。 オプションは、商品の価格; 税金と配送は、販売のプロパティです.
ターミナルガードのキャンセルと変更、悪意のある入力を中止
cancel() と revise() は isTerminal() のガードがなかったため、 ACCEPTED のクォートは 受入時に CANCELLED または REVISED に差し込みます。 生き残った - ステータスが独自の受諾記録を矛盾する行。 update() は既に監視されているので、省略は意図せず、非...
医療市場は編集できません
編集画面は、ハードコードされた配列をマッピングすることでピッカーをビルドしました。 7つの縦。 ヘルスケアはそれらの中ではなかったので、ヘルスケアの市場はそれらに開かれました マッチングオプションなしの選択 — 独自のコメントが警告するページです 現在のタイプが見つからない場合、「セービングは静かに書き直します Com...
自分の権利に人口レベルの表面をゲート
EXPORT PATIENT DATA、VIEW QUALITY MEASURES、MANAGE PATIENT PORTALを追加しました 8月にJavaにミラーリングし、クライアントの列にミラーリングしません。 RoleRightType.THE RIGHTは単純に未定義で、それらがガードする3つの表面でした クラ...
市場と顧客のアカウントのドロップを停止する
CreateQuoteRequest は、常に MarketUid と accountUid を宣言し、 QuoteService.create はどちらも読みませんので、 Quote.market と Quote.customerAccount はプラットフォーム上のすべての引用符で NULL だった — Quote...
臨床的権利が不在であった
パーミッションエディタは、有効なアプリごとに1つのセクションをレンダリングし、各ロールのフィルタリングを行います。 そのセクションのserviceTypeによる権利。 EHRセクションがなかったので、全部~30 臨床的権利は何も一致せず、すべてのエディタからサイレントに落ちていました。 セキュリティの役割、仕事のタイト...
Unreviewed-reply unread-count エンドポイントを削除
AI未読バッジのkamo内部除去でペアリング:カウント メンバーにアクション可能なこと(プッシュチャネルは戻らないので、 非ゼロは「終わる前に窓を最小にしました」だけ、 なので、フェードした2つのエンドポイントもまた行く。 GET /api/ai/sessions/unread, PUT /api/ai/sessio...
AIの未読アカウントインジケータを完全に削除
アクセシブルなメンバーは言うまでもありません。AIServiceにはプッシュチャネルはありません。 アシスタントの返信のため、非ゼロのカウントは「最小限にしました 終了前のウィンドウ — 「何かを待っています。」 リクエスト 前に, 決して行いません。; これは、修正です。. AI アクション ボタンで nav バッ...
/networkから新しいワークスペースがクリックで開きます
Orgを作成する フォームを無効に, 作業をしました, そして何もしないために登場しました: 新しいタブはありません, 「組織を創る」ボタンをバックに。 window.open はマルチ秒待ってから実行されますので、ユーザジェスチャーはそれとブラウザの後ろに立っていません ブロックすると、nullを返す。 フォールバ...
自作セッションの guid をウィンドウの props に戻す
SessionGuid (launcher / nav / command Paltte) なしで開いたとき、 AiChatToolは、新しいセッションをPOSTし、setSessionGuid(guid)を呼び出します。 ツール・ウィンドウズ・ストアに言われたので、ウィンドウのプロップは`{}` を永遠に保持しました...
スイッチャのコラムは正直に示すことができない存在から選ぶ
ShowPresence={false} を変換に渡す パンマウント。 この列 ************************************************************************************************************************...
スレッド showPresence to rows, and gate the empty state on prefsLoaded
- すべてのConversationRowに転送される `showPresence` (デフォルト true) を追加します。 — スイッチャ - カラム プレゼンス フィックスのペインサイド ハーフ (参照) ConversationRow 独自のコミット/ドキュメントで、フルルートの原因となります。 - 列は、す...
行の名誉は、TEXTのプレビューのE.164の送信者を提示し、フォーマットします
このコンポーネントに対する2つの全ブランチレビュー結果: - ConversationRowは常に********************を直接読みます。 スイッチャの列の中にマウント(PresenceProviderの兄弟) AvailabilityProvider は子孫ではなく、 ToolProviders.t...
チャットタブは、最小限の高さではなく、明確な高さをペインします
Chats-tab Motion.div は `height: undefined` (`minHeight: '100%') だった。 従って含まれているブロックは自動高さおよび会話でした パンの所有 `height:100%`rootは自動に解決しました。 パンのサイズは、代わりにコンテンツに クリップされているの...
Chat-switcher 列のラウンド 1 を閉じる
- ChatSwitcherColumn: 崩壊設定のPUTを外に移動 setCollapsed updater はクリックハンドラ自体に更新されます。 updater は 不純物(それは副作用としてフェッチを発射しました)、React StrictMode 正確にそれをチェックするダブルインボイス, ので、すべてのト...
フォールバックビートのフラッシュを停止し、ダブルクリックを監視
Pane が古いチャットリストコンポーネントの prefsLoaded を削除したことを確認 ゲート: アクティブBucketは、初期Bucket/DEFAULT BUCKETで始まり、 useConversationRows は最初のレンダーで、保存された環境 GET 個別に解決し、無座標化。 保存された好みを持つメ...
復元された最大化されたウィンドウは、そこから来た場所を記憶します
ウィンドウが最大化されたときに書かれたスナップショットは、それを失います ウィンドウが戻ってくるので、復元されたセッションの最初の会話スイッチ 六角頭になっていたとしてもドックに落とします。 今すぐ SerializeWindows をシリアライズ preMaximize を実行します。 (PersistedToolW...
テキストブランチの再試行嵐を停止し、オブザーバーの再ルートをピン留め
voipApi.getConversations は apiCall を経由して、任意の non-2xx で投げる - loadMore の他の 2 つのブランチとは異なり、 fetch() を直接取得してチェックします。 再発行 テキストのブランチは、その周りのキャッチがなかったので、バックエンド500は、 unha...
Pin ServiceJob が INT8 にカラムを結合
テーブルの DDL をエクスポートすると、 org id, エンゲージメント id と customer uid がそれぞれ表示されます。 参照されたキーから継承された、INT8 DEFAULT unique rowid() として放出される。 3つの外部キーは、アンセットを残し、ランダムなIDポインティングを発明しま...
前のコミットのCRLFがMemberColorの書き換えを停止する
前のコミットのワンワードのdoc-comment編集(チャットリストをドロップ) 参照) LF から CRLF までの全メンバーColor 関数をrewrote: このファイル ラインエンディング(上記CRLF、その機能からEOFまでのLF)、および編集 ツールは、代わりに、ファイルの支配人にタッチされた塊を正規化 保...
ステータス変更を破棄し、200に回答を停止する
updateWorkOrder は、リクエストされたステータスをキャッチ(例外無視)でパースしました。 変更されていないエンティティティティを保存し、古い値を示す DTO で 200 を返す。 ワークオーダー画面では7つのステータスが付与され、フルフィルメントStatusは4つあります。 7つのトランジションの5つは、...
Orgのテーマドメインを付与し、フォームをフリーズして作業を中止
Wizard は GET /org/{id} から新しい org のドメインを生成しました。 そのエンドポイントは、エンティティティティティを返す そして、`domains` は LAZY — トランザクションの外部に null としてシリアライズされるため、派生が落ちる org が実際のドメインを持っていたたびに "...
テーマが規定されているドメインを返します
呼び出し側が動作しなくなるため、試行を停止する必要があります。 GET /org/{id} は、エンティティティティティと答えます。 その `domains` は LAZY であり、トランザクションの外部に null としてシリアライズされるため、クライアントは ドメインから「{alias}.kamocrm.com」に...
独自のテキストをクリップするトラッキングリンクストリップを停止する
マーケティングツール -> 追跡コードは、メンバーのリンクストリップを眉毛で書きました 資本金、アイコンは上と下をスライスし、その下にラインをカット その子孫を欠落させます。 コピー中のtruncationバグとして読み込まれる。 フレックスボックス1。 ストリップはページのコラムの屈曲の子供で、高さは100%です ...
テキスト会話コーダをティブレーカに与えるので、ティッドタイムスタンプは落ちません
lastActivityAtでは、正確なタイムスタンプが除外された会話共有 誤順ではなく、リストから永久に失われた。 練習で到達可能 lastActivity会話の日付に戻りません。 メッセージと会話のバッチの両方がタイムスタンプを共有できます。 マイクロ秒。 標準的なキーセットのpaginationのtiebrea...
新しいワークスペースは、一度、準備完了し、それ自体を開きます
カールのJrを作成した後に報告された3つの欠陥:新しいタブは言った ?org=kamocrm.com は、カモのロゴとオーガナイズカラーのどれもを示しています。 その正確な色は、MinoIO に完全に暫定され、時間全体に座っています。 タブは決して識別されません CarlのJrとして、シェルは解決できる唯一の組織をペイ...
FindConflictingEvents を削除し、行を返さない
4つの独立した欠陥、結果セットを空にするいずれか:それ filtered e.user.id は、両方の呼び出し側がメンバー ID と 2 つの列を渡します。 決してcoincide; e.id != :excludeEventId は、パラメータが null は新しいイベントです。 e.status != 'canc...
Conflict の検出は衝突が見つかります
FindBusyForMemberInRange に委任し、編集されたイベントを除外 Java では、null exclusion が SQL 述語を毒できない。 リポジトリをモックし、独自の缶を主張するテスト 答えは戻ってきたので、機能が何も戻った間に緑にとどまっていた 生産。 クエリが尋ねられた新しいレコードと何...
収集したものを捨てた再発制御を削除します
カレンダーにレンダリングされたスイッチ、周波数選択および発生回数 ページとペイロードに達していない: composeDraft 決してそれらを読み、onSave 決して 送信する。 会員は、週1回のリピート、保存、および1つのイベントを1回受けることができます。 エラーなし、警告なし。 プラットフォーム上の何も再発ル...
ゲートの積荷ゲートを「積み込み開始」の旗に置きません
セッションストアへの2つのフォローアップ、そのうちの1つは本当の欠陥です。 最初に設定した `everLoaded` フラグから foreground-vs-background を決定しました フォアグラウンドパス スタート。 そのパスは何も設定せずに戻ることができます - それは何もないときに失敗します 加入者な...
プッシュトークンは、過去のサインインではなく、1つのデバイス行で要求される可能性があります
MediaService 8a809b3 へのコンパニオン、メンバーが同じ取得を停止 電話での3回以上の時間をチャットできます。 その変更は、ディスパッチ 重複した目的地を崩壊させます。この1つは重複が作成されるのを止めます。 デバイス/登録は、新しい user device tokens 行を無条件に縮小するので、...
One phone, one alert — collapse duplicate push destinations
Members were getting the same chat message three-plus times on their phone. Registrations are unique on (device_token_id, org_id, push_kind), NOT on the push t...
実際に持っている組織の名前だけタブ
/networkからTacoBellを開くと、新しいタブに?org=kamocrm.comを置く。 /validate のタブランス このシェルの内部をレンダーする BEFORE セッションが存在するため、サーバーは何もない 解決し、プラットフォームに戻り、タブのテーマとしてフォールバックするOrgProviderレコ...
画像から失われた背景数を回復する
commitBackgroundOrder は、STAGING に画像を書き、imageBgCount は、STAGING のレコードのみです。 ひとつの列が失敗の1つのポイントを1つの列にしたことを多く書いた。 カウントが進むorg 行方不明は、何も見ていない3つの段階的な画像を持っていました: コピーされたそれらを...
右側に9つのサービス作業エンドポイントをゲート
彼らは、発信者だけがセッションを持っていたことを確認を出荷しました。 オルガは、ロールに関係なく、すべての作業順序を読み、ミュートすることができます。 ASSIGN SERVICE WORKとCOMPLETE SERVICE WORKはSW1で追加されますが、ゲートは何もありません しかし、彼らはSW3のドメインコア...
保護されていないベースラインから9つのサービスワークエンドポイントをドロップ
それらは e6e1d02 としてゲートされます、従って基線の記入項目は一致しません ガードされていないエンドポイントと********************************は、階段に失敗します ライン。 削除が必要なのは、カウントを実際に下落させるものではなく、 静かに成長するストール — 368 エントリを...
顧客を停止して下さい**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** すべてのテナントの行を読み込む権利
VIEW OWN * をOR-alternative として受け入れられたエンドポイントはすべて、その 主キーだけで記録し、誰に所属しているかをチェックしない: GetSubscription, getSubscriptionOrder、getSubscriptionEvent、getInvoice、getSubscr...
Org リファレンスは proxy.ts で、2 番目のミドルウェアファイルではありません
次 16 プロキシでミドルウェアを交換しました, そして、このリポジトリは既にproxy.tsを持っていたので、追加 middleware.ts はビルドアウトライトに失敗しました: "Both middleware file と proxy file は 検出された。 私の間違い; 私はすでに仕事をした人をチェックせ...
署名されたセッションはパータブになります
analytics.auth は localStorage に住んでおり、この起源の全てのタブが共有されています。 アナリティクスが到達 ワークスペースのOTKハンドオフと、各ハンドオフは、THATワークスペースのトークンを分担 セッション — 2 番目の組織の分析が最初のタブのトークンを上回るので、 最初のタブの次の...
メンバーのアイデンティティと、そのorgはタブ間で漏れを止めます
meet.<platform> は、各組織のホストなしで共有され、 localStorage は オリジン 署名されたメンバーの名前、Eメール、アバターが書かれているので、その2つのタブは 2つの組織は、お互いを上回る:最後に読み込まれた組織は、アイデンティティBOTHタブを決定しました ほかの人の名前を示す会議に出席...
テーマアセットは、解決するホストから来る
サインイン画面は、テーマから組織のブランドをペイントします。<独自のドメイン>。 そのドメイン DNS が構成される前に、org が存在し、署名することができるので、 ブラウザは存在しないホストを要求し、画面がプラットフォームのに戻りました ロゴとカラー。 MINIOは、すべてのテーマからすべてのバケット全体を提供し...
1つのタブ、1つのテナント — 共有クッキーからorgを解決しなくなる
1つのタブでKamoCRMを開き、別の組織を2秒で開きます, 最初に更新, そして、それは 第二にレンダリングされる。 タブを閉じて、再びリフレッシュし、戻ってきた。 セッションとして報告 タブ間でのデータ出血、それが何かである。 session id は sessionStorage の per-tab ですが、r...
解決するホストからテナントのアセットを生成し、背景の削除を停止します
なぜ新しいorgがロゴと色なしで開いたのか、作業中に見つかった2つの欠陥。 お届けいたします。 テーマからアセットをリクエストしました。<org's Own domain> orgは作成できます そして、そのドメインが解決する前に入力 — 顧客タイプ deltaco.com ストレート 作業空間に — ブラウザは存在...
ブラウザタブをフラッシュからスタンディングワークロードを停止する
TabAttention は navGrandTotal を 1100ms のタイトル flasher に供給しました。 その4 8つのaddendsは、メンバーがゼロに到達しないキュー深さです 何かを読む: support.tickets (union "assigned to me" server-side) 「未...
ワイヤマークSmsRead/markAiRead/ソーシャルマークをウィンドウに表示
最終レビューは、MarkSmsReadとMarkAiReadがゼロの呼び出し人を持っていたことを発見しました。 SocialChatWindow は、MarkAsRead/beginView をまったく呼びません。 5つの会話面は、唯一の行くことができる未読カウンターを出荷 アップ。 設計はChatToolの画面を想定...
VIEW VOICEMAILでボイスメールの nav カウントをゲート
**************************** は、認証されたメンバーを扱いました MemberVoipConfig を実行すると、インスタンス全体の未読ボイスメール数がカウントされます。 VoipVoicemailController でも、まったくの権利チェックはありません。 リスト 必須 VIEW VO...