チェンジログ
何が新しいの?
プラットフォームのすべての改良 それが出荷される
· VOIPService
電話サーバのアウトバウンドポリシーのDDLファイル
SP93 タスク 1. AI VOICE INSTANCE SETTINGS で NULL DEFAULT カラムを 5 行わない: メニュー BLOCK INTERNATIONAL、ブロック PREMIUM RATE、 BLOCK HIGH RISK AREA CODES と BLOCKED PREFIXES は、今日のすべてのデフォルト値です。 行動。 Sp93DdlContractTest はファイルを 5.1 を仕様し、それぞれをチェックします。 列は再実行可能で、DEFAULTを独自の節で運びます。 CHECK、JSON、DROPはありません.
· EmailService
会員名がメールボックスの表示名(SP95 T35)に達します
メニュー {previous, 現在の} -> {updated}, カモAI内部の秘密の後ろにある暫定メールボックス. メールボックスは、表示名が空白であるか、または 前のもの(トリム、無視ケース)は新しい名前をとります。名前 管理者が選択し、会員が株式のみを留保するメールボックス ブランク 現在の名前は400です。 1 つの @RetryOnDbConflict トランザクション は、メンバーがキーにしました。 プロバイダの呼び出しなし (KamoMail はサーバー側の表示名を保持しません).
· kamo-internal
チャーター、携帯電話のサーバーのチームライン、および(SP95 T26) を求めるアクションの "Asked for" のコール同僚
- 憲章:PLACE INTERNAL CALL、PLACE CALL、APPROVALは1つの項目(19, ruling SP95-T4-1)を保持しています。 - 電話サーバーカード:チームライン(デフォルト転送延長)は、すべての保存に送信され、どれも空白になります(V10はすべてのフィールドを置き換えます)。 - 承認: リストおよび細部のモードON REQUESTのための「Aked for」の破片; 細部は尋ね、リンクを言って下さい チャット(場所)またはタスク(/notes?task=)。 ************************(SP95-T26-1) で読み込まれるタイプ.
· SecurityService
会員のメールボックス(SP95 T36)にリネームが届きます
人の「First Last」の変更をコミットした後、 SecurityService 電子メールサービスに{previous, current}を投稿 **************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** ユーザーのKamoAI内部の秘密(MAILBOXの採用ステップ)で、 クライアントとURL) emailService は、メンバーのメールボックスのみの名前を変更します。 プライマリとして保持し、まだ古い自動名を運ぶ。 - MemberNameChangeNotifier:コミットのみ(AfterCommit)後、オフ kamoaiExecutor、最善の努力(WARN、決して失敗しません 保存。空白にクリアされた名前は発表されていません。 - メンバープロファイルPUTとプラットフォームユーザータブのアカウントで呼び出される "First Last" が変更されたときにのみ編集します。 AccountController の解析名 顧客アカウント名ではなく、人名で、何も発表しません.
· AIService
OpenAIのトランスクリプションを最初にランク付けするorgは、STTをそれを介してストリーミングし、すべてのチケット名がセッションのダイアレクト(SP95)
トランスクリプションモデルは、ADAPTER UNSUPPORTED とすべてのストリーミングSTTとしてドロップされました チケットはCPUでカモスピーチに行きました。 各カタログの行は、セッションを名前付けるようになりました (セッション更新のモデル乗車)、チケットはセッションを回答します.
· APIService
ルートウェブサイトの連絡先フォーム、セッション作成予算
POST /api/public-chat/contactプロキシをMediaServiceの新しい連絡先に 同じサイトキー、原点、スコープチェックを全て終点 他のパブリックチャットコールなので、貸し手の連絡先フォームは、チケットを添付します 貸し手のサポートキュー。 セッションとチケットを作成しますので、そのように***を守ります 兄弟は厳密な作成予算(IPごとの3/min)でおよび引きます。 お問い合わせ "sessions" を使わずにパスを作成するので、 名前; スクリプトが30枚のチケットを1分ファイルできるメッセージ予算に左 1つのアドレスから.
· MediaService
貸し手のウェブサイトは、自分のキューでチケットをフォームに問い合わせます
POST /api/media/public-chat/contact は、ゲートウェイのサイトキーで到達しました。 他のすべての公衆電話のようなゲート、従って主名はorgおよびその ウェブサイトに名前を付ける プラットフォームの連絡先フォームは、 これを行う:それはプラットフォームのorgにファイル, どんなサイトがそれを投稿しました. コンタクトフォームはチャットが開いて、一度に入力されるので、 これらの2つのステップ: createSupportSession (統合のトピック) アトリビューション、ジオ、コミット後のトピックの割り当て戦略) sendSupportMessage(訪問者の最初のメッセージ)。 タイトルのみ 説明は、名前、Eメール、電話のカードをリードし、 訪問者がページを離れ、電子メールはそれらに戻る方法ですので。 キューは、メッセージがスレッドにあると、AI と同じように伝えられます。 ハンドオフ。 満たされたハニポットは成功とファイルを何も答えません.
· MCPGatewayService
Rag search は、パブリックの検索は、(SP95 T12)
電話でのAIは匿名の発信者に応答するので、それは唯一の検索 公開された記事は、公開する可能性がある, 決してノート (spec D12). オプション 聴衆のenumは[「PUBLIC」]であり、RAGService(タスク11)に転送されます。 他の値はスキーマによってINVALID ARGUMENTSであり、RAGに達することはありません.
· KlusterServices
Rspamd は、データを自身の Redis に保存します
local.d/redis.conf は mail の rspamd-redis の redis-own.conf キーです。 データベース 0、同じ mail rspamd ログイン。 subPath はポッドをロールアウトします。 古いキーは、スイッチが確認されるまでConfigMapにとどまります。 `kubectl -n メールロールアウト undo 展開/rspamd` はロールバック全体 (SP98-M-1、第2段階) rspamdのデータがコピーされた後だけそれを出荷して下さい rspamd-redisに.
· KlusterServices
Rspamd's自身のRedis
rspamdは、プラットフォームのRedisに信頼できないメールとログを解析します。 会員のセッション、および ACL はそれらからそれを維持できません。 rspamd のスクリプトは、クラスラベル、フラグ、msgpack を渡します。 KEYS としてブロブ, そのため、キーパターン ACL は、すべてのベイズ学習を拒否します; そして、そのベイズ すべてのキー名(***とOTKの名前がベアラーである)をリストするexpiry SCANs 資格情報) どんなパターンでも。 これは、メールにrspamd-redisを追加します:プラットフォームRedisのビルド、k1m1にピン留め そのノードのディスク、1つのデータベース、PING のファイルに rspamd の横に ログインせずに、rspamd の既存のパスワードで mail rspamd、kamo ops を 演算子、および rspamd のポッドを単独で認める NetworkPolicy。 CI は適用します rspamdの前に待ってください。 rspamd 自体は、次のまで変更されていない コミット(SP98-M-1、第1段階).
· SecurityService
チャーターは一度にAIのランタイムに到達し、会社(SP95 T6)のチャータープロファイル名
************************ が原因を運ぶ. 権利パス コミットされたチャーターは、影響を受けたAIごとにCHARTERを送信 メンバーは、メンバーの現在の権利Stamp(コミットの後に読みます)で 1つのクエリ)と空の追加/削除, そのため、すべてのkamoaiのPodは、AIの チャートとツールは、固定ツールリストの代わりに一度にリストします。 - 会員レベルのセーブ(S6)がAIであるときにメンバーを発表 - ロール、部門または職名保存、チャーターのみ(S7-S9)またはフル チャートアイテムを運ぶアップデート、非関連するAIチームをすべて発表 orgのメンバー、org-keyed クエリーから。 - CharterProfile は orgName, 話す会社名 (OrgSpoken) を獲得 名前: 短い名前、他の表示名、他の法的名)、簡単なことのための アイデンティティ・ライン.
· MCPGatewayService
承認 request は、ツールがそのツールに実行するクラスを送信します。 チャータースタンプは、ツールを新鮮に保ちます(SP95 T10)
承認 request は、アクションクラスを、カタログツールで実行することを拒否します。 INVALID ARGUMENTS use TOOL {tool, tools, actionClass}, no TOOL FOR YOU を使うとき 呼び出し側は、これらのツールのどれも見ることができます。 DECISION ONLY のクラスのみが、 決定のみの承認. ToolSpec.alsoClasses は、プランナーのクラスを宣言する re-class に (メール、チャット、カレンダー、タスク、phone call)、レジストリは、 class -> ツールテーブルをそれらから分類し、可視性は、すべてのときにのみツールを隠します 受けるクラスは FORBIDDENです。 パイプラインは、計画されたFOBIDDENを拒否しました 承認された再実行上のクラスも、憲章PolicyミラーD1(非名前付き) PLACE INTERNAL CALL は FORBIDDEN PLACE CALL を継承しています。 X-Kamo-Charter-StampはCharterClient.policy(memberId, expectStamp)に達し、 一度に別のスタンプの下にキャッシュされたチャーターを再読み込みする。 ツール/リストは 1つのチャーター読み取りと回答で判断 ************************
· kamo-apps
貸し手のサイトが既に取られた回答でアプリケーションを開きます
貸し手のマーケティングサイトは、今、独自のショート「スタート」フォームを運ぶことができます ここに借り手を送信し、目的、名前、Eメール、電話が記入され、 誰にも2回もタイプしません。 URL フラグメントの答えは、決して クエリ文字列: フラグメントがサーバーに送信されないため、借り手が メールはアクセスログやレファラーに埋め込まれず、フォームが拭くことはありません。 アドレスバーからすぐに読み込まれる。 目的は enum の名前(購入、精錬)として旅行し、一致します 製品独自のオプションから、サイトは元のIDを必要としません。 シードは何も保存しません:コンタクトファースト製品では、リードはまだ作成されます 借主の「続行」で、その答えをタイプしたかのように.
· SecurityService
Org の 2 つのphonetic の名前のコラムのための SP94 DDL、契約テストによってピン留められる
orgs.title phonetic と orgs.title short phonetic は、デフォルト無しで、VARCHAR(255) も無効です。 CHECK は user.name phonetic と同じ形状です。 生産(SP94 タスク 2)に手を加えた コントラクトテストは、ファイルを 5.1 の 1 つのステートメントを推測します.
· AIService
E5は、AI会員の記憶された音声、その優先モデルを最初に話し、送信された音声を名前付ける
AIの主題(AIのセッション、または?memberId=の内部のツイン)のために TTS候補がSP96の決議者を決め、回答モデルの音声を送ります 合成(インサート、比較とセット、時折タッチ)の後に決定が記憶されます。 モデル kamo:auto で、メンバーの好みのモデルが最初に歩きます。 人のセッション、 AI の俳優として送信されたものを含む、ボイスフォーは変更されません。 記憶は最もよい努力です: 失敗した読み込みや書き込みはWARNであり、メンバーはまだ話しています。 すべてのスピーチの回答 X-Kamo-Voice-Id を実行します.
· RAGService
オーディエンス PUBLIC は公開された公開記事のセッション検索を絞り込みます
セッション検索は、パブリックとして検索するために「PUBLIC」をユーザーに送信することができます ウィジェットは(メンバーなし、メンバータイプなし):公開された記事は、 公共、決して注意しない。 電話でのAIメンバーは、その電話を検索します TEAM MEMBER セッションは、匿名の発信者が質問を盗みながら行います。 フィールドのみが狭くなります。他の値が400 {error、field:"audience"}です。 内部パスは無視します。 KamoAI SP95 タスク 11, スペック §5.5, D12.
· VOIPService
携帯電話のサーバーのチームは、AIメンバーの名前のない転送のためのライン
SP95 D10:AIの音声設定はデフォルト転送延長(数字など)を取ります フォールバック;空白はそれをクリア)、それをエコーします。 新しい内部ルート メニュー チーム ラインの SIP ターゲット、または 404 NO TEAM LINE が設定されていない場合は応答します.
· SecurityService
同僚のAIコールのためのコールカード、および自分のプロフィールでAIコールへの同意(SP95 T5)
メニュー (X-Internal-Auth): チーム 会員名、種類、現時点で、その有効なゾーン(ワークサイト、メンバー、org) UTC)、そのプロファイル(セル、PHONE、WORK)のE.164番号、および独自の永続的な同意。 ツイート チーム(ポータルログイン)にないメンバーはカードがない。 お問い合わせ 人がAIチームメンバーを切り替える 自分の番号の1つ、またはオフの呼び出し; 会員の下のレジャーレコード:<id>、 MEMBER プロモーション Self or MANAGE MEMBER SECURITY 読み込み (全ての番号がマスクされます) のみ 彼ら自身は書きます。 - MemberZoneResolver:TimezoneControllerの解像度、変更されていない抽出、従ってメンバー自身の ゾーンとAIの通話時間は、同意します.
· AIService
任意のプロバイダー(SP98 T25A)によるKamo独自のコンピュータ *ツールを介してコンピュータの使用が獲得されます
ベータヘッダを持つネイティブコンピュータツールで、任意の2xxに渡されます。 AIメンバーズドライブ Tool Plane の Computer * ツールを介したワークステーションは、ベンダーがいない ネイティブ API なので、チェックが正確にテストされるので、すべてのプロバイダと同じです。 チャットアダプタが画像を送信するタイプ:名前付き3 1280x800テスト画面、 それぞれのボタンをクリックし、そのボタンの中のコンピューター click(x、y) をクリックします。 パス toolsVersion kamo computer 1 を記述します。 - ルータは、アダプターが画像や再生を送るCOMPUTER USEを機能します ツールの結果(スクリーンショットを上回るツールループ)、ベンダーが誰であるか。 (UI-TARS, GUI-*, コンピュータ用モデル) は、チェックを解決するためのヒントです。 - AI は VERIFIED が一度だけ COMPUTER USE を使うことができる.
· MCPGatewayService
Phone call は、PLACE INTERNAL CALL (SP95 T9) として、MemberId によって同僚を呼び出します
同僚は、メンバーによって名前付けられます。 決して番号で: プランナーは、 セキュリティ サービスコールカードをダイヤルし、携帯電話、その他の作業をダイヤルします プロフィールの数字(名前は自分のものでなければなりません)。 アクティブのみ 呼び出し者のorgの人は、このように呼び出すことができます。 拒否は INVALID ARGUMENTS NOT A COLLEAGUE、CANNOT CALL SELF、NO NUMBER ON PROFILE または NOT THEIR NUMBER(ノルト) 呼び出しは PLACE INTERNAL CALL で、その要約の名前は 同僚と数えず、K6 は calleeMemberId を取得します。 コールピー独自の 検証済みで、デフォルトプランを VerifiedRequest として渡すと、 コールの同意(consentBasis CALLEE REQUEST with the requestRef)。 お電話でのお問い合わせ 番号は変更されていないPLACE CALLに滞在します。 ActionClassesがPLACE INTERNAL CALLを獲得.
· kamo-internal
会員プロフィールのSP96性、個人データとしてゲート
Identity の部屋の個人の詳細カードは、メンバーの性別を保持します。 未指定、女性または男性。 会員列にあるので、ゲート ミラーセキュリティサービスのD3ルール:メンバーと管理者 AI では、 AI では、その労働力管理者とその監督者を行います。 AI は、自分で変更する人はいません。 指定しないとnullとして保存します。 鍵はいつしか保存しない 変更は、SecurityService が誰からでも拒否するので、 書きます(SP96-T5-1)。 フィールドの名前がフィールドに表示されている拒否 同じリクエストですべてのフィールドの代わりにフィールド.
· kamo-internal
会員プロフィールのSP96性、個人データとしてゲート
Identity の部屋の個人の詳細カードは、メンバーの性別を保持します。 未指定、女性または男性。 会員列にあるので、ゲート ミラーセキュリティサービスのD3ルール:メンバーと管理者 そこで、AI では、その労働力管理者とその監督を行います。 人が自分を変え、AIは決してできない。 指定しないとnullとして保存します。 鍵はいつしか保存しない 変更は、SecurityService が誰からでも拒否するので、 書きます(SP96-T5-1)。 フィールドの名前がフィールドに表示されている拒否 同じリクエストですべてのフィールドの代わりにフィールド.
· kamo-shared-library
コンピュータによるチェックは、コントラクトを渡すモデル(SP98 T25A)に書き込む
COMPUTER USE は、Kamo の所有するコンピューターを、任意のプロバイダーによって取得します。 toolsVersion はプローブ充填: 渡されたモデルをコントラクトするチェックレコードです。 機能を追加する管理者には、ベンダーのツールバージョンがタイプされていない.
· kamo-shared-library
SP96は、チャーターのVOICE TTSピンを退職
VOICE項目はスタイルのみです: 検証はボイスモデルID/voiceIdを拒否します (FIELD NOT ALLOWED) は TTS キーとEffecticCharter がない Tts なし、CharterView はボイス.tts を出力しません。 AIServiceは各AIを記憶する 代わりにモデルごとのメンバーの声。 列とエンティティティティティティティ マッピングの滞在。 ピンを保持している行はまだそのスタイルとして放出され、それをクリアに保存します ピン.
· kamo-shared-library
PLACE INTERNAL CALL、会員の同意、音声会社名、チームライン、ON REQUEST承認
SP95 タスク 4 (spec §5.2、D1、D4、D10、D15、D24): - AiActionClassがPLACE INTERNAL CALL(AUTONOMOUS)を獲得し、最後に追加しました。 チャーターレゾルバー PLACE INTERNAL CALL FORBIDDEN という名の通り、PLACE CALL のソースは、 PLACE CALL は FORBIDDEN を解決しました。 APPROVALセクションキャップは、クラスカウント(19)に従います。 - AiVoiceConsentViaがEMBER PROFILEを獲得しました。 - OrgSpokenName:短い名前、他の表示名、他の法律名。 メニュー (DEFAULT TRANSFER EXTENSION、nullable)。 - AiCallEventTypeはCONSENT BASISを獲得しています。 - AiApprovalModeがON REQUESTを獲得しました。 AiApproval.requestRef(request ref VARCHAR(200))。 2つの新しい列は、メインに到達する前に(SP95タスク3のDDL)存在しなければなりません.
· AIService
音声モデルごとのAIメンバーの記憶された音声と、そのリゾルバが保持し、リピックする
Ai member voices ストア(JDBC、TransientDbRetry、比較とセットのリピック、時折タッチ、CHOSEN アップサート、 1つの状態が優先されるフラグ)、メンバーは、SP96の仕様の(AI、性別、言語)、および純粋な解決者を必要とするという事実 セクション 5.4: パス、使用、KEEP または PICK は、言語によって、優先された声で固定され、
· VOIPService
携帯電話のサーバーのチーム ラインのための DDL ファイル
SP95 タスク 2.************************ AI の非ネーム転送を拡張する VARCHAR(20) が無効になっています。 リング(チームライン、k1m1 FreePBX の 8200) タスク3による手作業アプリ それをマップするビルドの前に; Sp95DdlContract ファイルがファイルにピンをテストする spec の 1 つの再実行可能、添加物、nullable ステートメント.
· SecurityService
SP96は、電話の延長とワークステーションを離れるオプションを雇います
AI の採用者の体が iPhoneExtension と aiWorkstation (JSON booleans, 潜在的時) 左のステップは、NOT REQUESTED AT HIRE で SKIPPED を作成しました。 そのため、雇用はまだCOMPLETEに達し、再試行ルートは今すぐ設定するように再開します。 checklist ビューは、このような行を skippedAtHire と再試すことができます。 退職リラベル 退職した理由で、退職したAIに決してセットアップできません.
· AIService
録音、キュレーションテーブル、スタイル、ベンダーの性別、プローブによって保持される性別
SP96 タスク 7. VoiceGender {FEMALE, MALE, NEUTRAL, UNKNOWN} は、必然的なパースで、 とVoiceGenders.of(type, model, record) は、spec 5.3を順番に適用する: 慣習、パイパー・ノーマン、Deepgramのタリア)、丁度女性/男性様式、 その他のUNKNOWN。 VoiceInfo は性別を獲得: ElevenLabs はラベルをマップします。 性別, なし。 ProbeRunnerは、他の音声フィールドで性別を保存します。 何も読みません 性別はまだ(タスク8).
· SecurityService
会員プロフィールおよび作成のSP96の性は、個人データとしてゲートしました
GET /api/security/members/{id} 名 性別 (フェムール、男性、または null) のみ へ それを読むことができる発信者(MemberSexAccess、spec D3)。 キーは、 その他。 PUT は、悪い値 (400 フィールド 性別) と、かもしれない発信者を拒否します。 何も書かれている前にそれを(403 NOT ALLOWED フィールドセックス)書いていません 会員以外の人による変更を監査する:AIの人 値、それらなしで人。 会員作成は性別をから読みます 同じMemberSexWireを介して任意のレコードのための体.
