チェンジログ
何が新しいの?
プラットフォームのすべての改良 それが出荷される
· kamo-signer-monorepo
Locale-aware 日付のフォーマットと/-localeメタデータ
· kamo-signer-monorepo
サイダートップバーに言語スイッチャーを追加
支えられた22のローカルを越えるEndonym-labelledメニュー。 クエリを保存 スイッチの文字列 — ?t= は、署名者の唯一のクレデンシャルです.
· kamo-signer-monorepo
RTL ロケールのレイアウトを stylis-plugin-rtl
MUIテーマの方向だけフリップコンポーネントのロジックが残っているが、物理的な CSS プロパティは非接触なので、LTR スペーシングでレンダリングされたアラビア語です。 スワッピング 方向のEmotionキャッシュキーとプラグイン。 また、スタイリッシュを直接の依存性として追加します(主に経由のみ) Emotion) と @types/stylis は、このリポジトリの孤立した pnpm ノードリンカから 幻の依存関係とスタイリッシュを解決しません 4.2.0 船はバンドルしません タイプ宣言.
· kamo-signer-monorepo
/{locale} の下のマーカーを次のインテルミドルウェアでルートする
I18n/routing.ts (localePrefix は常に)、i18n/navigation.ts を追加し、 middleware.ts は、src/app/[locale]/ の下のルートツリーを移動します。 kamo-locale Cookie の代わりに URL からリクエストを解決します。 ディープマージ英語のフォールバックを維持します。 顕著なサイダーのリンクは働き続けます:ミドルウェア307-redirects 未修正 URL と ?t= トークンを保存します.
· kamo-internal
未読インジケータが表示されている間にメールアイコンを点滅
未読のバッジだけではトップバーで見やすくなりました。 NavItemButton は、 blinkIconは、アイコン(およびそのバッジ)をパルスするプロップ - とは異なる 既存の `blink` は、リードアレイト ドットだけをパルスし、MailButton ターン unreadCount の限りそれ > 0. 名誉は引き起こされた感情を好む.
· kamo-marketing
始動機は5人のユーザー、25のビジネスでおおわれます
公開されたシートキャップを/pricing(および計算機)に配置します。 JSON-LD が提供する、および llms.txt の合計) サブスクリプションと一致 カタログ:スターター25 -> 5ユーザー、ビジネス100 -> 25ユーザー.
· kamo-internal
MeridianLink市場の秘密は、インバウンド同期サービスクレデンシャル(パーロログインメンバープロファイル)です
· kamo-internal
メリディアンリンク 会員プロフィール+リードボタン 事前警告カード
メリディアンリンクLOS融資オフィスマッピングのフェーズL3(§3.4-3.6) 設計仕様: - 新しいメンバースコープ付きLOS認証プロキシ メニュー クライアントの種類 メニュー タイプ: GET/PUT/DELETE/POST を SecurityService に転送する app/lib/los/types.ts を転送します。 - 新しい「MeridianLink Loan Officer Access」セクションカード メニュー ステートベースの直後に配置 ライセンス 会員がNMLS IDと少なくとも1つを持っている場合にのみ可視性 org 市場は、アクティブな MeridianLink 接続を持っています。 既存の ************************ 権利。 市場ごとの1列 (username/secret/enabled/statusの破片/テスト); 秘密は書き込み専用であり、 決して戻ってレンダリングしません。 - リードビュー アプリケーションのボタンを事前警告: リードがLOSがないとき 申請中およびその委託された融資役員がリンクされていない MeridianLinkボタンは、代わりにLOを命名するツールチップで無効になっています クリックに失敗するだけ。 losLoName/losLoLinkedでMarketConfigを拡張 (古いSecurityServiceビルドの有効なデフォルト) バックエンド 422 実際の保証は残します.
· SecurityService
LO-scoped create (マップされていない場合はブロック) + メンバー MeridianLinkクレデンシャル API + 市場設定 LOリンクステータス
MeridianLink融資オフィスマッピング設計のフェーズL2(kamo-internal) メニュー §3.3-3.6)、L1共有libスキーマ/レゾルバー(MarketLosUserCredential)上に構築された メニュー すべてのSOAPモック(ベンダーオンボーディング) それでも終わり)。 -**************** は、リードが割り当てられたローンを作成します。 接続の共有サービスではなく、requireForMemberを介してローン役員 アイデンティティ(ロックされた決定B:ブロック、戻らない)。 割り当てられたLO-> 422無し; リンクされていないMeridianLinkユーザー-> 422を操作可能に割り当てられたLO メッセージ 既にリンクされている409は、接続前に実行されます/ ログイン チェック, 前のレビューごと, そのため、重複作成の試みは、再帰することはできません 409より403/422。 メニュー メニュー (GET/PUT/{marketId}/) DELETE/{marketId}/POST/{marketId}/test) のようなゲート MemberStateLicensingController (STATE LICENSING VIEW/EDIT OWN/ ALL, 神様のバイパス PlatformSecretCipher 経由で暗号化オンライト, 空白の秘密は保持します 保存された暗号文, hasCredential-only ビュー, ソフト削除, 決してスロー テストアクション。 - LeadController の市場構成は losLoName/losLoLinked の鉛眺めを得ます ボタンは422を打つ前に警告することができます。 - BaseLosController#unprocessable (422ヘルパー) を追加します。 TDD: LeadLosControllerTest (拡張) を渡る 54 のテスト、 メニュー (更新) LeadControllerMarketConfigTest(拡張) — すべてのグリーン。 L3 (kamo内部UI + proxy) はフォローアップ作業を分離します.
· kamo-shared-library
Permember MeridianLinkのクレデンシャル(MarketLosUserCredential) + resolveForMember + LO-scopedアウトバウンドプッシュ
· kamo-internal
一括メールキャンペーン UI — グリッド、エディタ、プロバイダタブ、リードアクション
/marketing/email の下の org レベルのバルク電子メール マーケティング サーフェスを追加します。 - バルクメールタブ(ソーシャルメディア以降)+キャンペーンAG Gridワークスペース(ライブあり) STOMP (/topic/campaigns/{orgId}) を超えるステータス/sent-vs-total カウント; 修正 ネストされたルートのためのマーケティングタブゲート/アクティブロジック。 - キャンペーンエディタ(/マーケティング/電子メール/キャンペーン): キルは再利用を補う 署名ヘッダー/フッターシステム + トークンをマージし、ファイルアップロードからの受信者 (電子メール列マップ)、リード/アカウント/アプリケーションID(解決エンドポイント)、マニュアル エントリー、プリフライトパネル(スキップ/オプトアウト/マスク/無効なブレイクダウン+ CAN-SPAM) ガード)、送信/ドラフト/スケジュール+スロットル(オールアットオンス/均等に/自然化 +ウォームアップ。 リードのバルクメールハンドオフを受け入れます。 - バルクメールプロバイダの設定タブ(SMTP設定+実際の送信テストメール)。 - リード:マルチセレクト→キャンペーンエディタで「バルクメール(N)」アクション。 - 部門:電子メール+電話/延長分野;行動標識:会社電子メール。 - クライアント API (emailCampaignApi, BulkEmailProviderApi, receiveResolveApi), useEmailCampaignsWebSocketは、プロキシルートを解決します.
· SecurityService
バルク電子メールの受取人の決断+部の接触の分野
メニュー POST /api/security/marketing-email/ リード/アカウント/アプリケーション ID をメール受信者に変えます。 MANAGE BULK EMAIL に Gated; 送信機の下にリードコンタクトマスキングを適用します。 (黙ってスキップされた)、アカウント。 受諾マーケティングオプトインゲート、借り手 アプリケーション、シンタクティック検証、クロスソースの重複+フルのための電子メール skip/count のブレークダウン。 - DepartmentController:新しい電子メール/電話/延長要求分野をに通して下さい DepartmentService 作成/更新.
· kamo-shared-library
一括メール受信解像度+会社連絡先メールのサポート
メニュー contactEmail ブランチ(会社連絡先) PUT /api/security/org で編集可能なメールを企業スコープキャンペーンとして使用) - アプリケーションリポジトリ: 多形態のバッチファインダー (findByUidInAndOrganization) ツイート ログイン キャンペーンの受信者のためのアプリケーションの借り手メールを解決するために - AccountBorrowerPartyRepository:findByAccount UidInのバッチファインダー(N+1なし) Additiveだけ;パッケージは既にカバーしました ************************************
· EmailService
バルク電子メールキャンペーンバックエンド — プロバイダー、ディスパッチャ、コンプライアンス、リアルタイム
Orgレベルのバルク電子メールキャンペーンのバックエンド、完全に日常から分離 電子メールプロバイダは、ビジネスメールと一緒にスロットル/ブロックリストすることはできません。 - バルクSMTPプロバイダ(BulkEmailProviderService + BulkProviderController): 暗号化された org config は、EmailProviderEncryptionService を再利用します。 メール(ライブSMTPセッションを開き、送信) - キャンペーンCRUD +ステータスマシン(CampaignService/Controller):ドラフト、スケジュール、 send-now、一時停止、再開、キャンセル、重複。 受信者による材料化 dedupe, 抑制タグ付け, 受信しないトークン; CAN-SPAM ゲート (サブジェクト + 物理的なアドレス + >=1 ドラフトを残すために必要な受取人) - Throttledのディスパッチャ(CampaignDispatcher@Scheduled): 全at-once/ 余りに窓/自然化された基盤は per-recipient nextReleaseAt を貫きます (restart-safe), maxPerHour のウォームアップランプ, ハードバウンス -> 自動サプレッス. - コンプライアンス:SuppressionService、パブリックワンクリックRFC 8058 UnsubscribeController (+ List-Unsubscribeヘッダー)、送信時に再チェックを抑制します。 - リアルタイム: /topic/campaigns/{orgId} への直接 STOMP 押し + 購読時間 org ChannelInterceptor(クロステナントトピック露出を閉じる)。 - 電子メールSmtpService: 付加的なHeaders send() 積み過ぎ(リスト・アンサブスクリプション).
· kamo-shared-library
ECOA/FCRAの副作用の通知の足場+満足なタイマー
発行メカニズムの共有libの半分。 コンプライアンスタイマーサービスの向上 ******************** — ARMED ECOA AA のタイマーだけフリップ SATISFIED (リーダー COUNTEROFFER/INCOMPLETE NOA、既に満足している) untouched)、従ってSENTの副作用の通知は間Reg Bの時計を閉めることができます 未定の人は、侵害の掃引のためにARMEDにとどまります。 2つの正式メールテンプレート — ADVERSE ACTION NOTICE (ECOA/Reg B + FCRA) §615(a) および RISK BASED PRICING NOTICE(FCRA §615(h)/Reg V) - 登録済み キャニカルテンプラー 両方とも、 STRUCTURAL の足場のみ: ダッシュ [[[[あなたのコンプライアンス対応... ]] 債務者の弁護士が記入 in、プラス構造化されたデータ変数(応用、日付、主な理由/ トリガー)。 カモは、手術の法的通知を提示しません.
· kamo-internal
マスターマシンリモートトップデスクランチャーを追加(god-gated)
Linux/Windows の横にある 3 番目のワンクリックデスクトップ: navRegistry エントリー (ComputerIcon), openKamoDesktop による 'master' ターゲット + SSO プロキシ ルート, すべての 3 つのアクション ハンドラでディスパッチ.
· SecurityService
Master Machine SSO ディープリンクの「マスター」ターゲットを追加
buildAutoConnectUrl は、マスターマシン接続 (KAMO GUAC MASTER HOSTNAME, デフォルト 192.168.4.46) をミントトします。 セッション再使用のためのすべてのトークンに含まれています。 KlusterServices ブートストラップ SQL と同期します.
· KlusterServices
マスターマシン(kamo-dev-1) RDPデバイスをGuacamoleに追加
ローカルKubuntuワークステーションは、KRdpを介してRDP上のライブプラズマ/ウェイランドセッションを共有しています。 idempotent boottrap SQL 接続 (192.168.4.46:3389、sage/shared pw、security=any、無視cert、color-depth 24)、READ の付与を追加します。 デザイン仕様が含まれています.
· kamo-shared-library
バルクメールキャンペーンの基礎団体+部門/組織の連絡先フィールド
Orgレベルのバルク電子メールキャンペーン用の共有ライブラリ基盤を追加します。 - OrgBulkEmailProviderEntity(毎日提供者から分離、UNIQUE org id) - Eメールキャンペーンエンティティティ / Eメールキャンペーン受取人Entity(+ステータス/スコープ/スロットル/ 源のenums) 耐久の per-recipient は列を送ります - Eメール対応Entity(CAN-SPAM抑制リスト) - 担当部署:Eメール+電話/延長(EmbPhoneNumber)の連絡先 - 組織: contactEmail (企業スコープキャンペーン デフォルトから) - RoleRightType: VIEW BULK EMAIL(175)、MANAGE BULK EMAIL(マーケティング) すべての新しいパッケージは、com.kamo.z.shared.email.* 下に座っています。 (カバーされた既に) 加茂初期化装置 メニュー 清潔に.
· kamo-shared-library
STEWARD TASK ROUTEDの正式なテンプレート
Routed-decision スティワード通知は、正式なメールテンプレートが必要です。 会員登録 STEWARD TASK ROUTED は、json/html のペアで CANONICAL KEYS で、本体はローンを運びます。 決定/例外のコンテキストとスチュワードキューリンク。 コンテンツはorg-authorableです。 既存のテンプレートシステム.
· SecurityService
ゲートウェイリレーは、MERS MINを閉じるパッケージに差し込みます
メニュー 所有権チェック (requirePackageOrg) なので、自分のテナントのためにのみスチュワードミント. ザ・オブ・ザ・ 上流は、テナントのMERSプロバイダ接続から7桁のMERS Org IDを読みます 統合タブ; 400 は MERS が構成されていないか、ローンがローン番号がないことを意味します.
· kamo-internal
リードビューでの生年月日 + フォームを作成する
/leads/view/[id] のプライマリコンタクトの下の「生年月日」フィールドを追加します。 MUI DatePickerは、最初の年グリッド(openTo=year、DisableFuture)に開く min 1900) — 出生者のための直感的な流れ — 同じピッカー 新鉛フォーム date-fns parseISO/format(ローカル、UTCなし)による往復 オフ・バイ・ワン) display は canViewContact でプライバシーを付与します。フィールドはオプションです。 ワイヤ日付タイプ、リードApi作成/更新ガード、およびタイプによるOfBirth import-wizardフィールドリスト.
· SecurityService
生年月日(DOB)を受理し、ゲートの連絡
地図 `dateOf マニュアルインポートとベンダーインテークフィールドスイッチで誕生` 寛大なマルチフォーマットパーセ(ISOプラス一般的な米国M / D / Yyyyフォーム; 分離不可 値が投げるのではなく DOB の unset を残します。 DOB をコンタクト PII としてカウント 別のメンバーのリードでそれを編集するように、ContactInfo リクエストは、 EDIT LEAD CONTACT INFO その他 新しい共有lib Lead.dateOfBirth がバックアップされました.
· kamo-shared-library
出産期限が無効な連絡先を追加
コンタクトレベル `dateOfBirth` (java.time) を追加します。 localDate、DATE 列) から ベースリード:エンティティティティ + Create/Update/LeadDTO (Leadから), LeadServiceでコピー 作成/更新とmortgage-subclassの変換ヘルパーの両方が生き残るように 市場スイッチ。 鉛の歴史のレジストリ(連絡先)で追跡され、としてマスク PII in MaskContactInfoFromその他 nullable、デフォルトなし — 安全なALTER ADD COLUMN.
· kamo-internal
著者の文書要求は、スチュワードコンソールからルールをオーバーレイします
「この融資の必要性がどのような文書であるか」規則の行列は、承認面を持っていません。 これは、 ドキュメント要求ルールのセクションを文書と条件画面に分割(フォルダ) ステワードリスト、著者、およびテナントの退役をした新しいタブではなく、スクリーンを所有する オーバーレイルール。 ヘルプコピーは、スコープについて正直です。プラットフォームベースラインとプラットフォームベースラインの上部にオーバーレイ 真実の源泉のままのASS/agencyの発見(DU/LP/GUS)、ルールは承認できません ローンまたは条件をクリアし、ここで何も法的義務はありません。 フォームは23を提供しています requirementDriverType 値とフリーテキスト doc 型コード (バックエンドはそれを検証します) org のイメージング カタログに対して、org が収集できない場合、明確なインライン 400 を返します。 それ — ハードコードされた doc リストはありません。 法的壁バッジとブロックアドバンスメント対アドバイザリーバッジ 各規則にレンダーし、最初に確認します.
· SecurityService
リレー文書要求オーバーレイルールのオーサリング
************************************ で MLOSDocService を中継 組織 オペレータセッションからサーバーをスタンピングしたので、スチュワードの作成者とリストのみ 自分のテナントのオーバーレイルール.
· kamo-internal
カタログパネルからの著者条件LLPA
借り手によって調整は変更できませんでした:MlosAdjustmentCondition はライターがなかったため、 プライシングエンジンは、常に適用されない条件で調整を処理しますので、すべてのLLPA すべての借り手と780-FICO借り手が620と同じヒットしました。 お問い合わせ 著者は、それをゲートする条件と調整します。 同じパネルのロックポリシーフォームにモデル化:レートシートバージョンID、価格 デルタとラベル、および条件行の繰り返し可能なリスト(attribute +演算子+ numLow)、 BETWEENだけのために示されるnumHighと。 クライアントはサーバーガードをミラーリングします。 条件, すべての条件にバインド, 両方 BETWEEN の低 <= 高 — なので悪い ラウンドトリップではなく、ルールはインラインをキャッチします.
· kamo-internal
リードビューからリードを割り当てるときに電子メールを確認します
現在、Assignmentカードは、VueApi.reassignLead を介して再割り当てされ、 サーバの割り当てられたフラグ。 トーストの新しいメンバーに再割り当て "Assignment saved — {name} は電子メールで通知されています"; no-op または 自己割り当て(サーバーが何も送信する場所)、それは明白な確認にとどまります.
· SecurityService
単一のリードが再割り当てされたときに新しい所有者に電子メールを送ります
リードビューアサインカードのバルクパスをミラーリングします。 とき PUT /leads/{id} 別のメンバーにリードを移し、メンバーは同じLEADS ASSIGNEDを取得します。 電子メール (count 1) のバルク流れは送ります。 最善の努力 — 送信は後に実行されます コミットを更新し、失敗することはありません。 実際の再割り当てだけを消火: 割り当てがどこにあるか、no-op を保存をスキップ 変更されていない(連絡先情報の編集は何も送信しません)、および自己割り当てをスキップします。 自分自身にそれを割り当てることによってリードを主張する役員は、電子メールに理由がない お問い合わせ レスポンスは割り当てられ、UI は新しいものを確認できるようにします。 所有者は電子メールで送信されました。 プレ更新リードは、一度取得し、両方のオーツルと両方に再利用されます 前代のassigneeのキャプチャは、非godのauthzブランチの内側だけではありません.
· SecurityService
リレー条件-LLPAの作者
リレーPOST **************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** 自分のテナントのためにのみ、スチュワード著者条件調整.
