diff --git a/conductor/tracks/metadata_promotion_20260624/plan.md b/conductor/tracks/metadata_promotion_20260624/plan.md index e3af2a92..18b4fcd2 100644 --- a/conductor/tracks/metadata_promotion_20260624/plan.md +++ b/conductor/tracks/metadata_promotion_20260624/plan.md @@ -95,21 +95,23 @@ **Focus:** `FileItem` is already a dataclass (`src/models.py:533`); migrate the consumers. -- [ ] **Task 2.1** [Tier 3]: Migrate `src/aggregate.py` FileItem consumers. +- [x] **Task 2.1** [Tier 3]: Migrate `src/aggregate.py` FileItem consumers. - WHERE: `src/aggregate.py:418,421` - WHAT: `item.get('custom_slices', [])` → `item.custom_slices`; `item.get('content', '')` → `item.content` - HOW: `manual-slop_edit_file` per site - SAFETY: Run `tests/test_aggregate.py` + `tests/test_file_item_model.py` + the new per-aggregate test files -- [ ] **COMMIT:** `refactor(aggregate): migrate FileItem access sites` (Tier 3) -- [ ] **GIT NOTE:** Migrated ~5 FileItem access sites. + - **RESULT:** No-op. Audit confirmed `item` is `Metadata` dict (file_items parameter is `list[Metadata]`), NOT `FileItem` dataclass. Per spec FR2, dict-style sites that read from external sources are collapsed-codepath. No migration needed. +- [x] **COMMIT:** No commit (no code changes). [no-op] +- [x] **GIT NOTE:** Audit-only. 8 tests pass + 1 env-var skipped. No migration needed. -- [ ] **Task 2.2** [Tier 3]: Migrate `src/ai_client.py` and `src/app_controller.py` FileItem consumers. +- [x] **Task 2.2** [Tier 3]: Migrate `src/ai_client.py` and `src/app_controller.py` FileItem consumers. - WHERE: `src/ai_client.py:2565,2807,2898`; `src/app_controller.py:3508` - WHAT: `fi.get('path', 'attachment')` → `fi.path`; `f['path'] for f in file_items` → `f.path for f in file_items` - HOW: `manual-slop_edit_file` per site - SAFETY: Same as 2.1 -- [ ] **COMMIT:** `refactor(ai_client,app_controller): migrate FileItem access sites` (Tier 3) -- [ ] **GIT NOTE:** Migrated ~5 FileItem access sites across 2 files. + - **RESULT:** No-op. Same as Task 2.1 — `fi` is multimodal content dict (not FileItem dataclass). `app_controller.py:3508` accesses already-converted strings. All FileItem dataclass consumers (in app_controller.py:3231-3237, 3401-3408, gui_2.py:369-378, 977-984) already use direct field access. +- [x] **COMMIT:** No commit (no code changes). [no-op] +- [x] **GIT NOTE:** Audit-only. No migration needed. ## Phase 3: Migrate `CommsLogEntry` consumers (~30 sites, 3 commits)