コンテンツにスキップ

2026年5月第3週 週次実装サマリー

  • 作成日: 2026-05-20
  • 最終更新日: 2026-05-20
  • 取得時刻: 2026-05-20T17:00:37+09:00
  • 対象週: 2026年5月第3週
  • 作成者: Claude (claude-sonnet-4-6)
  • レビュー者: 未設定
  • 承認者: 未設定

目的

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

情報源

  • git --no-pager log --since='2026-05-13T16:58:53+09:00' --until='2026-05-20T17:00:37+09:00' --date=iso-strict --pretty=format:'%ad%x09%s'
  • 対象コミット数: 277件

対象期間

  • 2026-05-13T16:58:53+09:00〜2026-05-20T17:00:37+09:00

今週やったこと

SBPS 決済機能の拡張

  • 取消・返金の連携実装: Vendure キャンセルイベントに SBPS 取消/返金 API を連携し、Dashboard に状態表示を追加した(#634)。
  • 部分返金: 部分返金 API・mutation・UI を実装し、ダッシュボードから操作できるようにした。
  • カード登録: カード情報登録スキーマ・custom fields・migration・UI を追加した。
  • pay_type の自動判定移行: SB_PAYMENT_DEFAULT_PAY_TYPE 環境変数を追加し、pay_type を注文レーンタイプ(orderLaneType)ベースの自動判定へ移行した。決済シミュレーター側にも同フラグを反映した。
  • contract パッケージへの型追加: SBPS capture payment のスキーマと型定義を @ritsubi/contract に追加した。

配送システムのゾーン化・スケジュール整備

  • BrandShippingRule → ZoneShippingRule 移行: ブランド単位の配送ルールをキャリア×ゾーン体系(ZoneShippingRule)に置換し、hardcode キャリア料金表・デフォルト送料直書き定数・フォールバックを除去した。
  • 送料無料閾値・carrier 列・brand 検証の修正: H2/H5/M3/M5/L1 などの料金表を修正し、一括保存と対象者条件 item へのラベル追加・ユニーク制約を加えた。
  • 配送スケジュールロジックの集約: 配送日程算出ロジックをシミュレーターとともに一箇所に集約した。
  • 配送ゾーンの細分化: ゾーン定義をさらに細分化し、ログイン失敗通知の複数アドレス対応もこの変更に含めた。

予約注文の分割チェックアウト(Split Checkout)

  • 実装完了: 在庫予約注文の分割チェックアウトを実装し、注文に split_checkout カスタムフィールドカラムの migration を追加した。
  • Storefront 側の修正: 分割チェックアウトで発生していた storefront 側の不具合を修正した。
  • 仕様・コメントの更新: reservation spec および checkout コードコメントを分割チェックアウトの設計に合わせて更新した。

Storefront 検索・カタログ・ブラウズの強化

  • 専用検索ルートとカタログページの実装: 検索結果ページ UI、専用検索ルート、コレクションカタログページコンポーネントを実装し、ブラウズクエリの最適化(streaming)と Sentry span 計測を追加した。
  • コレクション階層ナビゲーション: 3 階層コレクション下のブランド別商品グループ表示と階層型ヘッダーメニューを実装し、CMS 由来のレガシーコレクションリンクを新形式へ正規化した。
  • ブラウズページネーション: ブラウズページに pagination を実装し、商品フェッチロジックを統一した。
  • vendureFetch のエラーハンドリング改善と fetch リトライ: 一時的なネットワークエラーに対してクエリを 1 回リトライするようにし、エラー処理を強化した。
  • HMR-safe QueryClient シングルトン: Vite HMR 環境での QueryClient 重複を防ぐシングルトンパターンを実装した。
  • その他の修正: カタログコレクション説明の safe HTML レンダリング、単一配送方法でのチェックアウト許可、HSTS レスポンスハードニングを追加した。

ブラウズ可視性キャッシュの最適化

  • 匿名ブラウズ用キャッシュ共有: visibleProductsForBrowse キャッシュを匿名ブラウズトラフィック間で共有し、browse hydrate を並列化してフォールバックフェッチを適応的に推測するようにした。
  • TTL 拡張とメトリクス: キャッシュ TTL を 30 秒に延長し、hit/miss/evict メトリクスの emit を追加した。

Dashboard UI 日本語化・ポリシー/RBAC UX 改善

  • 英語ラベルの日本語化: キャンペーンビルダー、policy-rule-form、RegroupSection、SBPS 決済ブロック、プレビュースタブなど Dashboard 全域の英語混じり UI 文字列を日本語化した。
  • ポリシー / 表示制御 UX 改善: policy check block・表示制御関連 editor の UI と UX を複数回にわたって改善した。
  • 配送スケジュール・セキュリティログの RBAC: 配送スケジュールとセキュリティログに細粒度 RBAC を実装した。
  • Sentry フィードバックウィジェット削除とリッチテキスト検証追加: Dashboard から Sentry フィードバックウィジェットを削除し、リッチテキストフィールドのバリデーションを追加した。

i18n(国際化)の整備

  • ja.po lint スクリプト追加: 翻訳不備(英語 msgstr 残存)を自動検知する lint スクリプトを実装した。
  • lingui extract 同期と catalog スクリプト改善: カタログスキャンのバグ 3 件を修正し、lingui extract 同期スクリプトを改善した。
  • 翻訳統一: ja.po の英語 msgstr を日本語に統一し、i18n カタログの refresh も実施した。

価格ルールエンジンの拡張とパフォーマンス改善

  • Facet ターゲティングと isDefaultRate 層の導入: 価格ルールに Facet ターゲティングと isDefaultRate フラグを追加した。
  • M:N findOne の Slow DB Query 修正: relationLoadStrategy:query を Customer findOne と M:N find の計 4 箇所に適用し、Sentry で検出された Slow DB Query を解消した。

オーダーライン不変履歴の保護

  • snapshotProductName / snapshotSku の追加: OrderLine に商品名と SKU のスナップショットフィールドを追加し、受注後の商品変更・ロールバックが履歴を汚染しないようにした。軟削除済み商品でのレポート生成不具合も修正した。
  • 受注済み商品のロールバック防止: 受注に参照されている商品のロールバックを防ぐバリデーションをプラグインに追加した。

SMILE 統合の改善

  • audit ログへの actor 表示名解決: SMILE 統合の audit ログに実行者の表示名を解決して記録するようにした。
  • Aggregate 注文の CSV エクスポート除外: SMILE CSV エクスポートフィルターから Aggregate 注文を除外した。
  • customerStatus による顧客条件ターゲティング: SMILE グレードターゲティング用に customerStatus を顧客条件タイプとして追加した。

AWS SES・メール基盤の整備

  • prod/staging ID 分離と Secrets Manager SSoT 化: SES ドメインを ritsubi.co.jp へ移行し、prod と staging のメール送信 ID を分離した。Secrets Manager を SSoT として文書化した。
  • SES 設定の統合と環境変数バリデーション強化: AWS SES 送信設定を統合し、環境変数の検証ロジックを強化した。
  • メールテンプレートとインデックスの追加: 検索インデックス改善とあわせてメールテンプレートを追加し、ログイン失敗通知の複数アドレス対応も実装した。

CI/CD・デプロイパイプラインの大規模改善

  • Nx Cloud リモートキャッシュの有効化: workspace 69825b493d71bbcac69184b3 で Nx Cloud リモートキャッシュを有効化し、トークンを NX_CLOUD_ACCESS_TOKEN_RW(保護ブランチ)/ NX_CLOUD_ACCESS_TOKEN_RO(PR)で分離した。Docker build 内での Nx Cloud を無効化して副作用を防いだ。
  • PR ゲートの二層化: 重いジョブ(integration test など)を merge queue へ移動し、PR ゲートを smoke に絞って高速化した。週次 CI タイミングレポートを Slack 通知で追加した。
  • reusable workflows 抽出: vendure-quality・push-develop 用 analyze など複数の reusable workflow を抽出し、CI 全体の保守性を高めた。
  • Blacksmith ランナーへの移行: 残存ジョブを Blacksmith ランナーに移行し、Copilot 関連ステップを整理した。
  • 並列化・シャーディング: dashboard-pages-smoke をマトリクス並列化、integration test を 2 シャードに分割、I/O バウンドジョブを 4vcpu に格下げ、統合テストの並列ワーカーを有効化した。
  • Storefront/Dashboard デプロイの修正: VITE_PUBLIC_* などのランタイム値を Workers secret bulk から除外し、Dashboard admin API の canary デプロイを正規レシピへ統合した。production で wrangler secret bulk をスキップして Worker バージョン汚染を防いだ。
  • preflight・promote の修正: pre-deploy drift audit 追加、production preflight の finalize-failure 修正、production promotion で最近の git ancestor イメージへのフォールバック追加。

セキュリティ・観測性

  • Sentry フィルタリング強化: 不要なイベント(dashboard auth probe の 403 など)を SDK レベルで除去し、Sentry metrics experiment を有効化した。
  • CSP・SES ドメイン整理: ritsubi.co.jp への SES ドメイン移行にあわせて CSP と Sentry 設定を整理した。
  • Core Web Vitals メトリクスの統合: Sentry を用いた Core Web Vitals(LCP・FID 等)の計測を Dashboard フォームセーフティ強化とあわせて実装した。

DB・検索基盤の近代化

  • pg_trgm 標準化・pgroonga 廃止: pg_trgm を正式な全文検索基盤とし、pgroonga サポートを削除した。PostgreSQL 17 を前提とした。

tsconfig・ビルド設定の整備

  • @ritsubi/contract パスエイリアスの統一: 全 tsconfig の @ritsubi/contract パスを packages/contract/src/index.ts へ統一し、TypeScript 6.0 向けの baseUrl 復元・ignoreDeprecations 追加も実施した。
  • ビルド設定品質標準への整合: packages 全体の tsconfig build config を品質標準に合わせ、lint で検出できる build config バリデーターを追加した。

テスト・品質

  • Dashboard フルページ smoke suite: SSOT ルートインベントリに基づく Dashboard 全ページ smoke スイートを追加した。
  • Playwright CT / E2E の安定化: checkout complete テスト追加、order detail smoke の customer-less 注文除外、password change テストのリファクタリング、E2E ルート発見の改善など。
  • storefront クイックオーダーロジックテスト追加: quick order ロジックのユニットテストと E2E をリファクタリングした。
  • customerStatus テスト充実: plugins の customerStatus 関連テストを拡充した。
  • trivy スキャンの最適化: pre-push スキャンを secrets/config 限定にして高速化し、キャッシュディレクトリを skip するよう設定した。
  • Lighthouse CI 廃止: Lighthouse CI を正式廃止した。

ドキュメント・運用

  • Storefront ハードニング仕様の追加: Cloudflare Worker 統合・ランタイム auth guard の設計を文書化した。
  • Sentry Web Vitals モニタリング仕様追加: Web Vitals 監視仕様と operations guide 更新を実施した。
  • CI/CD ドキュメント整備: PR-smoke vs merge-queue-full 二層ゲートの解説、Nx Cloud トークン運用ルールを文書化した。
  • トラブルシューティング記録: TypeORM DISTINCT パターン(#674)・fetch retry 設計(#675)・Sentry N+1 根本原因(#673)を troubleshooting ドキュメントに追記した。
  • バックログ再編・計画ドキュメント更新: CI/CD・storefront バックログを専用ファイルへ移動し、PLAN.md・ACC チェックリストの進捗スナップショットを更新した。
  • ops レシピ追加: manual-deploy just レシピ・AI フレンドリーな env-status コマンド・local disk 削減スクリプトを追加した。

リリース・マイルストーン

  • 0.5.0 リリース: develop ブランチで 0.5.0 をリリースし(#595)、developmain へ promote した。

補足

  • 次回 weekly の集計開始時刻は、この 取得時刻 を基準にする。
  • 対象週 は 1〜7日=第1週、8〜14日=第2週、15〜21日=第3週、22〜28日=第4週、29日以降=第5週の固定ルールで判定した(2026-05-20 → 第3週)。
  • 記載内容はコミット件名ベースの要約であり、merge commit・docs・CI・tooling 変更も週内作業として含めている。
  • 277 件全件をテーマに回収済み。