Disable Docker BuildKit cache so every pipeline run does a full rebuild
Sets no-cache on both image build steps so npm ci and npm run build always run, even when the source tree is unchanged.
Bust Docker BuildKit cache per commit so npm run build runs every push
Identical checkout trees (e.g. empty commits) reused cached layers and skipped a real Next build. Pass GIT_COMMIT from the workflow and label the image revision...
会員セキュリティとメンバーのPUTコールをシリアライズし、CockroachDBの競合を回避
同じ `members` 行に 2 つの同時書き込みがシリアライズ可能 分離の対立 — 会員セキュリティは、メンバー間で行を読みます endpoint はそれに書きました(countUpdated を経由して)、1 つのトランザクションを中絶します エラー40001で。 シーケンシャルコールは重複を排除します.
バックエンド応答封筒からのUnwrapカタログと計算
getSubscriptionCatalog は { カタログ {...} を返しましたが、直接キャストされました サブスクリプションカタログとして、カタログを残します。undefinedとプラン 選択ステップ空白。 計算のための同じ問題サブスクリプション 価格 その { 計算: {...} } ラップパーは未処理でし...
Fuser の代わりに s を使用して、ストール ポートフォワード (k0m1) をキルします
ランナーのホストにfuserとlsofがインストールされていない。 ss -tlnp を使う PID 保持ポート 18080 を抽出し、直接それを殺すために grep。 その他 pkillをSIGKILL(-KILL)に切り替えるので、階段プロセスに依存しない 優雅な信号を調達する.
スタンドポートをクリーンアップするので、キャンセルされた翻訳ジョブは、次の実行をブロックしない
バッシュは背景のプロセスに信号を転送しないので、kubectl ポートフォワードアウトライブ解除ワークフローの実行と保有ポート 18080, その後のtranslate and rebuildジョブをブロックします。 修正: 結合する前に 18080 で既存のポートフォワードをキル (pkill + fuser/ls...
ページ全体ですべての壊れたプレースホルダーの値を復元する
Salvage-keys スクリプトは CSS classNames、インラインスタイル、JS をつかみました 114メッセージの元の英語テキストの代わりにテンプレートリテラル メモ、kb、コマース、アカウント、レポート、リード、設定、 ダッシュボードページ.
セットアップを表示 請求ボタン なしのアカウントを持つorgの所有者
Orgの所有者が計画ビルティングタブを開き、請求アカウントを開くとき 存在し、ジェネリックの代わりにbootstrapプロンプトを表示 "あなたの連絡先 orgの所有者"メッセージ。 ボタンは POST /api/security/account/ を呼び出します。 boottrap-billing (idempote...
リードページを復元 英雄のタイトルとgit履歴からのサブタイトル
ヒーロータイトルは「ヒーロータイトル」(プレースホルダ)、ヒーローサブタイトルは「フレックスギャップ2」でした (salvage-keys は誤って隣接する CSS クラス名をつかむ)。 コミット10f4e4bから回復された正しい値.
StatusWindow ラベルの名前空間を追加し、すべての設定のプレースホルダを修正
- Add****************(50キー)設定 navサイドバーは、キーパスの代わりに実際のテキストを表示します - BranchTypesLabel ICUフォーマットを修正:\${branchLabel} → {branch} - Fix tr()フォールバックガード:next-intlは、代わりにキー...
ウェーブ3変換、フォールバック修正、自動翻訳CI
- すべてのハードコードされた英語の文字列をt()の呼び出しを波3を渡して置き換える コンポーネント(チャット、クラブハウス、サポート、メモ、パイプライン、リード、ナビゲーションなど) - メッセージ/en.json (+19 キー) に 3 つのフラグメントをマージします。 - en.json(welcome、tag...
他のツールウィンドウのサイズ+カラースキームに一致
- defaultSize と minSize は現在 320x650, 再利用可能な: false (Softphone、チャット、電卓、SMS、AIチャットと一致します) - ダークスレートグラデーションから標準ライトグラデーション(#fafbfc -> #f5f7fa)にSoftphonePanelで使用 - H...
Locale のソースとして、Member.language と次の intl のワイヤ
URLなしでカモインタナル全体で次のインテルベースの国際化を追加します。 locale プレフィックス。 アクティブなロケールは、kamo-locale Cookie から読み込まれます。 認証されたメンバーの「言語設定」をミラーリングします。 地域設定カード************************ インフラ...
Forward Range header so audio playback can scrub
Without this the VOIPService recording-streaming endpoint always returns the full file (Range header is dropped by buildForwardHeaders), which works for play-fr...
デッドマスターをドロップAccountHolder/isMaster UI、ステープルコメントをリフレッシュ
口座スキーマは、マスターアカウントホルダーまたはパーメンバーがマスターされていない フラグ — これらは、Account-as-billing-principal と一緒に削除されました リファクタ。 AccountViewClient は、常に未定義の「マスター」をレンダリングを停止します。 ホルダー/メール"行とパ...
スプリットメンバー API ; サブのターゲット org を表示; 課金所有者を追加 UI を促進
billingApiがメンバーをアカウントに分割する(canManageBilling, isAccountManager) サブスクリプション会員(isLicensee、canManageSubscription) メニュー アカウントサブスクリプションの利益 対象組織図・対象組織 タイトル。 PlansBillin...
アカウントグループ -> AccountTier; 顧客グループ ルート -> 顧客層
フロントエンドタイプとAPIは、共有lib +サービスに合わせて更新された呼び出し AccountGroup の名前を AccountTier に変更します。 「グループ」のネーミングが漏れていた 顧客セグメントドメイン(価格設定層) そして、左上課金グループコードのように読みます。 小売コンセプトは現在 "Tier"...
アカウント名BillingMember -> AccountMember; isGroupPlanManager -> isAccountManager
請求クライアントとPlansBillingTab を横断するタイプレベルの名前を変更します。 - AccountBillingMemberタイプ → 会員アカウント - isGroupPlanManager フラグ -> isAccountManager - グループマネージャーカウントフィールド → アカウントマネー...
ローカル設定カードに言語 + デフォルト通貨を追加
メンバープロファイルの地域設定カードが編集可能な言語を公開 (22 は、マーケティングサイトをミラーリングするローカルをサポート) および デフォルト通貨 (検索可能なオートコンプリート) 3つすべて一緒に保存 PUT /api/security/members/{id} です。 モードを見ると、ネイティブ言語名が表示...
BillingApi クライアントをアカウントベースエンドポイントに書き換える
billingApi は、***************************************************************************************************************************************************...
Mirror live/snapshot address shape in CartItem2 and DraftOrderItem types
CartItem2 gains **************** and shippingAddress/billingAddress fields populated from the customer's primary shipping/billing AccountAddress profile. DraftO...
/account/new copy-from-lead UX, フルネームフィールド, デュアル電話, アドレス; アカウントレベルのアドレス管理
フロントエンド: - /account/new: セクションごとに「リードからコピー」ボタン+ヘッダ "Copy all from Lead"ボタン(リードId paramの場合) - 名前セクション:プレフィックス、最初、中間、最後、サフィックス - 二重電話(個人+仕事)と延長と「許可テキスト」トグル - EmbA...
制作グレードの履歴+ボイスメールタブとメディアプレーヤーツール
歴史タブ(SoftphoneHistoryTab.tsx): - パネルのスクロールコンテナ内のIntersectionObserverを介して無限スクロール - フィルター チップ: すべて/インバウンド/アウトバウンド/逃された/記録される - イメージング側が記録行列を持っているときに行のアクションの記録アイコン...
歴史パネルから冗長フィールド履歴のタイトルを削除
タブラベルはすでに文脈を伝えています。タイトルとサブタイトルは画面スペースを浪費していました。 リロードボタンはツールバーにインラインに移動しました.
レイアウトの支柱を取除き、メールボディの弾力を引き起こします
外の動き。 div の `layout` の prop は内部 AnimatePresence と戦った 高さ: 'auto' アニメーション、FLIP フィードバック ループをメールに作成 目に見えない高さ(画像、表).
履歴タブを追加 — 検索とフィルタを使用して監査タイムラインをペジネーション
- LeadHistoryPanel: バウンスされた検索で粘着フィルタツールバー、**********************************************************************************************************************...
マイアカウントページタイトルの動的メンバータイプラベル
タイトルは「My {Member|Team Member} Account」を org-configured で読み込みます。 アクションラベル、メンバーの型が読み込まれると自動的に切り替えます.
Create Document ボタンを DocManager ツールバーに移動
ボタンは、アクションプロップを介して/doc/managerでのみ使用可能でした。 すべてのロジック(ステート、ハンドラ、DOC TYPES、メニュー)をDocManagerに動かす すべての埋め込みインスタンスに表示されます。 簡略化ページ.tsx へ わずか アクションプロップなしでDocManagerをレンダリン...
ドキュメントマネージャーページでドキュメント作成ボタンを常に表示
GetMemberId() > ボタンを非表示にしていた 0 ガードを削除 useUserInfo 読み込みウィンドウ。 このページは既にauthの背後にあるので、 クライアント・サイド・メンバーシップ・チェックが必要です.
事故による組織の輸入の復元
handleCreateDocument リクエストで、Organization.id はまだ必要です ボディ; isDocsEditor 条件のみを削除する必要があります.
ドキュメント作成ボタンをすべてのログインメンバーに表示
Org の機能フラグチェック (isDocsEditor → isDocs → hasFeature DOCS) org の機能が非推奨のキータイプを使用しているため、false を返します。 ボタンは、有効なmemberId の任意のメンバーに表示されます。 バックエンドは、機能が利用できなくなった場合の認可を処理し...
国際的サポート — 国選択, 言語選択, サブディビジョン あらゆる形態のフィールド
- 再利用可能なCountrySelect(207の国、フラグアイコン)、LanguageSelect(26の言語、フラグアイコン)、 SubdivisionField (フラグ付きの米国状態のドロップダウン、他の国ではラベル付きのテキストフィールドが表示されます) - 国の定数(countries.ts,langua...
フィールドレベルのフィルタとフローティングフィルタの行を削除します
すべての列フィルタとフローティングフィルタの入力行を無効化 グリッドは、列ヘッダーとデータ行のみを表示します。 また、フィルターを削除 列フィルタがないのでサイドバーからツールパネルを構成します.
アップロードボタンをDocManagerツールバーに移動する
アップロードトリガーは /doc/manager のページのアクションプロップにのみありました。 DocManagerが他のページに埋め込まれているとき、それを目に見えないようにします。 移動する 直接 DocManager のツールバーにアップロードボタンがあるので、常に コンテキストに関係なく存在します。 今冗長な...
埋め込まれた DocManager でオプションをアップロードできるようにする
タブコンテナをアップロードすると、オーバーフロー:hidden、ファイルごとのオプションをクリップ (説明、フォルダ、ドキュメントタイプ、アクセスレベル)高さ制約 埋め込まれたコンテキスト。 overflowY:auto に変更し、パディングを追加 MultiFileUploaderのルートなので、オプションは常に到達...
Fix 400フィードエラーとURLパラメータで通信サブタブを追加
ダブル修正? FeedEndpoint が既に導入済みのクエリーを含む MediaStream のバグ params しかし、 fetch は ?page=... ではなく、 &page=... を付加しました。 バックエンドが400で拒絶した誤ったURL。 すべてのプライマリタブ(?tab=)と通信用のURLクエリ...
エージェントフィルタのアイコンで「すべてのリード」の本当のメニュー項目を作る
- プレースホルダーの空の値項目を ALL に置き換える すべてのリードが選択されたときに空白を表示しません - グループ アイコンをすべてのリードと PersonOff アイコンに追加して、Unassigned リードに追加 - フィルタロジックを修正し、正しく ALL 値に割り当てられていない排除をゲー...