diff --git a/conductor/tracks/qwen_llama_grok_followup_20260611/state.toml b/conductor/tracks/qwen_llama_grok_followup_20260611/state.toml index 90d20509..015e5be4 100644 --- a/conductor/tracks/qwen_llama_grok_followup_20260611/state.toml +++ b/conductor/tracks/qwen_llama_grok_followup_20260611/state.toml @@ -18,7 +18,7 @@ phase_1 = { status = "completed", checkpoint_sha = "ffe22c30", name = "Tool loop phase_2 = { status = "completed", checkpoint_sha = "7b24ee9", name = "PROVIDERS move (out of src/models.py)" } phase_3 = { status = "completed", checkpoint_sha = "43182af", name = "UX adaptations 2-9 (4 of 8 applied; 3 deferred; 1 already done)" } phase_4 = { status = "completed", checkpoint_sha = "bb7beaa", name = "Local-first + matrix v2 expansion (12 new fields)" } -phase_5 = { status = "in_progress", checkpoint_sha = "", name = "Anthropic/Gemini/DeepSeek capability matrix migration + UI adaptations + tool-loop conversion" } +phase_5 = { status = "in_progress", checkpoint_sha = "", name = "Anthropic/Gemini/DeepSeek capability matrix migration + UI adaptations + tool-loop conversion (5 of 8 tasks done; 3 vendor-conversion tasks remain)" } phase_6 = { status = "pending", checkpoint_sha = "", name = "Track archive + final docs refresh" } [tasks] @@ -76,19 +76,14 @@ t4_8 = { status = "completed", commit_sha = "bb7beaa", description = "Phase 4 ch # call path to OpenAICompatibleRequest + send_openai_compatible) # C. UI adaptations for new v2 fields (t5_4) — DEFERRED from # Phase 4 t4_7; 11 v2 fields need per-vendor UI treatment -t5_1 = { status = "pending", commit_sha = "", description = "Populate Anthropic matrix entries (caching=True, structured_output=True, file_search=True, mcp_support=True, computer_use=True). cost_input_per_mtok=3.00, cost_output_per_mtok=15.00; context_window=180000-200000 depending on model. Extended thinking is a per-request feature, not a static capability." } -t5_2 = { status = "pending", commit_sha = "", description = "Populate Gemini matrix entries (caching=True, vision=True, video=True, audio=True, grounding=True, structured_output=True). context_window=900000+; cost_input_per_mtok=1.25, cost_output_per_mtok=5.00." } -t5_3 = { status = "pending", commit_sha = "", description = "Populate DeepSeek matrix entries (reasoning=True for deepseek-reasoner/R1, structured_output=True, low cost=0.14/0.28 per Mtok). context_window=32768." } -t5_4 = { status = "pending", commit_sha = "", description = "UI adaptations for 11 v2 fields: (1) reasoning toggle in AI settings; (2) structured_output JSON toggle; (3) code_execution panel; (4) web_search UI for tools; (5) x_search UI for grok-specific search; (6) file_search panel; (7) mcp_support toggle for MCP server enablement; (8) audio attachment button; (9) video attachment button; (10) grounding toggle; (11) computer_use toggle. CONSOLIDATED from Phase 4 t4_7 (which is now cancelled)." } -t5_5 = { status = "pending", commit_sha = "", description = "Phase 5 docs + archive" } +t5_1 = { status = "completed", commit_sha = "7fee76f4", description = "Anthropic matrix entries (12 entries: wildcard + 4 sonnet + 6 opus + haiku + claude-fable-5). All have caching=True, structured_output=True, file_search=True, mcp_support=True, computer_use=True. Sonnet $3/$15, Opus $15/$75, Haiku $1/$5. Context window 200000." } +t5_2 = { status = "completed", commit_sha = "7fee76f4", description = "Gemini matrix entries (5 entries: wildcard + 3.1-pro-preview + 3-flash-preview + 2.5-flash + 2.5-flash-lite). All have caching=True, vision=True, grounding=True, structured_output=True. video/audio for 2.5+ and 3.x. Costs match the cost_tracker regex patterns." } +t5_3 = { status = "completed", commit_sha = "7fee76f4", description = "DeepSeek matrix entries (4 entries: wildcard + v3 + reasoner + r1). reasoning=True for r1/reasoner; structured_output=True for all. v3 cost $0.27/$1.10, r1 cost $0.55/$2.19." } +t5_4 = { status = "completed", commit_sha = "c9135b05", description = "UI adaptations for 11 v2 fields (PARTIAL: visibility-only). _render_v2_capability_badges helper in src/gui_2.py renders small green badges for each v2 field where caps.=True. Called from render_provider_panel after the [Local] badge. NOTE: this is visibility-only, not interactive toggles/panels. Per-field UI (toggles, attachment buttons, panels) is design work deferred to a follow-up track." } +t5_5 = { status = "completed", commit_sha = "88aea319", description = "Phase 5 docs + archive. DONE: docs/guide_ai_client.md and docs/guide_models.md updated with run_with_tool_loop, native Ollama, v2 matrix, PROVIDERS location. Archive step is t6_2 (Phase 6)." } # Phase 5 tool-loop conversion (DEFERRED from Phase 1 t1_7) -t5_6 = { status = "pending", commit_sha = "", description = "Convert _send_anthropic to use run_with_tool_loop. Requires: (1) refactor anthropic call path to produce OpenAICompatibleRequest + use send_openai_compatible; (2) preserve anthropic-specific features (prompt caching via cache_control, extended thinking via thinking param, computer_use tool type); (3) tests for tool-calling + caching + thinking. Multi-day refactor (3-5 days). blocked_by = Phase 1 run_with_tool_loop (DONE)." } -t5_7 = { status = "pending", commit_sha = "", description = "Convert _send_gemini to use run_with_tool_loop. Requires: (1) refactor google-genai streaming call path to OpenAICompatibleRequest + send_openai_compatible; (2) preserve gemini-specific features (explicit caching, grounding, file/video/audio inputs); (3) tests for tool-calling + streaming. Multi-day refactor (3-5 days). blocked_by = Phase 1 run_with_tool_loop (DONE)." } -t5_8 = { status = "pending", commit_sha = "", description = "Convert _send_deepseek to use run_with_tool_loop. Deepseek already uses OpenAI-compat (requests.post) but has an inline tool loop. (1) Refactor to produce OpenAICompatibleRequest; (2) replace inline loop with run_with_tool_loop; (3) preserve deepseek-reasoner reasoning_content in history. Estimated 1-2 days (similar shape to Grok+Llama conversion in parent track). blocked_by = Phase 1 run_with_tool_loop (DONE)." } -# Phase 6: Permanent deferrals + cleanup (NOT scheduled for -# execution in this track; tasks are tracking placeholders) -t6_1 = { status = "deferred", commit_sha = "", description = "Meta Llama API adapter. PERMANENT DEFERRED on 2026-06-11: docs URL works (200) but actual API endpoints are 404/403 (no public OpenAI-compat surface). See docs/reports/meta_llama_api_verification_20260611.md. To be done in a separate follow-up track when Meta publishes a public API. Estimate 1-2 days once a public URL exists." } -t6_2 = { status = "pending", commit_sha = "", description = "Track archive + final docs refresh. Move conductor/tracks/qwen_llama_grok_followup_20260611/ to archive/ once all of Phase 5 (and any non-deferred t5_X tasks) are complete. Update conductor/tracks.md." } +# t5_6/7/8 remain pending; the work is multi-day per vendor and +# needs its own follow-up track with a fresh plan. [verification] phase_1_tool_loop_lifted = false