Skip to content

Research: cross-provider context handoff — clarify it's a provider-capability problem, not a trace-handoff one #31

Description

@samkeen

Status: "think about this" note, so we don't conflate two different things later.

Context

client.py already does dual-client routing — worker / evaluator / prep can point at different models. Today they're all OpenRouter + DeepSeek defaults, so nothing has bitten.

The thing to be clear about

Pi supports mid-conversation cross-provider handoff (switching provider within one running conversation, converting Anthropic thinking traces → <thinking> tags for OpenAI compat). Tilth does not do this, by design — the worker, evaluator, and prep run as isolated contexts (the evaluator never sees the worker's chain-of-thought). There's no single conversation whose reasoning trace has to survive a provider switch.

What does cross between roles are provider-neutral artifacts — the diff, the case JSON, the verdict JSON. Those carry no provider-specific trace format, so the classic handoff hazard mostly doesn't apply to us.

What's left to watch

The real exposure is narrower: per-role provider compatibility, not trace handoff. Each role talks to its own provider independently, and each provider has its own wire quirks (reasoning_effort rejected by some, store rejected by others, no tool-call streaming on some — see CLAUDE.md's reasoning_content vs reasoning_details anecdote). That belongs to the companion "add a second provider + capability table" issue.

This note exists so we don't reach for a "context handoff" solution to what is actually a "provider capability" problem.

Source

Pi-harness considerations doc, §2.6; Pi article on cross-provider handoff.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions