チェンジログ
何が新しいの?
プラットフォームのすべての改良 それが出荷される
· MediaService
会話は電話に到達
Exec2Execラインのメッセージは、受信者の携帯電話だけでなく、 コンソール:KamoCRMが返信する際の顧客の携帯電話、すべてのデスクメンバーの携帯電話はいつ 顧客の記述。 既存の存在感のあるCHAT MESSAGEプッシュ、ディープリンクに乗る kamocopilot://exec2exec/<guid> (デスクのコピーの顧客名と) 会話ごとに崩壊するので、バーストは1つの通知ではなく10です。 失敗したプッシュが記録され、すでに行っているコンソールフレームを停止しません.
· kamo-internal
NavTop の Exec2Exec コントロールは、KamoCRM エグゼクティブのデスクです
プラットフォーム組織に立っているExec2Exec Accessのメンバーのために、 コントロールは現在、閲覧していないクライアントからのメッセージがカウントされます (GET ******************** ) インタラクション センターを開く > チャット > 自分の会話の代わりにExec2Exec。 クライアントは変更はありません。 - インタラクションCenterIntent はタブと Bucket でパネルを開きます。 バケット Exec2Execのときにチャットのペインホーナーを保留リクエストとして旅行 タブは、そのタブがプラットフォームの権利の後にのみストリップに参加するので、表示されます 負荷と新鮮なペインは、それ以外の場合は、その最初のタブに良いために上陸します。 - Exec2Exec ディレクトリは、顧客を偽造し、同じサーバーを行ないます カウントするので、バッジと行が一致して開きます。同僚の同僚 返信 行が悪くなることはありません。 - useExec2ExecDeskUnread は、デスクの未読のスナップショットが移動したときに再び尋ねます タブが戻ってくると、失敗した質問に最後の番号を続けてください.
· MediaService
クライアントメッセージのデスクのカウントはまだ表示されていない
メニュー メッセージの数を返す クライアントはこの EXEC2EXEC ACCESS の所有者は、すべて見ていない 会話、および各ロスター行は顧客の未読数を運びます。 それはあります プラットフォームの未読のルールは、会話の顧客が言ったものに狭くなります。 すべてのチャットでデスク全体が座っているので、同僚の返信は未読です 他の人は、それらを待っていない。 1つのクエリは両方を供給します メニュー NavTopのバッジ インタラクションセンターの行は同意します.
· KlusterServices
MLTSメール通知で、あらゆる拡張子から911と933をダイヤル
911: 911 や 933 にマッチしたアウトバウンドルートが届かないので、 内側から悪い数字にまで落ち、「そのまま完成できません」 INVITEを送信することなくダイヤル start.sh は、修正の半径のダイヤルプランを実行します。 - 911 と 933 は [内部のカスタムから]、コンテキスト内の正確な拡張子です アウトバウンドゲートが生きています。 あらゆるパターンを完全に拡張する その文脈は、ゲートがそれらをキャプチャできないので、彼らはそれらをスキップします [kamo-outbound-allowed] リスト: すべての拡張子はそれらを no でダイヤルできます プレフィックス。 それぞれがFreePBXの 独自のアウトバウンドルーティングが引き継ぎます。 - [kamo-e911-notify] 呼び出しがルーティングされ、開始される前に実行 kamo e911 notify.py を取り外す, TrySystem(System() を掛ける コマンドが実行できないときのチャンネルアップ)、すべての引数で FILTERによる数字 - kamo e911 notify.pyはプラットフォーム管理者メールボックスを経由してメールをメールします ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************ 名前、コールバック番号、911センターに伝えられた場所。 それは、 kamocrm.com の外部の受取人を拒否し、リレー アウト率を 3 つ取り除く 毎回ログを記録する**************************** ポッドの 独自の postfix は使用されていません: smtp.gmail.com を介して中継され、そのキューは スタック。 通知は、すべてのブートに書き換えられます。ダイヤルプランブロックは一度追加されます 出席者ブロックのような独自の悲嘆ガードの下。 ルーティングの半分はFreePBXデータであり、このレポの外側に、k1m1で適用されます。 下り線 緊急911(emergency route=はい、911と933のパターン、 トランク1(Telnyxトランク)、シーケンスで最初に、CID +19492989960をオーバーライドし、 device.emergency cid +19492989960 全22の拡張子。 freepbx/tests/test e911.py (stdlib unittest) は、その起動をチェックします。sh parses bash と YAML のモデルとして、Asterisk の拡張セレクションは 911 と 933は10桁、11桁、011の数字がまだそれに達する間ゲートをバイパスします、 通知は、フィルタされた引数でNoOp/TrySystem/Returnに引っ掛かり、 偽のリレーに対する通知を駆動します.
· kamo-marketing
英語ページのみの電話番号をリスト
app/lib/phone.ts の showPhone(locale) は単一の規則です、現在 locale === "en" を指定します。 PhoneLinkは他に何も返さない。 ヘッダ、モバイルメニュー、フッター、数字が単独で立っています。 電話のみ コンタクトカード - 以上を運ぶ配置をラップします。 そして「私達を呼ぶ:」家CTAのストリップ、企業上の鉛のins プライシングカードとデモページ — なので、その言葉と間隔はそれで行きます。 組織JSON-LDは、組織とコンタクトポイントに電話をかけます 同じ条件では、他のロケールのマークアップは番号を主張しません.
· kamo-marketing
ロゴが家を導き、訪問者が決定する電話番号をリストしましょう
ヘッダのホームエントリは、すでに/にリンクしているロゴを複製しました。 それはデスクトップとモバイルメニューからなくなっています。 その場所でロゴ ホバー/フォーカスのツールチップが家に行くと(左からホームページを外す) それ自体、どこに行っても戻らないところ)。 (949) 298-9960 がタップツーコールリンクになりました。 - ナブと言語セレクター(xlとup)の間のヘッダ。 lg 行には部屋がない)、CTA でモバイル メニュー - 社会的アイコンの下、フッター - 連絡先ページ、連絡先オプションを見出しているコール Us カードとして - ホームCTAストリップ、エンタープライズプライシングカードとデモページ、 アクションへの既存の呼び出し - 組織JSON-LD、または連絡先ポイントの電話として app/lib/phone.ts に 1 回、PhoneLink はそれをレンダリングし、 レポートは、その場所と電話クリックとしてデータトラックを介してクリックします.
· kamo-internal
トップバー全体のための1つのブランドの塗装されたドロップダウン表面
NavTopを掛けるすべてのドロップダウン - 8つのオプションメニュー(メール、ドキュメント、コール/テキスト、計算機、 サポート, 設定, Linuxデスクトップ, ゲーム), 可用性の丸薬と言語ピッカー - 今開きます 独自の白いMUIのポップアップの代わりに1つの共有面に。 - 白いラベルおよびアイコンが付いている構成の第一次色で塗られる。 その上端は洗い流します坐ります 棒の底端に、棒自身の色でその点(勾配は今住んでいます) navtop/menu/navTopSeam.ts と NavTop は、その背景をそれらから構築します。 そして、コンケーブは両側に参加しているので、パンではなくバーが上敷くように読みます ページ。 WCAG AA まで、白のテキストのためのブランドが独自の色合いで暗くなっています ニーズ(CSSの相対カラー数学の輝度天井)。他のすべてのブランドは、選択したように描画されます。 - 休眠マウスの下に開き、バーに沿ってポインタに従ってください - 表面のグライドとサイズ コンテンツが旅行の方向にスライドしている間、次のメニューへ。 ポインターがトリガーとパネルの両方を離れる直後にバー。 クリックまたはタップピン 外部のプレス、エスケープ、または選択まで、タップはテキストフィールドに焦点を合わせることはありません。 - キーボード:入力/スペース/ArrowDownは最初の行に開き、矢印は行、ホーム/エンドを歩く、 type-ahead, 右 / 左開閉グループと隣接するメニューのステップ, 手をエスケープ トリガーに戻ります。 - 行から行までグライドする1つのハイライト、ガイドスレッドの行の下にあるグループ、 カウントバッジのシングルリング、チェダーバランスカウントアップ。 すべての動きは減少した動きの下で消えます。 - 設定は、そのグループ内で検索し、マッチをマークする検索ボックスを取得します。 開始を入力してください 最初にヒット。 言語ピッカーは、全22言語の2列グリッドで、ネイティブネームで検索できます。 英語名またはコード 設定ピントグルとチェダー財布は、ブランドに白を回し、レールに交換されていません。 レールのフライアウトは変更されていません — レールはすでにホバーにオープンします。 メニューが開くと、スイッチ そしてクローズは、独自のテストでReact-freeステートマシン(navtop/menu/hoverIntent.ts)です。 実際のコンポーネント(esbuild ハーネス、データソース stubbed): 170 に対して Chrome で検証 測定されたチェックは11ブランドで、ホバータイミング、フラッシュシーム、コーナー、コンケーブの双方が参加します。 パネルのあらゆる部分の4.5:1かよりよいの白いテキスト、全体を通して白いインク、グライド間の メニューを盗むことなく、メニューを盗むことなく、優雅に残します。 キーボード、両方の検索および減らされた動き。 nav および navtop スイート、tsc および navtop スイートの 287 のテスト image-build は、辞書の現在の en.json に対してガードします.
· MediaService
すべてのチャットで机全体に座って、誰がそれにあるか、チャットフィードを閉じます
- 常駐会員: EXEC2EXEC ACCESS 保有者全員が常駐 Exec2Execの会話。 Exec2ExecDeskReconcilerの座席およびからのunseats セキュリティサービスのexec2exec.desk.changedイベントで5分のスイープを付与します。 起動し、チャットが開いているか、または埋め戻されます。 デスクは再読み込み 会話ごとに、スイープは別のポッドを付与することはできません。 - GET /chat/{id}/participantsは、チャットでKamoCRMの役員をリストします (memberId、userId、name、jobTitle)。 - 送信者線は、送信者電話(トップレベルのorgの電話(メイン)を運び、 senderPhoneExt (有効な VOIP の拡張機能、チームメンバーの 1 ) のための カモCRMスタッフ 神様からお寄せいただいた歓迎は必ず神に署名します。 - コンソールの行は、待望のデスク(顧客が最後に話した)を運ぶ サインインスイープ。 - セキュリティ: /topic/chat/incoming/{memberId} と /topic/chat/unread/{memberId} 会員のみの購読となり、クライアントから送信されることはありません。 どちらが守られていないので、署名付きクライアントは、任意のメンバーに従うことができます 到着とIDで未読。 - 一般的なadd/remove/leave/rename のメンバー ルートは Exec2Exec を拒否します セッション (409 MEMBERSHIP MANAGED): 共演者は、そのメンバーシップを所有しています。 - オフラインメール: 顧客のメッセージは、デスク、エグゼクティブの返信をメールします すべての役員の代わりに、顧客だけをメールします。 - チャットを開くトランザクションで挨拶と座席を埋める お客様第一の返信は、デスクの読み込みをマークしません.
· kamo-marketing
私たちが宣言する最大のアイコンをリストしているため、Googleの緑のタイルマークを渡します
検索は、サイトごとに1つのアイコンを表示し、宣言された最大のアイコンを取ります, Apple-touch-icon が含まれているため、180px のタッチ アイコン(当社と当社) テーマは、他のすべてのものを上回りました。 192pxアップルタッチアイコン 両方のアウトサイズ。 そのピクセルは、96pxの緑色のマークが倍増しています つまり、Googleのダウンスケールは元に戻ります。 タブはfavicon.icoを維持します, iOSは、自宅のための正確な180マッチを維持します 画面、ページの変更のロゴなし。 ブラウザの新しいタブタイル 最大のアイコンがこのアイコンをピックアップします.
· kamo-internal
KamoCRMのチャットで誰であるかを表示し、それらに到達する方法
顧客のウィンドウは今、カモCRMの役員を彼らの会話にリストします, 誰かが追加または削除されるたびに再読み込み。 行は、NAMESのみを表示し、 ホバーのタイトル: 1 人の "名前 - タイトル" は 1 つのランオンに机を走らせます 初めての幹事の後にクリップされるので、顧客はもう誰が誰なのかを見ることができません そこにあった — ストリップの1つは、 ローディング、空および失敗は引かれます 別々;「KamoCRMから誰もこのチャットにある」は、顧客の行動です。 カモCRMの幹部のアトリビューションラインは、現在、組織のメインラインとその 独自の拡張機能 — 「Sage Nadjafinia - KamoCRM Inc. - 社長 - (949) 298-9960 x8080" — シグネチャ電話、変更されていないので、メールとして正確に印刷します 署名は行います。 区切り文字は " -" です。 会員枠は id: null で到着します。 トランスクリプトの「IDなし、それをドロップ」ガード。後ろにサイレントに捨てられた.
· SecurityService
デスクが変更されたら、
Exec2Exec Access の付与または交換は exec2exec.desk.changed を公開します。 MediaService は、すべてのチャットで役員を置くか、またはそれらをオフにすることができます。 プラットフォーム管理者ページに移動します。, むしろ、次のスイープよりも 実行します。 コミット後、インラインでない: MediaService は、デスクトップ全体を再生成します。 データベースはペイロードを信頼しないため、ロールバックの付与は座席ができません 誰でも — しかし、インライン公開は、コミットをレースし、読み直し 最初に古い机に再構成します。 ペイロードはログの論理ではなく、ログです。 前と後も右が保持されると公開されます。 エグゼクティブは、見逃されたイベントの後にチャットに戻ってそれらを置く自然な方法です.
· kamo-shared-library
役員の電話回線をメッセージに運ぶ
ChatMessageDto は、送信者に電話と送信者PhoneExt を付与します。 カモCRMスタッフ:プラットフォームのorgのメインラインと到達する拡張 その人、電子メールの署名として既にそれを印刷します。 リレーコピーから allowlist は、このクラスがブラウザーを宣言しません。 ライブメッセージが届かない場合は、番号を携帯します。 助成金のみのファインダーのコメントは、もはやそれが間違った答えである発信者に伝えません。 Exec2Execデスクでは、まさに正しい机です。 プラットフォーム管理者ページでtoggleを要求しました。 エグゼクティブチャットに座っている人.
· kamo-internal
ピン付きインタラクションセンターで停止し、すべてのメニューでウィンドウをキープ
0c5ef994への2つのフォローアップ(navの横に最大化)。 PINNEDインタラクションセンターは、その幅を最大限に引き出す ログイン ピン留め、パネルは画面とともに機能するので、最大化 ウィンドウとそのタブのストリップは、パネルの左端で停止します。 それの下に。 パネルはピン留め時にCSS変数に幅を公開します そして(useInteractionCenterReserve) および paneGeometry はそれを、方法引き込みます レールの変数は既に機能します。パネルは同じ文字列で描画されますので、 2つは不一致できません。 パネルは、スクリムの上にモーダルであり、 ウィンドウはそれの後ろの幅を保ちます。 全てを支え、閉じ、そして取付けること 予約を取り消す。 ナビゲーターの幅のキャップは部屋を部屋に測定します パネルの端同様に。 ツールウィンドウの後ろにはメニューが開きません。 店のzのカウンター(toolcore、 モバイルと共有)すべてのオープンに登る, 上昇し、フォーカスし、リセットされていない; MUIの1300を過ぎる長いセッションの塗られた未加工およびすべてのメニュー、 アプリのポップアップとダイアログが、DOM で BEHIND を開きました。 、見えない位置。 ドックは、ORDER専用カウンターを読み取り、 200(windowStacking.ts)を超える小さなバンドで各ウィンドウをペイントします。 そこで決められた店を積み重ねることは保たれず、窓はメニューに達しません レイヤー。 最大のペイン上のナブのリフトは、同じ塗装レベルを使用していますので、 メニューにとどまる 実際のChromeで確認:ピン留めされたパネルの端の窓そしてストリップの端 (1440の890px)、リフローせずにパネルオーバーレイ、2,000以降 フォーカス クリック (1300 を過ぎたカウンター) MUI のデフォルトレイヤーのメニューはまだ 窓の上にペイントします.
· kamo-internal
Nav の横に最大化します
全体のビューポートを取るために使用される最大化されたツールウィンドウ。 ナビゲーター 列とそのタブストリップは、ドックの積み重ねレベルで(0,0)でピン留めされたものでした。 両方の navs を上回るので、最大化されたウィンドウを読んだメンバーは到達できません 逃げるまでのナビゲーション。 NavTop と NavPri の右下にあるペインは今です。 ウィンドウ、 操縦者およびストリップは柵の端および棒の下で始まりま、から読みました 同じ2つのCSS変数 AuthedChrome はページ自身のコンテンツ ボックスを by オフセットします (paneGeometry.ts) なので、拡張されたレールはページとペインを一緒に移動します。 ナビゲーターとクリップスロット内のストリップスライドなので、 レールとバーの背後にあるのではなく、それらを渡るのではなく、すべての3つは、 窓のリード・レールのタイミングでレールトグル。 ウィンドウが最大化されている間、 nav はそれを操作する必要があります。 - PAGEに行くオプションは、最初に nav:page とすべてのウィンドウをアナウンスします 画面にはまだ六角頭として置かれます。そうしないと、ページが読み込まれる ペインの下。 すでに数えているページをクリックする: こちらのページをご覧ください。 - TOOL WINDOW を開くオプションは、そのツールをマークします: 'nav' で開きます。 そして、すべてのオープンパスが最大化するターンを通過する1つのファンネル: お問い合わせ 新しいウィンドウはペインをとり、古いウィンドウは六角頭に移動します ストアのスワップ、およびナビゲーターとタブは新しいウィンドウに従います。 そのバケット、ターミナルリスト、またはナビゲーターなしのツールを離れて。 ウィンドウがペイン(メンバーの呼び出し)を保持している間のみ適用されます。 と nav クリックの最大化は、直前に正確に動作します。 ルールは純粋です (navPaneRule.ts) と nav のみアナウンス (app/lib/navIntent.ts); **************** は、ベアツールで失敗します。:オープンまたはルータ。 ログイン nav の表面に書いて下さい。 カバー: navsのオプションとメニュー、設定、 コマンドパレット、ロゴ、カモモバイル、プランピル、NavTopのリンク、 鐘、Exec2Execボタン、インタラクションセンターの行。 同じ変更で固定されたフォールアウト: - レールのホバーピークとインタラクションセンター(パネルとバックドロップ)が座っています z 26-30 は 201 と クライミング のペイン下で、 nav が到達可能になったら BEHINDをオープンしました。 nav のレイヤーは、そのレイヤーが、そのレイヤーを上回っています。 一方が保持されている間、その順序(navLayerZ、useMaximizedPaneZ)を維持します。 - ナビゲーターの継ぎ目は、ポインターのxと同じ幅を計算しました。 ナビゲーターが0で始まりました。 ナビゲーターの左端からの対策 今、画面ではなく、ペインの共有で幅をキャップします。 - チェスとホールデムは窓からレイアウトを選びました。 最大限に活用されたときの内包 レールが広く、レールトグルに固定します。 彼らは自分自身を測定する ルート (useMeasuredBox, ツールに移動/共有する); メニュー それをそのように保ちます.
· kamo-shared-library
プラットフォームの権利を保持するメンバーをリスト
countHoldersOf はどのように多くの答えた。 Exec2Exec デスクは誰が必要か。 助成枠 一人では「机を働かせる」という間違った答えです。トップレベルの所有者が保持している すべてのプラットフォームはまったく行いません。そのため、この答えの1つの腕です。 そして、発信者は所有者と雇用チェックを追加します.
· kamo-internal
コンソールのエグゼクティブチャネル
顧客幹部とカモCRMの幹部間の直接ライン: チャット サポートウィンドウの半分は、チケットなし、ステータスなし、評価なし、キューなし。 ツールウィンドウ。 ドラフトガードがツールを解決するので、独自のディレクトリ 独自のフォルダーからファイル — チャット専用のツールで VACUOUSLY を渡します。 作曲家のtextareaはapp/components/chatに住んでいます。 したがって、クローズガードは 緑のダニから劣らず、手書き。 冒険ライン。 1行目の名前、組織、正式な職務名 名前を保持するために使用されること、およびBOTHの側面に - チャンネルのポイントは、 レターヘッドは、メンバーの年齢に当てはまる、誰かが書いていました。 異なる組織からのメッセージも。 メッセージの側面は計算されます 送信者のユーザ ID からレンダーに保存されず、保存された側は一度 気泡は、誤った側面に不可解に上陸しました。 ほとんどの役員は仕事を持っていません タイトルを記録したので、2つのフィールドは通常の視力であり、ダンシングはありません 分離器。 ナビトップ 鐘の左、固定クロムおよびdeliberatelyの NAV REGISTRY — このコードベースに "not movable" フラグがないし、 レジストリは、アイコンが非表示にする方法です。 自分自身をディスパッチ 会話は明示的に: ツールは 1 つのインスタンスでキャプチャされ、 propless open キャップされたツールは、ナビゲーションではなく、上昇するので、ボタンはそれ以外の場合は これまでインタラクションセンターの役員が開所した再発。 そのバッジ ビューアーの会話をカウントし、机の合計を決してカウントします。オペレータは 回答するすべての会話にパーティーをし、個人的な制御をクリックすることはできません 他の人の未読をクリア. インターアクションセンター チームメンバーの右にある7番目のバケットは、 プラットフォーム内のEXEC2EXEC ACCESSの所有者。 セッションではなく、ユーザーをリスト — 所有する組織と何も書いていない人 "Acme +3" に省略され、ツールチップの完全なリスト、title 属性および 行の aria-label で、ホバーなしで到達可能です。 ALL BUCKETSは両方 ストリップと保存環境の allowlist なので、 1 つの派生した一覧フィード すべての3つの読者とメンバーは、もはや見えないタブに復元されます Tabs の値を Tabs 値で指定するのではなく bounced。 ウェルカムメッセージ プラットフォーム全体に配置された最初の書き込み可能な制御 タブ。 バックフィルは、確認の後ろに座って、それが何をしたのかを報告します。 それはゲートされています EXEC2EXEC ACCESS はタブの右ではなく、押すと書きます 人々の会話へのメッセージ.
· SecurityService
ウェルカムメッセージを保存する
プラットフォームの挨拶は、プラットフォームの設定でExec2Exec上で最初に送信します 他のプラットフォーム全体の設定がすでに生活しているシングルトン。 /system-config の2つのキーではなく、2つの新しいエンドポイント 変更のポイント全体: シングルトンのGETには、フィールドフィルタはまったくありません — 許可されていない拒否 フィールドは書き込みのみを管理します。従って、 PLATFORM GENERAL を認めます どのゲートにもカモPBX ベース URL の運転者全員に渡します。 マスターアカウントID、アカウント名、管理者ユーザー、実演者、WSSエンドポイント、 抽出モデル id をプラスします。 1つのテキストフィールドは、交換する権利があります 他の2つのタブの場合。 Blank は null として保存します。: 設定されていないと設定されていないと同じです。 指示とバックフィルは、その状態のノップです。 対話が行われるMediaServiceでは、正しい自体が強制されます。 PlatformRightCoverageTest は、ENFORCED ELSEWHERE のファイルで記録します。 ゲートを握って下さい.
· MediaService
エグゼクティブチャネルを管理
聴衆のルールと券売機との会話、以下 SystemBugの形状:独自のパッケージ、独自のコントローラ、独自の可視性、および MediaSession/MediaObj は、すべて下で再利用しました。 何もない サポートキューを抑制し、チケット行なしのチャットは絶対に行いません お問い合わせ 適格性(Exec2ExecEligibility)は、トップレベルのorgまたはthe 彼らが署名しているものの所有者 - と "所有者"は2つの事実です。 TeamMember フラグと orgs.user id owner は、プラットフォームの org が 所有者が必ず旗を運ぶことなく所有。 プラットホームの右のゲート KamoCRM 側, canOperate は、セッションPlatformFacts を通過します, 決して AuthHelper.hasRight は、GD フラグをバイパスします。 それぞれのメッセージは、名前、org、公式のジョブタイトルを持ちます。 著者の id — メンバーは UNIQUE(ORG ID, USER ID) なので、既にid が既に 名前、永続的に、組織は誰かから書いている。 何もない 行にスナップショットされた。 プレーンメンバーは、すべての仕事のタイトルを持っていません。 正確にこの機能する人口のための正常な場合、従ってラインは2に分類します 分離器を追跡するのではなく、フィールド。 1つの会話、2つのアドレス(チャットIDとセッションguid)、ブラウザ guid を保持 — 作曲家のドラフトキー、未読キー、STOMP です。 トピック — 行が id によってキー化されます。 両方とも同じ行に解決します。 離れて縛られること。 セッショントピックだけでなく、メッセージファンを3つのフレームすべてを発表: トピックは、マウントされたウィンドウの購読のみがバッジが移動するまで失敗する方法です ページのリロード。 歓迎の著者は、意図的にセッションに参加しません。 プラットフォームシステムメンバーは、真の署名者であり、それらを結合する その1人の人間の未読のスナップショットへの展開に関するすべての会話。 同じユーザーのための2番目のメンバー行は、既存の読み取りポインタを運ぶ お問い合わせ 未読ルールはMEMBERで、この機能は1つのUSERの場所です いくつかあるので、新鮮なポインタはそれらから書かれていたすべてをカウントしました 初めての組織は、彼ら自身に対して未読の組織です。 適格性は目的の挨拶よりも広いです: orgの所有者は、 チャンネル, しかし、ウェルカムメッセージは、指定されたように、kamocrm's 独自のアドレスを、 メンバー紹介 DDL は手作業で (ddl-auto: なし, InitializerService undeployed) 、既に クラスターに適用される。********************はレコードです.
· kamo-shared-library
執行チャネルの基礎
顧客幹部とカモCRMの1つの永続的な会話 役員は、メンバーではなく、USERをキープしました。 誰が署名されているかにかかわらず、4つの組織を所有している人に従ってください 全員がメンバー ID として保存されているので、それぞれのメッセージレコードが 著者がそれを書いた組織。 - MediaSessionType.EXEC2EXEC(5) — 追加された、決して差し込みません。 列は @Enumerated(ORDINAL)。 Support TICKET のように整形しない: ステータス、キューなし、 いいえ 割り当て、閉じるものは何もありません。 -**************** — は、getSortOrder() から最後まで追加しました。 ordinal() を返します。 ANSWERSが机を守っているのは、誰が権利をも許さない 1。 2を閉じると、デスクをすべての役員に渡します。 - Exec2ExecChat、MediaSessionの衛星は、SystemBugは、 USER ID で UNIQUE を使う: "there は 1 つの Exec2Exec チャットのみです" はデータベースです。 慣例ではなく、レースを解決するものです。 NavTop ボタンと自動開いた 1 つのサインインで同じチャットを解決します。 - ChatMessageDtoゲイン メニュー リレー allowlist からコピーをコピーするので、 フィールドがブラウザーに到達しない すべて — ライブメッセージが表示されながら、履歴は正しく読み込まれます。 メニュー プラットフォームが最初に送信する挨拶。 - findChatMembershipsByMemberId 名 EXEC2EXEC. そのクエリはALLOWLISTであり、 社会的な会話ができる理由は、そのタイプを離れることです。 どこにも未読のカウントを表示しないで下さい.
· kamo-signer-monorepo
すべてのページの背後にあるorg'sの壁紙、およびそれに白いコピー
kamo-signは1つの白い分類された表面けれども平らな灰色を塗るでした。 今は再生します 組織の背景を招待 kamo-login、kamo-register、コンソール と カモメットはもうやってます — `backgroundImageCount` → `<themeBase>/img/bg/{n}.webp`、`backgroundOrder` は、1.2 s クロスフェードの 8 s の s の dwell を呼び出しました。 それは好ましい感情、404sの低下、そして6%でそれを上回るorgの第一次で停止します。 `OrgBackground` は @kamo/theme に住んでいます。 サイダーは5番目のハンドロールの1つではなく1つのコピーを持っています。 EVERYパスでスラグを解決 KAMO THEME REAPPLY: トークンが検証される前のレイアウトマウントなので、 送信者は最初の塗料で知られており、セッションの土地に一度だけ知られていません。 **orgに壁紙がないとき、すべてで何もレンダリング**、それに答えるすべてが `useOrgWallpaper()` を介して同じ事実にゲートされます。 ホワイトは `---background` の上にコピーします。 テーマのテナントは #ffff です。 見えないので、これは無条件の色でなければなりません。 4つのルートに取り付けられ、スクリーンの中にはありません。 フェーズは `motion.div` でラップされます。 `y` と変換された ancestor はブロックを含むので `position:fixed` レイヤー 後ろに立たずにトランジションで1つのスライドの中。 - **6%の色合いは、スクリムではありません。** 白 体 コピー 以上 `crm` の 壁紙 — 日照 ジャングル — 洗濯だけで1.6:1を測定し、kamo-loginの page-wide `rgba(2,0,36,0.2)→0.05`のみ 到達〜2:1; それは、すべての単語がフロストカードの中に座っているので、それで逃げます。 完了画面にカードがないため、暗くなるのは中央の放射状です レンダリングされたピクセルをサンプリングすることによって調整される勾配。 実際のテナント、各ラインに対して測定 今、AAをクリアします。: 見出しのための8.5:1、フッターの5.5:1、最悪の場合5.5:1。 -**完了画面が白色** — 見出しと3行のダウンロードヒント 報告されると、1つの表面と半分の修正がバグとして読み込まれているので。 - **ロゴは、テナントが選んだ色です。** `crm`'s は、黒色に近いです。 スクリムの下の写真。 テーマロゴは「オーバーレイカラー」をとり、アートワークをマスクします。 silhouette、同じメカニズムのkamo-loginとKamoMeetは、orgの独自のロゴオーバーレイのために使用 設定; 署名者は #ffff を壁紙が上がるとき正確に渡します。 - **ウェルカム画面の「メッセージ」カードは、フラットに「透明」**を洗う4%だった 背景 意図した近白色の色合い、写真96%以上、暗い引用で お問い合わせ 代わりに壁紙に #fff にミックスします。 -**パブリッククォートページ**は、独自の `---quote-primary` からチンをつけて、隠されても取得します `@media print` — 顧客ファイルがホワイトペーパーにとどまるもの。 その org alias は 読み アウト の の の の の の から `/public/<alias>/` は `QuoteMapper.themeAsset` が既にビルドしている、 フィールドを `PublicBranding` に追加し、 2 つの Java サービスを再デプロイするのではなく スタイルシート。 print ルールは `html[data-kamo-wallpaper]` セレクターをフルで繰り返す 特異性:メディアクエリは、どれも独自のものを追加するので、バール `.quote-page` には負けない 画面ルールは透明ページを印刷します。 ライブテーマの Bucket から `crm` と `sign-pink` に対するブラウザーで検証 — 歓迎、 同意、文書のワークスペースおよび完了 — レンダリングされたピクセルから測定されたコントラスト 目玉よりも.
· kamo-internal
カテゴリページを終了 — 幅、1つのバック矢印、実際の単語
3つの管理者がタブのネストされたタブの中に座るように書いていました。 ページの先頭へ 彼らが今持っているスペースを必要としている自分自身。 - 構成は560pxでそれ自身をおおわれた、従って2つのスイッチはほとんどののコラムに坐ります 横に広い画面の空の。 それらは幅を埋める格子であり、 それぞれ360px以下の1つの列に戻ります。 - 2つのバック矢印が同じ場所で指摘 - パン粉の1つ、片側 タイトル。 トレイルはトレイルとして読み込まれます。矢印は唯一の「バック」です。 - Doc Types は、その中に何も残らずに最も多くの組織が配置されているタブです。 空の状態、そのトグルツールチップとその5つのエラーメッセージは翻訳されていない 日本語 English 空の状態は読者にすでにボタンをクリックするように指示しました スクリーン; は、ドキュメントタイプが代わりにあると言います。 - 2つのボタンはMUIのデフォルトのアッパーケースでシャウトしていました。 カテゴリを読み込み、効果内で状態を同期的に設定しません。 React Compiler ルールは、cascading のレンダーとして拒否し、retry は、 代わりにクリックからトークン。 そこにいる間、フェッチはアンマウントを解除します.
· kamo-internal
カテゴリーはテーブルであり、それぞれが自分のページとして開きます
/settings/features/docs は 8 つのタブを運びました: 一般に、各マウントされた 7 つ 異なるターミナルに対して同じ3つの管理者。 1つの画面の7つのコピー、 そして、そのうちの4つは間違ったことを編集しました。 ImageAssocType が6つの定数だったときに、オーディナルが書かれていました。 採用情報 定数とそれらに明示的な ID を 3 から 7 に CALL RECORDING に移動させ、それらを与える ページは気付く方法がなかった:「コール録音」がラベル付けされたタブは編集されました MY DOCS, "マイドキュメント" MEET RECORDING, "メットレコード" SYSTEM WIDE, 「システムワイド」VM RECORDING、CALL RECORDINGは到達できませんでした。 何も失敗しません, 常に有効なカテゴリーであるため。 一方、あったカテゴリ この組織のthirty-six docタイプが実際の作業をしたタブを与えられたことはありません このページが全く開かなかったロアンに座っています。 そこで、ページは2つのタブになります。 一般的には、文書の管理が何であるかを言います。 カテゴリー ORGANIZATION は、DocsService が提供するすべてのカテゴリの表です。 enum自体から、フォルダ、ドキュメントタイプ、定義されたタイプ、スタック注文と それぞれに保管される文書。 行は、自分のページとして開きます メニュー 電話プロバイダーが行う方法 — パン粉 テーブル、同じ勾配ヘッダー、および構成/ Doc のタイプ/に戻る パネル内でネストした灰色のタブではなく、注文を実際のタブとして積み重ねます。 URL は、enum NAME を、正式に行わないので、今日保存されたリンクは存続します 次の定数を誰かに与えます。 過去の方法でこの修正を小さくする: - 一般タブは「説明」「カテゴリ見出し」をレンダリングし、 「Categories Body」 — プレースホルダが入らない - 設定の起動パッドと設定メニューには、すべての7つのデッドタブがリストされています。 - ドキュメントの種類が適用できないカテゴリ(マーケティング資料)がなくなった Doc Typesタブを提供しています。 ドキュメントタイプが単にオフになっているのは、 スイッチの横に、誰かが何もしないタイプを定義するのではなく、スイッチの横にある。 - AssocTypeSettings は古いネストされたタブバーを保持し、発信者が残っていない.
· DocsService
それらを定義するenumからドキュメントのカテゴリを生成します
ドキュメントの設定ページは、独自のカテゴリに名前付けられ、それが信じられている元のものを送ります それぞれが持っていた。 ImageAssocType が 6 つの定数だったとき、これらの規則が書かれました 長い; 定数を追加し、それらに明示的な ID が CALL RECORDING を動かしました オリジナル3~7、ページが気付くことはありません。 「コール録音」をラベル付けしたタブ MEET RECORDING を編集し、MY DOCS を編集しました。 「Meet Recordings」は、System WIDE,「System-Wide」の編集を行いました。 VM RECORDINGとCALL RECORDINGは到達できませんでした。 何も失敗しないので、 ordinal は、常に有効なカテゴリです。 メニュー enum自体の一覧で答える を定義するので、オーディナルと名前は常にここに残し、発信者 どちらを推測する必要はありません。 フォルダやドキュメントタイプがオンになっているときのカテゴリ または組織設定テーブル — 正確に「設定する何か」 配管としてのみ存在する協会をドロップします(バグスクリーンショット、画像 フレーム写真、ジョブアプリケーション上の履歴書) 各行は、設定テーブルのショーのカウントも運びます: 定義された doc 型と 有効で、順序を積み重ね、貯えられる文書。 グループ化された3つのorg-wide読み取り カテゴリごとのクエリではなく、メモリを1つリクエストでテーブル全体を埋める このページでは、 thirty-nine が以前に必要とされているページ.
· kamo-signer-monorepo
署名されたコピーメニューのコンパクトなトリガー
送信者のエンベロープリストと割り当てられたパッケージの任意のテーブルには、ヒーロースロットではなく、行があり、 ラベル付きピルは1つに合いません。 `iconOnly` は、SAME のメニューをベアダウンロードアイコンから開くようにします。 代替手段は、すべてのタイトなスペースで別注の単一ファイルのダウンロードでした。これは「ダウンロード」方法です。 署名されたコピー」は、最初の場所で3つの画面で3つの異なることを意味するようになりました.
· kamo-signer-monorepo
§7001(c) 開示は、コードと20〜2言語で出荷
`@kamo/esign-core` は、消費者の開示そのもの — 6 つの句、すべての言語を運ぶ 送信者の名前を記入するために、製品サイン、および `consentDisclosure(locale、ブランド)`。 お問い合わせ kamo-signerの辞典; それは2つの理由のためにここに属します。 TWO表面に表示され、 電子メールのリンクの下の署名者は、同じことを示すメンバーと同じ単語に同意しなければなりません プラットフォーム内のドキュメント。 VERSIONED: `CONSENT DISCLOSURE VERSION` が書かれている 受取者の行に承諾時間に記入し、完了証明書に印刷されるので、 「開示を承諾した」という特定のテキストの名前は、翻訳パイプラインがなければできない バージョンをバンプすることなく単語を復活させることができます。 そのため、ワーディングを変更すると、ESigService の EsignCertificateService の version が組み込まれています。 古い証明書は、古いバージョンを命名し続けます。 公開のステップは、レジストリが取る資格のいずれかを受け入れます。 NPM PUBLISH TOKEN は、 kamo-js の使用と 12016 の実行が失敗したもののベアアートークンは、その秘密が存在します。 kamo-js では、このリポジトリにはありません。 GIT CLONE TOKEN は、このリポジトリが持つ、Forgejoユーザです。 トークン; パッケージレジストリは、BASICのauthとしてのみ受け入れ、ある場合、401バールに答える 熊手として送信され、スキームが問題だったと言うことは何もない。 それは最初にベアダーを、落ちます 基本に戻り、何かを造る前に「npm whoami」でクレデンシャルを証明する 公開できないクレデンシャルは、`pnpm publish` 内の 3 つのステップの後に失敗するのではなく、と言うことを公開できません.
· ESigService
完了証明書と署名された記録の3つのコピー
フラットなパイプラインは、名前、電子メール、 会員ID、タイムスタンプ、キャプチャ方法、IP、ユーザーエージェント。 ルーティングなし、同意なし、同意なし 配達か眺めのタイムライン、署名された文書のハッシュ無し、ページ番号無し — 従って読者は言うことができません 彼らがそのすべてを保有していたかどうか - 実行されたPDFのインサイドだけ存在し、パーティー 自分の証拠がそれで得ることができないと思った人。 `EsignCertificateRenderer` は証明書を描画します: envelope と両方の指紋、パーティー ルーティング順序で、そしてパーティー全体ストーリー - 役割、署名順、ステータス、それらがどのようにあったか 認証、招待状からシグネチャ、IP、デバイス、キャプチャ方法、および どの言語で受け入れられる承諾の開示。 それはBOTHの場所で使用されます:フラット パイプライン 実行されたドキュメントにこれらのページを追加し、'EsignCertificateService` は同じページを提供しています。 スタンドアローンPDFとして。 目的の1つのレンダー — 2番目の実装は、監査の2番目のセットです 最初に解散できるステートメントと、監査記録の1つが決してできないこと 自分自身を矛盾する。 証明書は、保存されることはありません。 それに対するすべての事実は、受信者に既に耐久性があります そして、シグネチャの行なので、保存されたコピーは、階段に行くことができる秒だけになります。また、 今日に署名された封筒は、誰が尋ねる初めてのフル証明書を取得します。 **************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** sender のダッシュボードと内部 API を zip として `both` でコピーします。 `/signed-document` 滞在 配信メールから既にリンクされているため、他のサービスにシリアル化されています。 生の欠陥が起きたテストが2つあります。 - `Map.of` は null VALUE で NullPointerException をスローし、null 値を持つ 1 つのリクエストは ブランチが存在しているのは: 完了していない封筒は PDF を実行していないので、 in-flight envelope の `?what=both` は、zip の代わりに 500 であった 証明書。 今の半分が存在しているのは、誰かに固定されたシグネチャを追いかける 監査記録が必要な方 - zipは、解凍ではなく保存されます(メンバーは既に圧縮されたPDFファイルです)エントリ ソートされたので、同じ入力は同じバイトを生成し、誰がそれをチェックサムすることができます。 ザ・オブ・ザ・ それらをカウントするのではなく、両方のメンバーをPDFとして解析するテスト: 間違ったCRCでストアドエントリー ファイルのように見えるゴミに解凍します。 (それにスペースがないので、単語のみのラッパーはそれを端から動かします)、不在なタイムスタンプを述べます 線を省略するのではなく、明示的な em ダッシュ — "Signed: —" とすべての行は異なる ステートメントは、それらのうちの1つだけは証拠であり、身体の後に「ページのn」をスタンプします。 体が終わるまで、誰もmが何であるかを知りません。 現在、レンダーされたロケールを運ぶので、レコードは20〜2 §7001(c)の翻訳は、実際に読む署名者を開示します.
· kamo-shared-library
記録WHICHの承諾は受理者およびその言語を開示します
`consentedAt` は、誰かがボックスを刻んだレコードです。 15 U.S.C. §7001(c)は特定のもののリストです 消費者は、BEFOREの同意に伝えなければならない - 紙と手数料の権利、撤退方法 それらの費用、同意カバー、連絡先の詳細を現在の状態に保つ方法、およびそれらに対する費用 レコードを読み、保持するために必要なハードウェアとソフトウェア。 その言葉は、翻訳されます 20~2つの言語が変更されるため、改訂後の証明書は変更されます。 署名者が以前のものを受け入れていた間、それ以外の場合は、CURRENT開示を記述します。 レコードが名前をつけない言語。 `consent disclosure version` と `consent locale` は、ESigService が現時点で書かれています。 第一の受諾と決して過度に - 署名リンク再投稿の同意を再オープンし、再投稿 どの単語が現在のかへの古い受諾は、これらの列が防止するために存在するものの1つです。 ライブクラスター(ddl-autoはどこでも`none`)の手によって適用されるDDL: ALTER TABLE esign envelope recipients ADD COLUMN EXISTSの同意がない場合 disclosure version varchar(32); ALTER TABLE esign envelope recipients ADD COLUMN EXISTSの同意がない場合 locale varchar(16); 両方とも無効であり、それらが存在する前に同意した行は「記録されない」として読み込まれます 彼らが見ていないバージョンを与えているのではなく、証明書.
· kamo-signer-monorepo
アプリとホワイトラベルの両方のサイン面がついに塗装
署名 UI は 2 回存在しています。ここでは、kamo-internal の法的実行ウィザードに手作業で対応します。 両方向に漂流した2つ。 @kamo/esign-core`、`@kamo/esign-ui`、 `@kamo/doc-render` は、Forgejo レジストリにビルドしてプッシュしたパッケージを今公開しています。 repo の CI と kamo-internal はフォークの代わりにそれらを消費します。 合併は、より良い半分を取った それぞれ: kamo-internal's ストア (フォーマット検証, 保存は `localStorage` ではなく、 DELEGATEDとNOT YETの理由 コンポーネントはPROPSとして文字列を取る — 2つのアプリは翻訳します 2つの異なる辞典のうち、独自のキーを選ぶコンポーネントは1つだけに住んでいることができます。 私たちの欠陥、そしてそれらのいずれかが他の人の2を引き起こしました。 - ※本アプリのMUIボタンは透明です。** `AppProviders` が渡された `enableCssLayer: true` なので、`@layer mui` にすべての MUI CSS が上陸しました。 `@tailwind base` によって非層化され、レイヤー化された CSS は、その特異性を問わない。 測定される: `.MuiButton-containedPrimary` 計算された `background-color: rgba(0,0,0)` と `color: rgba(0,0,0,0.87)`。 つまり「同意して続行」は、文句としてレンダリングされ、「キャンセル」と 「Adopt & Sign」は、灰色のテキスト読みの2つの実行として互いに隣接しています。 正確に報告された方法。 プレライトの `p { 余白: 0 }` は、同意カードの `mb` を打つ 同じ理由で、そのページのすべてが一緒に走った理由です。 kamo-internal は常に Emotion キャッシュを未層にマウントし、全てを一度に固定します。 - **ロゴは壊れたイメージでした。** 「ThemeLogo」は、このアプリが動作する `/img/logo-full.svg` に戻りました。 送信者の場所にあるブラウザのトーンページグリフは役立ちません。 今、歩く .png のマークが `.svg` リクエスト、404ed、および そこで停止 — `sign-pink` はまさにその org) であり、何も解決しないと org's を描画します。 トークンが組織に名前を付ける前に、またはまったく名前を付けない。 - **ファビコンとタブのタイトルは決して設定されていませんでした。 ダイナミクスメタローダ 計算された `const slug = orgSlug ||getThemeSlug()` ONCE、任意のトークンが持っていた前に、効果ボディで 検証済み: `````。 'KAMO THEME REAPPLY` リスナーは、オーガスWASを招待する瞬間を上げました 既知で、同じ `''` のクロージャを再実行し、ガードで返されます。 config.json は 署名経路をまったく取得しません。 今のところ解決する, ではなく、顔文字のREPLACE とりあえず、タイトルは「Sign - {Org Short Name}」です。 実際のテナントに対して検証: `Sign - 署名ピンク`、4 つの org の favicons、.png のマーク、および `-color-primary: #452d4e` 到達 タブ、チェックボックス、ボタン — MUI パレットは `var()` を保持できないため、すべてのブランド軸受け コンポーネントは明示的にポイントされます。 -**言語ピッカーは、エンドウズムの一覧に世界中であったので、誰にも読まれない署名者 ラティナスクリプトは、目的には何もありませんでした。 今、同じテーブルと同じ絵文字のフラグとネイティブ名 kamo-internal's NavTop としてフォントスタック。 歓迎と同意画面にも表示されます。 署名者がすでに英語の開示を読んでいた後、TopBarのみに到着します。 ダウンロードは、実行された文書、証明書のいずれかが提供されたすべての3つのコピーを提供します。 完了、または zipped (`/api/sign/download?what=`) の両方。 証明書は証明書の半分です 人への署名を属性とするレコード。半分以上のPDFハンドのみを渡す 何も証明しません。 同意ゲートは、現在、6つの条項15 U.S.C.§7001(c)は、消費者が表示されるように要求します BEFOREの同意、そしてそれが同意で乗り出しでレンダリングされたロケールは、証明書 20〜2回の翻訳が実際に読み込まれた状態にすることができます.
· kamo-signer-monorepo
署名の日付フィールドをレンダリングし、 readOnly は何かを意味します
3つの変更は、最初の作業のみが新しい作業です。 **`signature date`** は、署名者のサインを瞬時に満たすフィールド ESigService です。 誰が時計が設定可能で、パーティーが持つ1つの値であるブラウザは決してありません 法的な機器に誤認するインセンティブ。 そのため、コントロールがない: 署名者は、セッションの独自のロケールからフォーマットされたWILL、ロックされた日付を表示します サーバのフォーマットと同じ2つの値と同じ2つのタイムゾーンがスタンプされた日付です。 プレビューと実行されたドキュメントは、同意できません。 **`readOnly` はここで装飾されました。** それは設計形にあります、それはスイッチです kamo-internal のプロパティ パネルと ESigService の FieldCompletion は、それを奨励します。 InteractiveField は見たことがありません。 通常のフィールドとしてレンダリングされた読み取り専用のフィールド 署名器を自由に入力でき、必要なnessが強制されないため 読み取り専用フィールドで、フリータイプの値がチェックされていないページ上の1つの値だった 文書に押印される前に。 **signStore は、必要に応じて読み取り専用フィールドを数えています**、つまり 1 つを運ぶ封筒 SERVER が同じ投稿と見なされる間、コントロールなしで箱に お問い合わせ このファイルのkamo-internalのポートは、既に 正確に修正するために掘り下げられました。2つは再び合意し、両方ともFieldCompletionにマッチします.
· kamo-internal
署名の日付フィールドと、電子メールが何もなかったときに送信
**「送信」は「配信」と同じものではなく、そのダイアログは決してそう言っていません。** ESigServiceは、すべての招待状メールの結果を破棄したため、メールが送信された それでも「署名のために送信された文書」を却下しました。今日報告された正確な失敗は、 受取人が書類を待つことがなかった場所。 ダイアログは現在、何を読み込みます 実際に報告され、招待状が残っていないとき、警告を上げる ステイスアップ、アドレス名、および送信するのではなく、再送信ボタン自体を運ぶ 別のタブの行を見つけるために送信機をオフにします。 **表記日** シグネチャーツールの新しいツール。 サイダーは制御のための示されません it: サーバーは、署名した瞬間に日付を、自分のタイムゾーンで書きます。 組織のロケールは、実行されたPDFが署名できないと言います ブラウザの時計。 デザイナーがロックされていることを示します。必須/読み取り専用/検証はありません。 設定(存在しない入力についての質問です)、 署名者は、WILLが運ぶ日付を確認します。セッションの独自のロケールとゾーンからフォーマットされます。 そのため、プレビューとドキュメントは同意します。 すでに壊れていた3つのこと: - **`readOnly` は、両方の署名 UI で装飾されました。** 旗は設計図で、それです プロパティパネルのスイッチとESigServiceはそれを奨励しています。 InteractiveField は今まで見たので、普通にレンダリングされた "read-only" フィールド サイダーを自由に入力できます。 何も強制力がないため、 読み取り専用フィールドで、フリータイプの値がチェックされていないページ上の1つの値だった 文書に押印される前に。 -**kamo-signer's SignStore は、必要に応じて読み取り専用フィールドをカウントしたので、パッケージ 1つを運ぶことは決して完了できませんでした — 終わりは無効にされ、「次の分野」 投稿完了。 kamo-internal's ポートは既にこれを修正しました。 2 つは今一致しました フィールドコンプレッションで、それぞれ別のフィールドで。 -**Nothingは一緒にフィールド語彙の3つのコピーを保持しました。** 二人は言う 「PORTED VERBATIM, diverge しない」を自分のヘッダにし、それを強制しない。 一つだけに追加された型は、他の場所でバーテキスト入力としてレンダリングします。, 静かに, すべてのレンダーがデフォルトのブランチを持っているため。 今ラチェットがあります。 send ダイアログは、各受信行にバインドするサイダー スロットとともにラベルをつけ、 テンプレートがすでにピンを誰かに固定するスロットを準備します。 結合はPOSITIONによって、 スタッフは、スロットを全く見ていないので、二人のパーティーテンプレートでのみ決定 雇用主のブロックを手に入れ、従業員の名が起きた人 最初は、画面に何も言わない.
