Skip to content

[自動レビュー 2026-04-29] 日次コードレビューによる自動修正 - #5

Draft
stewroux wants to merge 4 commits into
mainfrom
claude/review-2026-04-29-auto-fixes
Draft

[自動レビュー 2026-04-29] 日次コードレビューによる自動修正#5
stewroux wants to merge 4 commits into
mainfrom
claude/review-2026-04-29-auto-fixes

Conversation

@stewroux

@stewroux stewroux commented Apr 29, 2026

Copy link
Copy Markdown
Owner

概要

日次コードレビュー(2026-04-29)で発見された問題のうち、自動修正可能なものを対応しました。

修正内容

セキュリティ修正

コード品質修正

CI / 開発環境セットアップ(新規追加)

  • .github/workflows/ci.yml — Push / PR時に以下を自動実行:
    • Node.js 20 セットアップ
    • npm install
    • npx tsc(TypeScript型チェック)
    • npm run build(Viteビルド)
  • .claude/hooks/session-start.sh — Claude Code on the web セッション開始時に npm install を自動実行
  • .claude/settings.json — SessionStart フックを登録

未対応(手動対応が必要)の問題

Issue 内容 理由
#1 APIキーのクライアントバンドル露出 アーキテクチャ変更(サーバーサイドプロキシ導入)が必要
#2 プロンプトインジェクション(根本対策) サーバーサイドでのバリデーション実装が必要
#3 外部CDNのSRI未設定 Viteビルドへの移行判断が必要

テスト確認事項

  • 10MB以下の画像ファイルが正常にアップロードできる
  • 10MBを超えるファイルでエラーメッセージが表示される
  • 文字数カウンターが正しく表示される(最大100文字)
  • やり直しボタン後の再アップロードが正常に動作する
  • .env ファイルが git status で追跡されないこと
  • GitHub Actions CIがPR時にグリーンになること

- .gitignoreに.envファイルを追加(APIキー誤コミット防止)
- .env.exampleを追加
- ImageUploader: 10MBファイルサイズ上限バリデーション追加
- App.tsx: URL.createObjectURLのメモリリーク修正
- App.tsx: 主題説明フィールドにmaxLength=100追加(プロンプトインジェクション軽減)
- geminiService.ts: console.errorを開発環境のみに制限

Fixes #2 #3 #4
- .claude/hooks/session-start.sh: npm installをリモートセッション開始時に実行
- .claude/settings.json: SessionStartフックを登録
- .github/workflows/ci.yml: TypeScript型チェック + Viteビルドを自動実行

CIはpush/PR時にnode 20でtsc --noEmitとnpm run buildを実行する
setup-node の cache: 'npm' はpackage-lock.jsonが存在しないと
エラーになる。ロックファイルなしで動作するよう設定を修正。
- tsconfig.json: "vite/client"をtypesに追加
  → import.meta.env.DEVがTypeScriptで認識されない問題を解消
- vite.config.ts: GEMINI_API_KEY ?? '' でundefined対策
  → CI環境で.envがない場合にJSON.stringify(undefined)になるのを防止
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant