Skip to content

ADR 0004 phase 1: characterize model metadata behavior and drift #10291

Closed

Description

@lpcox

Objective

Establish the behavioral baseline required by ADR 0004, Gate 1. Parent: #10290. Prerequisites: none. This is the first assignable phase.

Scope

Use existing #10032 as the detailed characterization specification and implementation work item; this phase coordinates its completion rather than requesting a duplicate test project. Inspect any existing PR before starting. Inventory host/proxy canonicalizers, supported/retired/mapped/priced/excluded sets, routing eligibility, pricing precedence, and public/persisted projections. Capture differences explicitly instead of normalizing them away.

Entry points: src/copilot-model.ts, src/copilot-model-catalog-sync.test.ts, and containers/api-proxy/{model-utils.js,model-resolver.js,model-api-mapping.js,runtime-model-catalog.js,provider-pricing-overlays.js,models-dev-catalog.js,management.js,model-discovery.js}; AI-credit guard and relevant routing tests.

Acceptance criteria

  • Complete or link merged work satisfying every acceptance criterion in test: characterize model metadata behavior and drift #10032; do not close it based only on this tracker.
  • Table-driven fixtures cover provider prefixes, separators, date suffixes, query handling, case, aliases, exact/family behavior, retirement, replacements, and documented exceptions.
  • Freeze current pricing precedence, incomplete-runtime component merging, tier selection, fallback behavior, and accounting/provenance outputs.
  • Protect existing /reflect, models.json, policy exclusions, direct-request validation, and routing behavior with focused fixtures.
  • Mapping-copy drift has a clear failure; current exception sets are explicit fixtures.
  • Name Add curated AI-credit prices for current Copilot models #10029/Complete routing effort metadata for current OpenAI and Anthropic models #10030 cases: characterize corrected behavior if their fixes have landed, otherwise record explicit known gaps without silently accepting them as the target contract.
  • Run relevant root and separate containers/api-proxy tests and document the baseline for subsequent agents in the implementation handoff.

Non-goals / handoff

No new canonical schema, shared canonicalizer, precedence change, updater replacement, or reflection redesign. Preserve runtime behavior. Deliver the fixture inventory and known-gap status to Phase 2/3 so later parity claims can be measured. All reflection work uses /reflect; no /reflect/v2.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions