conductor(plan): Mark Phase 1 (Ticket migration) as no-op complete
Phase 1 audit confirmed no Ticket dataclass access sites need migration:
- Ticket dataclass consumers in _spawn_worker, mutate_dag, and
multi_agent_conductor.run already use direct field access
- The t.get('id', '') style sites operate on dicts
(self.active_tickets: list[Metadata], topological_sort returns list[dict])
- These dict sites are correctly classified as Metadata collapsed-codepath
per spec FR2
35/35 tests pass. No code changes needed.
This commit is contained in:
@@ -66,21 +66,23 @@
|
||||
|
||||
**Focus:** `Ticket` is already a dataclass (`src/models.py:302`); just migrate the consumers from `t.get('id', '')` to `t.id`. The legacy `Ticket.get(key, default)` method can be removed at the end of this phase once no consumer calls it.
|
||||
|
||||
- [ ] **Task 1.1** [Tier 3]: Migrate `src/gui_2.py` Ticket consumers.
|
||||
- [x] **Task 1.1** [Tier 3]: Migrate `src/gui_2.py` Ticket consumers.
|
||||
- WHERE: `src/gui_2.py:1366-1438,1682` (the `_cb_*_ticket` and ticket-list rendering sites)
|
||||
- WHAT: For each `t.get('id', '')`, `t.get('depends_on', [])`, `t.get('manual_block', False)`, `t.get('status')` → `t.id`, `t.depends_on`, `t.manual_block`, `t.status`
|
||||
- HOW: `manual-slop_edit_file` per site
|
||||
- SAFETY: Run `tests/test_ticket_queue.py` + `tests/test_per_ticket_model.py` + `tests/test_manual_block.py` + the new per-aggregate test files
|
||||
- [ ] **COMMIT:** `refactor(gui_2): migrate Ticket access sites to direct field access` (Tier 3)
|
||||
- [ ] **GIT NOTE:** Migrated ~15 Ticket access sites in `src/gui_2.py`. Verified by the ticket test files.
|
||||
- **RESULT:** No-op. Audit confirmed `self.active_tickets` is `list[Metadata]` (dicts, NOT Ticket dataclass) per `src/app_controller.py:1110` and the comment at `:3276` "Keep dicts for UI table". The gui_2.py sites operate on dicts and are correctly classified as Metadata collapsed-codepath per spec FR2. No migration needed.
|
||||
- [x] **COMMIT:** No commit (no code changes). [no-op]
|
||||
- [x] **GIT NOTE:** Audit-only. 35/35 tests pass. No migration needed.
|
||||
|
||||
- [ ] **Task 1.2** [Tier 3]: Migrate `src/conductor_tech_lead.py` and `src/app_controller.py` Ticket consumers.
|
||||
- [x] **Task 1.2** [Tier 3]: Migrate `src/conductor_tech_lead.py` and `src/app_controller.py` Ticket consumers.
|
||||
- WHERE: `src/conductor_tech_lead.py:125`; `src/app_controller.py:4810-4868` (the ticket-list mutation sites)
|
||||
- WHAT: Same pattern as 1.1
|
||||
- HOW: `manual-slop_edit_file` per site
|
||||
- SAFETY: Same as 1.1
|
||||
- [ ] **COMMIT:** `refactor(app_controller,conductor_tech_lead): migrate Ticket access sites` (Tier 3)
|
||||
- [ ] **GIT NOTE:** Migrated ~15 Ticket access sites across 2 files. Verified.
|
||||
- **RESULT:** No-op. Audit confirmed all Ticket dataclass consumers (in `_spawn_worker`, `mutate_dag`, `multi_agent_conductor.run`) already use direct field access (`t.id`, `t.status`, `t.depends_on`, etc.). The `t.get('id', '')` style sites operate on dicts (from `conductor_tech_lead.topological_sort` returning `list[dict[str, Any]]` and from `self.active_tickets: list[Metadata]`), which are correctly classified as Metadata collapsed-codepath per spec FR2.
|
||||
- [x] **COMMIT:** No commit (no code changes). [no-op]
|
||||
- [x] **GIT NOTE:** Audit-only. 35/35 tests pass. No migration needed.
|
||||
- [ ] **Task 1.3** [Tier 2]: Remove the legacy `Ticket.get(key, default)` method.
|
||||
- WHERE: `src/models.py` (the `get` method on `Ticket`)
|
||||
- WHAT: After all consumers have migrated, remove the `get` method
|
||||
|
||||
Reference in New Issue
Block a user