KamoPBX実装計画(プログラム+9フェーズ)
段階ごとの1つの計画に分解される;単一の計画は作り出しません エンドまでの作業ソフトウェア。 完全なビット サイズ TDD の細部: フェーズ0インフラゲート(ファイアウォール、TURN-TLS、ポートテーブル) フェーズ1フォークとビルド(5リポジトリ、CI、画像) フェーズ2シングルゾーンスタック(実際の呼び出し...
レコードKamoPBXの決定 — KAZOOは、K3m1の配置、ACDc、層3の再ブランドを確認しました
6つの質問は答えました: 1. KAZOOはルートです;所有するハードウェア従って完全に取除かれる費用の組み立て。 2。 1つのノード/クラスターが、後で3つ — 1日からCouchDB q=8 (シャードカウント) DB作成時、n は後続、q は変更できません。 3。 スコープからTelnyx/FreePBXトランク...
SW5を閉じる
6つの出発。 一番シャープ:タスクブックプロキシはコピーできませんでした PATCH と PUT をエクスポートする引用プロキシ — 動詞のコピーは 毎回読まれた作品を作り、次から405を保存します。 また、再構築前のDDLを適用したレコードは、カタログバージョンを回避しました ウィンドウ全体: 41 から 10 分...
BaseLosControllerの不正()/禁止()は存在します
タスクブリーフは、それらのヘルパーが発明され、発明されなかったことを実装者に語った 存在します。 requireOrgId は本物ではありません。これらの 2 つは、保護されたことを宣言しました BadRequest/notFound/conflict と一緒に BaseLosController 上で静的です。 Qu...
PBXロールアウトヒットを記録
Settings model が新しい enum 値であるカタログ行をシードする 古い共有ライブラリでは、どのサービスでも読みやすく、getCatalog は読み込みます。 1つのクエリでアクティブなアドオン - 1つの悪い行は、すべてのカタログをダウンします。 公開価格設定ページやウィザードの注文など。 仕様の注文...
SW4のクローズアウトを復元し、階段のワークツリー編集に失われた
前のコミットは、この計画のオンディスクコピーを編集しました。 出荷されたセクション — そのセクションは、スクラッチパッドのコピーとランディングに追加されました そこで、作業樹がなかったから。 ファイルの編集 したがって、123行を反転しました。 4136abc2から回復し、DDL警告はトップに再適用しました.
DDL を適用すると、40001 ウィンドウが開きます
カタログ版を埋め込むと、古いものを保持するJDBC接続をプール それぞれのクエリが SQLState 40001 に失敗すると、Hibernate は 再試行しないので、500人としてユーザーに達します。 今日測定: 41 に 10 分 3つのサービス全体で、15分以内にゼロ。 それをクリアするリスターティングは、待...
SW4を閉じる
ナイン出発。 最も重要である2:このプランの自己レビュー 型を3ヶ所に一貫して主張し、一貫した 間違った; D4テストは両方に渡されたある気質学でした 削除されたガード。 また、cp -alビルドコピーのレシピがソースを隔離しませんでしたレコード.
QuoteConversionResult.orderUid は、UUID ではなく文字列です
注文はBaseEntityを拡張し、idは長いです。引用、引用語句だけ QuoteLineItem は BaseUuidEntity を拡張します。 UUID と独自の宣言 Self-Review は 3 つの場所を渡ってタイプが一貫したことを主張しました。 お問い合わせ コンパイルされていない。 19桁のユニーク ...
SW4の辞書の鍵は、辞書リポジトリに着陸します
タスク6aのファイルリストは、kamo-internal/messages/en.jsonという名前で、 gitignored とコミットできません。 ステップの偽物が正しい; リスト ではなかった.
SW5、フラットレートタスクブックを計画する
ラインが労働の持続期間を運ぶことのないスペックの前提は時間通りに行きました 以前 — SW3 は、ServiceLineItem に labourMinutes と TaskCode を上陸させました。 javadoc は、このサブプロジェクトが参加する Thing に名前を付けます。 ほとんどの形状は、すでに小売カ...
メールボックスの課金とメールボックスのバックエンドを計画する
3のBとCを計画 自己レビューは5つのギャップを閉鎖しました:何もset mail cost mode、 何もサーバー側は、メールアドオンを購入する請求グループを停止し、請求書 mailbox-count カラムはタスクがなかったし、Plan C の OAuth はサイレントに壊れた サービスコンストラクタ独自のテスト...
仕様を修正 — StorageAutoExpandSweep は既に存在する
仕様は、サーバー主導の量が再使用するために存在し、 ストレージの自動展開列をデッドとしてリストしました。 両方 false: sweep は読み込みます それらを夜に、メールボックスのコンシラーの正しいモデルです.
電子メールの請求とアドオンのgatingをデザインする
シートではなくメールボックスによるビルズメール、ゲートプロバイダの選択 それをカバーするアドオンに、各メールボックスを課金に属性を付けます 支払うべきグループ。 また、作業が実行される2つの隣接するギャップをカバー:is primaryはユニークです 会員のみで、メールボックスを主張する2番目のメンバーは、 誰にでも...
SW4 の動作を市場を超えた引用符で定義する
タスク 1 は create() を読み取り、marketUid ではなく、バックフィルを行わないので、すべての引用符 現時点ではまだヌル市場があります。 コンバーターは戻りに落ちなければなりません 投げるのではなく購入LineItem — 投げることは変換をします 現在、システム内のすべての引用では不可能です。 関...
SW4の請求先の選択は、
所有者の呼び出しと正しいもの:各期間の保守契約者請求書、 資本設備のインストーラーは、前方を請求します。 任意のハードコード 選択はテナントの半分の間違った量を請求し、注文の合計はです 実質の捕獲された支払。 タスク5a(ORgPOSConfigカラム)とタスク6a(制御)を追加し、 ログイン タスク 6 のコントロ...
Plan SW4, quote to order conversion
Five defects, not the spec's three. The converter deliberately does NOT mint a Commitment: processOrderPaid returns immediately when one exists, so hand-creatin...
チャットのスイッチャーの列が元に戻ったものを記録
左から一番痛いものを注文。 最初のエントリは価値のあるものです メディアサービスから見たことのない、スイッチャの6つのバケットの5つ そのエンドポイントを通してページ.
SW3を閉じる
プランから13発。 最も重要である2:OrderLineItem .discountType は文字列でなく、以前に DDL をエクスポートする必要があります。 DEFAULT unique rowid() を継承する 3 つの外部キーを適用する — それぞれは、null にとどまるのではなく、ランダム ID を発明し...
正しい SW3 の ServiceJob のインポートと PROCUREMENT トラップのピン
タスク2 インポート dao.beans.account. アカウントと dao.beans.organization .組織図 実際のパッケージはアカウントとorgsです。 コンパイル。 タスク 6 の support() は EngagementType.SERVICE を直接マッチし、決して一致しなければなりま...
SW3プランのポリシーテンプレートクレームを修正
タスク 6 は、RetailInventoryPolicy の実装メンバーとして指摘しました 注射形状をコピーするポリシーファミリー。 それは決してインスタンス化されず、 決して注入されない — RetailService の参照が 無関係列。 家族全員がデッドコードなので ServiceFulfillmentPoli...
計画 SW3、サービス作業ドメインコア
ServiceJob 1..N ServiceFulfillmentOrderの兄弟として訪問し、満たされた ServiceLineItem、4つの分類軸、およびステータスマシン 何も変更した200に答える代わりに投げる。 工程5は生産に対してKamoInitializerを動かし、所有者にゲートされます 確認: d...
SW2を閉じる
4つのタスク、プランから5つの出発。 一番鋭い: 計画の所有物 制限事項 マスクスニペットは、nullのdayOfWeekをフィルタアウトしました。これは、'everyy 日 ' — マスクを空にし、マスクをサイレントに無効にします。 週1日を使わずに設定された子組織の制限.
SW2プランで2つのエラーを修正
Rsync のレシピは、mtimes — ファイルを保存する bare 'rsync -a' を使用した 以前のバージョンに復元された .class よりも古いバージョンが既に到着 後者からコンパイルされるので、Maven はそれをスキップし、テストの練習の stale バイトコード。 タスク1の有効化中にこのビット:...
SW2を計画し、3つのカレンダーの修理
研究は1つの点で仕様を修正しました:再発は両方で死にません 終わり。 UIは、今日のカレンダーページでレンダリングし、サイレントに何を捨てる 会員登録.
通知ピンフォローアップ、トリエード
33-taskプランの不良品、レビューとノンブロッキングによるすべての調達。 全ブランチレビューの4つの必須修正結果が修正され、リストされていない。 vitest.config.ts の不足している app/contexts/** で起動します。 残っているテストのほとんどがすべてで書かれているのを防ぎます.
それらを待っているのではなく、ソフトフォン測定を取る
過去30日間のPHONE CALL LOG、26の歴史全体で38の呼び出し。 ザ・オブ・ザ・ drop-then-redial 指紋は 4 組、すべてのプロビジョニング テストの呼び出しを見つけます 4月4日 そのため、落とし穴の欠陥は本物でしたが、その発生率はゼロに近いです。 2週間のテレメトリー待ちはデータポイント...
プランサービス 作業の最初の権利と商取引許可ギャップ
実際のコードに対する2つの仕様の仮定を修正: RoleRightなし タイプの使用 メニュー (全36商取引の権利はPOSを利用し、 エディタは厳密に平等でフィルタリングするので、タグ付けサービスはすべて41を残します 目に見えない)、およびRoleRightType.ts は、仕様の よりも 255 の 169 を保...
行ウィンドウが実行されるマーク
全8つのタスクを4つのリポジトリに出荷し、4つの非審美的な逸脱で 記録 — 最も重要なのは、タスク 6 のコール サーフェスが新鮮に書かれていたこと 同時セッションが2,078-lineファイルから抽出されるよりも、 DDL は、マップされる前にライブデータベースに応用されました.
決定記録を保持 — 18 ルーリングと誤った場合、各コスト
計画は出荷したものを記録します。この記録は、計画と異なる理由です。 3つのルーリングは、後でレビューによって自分自身を修正しました(ストライプ書き込み) カウントは15番→13番→16番→16番→20番、キーのルールは行きました 'every write' -> 'creates only' -> 'durable c...
KamoDesktopリンクはシングルユースです
コメントは、reload re-submits ?data= を返し、セッションを復元した。 それはいいえ 長いこと:リンクはタブが開く瞬間に費やされますので、それは価値がないです 歴史上または再オープンクローズドタブリストの後に、ポイントです。 カモのログインで土地をリフレッシュし、帰りの方法はこのアイコンです.
修正されたお金パスのバグを指示する計画を停止する
タスク8ステップ4は読者にキーの更新/荷物/取り外し/delに言いました 「キーの現在の意図」。 最終的なレビューに重大な欠陥があること 逆に: これらの呼び出しは、明示的なターゲット状態を設定しているため、安定したキーは、 静かに飲み込まれたノップに再発行する正当な再発行 — キャンセル、再活性化、 Stripe の...
ソフトフォン仕様の最大のオープン質問に答える
クラスターで検証されたライブ:すべてのFreePBX AORはmax contacts=1で remove existing=yes を削除します。 どのカモレポでも、その値が設定されていました。 チェックを外しました。そして、フェーズ2のデュアルレギュレーションリスク全体がオンになりました。 お問い合わせ そのため...
ソフトフォンガードレールの計画を実行
プレースホルダーの代わりに、実質のコミットのSHAと、チェックされた47のステップ。 完成品 未チェックの箱を放棄した作業として誤って表示する計画.
ソフトフォンラインウィンドウの実装計画
スペックは2つのサブシステムと最初の船舶の作業をカバーしているため、2つの計画 独自のソフトウェア。 ガードレールの計画は、新しい閲覧コンテキストを必要としない7つのタスクです。 beforeunload 確認, ツール:requestClose veto, セッションとしてカウントするライブコール 活動、BYEを細...
ソフトフォンラインウィンドウのデザイン
RTCPeerConnection を起動した後に、呼び出しをウィンドウに動かすことはできません。 そして、MediaStreamは閲覧コンテキスト間で転送できません。 サーバ側の呼び出しハンドルは再添付できません。 ですから、ウィンドウは 呼び出しを置いたこと、それは呼び出しではなくLINEを作ります。 Softph...
ディスパッチ/サービスワークプログラムの設計と証拠コーパスをコミット
どちらのプログラムの仕様と、すべての56の研究ファイルが追跡されていないとのみ存在する HANDOFF.md は 1 つのディスクで、次のセッションを最初に読み込むように指示します。 また、4つの所有者の決定を記録し、3つの主張を修正しました 実際のコードに対してチェックして false を見つけました。 - 'Bi...
BillingService、Share-library、APIService を横断する Webhook の硬化と出没を計画する
10 タスク、TDD 全体、重度が実際にあったものに休止 検証: ストライプのフェイルオープンはレイトnt (秘密はプロドに存在します, 38 バイト)と2つの小売のフェイルオープンは、今日は到達できません(0行で ******************** しかし、小売エンドポイントは本物です 最初に構成されたプロバイ...
静かな六角頭と通知背骨の実装計画
順序が負荷軸受けである5つの段階を渡る33のタスク:スキーマは動く必要があります サービスが列をマップする前に、サービスの前に公開されたライブラリ kamo-internal pins の前に公開されたビルドとツールコア.
静かの六角頭と表面面の通知の背骨のための設計
チャットウィンドウが最小限に抑えられ、メッセージを受信するたびに再オープンします。 六角頭 代わりにそれを吸収する必要があります - カウント、thump、置きたまま - 会話だけ ウィンドウが無く、自分の頭が現れない。 正直なカウントを作ることは、大きな半分です: 5つの会話の3 表面(ソーシャル、SMS、AI)は...
ウェブサイトのブランドスキャンの設計
/network/create ウェブサイトのフィールドがロゴ、カラー、 3つのブランディング手順に関する背景提案。 後で間違った取得するのは簡単です:なぜフェッチが持っている サーバ・サイドを全て(CORS、キャンバス・テイスティング、ページ所有) img-srcポリシーは、それぞれブラウザがそれをやっていることを...
実際にKamoDesktop SSOトークンの寿命が何であるかを修正します
「短命・単用」と「5分」というリンクをいいます。 トークンが URL の償還ウィンドウであったかのように設定される原因 デスクトップセッションの再接続ウィンドウです。 また、タブがなぜタブなのかを記録する は、スクラブベッドの1つではなく、フルURLで示しました。リロード?data= ログイン画面でデッドエンドの代わり...
Javaフィールドの注文がDDLキーの注文を制御しないレコード
実際に構築されたddl-auto中に渡されたコンポジットキーアサーション PRIMARY KEY (logical id, resource type, tenant id) — Hibernate のエミネーション @EmbeddedId 列 ALPHABETICALLY, 宣言順ではありません. ユガバイト 最初の...