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
TaxRateSSoT へ置換(配送税率含む、#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 化、在庫連動(stockLevelSSoT)。
配送・出荷¶
- 配送日計算の営業日オーバーライド(Business Day Overrides)対応と境界テスト拡充。
- 送料無料しきい値を shipping mode 単位にスコープ化し、Dashboard から編集可能に(#851〜#858)。直送のサーチャージ/最低料金/告知も Dashboard 編集対応。
- 送料無料プログレス計算を整数演算で安定化。直送モード切替 UI を一時無効化。
メンテナンスモード・UI primitives¶
- メンテナンスモードを KV SSoT 化し、Dashboard / Storefront を統合。rich text 対応とバイパスサポート。
- shadcn/ui ベースの
Emptyprimitive 導入とEmptyState刷新、Spinnerprimitive 追加と busy 表示の統一、Dialogの配置統一とフルスクリーン variant、loading 中の skeleton 化(CLS 改善)。
検索インデックス・可観測性¶
- グローバル buffering を無効化し検索インデックス反映を即時化。browse L2 キャッシュを catalog 変更時に即時無効化。
- collection 検索インデックスの整合診断・修復を追加し、整合チェックからソフト削除 variant を除外。
- readiness チェックの遅延測定・per-check timeout、起動時 schema drift audit 完了でのゲート、Redis クライアント再利用による安定化。Vendure logger の環境解決を
SENTRY_ENVIRONMENTSSoT へ統一(#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拡張子付きに統一。inventoryOrderInterceptorの 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・サポートページ・依存更新¶
wordPressStoreSettingsGraphQL フィールドを 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 といった機能実装以外のコミットも多数含むため、これらも作業として要約対象に含めた。
- 件数が多いため件名の単純列挙は避け、テーマ単位で全件を回収する方針で整理した。