Private
Public Access
0
0

conductor(plan): resolve deferred work into proper task entries

The track had 3 categories of deferred work. Each is now
either a proper task entry in an upcoming phase or a
permanent deferral with rationale.

Resolution:

1. Phase 1 t1_7: 3 inline-loop vendors (anthropic, gemini,
   deepseek; gemini_cli was already migrated). Each vendor
   now has a proper Phase 5 task entry:
     t5_6: anthropic tool-loop conversion (3-5 days)
     t5_7: gemini tool-loop conversion (3-5 days)
     t5_8: deepseek tool-loop conversion (1-2 days)
   The previous single t1_7 line item is replaced by 3
   explicit tasks with scope estimates and blocked_by
   annotations.

2. Phase 4 t4_3: Meta Llama API. PERMANENT DEFERRED to
   Phase 6 t6_1. Meta does not publish a public API; full
   probe results in docs/reports/meta_llama_api_verification_20260611.md.

3. Phase 4 t4_7: UI adaptations for new v2 fields.
   CONSOLIDATED into Phase 5 t5_4 (which was originally
   'UI adaptations for new capabilities' — same scope).
   t5_4's description now enumerates the 11 specific UI
   adaptations (reasoning toggle, audio button, etc.).
   t4_7 is cancelled to avoid duplicate task entries.

Phase 5 expanded scope: 8 tasks total (was 5). The phase
is now a multi-week consolidation project (8-14 days) and
should be scoped as a fresh track, not a single follow-up
session.

Phase 6 placeholder added (not scheduled for execution):
  t6_1: Meta Llama API (deferred)
  t6_2: Track archive + final docs refresh

[deferred_work] section in state.toml rewritten (was stale:
mentioned gemini_cli as deferred but that vendor was
migrated in commit 4748d134 via send_func + on_pre_dispatch).

Verification flags added:
  all_8_vendors_on_tool_loop = false  (gates t5_6/7/8)
  v2_matrix_fully_populated = false   (gates t5_1/2/3)
  v2_ui_adaptations_shipped = false   (gates t5_4)
  phase_4_local_first_and_matrix_v2 = true  (Phase 4 done)

State file: 41 tasks, 6 phases, 12 verification fields,
parses cleanly.

