Commit 1dccc2c
authored
## Summary
- Fileパケット(clusterSize=0)でアートワークデータが抽出できないバグを修正 (#57, #58, #59)
- 5スキル並列レビュー(CodeRabbit, requesting-code-review, simplify, Codex
adversarial-review, TDD)を3ラウンド実施し、発見された全問題(T1-T23)を修正
### 主な変更
**バグ修正**
- `clusterSize=0` のFileパケットからバッファ末尾までをデータとして読み取るよう修正
- `requestData` がFileパケット応答で resolve しないバグを修正
- CUEデータパーサーの `cueStart` offset を仕様書通り byte 47 に修正
- `ipToNumber` の空セグメント検証漏れ(`"192.168..1"` 等)を修正
- `CueData` から `loopOutTime` を削除(byte 46-49 が CUE 1 開始 byte 47 と重複するため)
- converge 後のサブネット外 Master OptIn で `this.server` が上書きされる信頼境界退行を修正
- `connectToAdapter` (switchAdapter経由) の pre-connected パスにもサブネットチェックを追加
- `disconnectSockets` で共有ソケットの重複 close を排除
- 通常 assembler パスと fileChunks パスの両方で `readAssembled` 後の data null
チェックを追加
**信頼性向上**
- `handleFileChunkPacket` メソッド抽出で `receiveUnicast` のネスト深化を解消
- `fileCollectionTimeout` (200ms) に加え `requestTimeout`
を全体上限タイマーとして設定し無限蓄積を防止
- `maxFileChunkBytes` (10MB) によるメモリ上限を追加
- `TCNetDataPacketArtwork.readAssembled` に JPEG SOI マーカー (0xFF 0xD8)
検証を追加
- `resolveAdapterByRemoteAddress` に try-catch (IPv6防御) と重複サブネット曖昧性検出を追加
- `getClusterEnd` ユーティリティ関数でバッファ末尾計算ロジックを統一
**テスト (+10件, 269テスト全パス)**
- `ipToNumber` エラーケース6件、`listNetworkAdapters` エッジケース3件
- サブネットフィルタ(connected / pre-connected)、重複サブネット曖昧性検出
- `totalPackets=0` の単一/マルチFileパケットアセンブリ、requestTimeout上限
- JPEG SOI 検証(不正データ reject)
- テストの private アクセスを `configureMockBroadcast` ヘルパーに集約
### 破壊的変更
- `CueData.loopOutTime` を削除(byte 46-49 が CUE 1 と重複し信頼できない値のため)
## Test plan
- [x] `npx vitest run --project unit` — 269テスト全パス
- [x] lefthook pre-commit フック全パス (typecheck, build, test, lint, format)
- [x] 実機テスト: Bridge + CDJ 環境でアートワーク取得を確認
1 parent 01ab150 commit 1dccc2c
13 files changed
Lines changed: 1076 additions & 122 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
1 | 3 | | |
2 | 4 | | |
3 | 5 | | |
| |||
22 | 24 | | |
23 | 25 | | |
24 | 26 | | |
25 | | - | |
| 27 | + | |
| 28 | + | |
26 | 29 | | |
27 | | - | |
| 30 | + | |
28 | 31 | | |
29 | 32 | | |
30 | 33 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
630 | 630 | | |
631 | 631 | | |
632 | 632 | | |
633 | | - | |
| 633 | + | |
| 634 | + | |
634 | 635 | | |
635 | | - | |
636 | | - | |
637 | | - | |
638 | | - | |
| 636 | + | |
639 | 637 | | |
640 | 638 | | |
641 | 639 | | |
642 | 640 | | |
643 | | - | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
644 | 647 | | |
645 | 648 | | |
646 | 649 | | |
647 | | - | |
648 | | - | |
| 650 | + | |
| 651 | + | |
649 | 652 | | |
650 | 653 | | |
651 | 654 | | |
652 | 655 | | |
653 | 656 | | |
654 | 657 | | |
655 | 658 | | |
656 | | - | |
| 659 | + | |
657 | 660 | | |
658 | 661 | | |
659 | 662 | | |
| |||
909 | 912 | | |
910 | 913 | | |
911 | 914 | | |
912 | | - | |
| 915 | + | |
913 | 916 | | |
914 | 917 | | |
915 | 918 | | |
| |||
918 | 921 | | |
919 | 922 | | |
920 | 923 | | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
921 | 929 | | |
922 | 930 | | |
923 | 931 | | |
| |||
0 commit comments