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)、developをmainへ 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 件全件をテーマに回収済み。