release: v5.12.0 — "Auto-calibration" (B8b)
Version-sync for the B8b model→window auto-probe shipped in cf75249:
- plugin.json 5.11.0 -> 5.12.0
- README version badge + version-history row (1296 tests)
- CHANGELOG [5.12.0] entry
Scanner count stays 16, agents 7, commands 21. No new finding ID or scanner.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
cf75249b5e
commit
6bb08cc84d
3 changed files with 39 additions and 2 deletions
36
CHANGELOG.md
36
CHANGELOG.md
|
|
@ -5,6 +5,42 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [5.12.0] - 2026-06-23
|
||||
|
||||
### Summary
|
||||
"Auto-calibration" — completes the deferred half of B8. `--context-window auto` now **probes the
|
||||
configured model** and calibrates SKL/CML budgets to its real context window, instead of always
|
||||
falling back to the conservative advisory anchor. A 1M-tier host self-calibrates without the manual
|
||||
`--context-window 1000000`. No new finding ID or scanner (count stays **16**, agents **7**, commands
|
||||
**21**); the default and explicit `--context-window` paths are unchanged, so `--json`/`--raw` stay
|
||||
byte-stable and the frozen v5.0.0 + SC-5 snapshots are untouched. **1296** tests.
|
||||
|
||||
### Added
|
||||
- **B8b — model→window auto-probe.** `lib/context-window.mjs` gains a pure `modelToContextWindow()`
|
||||
that maps a configured model id/alias to its context window:
|
||||
- the explicit `[1m]` tier tag wins (the running session model surfaces as e.g.
|
||||
`claude-opus-4-8[1m]`);
|
||||
- known 1M-tier families `LARGE_CONTEXT_MODEL_IDS` (`claude-fable-5`, `claude-opus-4-8`,
|
||||
`claude-opus-4-7`, `claude-opus-4-6`, `claude-sonnet-4-6` — verified June 2026 against the
|
||||
platform.claude.com models overview) match by substring, so dated (`-20260528`) and
|
||||
provider-prefixed (`us.anthropic.…`) IDs resolve too;
|
||||
- the short aliases `opus` / `sonnet` / `fable` / `opusplan` resolve to 1M.
|
||||
- Models we cannot confirm (Haiku, older 200k-era IDs, unknown) return `null` — the caller then
|
||||
keeps the conservative anchor rather than guess a relaxed budget.
|
||||
- **New IO helper `lib/active-model.mjs` `resolveActiveModel()`** reads the configured model the way
|
||||
Claude Code resolves it: the shell `ANTHROPIC_MODEL` override first, otherwise the settings cascade
|
||||
`model` field (user `~/.claude` → project `.claude` → project-local, local wins). Reads the cascade
|
||||
files directly (like `isBundledSkillsDisabled`) and takes an injectable `env`, so it stays
|
||||
deterministic and hermetic under the test HOME. Returns `null` when no model is pinned anywhere.
|
||||
|
||||
### Changed
|
||||
- **`resolveContextWindow(arg, opts)` — the `auto` branch now probes.** It maps `opts.model` via
|
||||
`modelToContextWindow()`: a recognized 1M-tier model calibrates to its window (source `auto-probed`,
|
||||
**not** advisory); an unknown or unpinned model keeps the conservative 200k anchor and stays advisory
|
||||
(source `auto-unresolved`, the pre-B8b `auto` behavior). `scan-orchestrator` resolves the active
|
||||
model (only when the flag is `auto`) and threads it in; `posture` inherits this via `runAllScanners`.
|
||||
The default (no flag) and explicit `--context-window <n>` paths ignore `opts.model` and are unchanged.
|
||||
|
||||
## [5.11.0] - 2026-06-23
|
||||
|
||||
### Summary
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue