Promote the expanded underwater release from the 0.8.68 candidate number to 0.9.0 across Cargo, npm, generated facts, changelogs, current docs, and the authoritative release ledger.\n\nDocument the final runtime, Operate, Fleet, motion, Inkling, community, and deferred-work cutlines without rewriting historical fixtures. Version and release-helper checks pass.
Update the catalog automation docs and tests to reflect the final dry-run-only design after CodeQL triage. Also preserve the already-merged #3985 feature-intro auth guard so this PR does not regress main.
Drop disk writes entirely so CodeQL clear-text-storage does not fire.
Automation still fetches/prints Models.dev stats, validates the offline
seed with snapshot --check, and scrubs credential-shaped keys in-memory.
Signed-off-by: CodeWhale Agent <codewhale-agent@hmbown.local>
Network-fetched catalogs stay dry-run; disk writes require
CODEWHALE_MODELS_DEV_PATH so CodeQL clear-text storage does not fire on
remote JSON. OpenRouter listing remains inspect-only.
Signed-off-by: CodeWhale Agent <codewhale-agent@hmbown.local>
Document that write_json only receives projected public metadata and
add a CodeQL suppression for clear-text storage on that path.
Signed-off-by: CodeWhale Agent <codewhale-agent@hmbown.local>
Rebuild Models.dev/OpenRouter cache documents from allowlisted keys so
CodeQL does not treat network JSON as clear-text secret storage.
Signed-off-by: CodeWhale Agent <codewhale-agent@hmbown.local>
Add scripts/catalog_models_dev.py for secret-free Models.dev catalog
refresh and snapshot validation, plus OpenRouter public /models listing
with sort/limit. Offline unit tests cover scrubbing and seed checks.
Signed-off-by: CodeWhale Agent <codewhale-agent@hmbown.local>