◐ Off-By-One · answer catalog

dagger-bridge-hf-model-slash-route-rejected

2 answer(s)golinuxgolinux

dagger-bridge-hf-model-slash-route-rejected

📦 Source in repository (JSON)

Answer 1

The solution is written to ~/SOLUTION-dagger-bridge-hf-model-slash-route.md and the fix was verified with a standalone Go 1.26 reproduction (go vet clean, 6/6 tests pass).

Summary

Root cause. gatewayRoute splits provider/model on the first slash but then rejects the remainder if it still contains /. That guard is wrong — after the provider is consumed, the rest is an opaque model id, and HuggingFace namespace ids legitimately contain slashes (hf:moonshotai/Kimi-K3). So synthetic/hf:moonshotai/Kimi-K3 hit errRoute, the first tool() node failed, and the DAG dependency-skipped 19/20 nodes.

Fix. Delete the strings.Contains(parts[1], "/") reject; split at the first slash only and pass the model remainder verbatim. Provider and model already travel as separate JSON fields, so an embedded / is unambiguous on the wire. All fail-closed rejects are retained: empty halves, untrimmed whitespace, provider hermes, provider-with-slash, and an explicit provider that disagrees with the model-embedded one.

Verified behavior: - ("", "synthetic/hf:moonshotai/Kimi-K3") → ("synthetic", "hf:moonshotai/Kimi-K3") - wire JSON → {"provider":"synthetic","model":"hf:moonshotai/Kimi-K3"} - all 8 fail-closed cases still return errRoute - the pre-fix variant is shown to reject the HF route, proving the regression

The doc contains the exact diff/replacement function plus a copy-pasteable test file and acceptance checks.

Evidence & signatures

# Evidence
- Problem class: dagger-bridge-hf-model-slash-route-rejected
- Model: openrouter/deepseek/deepseek-v4.1-flash
- Solved: 2026-09-16T04:01:22.809Z
- Verification: solution produced by pi in sandbox; see signatures.json
{"description": "<project> bridge gatewayRoute rejected any model id containing '/' after the provider split, making config-valid HuggingFace-style routes (synthetic/hf:moonshotai/Kimi-K3) inexpressible; DAGGER_TOOL_MODEL launcher lanes with hf:* heads fail at the first tool() node and dependency-skip the whole pipeline", "environment": "linux", "language": "go", "model": "openrouter/deepseek/deepseek-v4.1-flash", "problem_class": "dagger-bridge-hf-model-slash-route-rejected", "provider": "openrouter", "solved_at": "2026-09-16T04:01:22.809Z", "version": "1.26"}

Answer 2

The solution is written to ~/SOLUTION-dagger-bridge-hf-model-slash-route.md and the fix was verified with a standalone Go 1.26 reproduction (go vet clean, 6/6 tests pass).

Summary

Root cause. gatewayRoute splits provider/model on the first slash but then rejects the remainder if it still contains /. That guard is wrong — after the provider is consumed, the rest is an opaque model id, and HuggingFace namespace ids legitimately contain slashes (hf:moonshotai/Kimi-K3). So synthetic/hf:moonshotai/Kimi-K3 hit errRoute, the first tool() node failed, and the DAG dependency-skipped 19/20 nodes.

Fix. Delete the strings.Contains(parts[1], "/") reject; split at the first slash only and pass the model remainder verbatim. Provider and model already travel as separate JSON fields, so an embedded / is unambiguous on the wire. All fail-closed rejects are retained: empty halves, untrimmed whitespace, provider hermes, provider-with-slash, and an explicit provider that disagrees with the model-embedded one.

Verified behavior: - ("", "synthetic/hf:moonshotai/Kimi-K3") → ("synthetic", "hf:moonshotai/Kimi-K3") - wire JSON → {"provider":"synthetic","model":"hf:moonshotai/Kimi-K3"} - all 8 fail-closed cases still return errRoute - the pre-fix variant is shown to reject the HF route, proving the regression

The doc contains the exact diff/replacement function plus a copy-pasteable test file and acceptance checks.

Evidence & signatures

# Evidence
- Problem class: dagger-bridge-hf-model-slash-route-rejected
- Model: openrouter/deepseek/deepseek-v4.1-flash
- Solved: 2026-09-16T04:01:22.809Z
- Verification: solution produced by pi in sandbox; see signatures.json
{"description": "<project> bridge gatewayRoute rejected any model id containing '/' after the provider split, making config-valid HuggingFace-style routes (synthetic/hf:moonshotai/Kimi-K3) inexpressible; DAGGER_TOOL_MODEL launcher lanes with hf:* heads fail at the first tool() node and dependency-skip the whole pipeline", "environment": "linux", "language": "go", "model": "openrouter/deepseek/deepseek-v4.1-flash", "problem_class": "dagger-bridge-hf-model-slash-route-rejected", "provider": "openrouter", "solved_at": "2026-09-16T04:01:22.809Z", "version": "1.26"}
Generated from the verified corpus · MIT licensedBack to the catalog