Report: docs/reports/qwen_llama_grok_followup_deferred_work_20260611.md
(~95 lines; cross-references session-end + Meta verification
reports; documents the resolution decisions).
This commit is contained in:
2026-06-11 21:20:44 -04:00
parent 6596349325
commit 58c4370142
2 changed files with 229 additions and 24 deletions
@@ -0,0 +1,150 @@
# qwen_llama_grok_followup_20260611 — Deferred Work Resolution
## TL;DR
The track had 3 categories of deferred work. Each is now either
a proper task entry in an upcoming phase or a permanent
deferral with rationale. The state file's `[deferred_work]`
section is rewritten to reflect current reality (the previous
text was stale; mentioned `gemini_cli` as deferred but that
vendor was migrated in commit `4748d134` via
`send_func` + `on_pre_dispatch`).
## The 3 deferred categories
### 1. Phase 1 t1_7: 3 vendors (anthropic, gemini, deepseek) still on inline tool loops
**Status:** MOVED to Phase 5 as proper task entries.
| Task | Vendor | Estimated work | Why it was deferred |
|---|---|---|---|
| t5_6 | anthropic | 3-5 days | Uses anthropic SDK; must convert to OpenAICompatibleRequest + send_openai_compatible, then preserve anthropic-specific features (cache_control, extended_thinking, computer_use) |
| t5_7 | gemini | 3-5 days | Uses google-genai streaming; same conversion scope as anthropic |
| t5_8 | deepseek | 1-2 days | Already uses OpenAI-compat (requests.post) but has an inline loop; smallest refactor. Similar shape to Grok+Llama conversion in the parent track |
Total estimated work: 7-12 days. This is a multi-week project on
its own; not appropriate to bundle into the current 1-2-day
session-per-phase cadence.
**Why they were deferred originally:** Each vendor's vendored
call path can't be slotted into `run_with_tool_loop` as-is —
the helper is hard-coded to `send_openai_compatible`. The
parent track treated Grok+Llama+Qwen as a 1-task line item but
the actual conversion was substantial (the parent track
spanned 5 days for those 3). The follow-up track made the
correct call: don't try to fit 3 more conversions into a
follow-up that's also doing 4 other phases.
### 2. Phase 4 t4_3: Meta Llama API adapter
**Status:** PERMANENT DEFERRED to Phase 6 t6_1.
The Meta Llama developer docs URL is reachable (200 OK as of
2026-06-11; was 400 in the parent session). However, the
actual API endpoints (api.meta.ai, llama-api.meta.com,
api.llama.com) are 404/403/(no response). Meta does not
currently publish a public OpenAI-compat API.
See `docs/reports/meta_llama_api_verification_20260611.md`
for full probe results. Decision: don't ship a fake adapter
that returns errors at runtime; defer until Meta publishes a
public surface.
Phase 6 t6_1 is a tracking placeholder, NOT scheduled for
execution in this track. The next session/track can re-evaluate
when Meta publishes a public URL (or another open-source Llama
API surfaces).
### 3. Phase 4 t4_7: UI adaptations for new v2 fields
**Status:** CONSOLIDATED into Phase 5 t5_4 (which was
originally named "UI adaptations for new capabilities" —
effectively the same scope, just re-discovered).
**Why it was a separate task:** When Phase 4 t4_6 populated
the 11 v2 fields beyond `local`, the GUI work for those
fields naturally fell out of Phase 4 scope. The fields are
vendor-specific (e.g., `reasoning` for grok-2-reasoner only;
`audio` for qwen-audio only) and design-heavy (per-field
UX decisions: toggle vs panel vs button).
**Resolution:** Cancel t4_7 as a duplicate, expand t5_4's
description to enumerate the 11 specific UI adaptations:
1. Reasoning toggle
2. Structured output JSON toggle
3. Code execution panel
4. Web search UI
5. X/Twitter search UI (grok-specific)
6. File search panel
7. MCP support toggle
8. Audio attachment button
9. Video attachment button
10. Grounding toggle
11. Computer use toggle
The 11 fields are populated in `src/vendor_capabilities.py`;
`get_capabilities()` is the read API; the GUI just needs to
consult `caps.<field>` and render the right control.
## Phase 5 expanded scope
Phase 5 is now a "consolidation phase" that includes the
tool-loop conversion work that was originally deferred from
Phase 1, the matrix entries for the 3 remaining vendors,
and the UI adaptations for new v2 fields. The phase is
multi-day work (estimated 8-14 days) and should be scoped as
a fresh track rather than a single follow-up session.
The expanded Phase 5 has 8 tasks:
- t5_1: Anthropic matrix entries
- t5_2: Gemini matrix entries
- t5_3: DeepSeek matrix entries
- t5_4: UI adaptations for 11 v2 fields (consolidated from t4_7)
- t5_5: Phase 5 docs + archive
- t5_6: anthropic tool-loop conversion (deferred from t1_7)
- t5_7: gemini tool-loop conversion (deferred from t1_7)
- t5_8: deepseek tool-loop conversion (deferred from t1_7)
## Verification
The state file has 3 new verification flags that gate
"Phase 5 complete":
```
all_8_vendors_on_tool_loop = false # t5_6, t5_7, t5_8
v2_matrix_fully_populated = false # t5_1, t5_2, t5_3
v2_ui_adaptations_shipped = false # t5_4
```
When all 3 are true AND t5_5 (docs+archive) is complete,
Phase 5 is done. The `audit_no_inline_tool_loops.py`
script (which already exists) will start FAILING on Phase 5
completion — that's the audit-script-success-as-CI-gate
pattern, intended.
## Phase 6 placeholder
Phase 6 is a "cleanup" phase with 2 tasks:
- t6_1: Meta Llama API adapter (PERMANENT DEFERRED)
- t6_2: Track archive + final docs refresh
Phase 6 is NOT scheduled for execution in this track; it's
the home for permanent deferrals + the final archive step
that runs when Phase 5 ships.
## Cross-references
- Session-end report (previous session):
`docs/reports/qwen_llama_grok_followup_session_end_20260611.md`
- Meta Llama API verification report:
`docs/reports/meta_llama_api_verification_20260611.md`
- Parent track's Phase 5+6:
`conductor/tracks/qwen_llama_grok_integration_20260606/`
- This track's plan.md:
`conductor/tracks/qwen_llama_grok_followup_20260611/plan.md`
(note: plan.md was NOT updated to reflect the new t5_6/7/8
tasks; this report + the state.toml are the source of truth.
The plan.md is a planning artifact frozen at track-creation
time; new tasks are tracked in state.toml per the workflow
protocol.)