# TODO

## Pending (R16 残件)

- [ ] R16-B03: `LabeledTextField` label 100pt 固定幅 → `minWidth/maxWidth` + `minimumScaleFactor` で多言語対応
- [ ] R16-B09: `CreateCardFlow` username TextField `.fixedSize(horizontal: true)` 削除 → `maxWidth: .infinity`
- [ ] R16-B11: `SimpleWriteView` TextFields に `.submitLabel(.done)` + `.onSubmit { performWrite() }` 追加
- [ ] R16-D02: `WriteEventUploader.enqueue` 並行 upload Task — `isUploading` ガードを enqueue パスにも追加
- [ ] R16-A17: `NFCReader.parseRecord` の `DispatchQueue.main.async` 削除（session が既に `.main` キューで動作）
- [ ] R16-A19: `CardModeRootView.editTokenTask.cancel()` を inner view onDisappear → root Group onDisappear に移動
- [ ] C-06: `TeamClient` のネットワーク呼び出しに `timeoutInterval = 15` 追加（現状 URLSession デフォルト 60s）
- [ ] C-07: `ToolFormHelpers` の `parts.joined()` → `joined(separator: " ")` で多言語住所区切り修正

## Pending (R11 残件・軽微)

- [ ] C-01: ToolFormView God object 分割 (30+ @State) — 将来リファクタ
- [ ] C-05: UserDefaults keys散在 — 現状衝突なし、将来コンソリデーション推奨
- [ ] B-07: TeamMode価格ハードコード円記号 — StoreKit経由取得への移行推奨
- [ ] A-02: NFCReader @Published非アトミック更新 — 実害報告なし、将来モデル整理で解消

## Pending (旧)

- [x] C-04: UserDefaults keys duplicated verbatim across NFCTool and ReviewTap
      → Extracted to `UDKey` enum in `UserDefaultsKeys.swift` in each app ✅ 2026-04-21

## Infrastructure / Future

- [ ] Phase 2: Supabase primary storage (NFC data architecture v2)
      → Ref: `memory/nfc_data_architecture_v2.md`

## Completed (this sprint)

All A-01〜A-12, B-01〜B-13, C-01〜C-10, D-01〜D-15 bugs resolved or accepted.
See `bug-list.md` for full status.

Round 3 fixes (2026-04-21):
- A-11: restoreSession auth timeout (withTaskGroup race)
- A-10: HistoryView consecutive rewrite history drop
- D-12: HistoryManager iCloud KVS trim loop infinite risk
- C-08: WriteEventUploader blocked-scheme guard dedup
- C-10: ToolFormView dual onAppear merged
- B-10: HistoryView wrong navigationTitle key
- B-11: HistoryView ResultBanner tab bar overlap
- B-13: BusinessGroupDetailView active tab non-interactive
