Skip to content

[P0.31] Published codeframe-ai 0.9.1 pins retired Anthropic model IDs — every LLM command 404s on a fresh install #1112

Description

@frankbria

Found by the #614 cold-start walkthrough on a clean container, following only the README. Priority P0.31 — severity critical, category release. Blocks #614 and the beta launch.

Problem

The published PyPI package codeframe-ai==0.9.1 — the artifact the README tells every new user to install — pins five Anthropic model IDs that no longer exist. Every LLM-backed command fails on a fresh install, for every new user, with a valid API key.

Reproduced on a clean python:3.11-slim container with a known-good ANTHROPIC_API_KEY (the request authenticates — note the request_id — and is then rejected on the model):

$ uv tool install codeframe-ai
$ cf init . --detect          # works
$ cf prd generate
Using template: Standard PRD
Error: Error code: 404 - {'type': 'error', 'error': {'type': 'not_found_error',
'message': 'model: claude-3-5-haiku-20241022'}, 'request_id':
'req_011CdriPN8FW32UUNgw1FSFM'}

cf prd generate is the first AI-backed command in the README quickstart, so a new user hits this within a minute of installing. cf tasks generate then fails with No PRD found, and cf work batch run --all-ready is a no-op, so the entire Think → Build → Prove pipeline is dead on arrival from the published package.

Root cause

Installed 0.9.1, codeframe/adapters/llm/base.py:

DEFAULT_PLANNING_MODEL    = "claude-sonnet-4-20250514"
DEFAULT_EXECUTION_MODEL   = "claude-sonnet-4-20250514"
DEFAULT_GENERATION_MODEL  = "claude-3-5-haiku-20241022"   # <- confirmed 404
DEFAULT_CORRECTION_MODEL  = "claude-opus-4-20250514"
DEFAULT_SUPERVISION_MODEL = "claude-opus-4-20250514"

All five are dated, now-retired IDs. Only GENERATION is proven 404 here because discovery fails there first, but the other four are the same vintage.

This is already fixed on main — and unreleased

main carries the corrected aliases:

DEFAULT_PLANNING_MODEL    = "claude-sonnet-4-5"
DEFAULT_EXECUTION_MODEL   = "claude-sonnet-4-5"
DEFAULT_GENERATION_MODEL  = "claude-haiku-4-5"
DEFAULT_CORRECTION_MODEL  = "claude-sonnet-4-5"
DEFAULT_SUPERVISION_MODEL = "claude-sonnet-4-5"

Re-running the identical walkthrough against a source install of main gets past the 404 and into the Socratic discovery loop. So the code is fine; the published artifact is not. The fix is a release, not a patch.

Acceptance criteria

  • Cut and publish 0.9.2 (or later) from main so uv tool install codeframe-ai gets working model defaults
  • scripts/quickstart-cleanroom/run.sh (no --source) reaches cf prd generate without a model error against the published package
  • A release check fails the build if any DEFAULT_*_MODEL is not resolvable — a dated model ID silently rotting out from under a published artifact must not be able to recur
  • Consider yanking or clearly marking 0.9.1 on PyPI, since it cannot work for anyone

Evidence

Metadata

Metadata

Assignees

No one assigned

    Labels

    P0-blocker-betaCritical blocker - must fix before beta testingtype:bugSomething is broken and needs fixing

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions