Conversation
|
GitHub marked both CI and CodeQL as action_required because this is a first-time contribution. Please approve the workflow runs when convenient. The PR body includes the exact-head review attestation, full local preflight, and a live Claude Code 2.1.220 bridge smoke. |
|
Independent verification from an affected Claude Code 2.1.220 environment: PASS on exact head The review confirmed the narrow Additional reviewer: GPT-5.6 Sol high via Codex independent read-only verification worker; route accepted as The PR workflows are still |
|
@Cjbuilds could you please approve the first-time-contributor CI and CodeQL runs for this PR? The bug blocks every configured Fable Planner call on Claude Code 2.1.220; exact-head local, live, and independent review evidence is included above. |
Change summary
Claude Code 2.1.220 adds optional string-valued
canonicalModelandproviderfields to each
modelUsageentry. The bridge treated every inner value as anumeric usage counter, so otherwise valid Fable Planner and Advisor calls failed
with
Runtime metadata has a malformed modelUsage value.This change:
canonical identities;
providerto be exactlyfirstParty;providers, malformed values, and unknown models;
0.9.4.Validation
malformed modelUsage valuefailurebefore the implementation.
python3 scripts/preflight.py full: all available local gates passed,including Ruff, focused tests, release identity, full tests, and lifecycle.
Hosted Python 3.11/3.13, Windows portability, and CodeQL remain authoritative.
PLAN_DRAFTforclaude-fable-5atxhighand confirmedused_models=["claude-fable-5"].8b4ccae38e13cb843c2bd7eb8c0916f628fda173; the reviewer also ran the focusedsuite (66/66) and full local preflight.
Review attestation
{
"schema": 1,
"risk_tier": "security-state",
"repository": "Cjbuilds/Codex-Orchestration",
"base_branch": "main",
"reviewed_head_sha": "8b4ccae38e13cb843c2bd7eb8c0916f628fda173",
"reviewer_identity": "GPT-5.6 Sol high via Codex code reviewer",
"reviewer_route": "agents.spawn_agent model=gpt-5.6-sol reasoning_effort=high fork_turns=none",
"threat_model": {
"assets": [
"Authentic runtime model identity at the Fable and Opus bridge boundary",
"Confidentiality of model-authored output rejected before authorization"
],
"threats": [
"New valid identity metadata could make every bundled Claude call unavailable",
"Unreviewed canonical identities or providers could bypass runtime model authorization",
"Identity-only entries could bypass the numeric usage-shape requirement"
],
"mitigations": [
"Constrain canonical identities to reviewed primary aliases or the exact helper and Opus identities",
"Require provider=firstParty while preserving the outer allowlist and reviewed-primary check",
"Require numeric usage and reject malformed or unknown metadata with content-free errors"
]
},
"negative_test_evidence": [
{
"category": "regression",
"evidence": "A Claude Code 2.1.220-shaped modelUsage payload now passes the real bridge validation path."
},
{
"category": "negative",
"evidence": "Tests reject non-first-party providers, unknown string fields, and primary/helper or Opus identity mismatches."
},
{
"category": "malformed",
"evidence": "Tests reject identity-only entries and retain rejection of negative, non-finite, boolean, empty, and nonnumeric usage values."
}
],
"findings_disposition": "REVIEW_APPROVED on exact head 8b4ccae after F-001 and F-002 were incorporated and re-tested."
}