M1完了監査
監査日: 2026-05-13
成功条件と証跡
| 要件 | 証跡 | 状態 |
|---|---|---|
| PNG/WebP読み込み | src/App.tsx, src/lib/imageLoader.ts | 完了 |
| 拡張子許可リスト | src/lib/imageValidation.ts の .png / .webp 判定、scripts/verify-m1.mjs | 完了 |
| MIMEを参考扱い | src/lib/imageValidation.ts はシグネチャ優先、MIME不一致は警告のみ | 完了 |
| ファイルシグネチャ検証 | PNG signature、WebP RIFF/WEBP/VP8系チャンク検証 | 完了 |
| サイズ制限 | 50 MB、8192 x 8192 px、67,108,864 pxを IMAGE_LIMITS に定数化 | 完了 |
| アニメーション画像拒否 | APNG acTL、WebP VP8X animation flagを拒否 | 完了 |
| 安全なデコード | createImageBitmap で実デコードし、シグネチャ寸法と実寸を照合 | 完了 |
| RGBA正規化 | Canvasへ描画し、PNG Blobへ再エンコード | 完了 |
| PixiJS表示 | 正規化PNG URLのみをPixiJS stageへ表示 | 完了 |
| 日本語UI/エラー | src/App.tsx, src/lib/imageValidation.ts, npm run lint | 完了 |
| 悪性入力テスト | scripts/verify-m1.mjs が非対応拡張子、壊れた画像、巨大画像、APNG、animated WebPを検証 | 完了 |
| 依存関係追加なし | package.json にM1追加依存なし | 完了 |
| 顔トラッキング未採用 | onnxruntime-web, @mediapipe/tasks-vision なし、npm test | 完了 |
実行した確認
npm testnpm run lintnpm run security:checknpm run license:checknpm run buildnpm run tauri -- build
M1で意図的に未実装
.motion2dprojへの内部UUID保存はM6で実装する。- Rust側ファイル保存、プロジェクト保存、ZIP処理はM6以降。
- パーツ分割、メッシュ生成、リグ編集はM2以降。