# 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.)
