Skip to content

v0.9.0 remaining: model catalog consolidation and live refresh #4109

Description

@Hmbown

Purpose

Durable GitHub issue for the remaining Section 1 work from the 0.8.68 cutover checklist. This makes the model catalog plan available from GitHub instead of only from Hunter's local scratch document.

Already verified in PR #4099 / work/v0.9.0-cutover

  • OpenRouter /models parser preserves live response order and maps limits, pricing, reasoning support, and modalities into CatalogOffering.
  • refresh_catalog_cache publishes fresh cache snapshots into provider_lake.
  • Provider picker search matches provider name and model ids across configured/catalog views.

Reference branch/head at issue creation: work/v0.9.0-cutover @ fb89fc0c6.

Remaining checklist

  • Catalog refresh policy

    • Manual command: /model refresh openrouter or /provider refresh openrouter.
    • Background refresh only after provider is configured or active.
    • TTL: 24h for OpenRouter live rows; stale rows stay visible with a stale chip.
    • Failure behavior: never break model selection; keep bundled and prior cached rows.
    • Backoff: 401/403 show auth issue; 429/5xx keep stale and retry later.
    • Persist secret-free cache under CodeWhale state dir, scoped by provider and base-url fingerprint.
    • Never persist API keys, auth headers, or raw error bodies.
  • Model picker UX views

    • Add view toggle for Configured, Catalog, Recent, Coding, Cheap, Long context.
    • Row metadata should show name, wire id, provider route, context, max output, tool support, reasoning, price/M tokens, freshness, and deprecation warning from expiration_date.
    • Keep defaults conservative; newest/discovery views should not auto-select surprising routes.
  • Replace legacy model sources

    • Replace remaining model_completion_names_for_provider() consumers with catalog-backed ConfiguredProviderLake where appropriate.
    • Likely surfaces: tui/model_picker.rs, tui/hotbar/actions.rs, tui/model_inventory.rs, tools/subagent/mod.rs, tui/widgets/mod.rs.
  • Catalog update automation

    • Add a script or crate such as codewhale-catalog for refresh/snapshot flows.
    • Expected commands:
      cargo run -p codewhale-catalog -- refresh --provider openrouter --sort newest --limit 100 --write-cache
      cargo run -p codewhale-catalog -- snapshot --write crates/config/assets/models_dev.bundled.json
      cargo test -p codewhale-config catalog route
      cargo test -p codewhale-tui model_picker model_inventory pricing models

Acceptance

  • Pickers, hotbar, model inventory, subagent validation, pricing, context windows, and route resolution read one compiled/catalog-backed source of truth.
  • Live refresh improves available metadata without making selection brittle when network/auth fails.
  • A clean clone from GitHub has this issue as the durable checklist for the remaining catalog work.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-readySelf-contained for a fresh-clone cloud agent; implement in a tested PR with no live credentialsbugSomething isn't workingenhancementNew feature or requestlane-catalogv0.9.0 delivery lane (retired)reliabilityReliability, flaky behavior, retries, fallbacks, and robustnesssubagentsSub-agent orchestration, lifecycle, and completion handlingtuiTerminal UI behavior, rendering, or interactionv0.9.0Targeting v0.9.0

    Projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions