Adopt cllama v0.9.0: ordered fallback chains, Responses-only models, current model shapes - #360
Merged
Merged
Conversation
x-claw.models.fallback now accepts an ordered list, normalized to fallback, fallback-2, ... slots. The compiled model_policy emits every chain link with slot "fallback" so cllama's declared failover walks the full chain in order. The fallback family merges atomically across models-defaults and image-label overlays. OpenClaw projects the whole chain into agents.defaults.model.fallbacks; picoclaw orders chain slots numerically. Clawfile images stay single-fallback with guidance toward pod-level chains. claw init import preserves full source fallback chains at pod level instead of truncating. x-claw.terminalOnSuccess descriptor annotations are validated as JSON booleans at compile time. Refs #359
ADR-019 gains an amendment recording the multi-fallback contract (pod list surface, atomic family merge, scalar images, graceful degradation on older cllama). ADR-020 records terminal-on-success validation. The cllama guide documents responses-only model routing and its two proxy env knobs. Living docs and examples move from retired model IDs to currently priced shapes; the master-claw example demonstrates a chain. Refs #359
Submodule moves to the released v0.9.0 tag (Responses API adapter, ordered failover chains, terminal-on-success tools, current pricing). Runnable examples, live spikes, and init-import defaults move to the Claude 5 / Gemini 3.6 IDs that release prices; the ordered-failover spike passes against the released commit. Refs #359
Owner
Author
|
Final adversarial review: accepted at |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adopts the cllama v0.9.0 feature set into the clawdapus compiler and updates the repo for current provider model shapes while keeping broad compatibility.
x-claw.models.fallback(andmodels-defaults) accepts an ordered list, normalized to internalfallback,fallback-2, ... slots.CompileModelPolicyemits every chain link with slotfallbackso cllama's declared failover walks the full chain; older cllama uses the first link only (graceful degradation). The fallback family merges atomically across defaults, service overrides, and image labels — chains never interleave — andfallback: []is a tombstone that clears inherited chains without leaking a blank slot. Clawfile images stay single-fallback; repeatedMODEL fallbackfails closed pointing at the pod surface (design debate and evidence recorded on Adopt cllama Responses-era model and managed-tool contracts #359).agents.defaults.model.fallbacks(fixes a latent bug where a chain slot would emit an invalidmodel.fallback-2config key); picoclaw orders chain slots numerically; Hermes/Nanobot stay primary-only while chain providers still reach policy and providers.json.x-claw.terminalOnSuccess— validated as a JSON boolean atclaw uptime (cllama silently ignores non-bools at runtime); unknown annotations pass through untouched, with an end-to-end manifest projection test.claw init import— preserves full source fallback chains (first link in the Clawfile, full ordered list at pod level) instead of truncating.ghcr.io/mostlydev/cllama:v0.9.0). Brings the Responses API adapter, ordered failover traversal, terminal-on-success mediation, reasoning-replay preservation, and current pricing (cllama SKILL path resolution can follow symlinks outside pod directory #28/Avoid advertising nonexistent surface skill files in CLAWDAPUS.md #30/Service expose ports parsed but never propagated into ResolvedSurface #31/GeneratedSkill/Generated service skill metadata is not consumed #33/feat: interactive claw init + claw agent add #36/feat(driver): add nanobot MVP driver and parity groundwork #40).gpt-5.6,claude-sonnet-5,claude-opus-5,claude-haiku-4-5,gemini-3.6-flash. Historical changelog/ADR content untouched.Verification
go test ./...,go vet ./...(plus spike/integration tag vet) clean at head.TestSpikeOrderedModelFailover(real cllama container + fake provider) is RED on pinned cllama v0.7.8 (failover stops at first fallback) and GREEN on released v0.9.0 (walks gpt-5.6 → gpt-4.1 → gpt-4.1-mini, primary dispatched through the Responses adapter). Re-run against the released submodule commit after the bump: PASS (42s).Release notes for maintainer
DefaultCllamaTagstill points at v0.7.7 by design — the bump to v0.9.0 rides the next clawdapus release (release-skill step), not this feature PR. The v0.9.0 image is already published, so the release verifier will pass.Closes #359
🤖 Generated with Claude Code