# #024 Calendar v1.0.204 — 別ウィンドウの給与科目保存・重複タスク防止

Status: Candidate / NOT COMPLETED. Based on v1.0.203; Runtime BoneCalendar 1.0.93 (no unrelated changes). Formal UI #029/#048 etc unchanged.

## 再現済みの根本原因
- v203を**別ウィンドウ + 本物のBoneCalendar**で実行すると `ERROR: 補助勘定科目が不正です。`、控除欄が0行。旧QAはCalendar APIを単純なMockに置き換え、ウィンドウ間Object.prototype不一致を再現できなかった。
- `BoneCalendar`の `isRecord()` は opener Window の Object.prototype だけを許可。pop-up window の `m.subAccounts.push({ ... })` や `voucher` は、見かけが普通のJSONでも別realmなのでrejectする。

## v204対応
- **重要：元のv203には、タスク未選択の「伝票入力画面を開く」で `saveTaskFromManager` が走り、勝手にタスクを新規登録する処理が存在した。v204では自動保存・自動作成を撤去し、既存タスクを一覧から選択するまで別画面を開かない。**
- JSON文字列から `opener.JSON.parse` で opener 側の正しいrealmに復元し、Calendar APIへ値を渡す。対象は全4個の `setFinanceMaster()` と `upsertFinanceVoucher()`。他コンポーネントRuntimeを緩める変更なし。
- 読込JS/CSSは `finance-voucher.v204.js/css` の固定名、クエリ/ハッシュ無し。
- `saveTaskFromManager` で新規追加の同一フィールド・同一収支行がある場合、追加前に確認画面を表示。拒否したら既存タスクにフォーカス。過去データを削除・統合しない。通常の編集・異なるタスク・タスクグループ・一括処理を変更しない。
- すでに保存されている同じ日時/名称の複数タスクは**自動削除しない**。なぜ7件になったかは実データの発生履歴が無いと断定できない。

## 確認手順
- ZIPを展開し `install.bat` を実行。既存Calendarを開き直し、タスク管理 → 当該既存タスク → 「伝票入力」。新しい別画面で給与明細9行と控除のID選択2列が表示され、エラーが無いこと。
- 給与パターンを更新、差引振込額→伝票への反映、伝票保存後に対象タスクIDと件数が変わらないこと。
- 新規タスク画面から既存と完全に同じ日時・ラベル・区分を追加しようとすると重複警告が出ること（キャンセルすると既存を選択）。
- #024画面上の実ユーザーデータ7件は保持しているため、本人による内容の照合前に重複削除してはいけない。

## 未検証
Windows実機 install.bat、ユーザーlocalhost実データ、SQLite永続保存、#029/#048正式Runtimeの伝票レンダリング。Candidateを完了扱いしない。
