Add assignments.yaml entry to activate cf-orch task routing (already wired in llm.py) #17
Labels
No labels
compliance
demo
deployment
docs
enhancement
parser
patterns
performance
security
ux
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Circuit-Forge/turnstone#17
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Background
cf-orch #60 shipped the three-layer task-model assignment system and
POST /api/inference/task.Good news: Turnstone is already wired
app/services/llm.pyalready callsPOST /api/inference/taskwith{"product": "turnstone", "task": "log_analysis"}and falls back to a direct OpenAI-compat call if the endpoint returns 404 (no assignment configured).This ticket is just the final step: add the assignment entry so the task routing activates.
What to do
1. Add to
assignments.yaml(managed via Avocet Assignments UI or direct YAML edit)2. Verify the fallback path
After adding the entry and reloading cf-orch (
POST /api/nodes/reload-profiles), confirm that:GET /api/assignments/deployment-statusshowsturnstone.log_analysisaspresentllm_urlpoints to a non-cf-orch instance (Ollama, vllm directly)3. Optional: wire
incident_summarycall siteIf
app/services/incidents.pyhas its own LLM summarization call, migrate it to usetask=incident_summary.Acceptance Criteria
assignments.yamlhasturnstone.log_analysisentryCF_ORCH_URLis setRelated
app/services/llm.py(already has the routing logic)circuitforge-plans/circuitforge-orch/superpowers/specs/2026-05-13-task-model-assignments-design.mdStatus: Blocked on cf-orch #68
What is done:
assignments.yamlalready hasturnstone.log_analysis→foundation-sec-8b-reasoning-q4_k_m-ggufturnstone.security_analysis→cybersecurity-baronllm_offensive_security_llm_q6_k_ggufalso presentpresenton Heimdall for bothllm.pyworks correctly (catches 500, routes to direct model call)What is broken:
POST /api/inference/taskin the coordinator never proxies the inference — it allocates the service and returns allocation metadata, not a completion. Also has aparams: dict[str, str]type mismatch that causes a 500 before allocation even starts.Filed as cf-orch #68. Once that is fixed, Turnstone will automatically route through
foundation-sec-8b-reasoningfor diagnose calls with no Turnstone code changes needed.Unblocked by cf-orch#68 (payload type fix merged and deployed).
Status as of 2026-05-20:
app/services/llm.pyalready triesPOST /api/inference/taskfirst, falls back to direct/v1/chat/completionson any non-200assignments.yamlhasturnstone.log_analysis → foundation-sec-8b-reasoning-q4_k_m-ggufandturnstone.security_analysis → cybersecurity-baronllm_offensive_security_llm_q6_k_ggufhttp://127.0.0.1:7700)llama3.1:8bcontinues to work when security model is not allocatedTask routing will silently activate when
foundation-sec-8bgets VRAM headroom. Closing.