fix: route databricks claude fqns to anthropic messages (#7829)

Fix Databricks V2 Unity Catalog Claude service routing without erasing
verified model capabilities.

- preserve exact provider-qualified record precedence for
`data_workflow_tools.goose.goose-claude-opus-5-5`, including adaptive
thinking, explicit `output_config.effort` (default medium), and signed
native tool continuation
- route other boundary-matched `claude-*` service components to
Anthropic Messages while preserving the full FQN and advertising no
unverified effort controls
- keep GPT-5+ service components on OpenAI Responses and other uncurated
FQNs on MLflow Chat Completions; catalog/schema text does not affect
routing
- keep Rust and TypeScript resolver precedence aligned and regenerate
the 168-vector normative corpus

Validation at `1204f1eacff17ebe05eb2bba06b5eee210e21c25`:
- `cargo test -p buzz-agent`
- `pnpm -C desktop test` — 6,628 passed
- `pnpm -C desktop typecheck`
- `cargo fmt --all -- --check`
- `cargo clippy -p buzz-agent --all-targets -- -D warnings`
- `just test-unit` — passed on isolated rerun
- pre-push file-size, desktop check, desktop typecheck, desktop tests,
and Tauri checks passed; the repository-wide Rust lane exited without
identifying a failing test in two concurrent hook runs, while its
isolated `just test-unit` rerun passed

---------

Signed-off-by: Kalvin Chau <kalvin@block.xyz>
Co-authored-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
This commit is contained in:
Kalvin C
2026-09-23 12:09:27 -07:00
committed by GitHub
parent 5a349db91c
commit 48884848f5
13 changed files with 335 additions and 97 deletions

View File

@@ -2394,17 +2394,10 @@
"raw_model_id": "other.goose.goose-claude-opus-5-5",
"expect": {
"thinking_mode": "none",
"supported_efforts": [
"none",
"minimal",
"low",
"medium",
"high",
"xhigh"
],
"default_effort": "medium",
"databricks_v2_wire_route": "mlflow-chat",
"normalization_policy": "openai-clamp-max-to-xhigh",
"supported_efforts": [],
"default_effort": null,
"databricks_v2_wire_route": "anthropic-messages",
"normalization_policy": "none",
"registry_label": null
}
},
@@ -2414,17 +2407,10 @@
"raw_model_id": "data_workflow_tools.goose.goose-claude-opus-5-5-preview",
"expect": {
"thinking_mode": "none",
"supported_efforts": [
"none",
"minimal",
"low",
"medium",
"high",
"xhigh"
],
"default_effort": "medium",
"databricks_v2_wire_route": "mlflow-chat",
"normalization_policy": "openai-clamp-max-to-xhigh",
"supported_efforts": [],
"default_effort": null,
"databricks_v2_wire_route": "anthropic-messages",
"normalization_policy": "none",
"registry_label": null
}
},
@@ -2434,17 +2420,10 @@
"raw_model_id": "system.ai.claude-opus-5-5",
"expect": {
"thinking_mode": "none",
"supported_efforts": [
"none",
"minimal",
"low",
"medium",
"high",
"xhigh"
],
"default_effort": "medium",
"databricks_v2_wire_route": "mlflow-chat",
"normalization_policy": "openai-clamp-max-to-xhigh",
"supported_efforts": [],
"default_effort": null,
"databricks_v2_wire_route": "anthropic-messages",
"normalization_policy": "none",
"registry_label": null
}
},
@@ -2468,6 +2447,76 @@
"registry_label": null
}
},
{
"_group": "Uncurated Databricks Claude FQN routing",
"_note": "Only the service component selects Anthropic Messages; unverified Claude FQNs expose no effort choices."
},
{
"id": "dbv2-fqn-claude-anthropic",
"provider": "databricks_v2",
"raw_model_id": "catalog.schema.claude-sonnet-custom",
"expect": {
"thinking_mode": "none",
"supported_efforts": [],
"default_effort": null,
"databricks_v2_wire_route": "anthropic-messages",
"normalization_policy": "none",
"registry_label": null
}
},
{
"id": "dbv2-fqn-claude-case",
"provider": "databricks_v2",
"raw_model_id": "catalog.schema.GOOSE-CLAUDE-SONNET-CUSTOM",
"expect": {
"thinking_mode": "none",
"supported_efforts": [],
"default_effort": null,
"databricks_v2_wire_route": "anthropic-messages",
"normalization_policy": "none",
"registry_label": null
}
},
{
"id": "dbv2-fqn-claude-catalog-inert",
"provider": "databricks_v2",
"raw_model_id": "claude-catalog.schema.service",
"expect": {
"thinking_mode": "none",
"supported_efforts": [
"none",
"minimal",
"low",
"medium",
"high",
"xhigh"
],
"default_effort": "medium",
"databricks_v2_wire_route": "mlflow-chat",
"normalization_policy": "openai-clamp-max-to-xhigh",
"registry_label": null
}
},
{
"id": "dbv2-fqn-claude-schema-inert",
"provider": "databricks_v2",
"raw_model_id": "catalog.claude-schema.service",
"expect": {
"thinking_mode": "none",
"supported_efforts": [
"none",
"minimal",
"low",
"medium",
"high",
"xhigh"
],
"default_effort": "medium",
"databricks_v2_wire_route": "mlflow-chat",
"normalization_policy": "openai-clamp-max-to-xhigh",
"registry_label": null
}
},
{
"_group": "Databricks FQN GPT-5+ Responses routing",
"_note": "Only the service component selects Responses; effort capabilities remain neutral."
@@ -2613,22 +2662,15 @@
}
},
{
"id": "dbv2-fqn-responses-7",
"id": "dbv2-fqn-claude-precedes-gpt",
"provider": "databricks_v2",
"raw_model_id": "catalog.schema.claude-gpt-6",
"expect": {
"thinking_mode": "none",
"supported_efforts": [
"none",
"minimal",
"low",
"medium",
"high",
"xhigh"
],
"default_effort": "medium",
"databricks_v2_wire_route": "mlflow-chat",
"normalization_policy": "openai-clamp-max-to-xhigh",
"supported_efforts": [],
"default_effort": null,
"databricks_v2_wire_route": "anthropic-messages",
"normalization_policy": "none",
"registry_label": null
}
},