コンテンツにスキップ

2026年6月第1週 週次実装サマリー

  • 作成日: 2026-06-03
  • 最終更新日: 2026-06-03
  • 取得時刻: 2026-06-03T16:40:30+09:00
  • 対象週: 2026年6月第1週

目的

対象期間の git commit を根拠に、実施した作業を週次サマリーとして残す。未コミット作業や Issue ベースの推測は含めない。

情報源

  • git --no-pager log --since='2026-05-27T16:53:53+09:00' --until='2026-06-03T16:40:30+09:00' --date=iso-strict --pretty=format:'%ad%x09%s'
  • 対象コミット数: 438

対象期間

  • 2026-05-27T16:53:53+09:00〜2026-06-03T16:40:30+09:00

今週やったこと

商品カタログ表示・カードの統一(Storefront)

  • 商品一覧・検索結果・カルーセルのカードを単一の ProductCard / ProductListItem / ProductPrice に統一し、価格サマリーやバッジを再利用コンポーネントへ抽出。
  • 一覧・検索結果を variant 単位カードへ揃え、品番(SKU)・ブランド表示・割引バッジ・画像フォールバックを統一。
  • カルーセルのレスポンシブ対応(タブレット幅)とカード幅固定の仕様化。商品詳細に仕様のみ表示モードを追加。
  • モバイル UX 改善(署名パッド・検索オーバーレイ・CMS コンテンツのはみ出し修正、在庫切れ CTA の表示崩れ修正など、#916〜#921 系)。

ブラウズ・可視性・コレクション導線(Storefront / Vendure)

  • 「可視商品を持つ collection」の判定をバックエンドへ集約し、per-collection の可視性チェックを撤去して SSoT 化(性能・整合性向上)。
  • 多階層サイドバーの改善、ブランドページでの子孫展開、商品ページの 2 階層カテゴリ chip ドリルダウン対応。
  • browse のページング修正: totalItems を表示可能件数へ揃え、nextCursor を multi-batch でも正しく確定(深いページネーションでの取りこぼし解消)。回帰テストで固定。
  • ブラウズを可視子コレクションへ制限し、サプリ collection からスキンケアを除外。stale collection index に対する fail-closed ガードを追加。

価格計算・SMILE 価格マスタ・商業ルール

  • 標準売上単価の 0 と null(未設定)を区別し、¥0 への黙ったフォールバックを排除。
  • 定価(listUnitPrice)を上代単価から算出するよう修正。価格内訳の単価ラベルを sen→円へ変換。
  • 顧客別価格を client-only + batch 化してズレを根本解消し、解決前は skeleton 表示。CommercialPricingProvider の loading 固着バグを修正。
  • SMILE 価格マスタ検索の決定性確保・ゲスト顧客ガード、優先度(specificity)制御、数量正規化の中央集約。
  • カタログ表示での価格計算失敗を fail-closed 化し、engine の fail-open 経路を排除。ギフト処理を中央集約しキャンペーン選択型ギフトを実 order-line 化。
  • ハードコード 10% 税率を Vendure TaxRate SSoT へ置換(配送税率含む、#857)。
  • クーポン(手入力 Promotion)とキャンペーン(自動販促)の使い分けで Promotion を再有効化。適用キャンペーン情報を OrderLine に記録し SMILE CSV 出力へ対応。
  • 売上掛率クラス(Sales Rate Class)の専用管理・詳細ページ・顧客サイドブロック・手動管理を追加。

SMILE 連携・インポート

  • インポート進捗のリアルタイム表示(パーセンテージ)と協調的ソフトキャンセルを実装。
  • 価格計算で DB の正規化列を唯一の正本とするよう修正。回収方法からの顧客ステータス自動派生を廃止。
  • SMILE 生データの JSON ビューアを Dashboard に導入(デバッグ・データ監査用)。
  • インポート履歴の進行中行で発生する React #185 を解消。

Dashboard(React Dashboard)

  • 価格マスタ UI を視覚的な price ladder へ刷新し、商業ルールシミュレータを改善。
  • Content Volume 専用 UI(フォールバックヒント付き)、ポリシー管理 UI の整理(スタンドアロンの set 一覧を非表示化)。
  • variant 詳細での数量別単価表示、ギフト適用 UI の調整。PriceMasterGroupList のキャッシュ衝突を transformQueryKey で修正。

チェックアウト・認証・カート・在庫

  • 支払い方法をバックエンドの eligibility 駆動に変更。ログイン・パスワードリセットの UI/UX 改善とサーバーエラー時の sessionStorage パスワード保持。
  • パスワード処理を Vendure 標準サービス(UserService.updatePassword / CustomerService.update)へ委譲。
  • カート合計数量上限(RTM-073)と購入単位(x 個単位)をサーバー側 OrderInterceptor とカードで強制。AddToCartButton の SSoT 化、在庫連動(stockLevel SSoT)。

配送・出荷

  • 配送日計算の営業日オーバーライド(Business Day Overrides)対応と境界テスト拡充。
  • 送料無料しきい値を shipping mode 単位にスコープ化し、Dashboard から編集可能に(#851〜#858)。直送のサーチャージ/最低料金/告知も Dashboard 編集対応。
  • 送料無料プログレス計算を整数演算で安定化。直送モード切替 UI を一時無効化。

メンテナンスモード・UI primitives

  • メンテナンスモードを KV SSoT 化し、Dashboard / Storefront を統合。rich text 対応とバイパスサポート。
  • shadcn/ui ベースの Empty primitive 導入と EmptyState 刷新、Spinner primitive 追加と busy 表示の統一、Dialog の配置統一とフルスクリーン variant、loading 中の skeleton 化(CLS 改善)。

検索インデックス・可観測性

  • グローバル buffering を無効化し検索インデックス反映を即時化。browse L2 キャッシュを catalog 変更時に即時無効化。
  • collection 検索インデックスの整合診断・修復を追加し、整合チェックからソフト削除 variant を除外。
  • readiness チェックの遅延測定・per-check timeout、起動時 schema drift audit 完了でのゲート、Redis クライアント再利用による安定化。Vendure logger の環境解決を SENTRY_ENVIRONMENT SSoT へ統一(#862)。

セキュリティ・堅牢化

  • consent 取り消しの IDOR ガード強化とタイミングサイドチャネル対策。worker-api の内部エラー詳細マスキング、顧客画面への内部向けテキスト露出の排除。
  • 認証分類・カート安全性・コマースプロキシ・worker エッジ障害の hardening。Redis セッションキャッシュ障害時のログイン graceful 化。
  • osv-scanner の HIGH/CRITICAL 既存脆弱性を解消。production への破壊的一括同期(drift sync)を物理的に禁止。
  • seed mutation を production signal 優先で拒否、assertSeedMutationAllowed 導入。可視性スキャンエラー時の fail-closed 化。

デプロイ・インフラ

  • Fly のリリースフェーズ安全性強化(release_command_timeout、fail-closed、到達不能時の version verify fail-fast、schema 不変 deploy での pg_dump スキップ、health gate)。
  • Sentry リリースマーカーを verify 前に作成し、CLI 認証で補完して失敗が deploy を巻き込まないよう修正。
  • Worker deploy を単一共有エントリポイントへ統合し冪等化。staging/production deploy で Sentry DSN を必須化、AWS secrets を Cloudflare deploy の nx target でハイドレート。
  • buildx 永続ビルダー・local registry cache・BuildKit local fs cache 等でローカル deploy を高速化(一部は prod push 回帰のため revert/default-off)。staging DB snapshot/restore レシピ追加。

CI・品質ゲート

  • develop→main 昇格ゲートの安定化(format / CT codegen 依存 / GHA dist / esbuild decorators / dry-run guard env)。promote-main から promotion-core・shellcheck を除外、vendure-db-dry-run-guard を常時必須化。
  • 購入フロー(銀行振込・代引き・再注文)の staging smoke 検証を追加し、smoke 系を non-blocking(continue-on-error)化。performance smoke をクリティカルゲートから分離。
  • per-job 固定費削減(partial clone・冗長な nx cache レイヤ削除・workflow validation の整理)、mise tool cache の develop/main フォールバックで cold-start 再ダウンロードを修正。

Nx リモートキャッシュ自前化

  • 自前ホストの Nx remote cache サーバー(Cloudflare Worker + R2)を実装し、CI を Nx Cloud DTE から自前 R2 remote cache へ切替。

テスト基盤

  • storefront / dashboard / plugins のユニットテスト・カバレッジ拡充(cart・customer provider・policies/campaigns utils・visibility browse 制約・consent service 中核分岐)。
  • unit/spec の実時間 sleep を fake timer 化しガイドライン整備、e2e retry ロジックの共有ヘルパ集約、RequestContext の共有テストファクトリ新設、mock SSoT 統合、ProductListItem 等の visual regression テスト追加。
  • products ページの性能計測 e2e を追加・詳細化。

リファクタ・dead code 整理・SSoT 集約

  • contract パッケージに custom field label マーカーを SSoT として集約。observability の trace/log 型を @ritsubi/contract へ、通貨フォーマット・文字列正規化を @ritsubi/utils へ、env を @ritsubi/config へ集約。
  • ESM パッケージの相対 import を .js 拡張子付きに統一。inventory OrderInterceptor の factory 化、Worker ハンドラの共通化(ループバック判定・GraphQL プロキシ・ログ)。
  • 価格系・未使用 import・空 runtime.ts/env.schema.ts・createBullMQConfig・役目を終えた script 等の dead code を削除。codegen 出力ファイルの untrack 化。

マイグレーション・運用診断

  • migration の 13 桁クラス名を強制し命名規約を正規化、self-heal で正名既存の重複 True* migration 行を削除。release フェーズで migration と structural-repair を統合。
  • Diagnostics プラグイン(運用ヘルスチェック自動化)と diagnostics CLI・just レシピを追加。

WordPress・サポートページ・依存更新

  • wordPressStoreSettings GraphQL フィールドを ritsubi-ec-plugin へ追加。サポート固定ページ解決を URL パス→WordPress URI へ統一し slug 固定マッピングを撤去。/support/contact を公開パス化。
  • @vendure/* を 3.6.4 へ更新し、graphql を 16.12.0 へ dedupe。

ドキュメント

  • 価格計算ロジック・SMILE 連携・カタログ性能(per-collection take=1 廃止・L2 browse cache・N+1 除去)・fail-closed 方針・dogfooding 出力ポリシー(一時ディレクトリ使用)・手動スクリーンショット命名規則・Dashboard トラブルシュート・本番 image fallback 等を更新・追記。前週(2026-05 第4週)の週次サマリーと進捗 index を更新。

補足

  • 次回 weekly の集計開始時刻は、この 取得時刻(2026-06-03T16:40:30+09:00)を基準にする。
  • 対象週取得時刻 の JST 日付(6月3日 = 1〜7日帯)で第1週と判定した。
  • 期間内に merge / docs / changeset / CI / security / migration といった機能実装以外のコミットも多数含むため、これらも作業として要約対象に含めた。
  • 件数が多いため件名の単純列挙は避け、テーマ単位で全件を回収する方針で整理した。