Upstream Changelog Watch List
Every upstream Cyberine follows, in one table, so "anything new upstream?" resolves to the right changelog in one hop. URLs are pulled from each provider's page in this folder (its "Official docs" line) or, for CLIs, the vendor's GitHub releases. Every URL below was fetched and confirmed to resolve to real changelog/release content before this table was committed — see "Verification" at the bottom for the few that could not be confirmed live.
Source of truth for the wiring column is the code, not this table — if they drift, trust
src/core/config.tsandsrc/orchestrator/buildAdapters.ts. Seeded 2026-07-01.
Sweep runbook
Recurring chore R02 (.local/tasks/ACTIVE.md, every 7d) runs this procedure. Follow it exactly — the goal is to turn real upstream changes into filed work, never to silently absorb them.
- Pick the scope. A full sweep covers every row below; a light sweep covers the highest-velocity upstreams only: Claude Code CLI, Codex CLI, OpenCode CLI, DeepSeek, Command Code. R02 defaults to the highest-velocity set; do a full sweep when a provider/adapter epic is active. A RETIRED worker's row is full-sweep-only (2026-08-28): Moonshot/Kimi was in the light set until both its touch-points entered
RETIRED_WORKERS, and sweeping a changelog for a worker that cannot be dispatched only files tasks nobody can act on. Cross-checkRETIRED_WORKERSinsrc/core/workerProfiles.tsbefore picking the scope, not the row list here. - Fetch each changelog. For each in-scope row, WebFetch the "Changelog / releases URL". If it fails to load, use WebSearch to find the current latest version, and mark the row's fetch state rather than guessing. (Delegating the fetch fan-out to a read-only research agent keeps the main context lean — hand it the URLs + last-reviewed versions and require a source-URL + verbatim-quote per claim.)
- Diff vs Last-reviewed version. Identify what shipped since the recorded version. A change is material only if it is one of: new model id, model/API deprecation or sunset, API change (endpoint / request-response param / auth header or scheme), CLI flag added/removed/renamed, or any breaking change. Ignore cosmetic/docs-only churn. Also re-resolve every PINNED id, not just the changelog: a row that pins a specific dated model id goes stale with no announcement to report it (see the OpenRouter row's standing check), so fetch the current id live and diff it against the constant in
src/that the row names. A drifted pin is material even when the changelog says nothing. - For each material change: bump the row's Last-reviewed version + date, append a one-line delta to the row's Notes (dated), AND file a new backlog task in
.local/tasks/ACTIVE.md(## T<NN> [backlog] <follow/enhance description>) — do NOT implement inline. Respect thecyberine-project-provider-docsread-before-implement gate: the sweep updates this doc + files the task; the implementation is that separate filed task, which starts by re-reading the provider page indocs/providers/. - No material change: just bump Last-reviewed version + date for that row so the next diff has a fresh baseline.
- If a repeatable multi-step procedure emerges (e.g. a scripted fetch+diff), capture it as a project skill under
.claude/skills/per the vibe-coding rule rather than re-deriving it each sweep. - Record the sweep: append a dated line to "Sweep log" at the bottom naming the scope, what was found, and the task ids filed. Then mark R02 done (
/nf-tasks did R02).
Base list (docs/providers/README.md)
| Vendor | Kind | Changelog / releases URL | Cyberine touch-points | Last-reviewed version | Last-reviewed date | Notes |
|---|---|---|---|---|---|---|
| DeepSeek | raw API | https://api-docs.deepseek.com/updates | LoopAgentAdapter (loop-deepseek-direct, loop-deepseek-build); DEEPSEEK_API_KEY/DEEPSEEK_BASE_URL/DEEPSEEK_MODEL | V4.1-Flash (deepseek-flash) | 2026-10-01 | Also backs the LLM/adversarial judges. 2026-07-01 sweep: legacy ids deepseek-chat + deepseek-reasoner discontinued 2026-07-24 (per 2026-04-24 V4 entry) — Cyberine defaults already on V4 names, filed T516 for doc note + guard. 2026-07-10 sweep: official changelog page still shows no new dated entry, but external coverage (TechNode 2026-06-30) confirms DeepSeek V4 GA is scheduled mid-July 2026 alongside a NEW peak/off-peak API pricing scheme — peak hours 09:00-12:00 and 14:00-18:00 daily billed at 2x the off-peak rate, applying generally to API usage (no model/endpoint carve-out reported) — filed T574 to verify the GA date + adopt the peak multiplier in cost tracking once live. 2026-07-17 sweep (full-scope): V4 still NOT GA — official updates page still tops out at the 2026-04-24 V4-Pro/V4-Flash entry and the pricing page shows no peak/off-peak language; treat peak-pricing as NOT LIVE (reported 2x figures V4-Pro peak 0.05/6.00/12.00 RMB, V4-Flash 0.04/2.00/4.00 RMB per 1M come from upgrade-emails only, unconfirmed on docs). No new model id. T574 re-check advanced (question is now 'did it flip', mid-July window active). See deepseek.md. 2026-08-21 sweep: V4 FLIPPED TO GA -- V4-Flash official release 2026-07-31, V4-Pro GA 2026-08-13 ("The GA release of DeepSeek-V4-Pro has been rolled out on the APP, Web, and API", "Model names remain unchanged"). Peak/off-peak pricing is LIVE since 2026-08-16 16:00 UTC; verbatim from the live pricing page: "Peak hours are 01:00 - 04:00 and 06:00 - 10:00 UTC (all other hours are off-peak)". Reported per-1M figures (off-peak/peak): v4-flash cache-hit 0.007/0.014, cache-miss 0.22/0.44, output 0.66/1.32; v4-pro cache-hit 0.022/0.044, cache-miss 0.66/1.32, output 1.98/3.96 -- modelPricing.ts direct entries (0.435/0.87, 0.14/0.28) are the OLD flat rates and now under-count the spend cap -> knk0q (p0). Same announcement added reasoning_effort=low (deepseek.md lists high|max only) and native Responses API support (no touch-point, LoopAgentAdapter uses Chat Completions). T574's question is answered: it flipped. knk0q DONE 2026-08-21: re-fetched the pricing page via curl (not WebFetch's LLM summary) and the brief's reported figures matched verbatim; modelPricing.ts's deepseek-v4-pro/deepseek-v4-flash rows now carry both off-peak (base) and peak (.peak) rates with getModelPricing()/computeChatCost() resolving peak vs off-peak from a UTC-hour-aware Date param (default now()) -- time-of-day-aware, not a flat bump. Also corrected deepseek.md: reasoning_effort is a TOP-LEVEL request field (sibling of thinking), not nested inside it as previously documented, and the live thinking_mode guide lists none/low/medium/high/xhigh/max (default high) -- no rejecting enum exists anywhere in src/ for DeepSeek's own reasoning_effort (LoopAgentAdapter never sets it today). RESOLVED same day (27cd286): the spend-cap-affecting cost for real LoopAgentAdapter dispatches comes from src/store/creditLedger.ts's estimateCostUsd(), which previously used only a coarse provider-level PROVIDER_RATES.deepseek (flat $0.27/$1.10, ~5x under at peak); it now accepts modelId + at and bills at the per-model time-of-day rate when modelPricing.ts knows the model (LoopAgentAdapter passes its model id), and the deepseek provider fallback was raised to the PEAK v4-pro rate $1.32/$3.96 (conservative). Still open for a later sweep: the openrouter provider fallback (0.27/1.10) and openrouter.md's deepseek/deepseek-v4-pro $0.435/$0.87 example predate V4 GA. 2026-08-24 entry (findings by cyber-011; corrected and extended by T679 on 2026-08-25 after re-probing the live API). THREE surfaces this doc had never mentioned are live: (1) Vision (https://api-docs.deepseek.com/guides/vision) -- deepseek-v4-flash-vision-exp only, images in USER messages only (system 400s with Image in system message is unsupported; a non-vision model 400s with This model does not support image), three input paths (inline base64 data: URL, public https URL, or a {"type":"file","file_id":...} block), a detail field taking low|high|original|auto (only low differs -- it downscales to 512x512; the other three all keep the original), a hard 384-token-per-image ceiling billed as ordinary input tokens, max 600 images/request, body 48 MiB, single image 32 MiB inline / 64 MiB via file_id, 8192 px per side dropping to 4096 at >=15 images. (2) Files API (https://api-docs.deepseek.com/guides/files_api) -- POST/GET/DELETE /files, purpose=user_data (only value; assistants 400s), file-api-* ids, 64 MiB, optional expires_after[anchor]=created_at + expires_after[seconds] 3600..2592000; POST /files returns 200, not 201 (live-probed). (3) Native OpenAI Responses API (https://api-docs.deepseek.com/guides/responses_api) plus a documented Codex integration (changelog 2026-08-13, https://api-docs.deepseek.com/quick_start/agent_integrations/codex, wire_api = "responses" + a one-click setup script) -- no data: [DONE], ends on response.completed|incomplete|failed; usage is input_tokens/output_tokens with NO prompt_cache_* pair; unsupported params are SILENTLY IGNORED (live: store:true came back store:false, metadata came back {}). CORRECTED FOOTNOTE -- the two things the 2026-08-24 brief got wrong, both re-probed live 2026-08-25: (a) reasoning_effort has SEVEN values, not six. The authoritative source is the API's own deserialization error, which on an invalid input returns verbatim unknown variant `bogus`, expected one of `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, `max` -- NOT the schema page (which displays only [low, high, max]) and NOT a hand-kept list. minimal was absent from deepseek.md, from the page's displayed values and from the earlier six-value research. The page still states verbatim "For compatibility, medium and xhigh are mapped to high", so the 2026-08-13 changelog's "three effort levels" named the canonical BUCKETS and did NOT remove the aliases -- do not narrow the list to three. Bucket membership is measured by prompt_tokens on a fixed short prompt (the size of the injected boilerplate), which is deterministic (42/42 identical readings across 3 runs x 7 values x 2 models) and yields exactly THREE groups: {none, minimal, low} inject nothing, {medium, high, xhigh} are byte-identical to each other, {max} is its own value -- measured 11 / 90 / 103 with omitted=90 (an independent machine read 6 / 85 / 98, omitted=85: same structure, constant prompt-length offset). medium/xhigh matching high to the token is a deterministic CONFIRMATION of the page's mapping note, and omitted landing on the same value is stronger evidence the default is high than the prose. That metric CANNOT separate none from low or minimal from low -- all three inject nothing, so the minimal-vs-low relationship is left UNASSERTED. Whether the parameter is HONOURED at all is a SEPARATE metric: presence of reasoning_content (none -> 0 chars over 4 runs and no reasoning_tokens key at all; minimal and low -> 61-115 chars) -- the only signal that catches a silently-ignored effort field. Never use reasoning-TOKEN counts for either job: on an easy prompt they are pure noise (an independent run got low=81, medium=24, high=62, xhigh=75, max=33). Also newly recorded: nesting reasoning_effort inside thinking is silently ignored (200, falls back to the default bucket -- even with a bogus value, where the same value at top level 400s), and the Anthropic-format equivalents are {"reasoning":{"effort":...}} for the toggle and {"output_config":{"effort":...}} for effort. (b) The legacy aliases are DELISTED, not dead. The brief and deepseek.md both said deepseek-chat/deepseek-reasoner fail at the provider; live-probed 2026-08-25 they return HTTP 200 and resolve to deepseek-v4-flash (chat -> non-thinking, reasoner -> thinking), while a genuinely unknown id 400s naming only the three V4 ids. They ARE gone from GET /models and from the documented model enum, so the 2026-07-24 sunset is a past-tense fact -- but the failure mode is a SILENT wrong-model dispatch, not an error. T681's startup hard-stop is kept and its justification rewritten in src/core/config.ts (comment + user-facing message), src/tui/doctor.ts and src/cyberine-carry-run.ts; behaviour unchanged. Other live-verified facts added to deepseek.md: the chat-completions model enum now includes the vision id; image cost is folded into prompt_tokens with no image-specific usage field (an 8x8 PNG dispatch returned prompt_tokens 203 and no image_tokens key); prompt_tokens_details.cached_tokens is returned on every response but documented nowhere; and frequency_penalty/presence_penalty are now marked deprecated and no-op (still accepted, 200, never rejected). Carried-over claims re-verified against their own pages: strict tool mode is now stated to work in BOTH thinking and non-thinking mode and its supported JSON-Schema keyword surface is enumerated (no minLength/maxLength/minItems/maxItems); JSON mode requires the word "json" in the prompt and may return empty content; context caching is now specified in Sliding-Window-Attention cache-PREFIX-UNIT terms (full-match only, not longest-common-prefix); FIM caps output at 4K and is "Not supported" on the vision id; chat prefix completion unchanged. Pricing table + both footnotes re-read cell-by-cell: unchanged. No new backlog task filed -- everything material landed in the doc; the one gap left open is that nothing in this repo uses the Responses API / Codex-at-DeepSeek route. 2026-08-28 sweep (R02): no change. The updates page still tops out at the 2026-08-21 "DeepSeek-V4-Flash-Vision-Exp Release" entry, which the 2026-08-24 review already covered. No new model id, deprecation, endpoint, param, auth or pricing change. Pinned-id re-resolve also clean: deepseek/deepseek-v4-pro-0813 (modelCatalog.ts, the T691 pin) is still live on openrouter.ai/api/v1/models, alongside the undated alias -- no drift. Baseline date bumped only. 2026-09-04 sweep (R02): no material change. The official updates page's newest entry is still 2026-08-21 (DeepSeek-V4-Flash-Vision-Exp, model='deepseek-v4-flash-vision-exp', explicitly "an experimental model") -- already reflected in this row's model column from the 2026-08-28 sweep. Nothing newer: no new id, no deprecation or sunset, no API/param/auth change, no pricing change. Baseline date bumped so the next diff has a fresh point. 2026-09-10 sweep (R02): MATERIAL, p0 -- a NEW model and a SUNSET OF THIS REPO'S DEFAULT, four days out. The updates page's newest entry is dated 2026-09-10 (today), "DeepSeek-V4.1-Flash Release": new id deepseek-flash, with deepseek-v4-flash and deepseek-v4-flash-vision-exp TEMPORARILY routed to V4.1, and -- the part that matters here -- deepseek-v4-pro requests all route to V4.1 Flash after 2026-09-14 12:00 Beijing time. Cross-checked on a SECOND page rather than trusted from one summary: the pricing page states verbatim "requests to deepseek-v4-pro will all be routed to V4.1 Flash and billed at the V4.1 Flash price". config.deepseekModel defaults to deepseek-v4-pro (src/core/config.ts:1012), so on 2026-09-14 every unpinned DeepSeek dispatch silently changes model -- a Flash-class model answering where the strong reasoning tier was routed, with modelPricing's v4-pro row over-counting output 3.3x ($1.98 vs $0.60 off-peak). This is exactly the silent-wrong-model class the T681 legacy-alias hard stop exists for, and DEEPSEEK_LEGACY_MODEL_IDS does not contain deepseek-v4-pro. Filed k9tvx (p0). New prices read off the same page: deepseek-flash cache-hit 0.003/0.006, cache-miss 0.15/0.30, output 0.60/1.20 (off-peak/peak). NOT a finding, checked and already correct: the pricing page's peak window now reads "01:00 - 04:00 and 06:00 - 10:00 UTC, Monday through Friday" and modelPricing.ts already carries that weekday gate (T685). 2026-09-17 R02 light sweep: no entry newer than the 2026-09-10 V4.1-Flash release; the deepseek-flash default pin re-verified against config.ts and modelCatalog.ts, no drift. 2026-09-24 R02: no entry after 2026-09-10; DEEPSEEK_MODEL default deepseek-flash still current. 2026-10-01 sweep: newest entry still 2026-09-10 (V4.1-Flash); DEEPSEEK_MODEL default deepseek-flash matches, pin clean. |
| OpenRouter | raw API (aggregator) | https://openrouter.ai/announcements | LoopAgentAdapter (loop-deepseek-openrouter, loop-openrouter-build); OPENROUTER_API_KEY/OPENROUTER_BASE_URL/OPENROUTER_MODEL | n/a (aggregator) | 2026-06-07 | Blog/announcements doubles as the changelog; no dedicated /changelog path exists. See openrouter.md. STANDING PER-SWEEP CHECK (T691), do not skip: Cyberine's OpenRouter defaults are DATED current-GA ids (deepseek/deepseek-v4-pro-0813, deepseek/deepseek-v4-flash-0731) because on this route the undated alias is a FROZEN legacy pointer, the inverse of DeepSeek-direct. A dated id goes stale by construction, so every sweep must run `curl -s https://openrouter.ai/api/v1/models |
| Moonshot AI / Kimi | raw API | https://platform.kimi.ai/docs/change-log | LoopAgentAdapter (loop-kimi-build); also via OpenCode (opencode-kimi); MOONSHOT_API_KEY/MOONSHOT_BASE_URL/MOONSHOT_MODEL | kimi-k3 | 2026-08-28 | platform.moonshot.ai 301-redirects here (intl); mainland is platform.moonshot.cn. 2026-07-01: T517 confirmed kimi-k2.7-code live against platform.kimi.ai/docs/models, .../pricing/chat-k27-code, .../guide/kimi-k2-7-code-quickstart, and models.dev/providers/moonshotai (release corroborated by MarkTechPost + Cloudflare changelog, both dated 2026-06-12) — bumped Cyberine default from kimi-k2.6. Note: k2.7-code has NO non-thinking mode (thinking mandatory, unlike k2.6). 2026-07-10 sweep: NO material change — the platform's own changelog page (platform.kimi.ai/blog/posts/changelog) has no entry newer than 2025-11-06; a WebSearch hit citing a July-2026 "kimi-k2-0711-preview" release was a mis-dated pull of the page's actual 2025-07-11 entry, not a new 2026 model. kimi-k2.7-code remains latest. 2026-07-17 sweep: kimi-k3 released 2026-07-16 — genuine 2026 date confirmed by Fortune/TechCrunch/simonwillison.net + models.dev (moonshotai/kimi-k3). 2.8T-param MoE, native visual understanding, always-on thinking, 1M context; pricing $3/1M input ($0.30 cache-hit) / $15/1M output (Sonnet-tier); open-weights pledged 2026-07-27; debuted #3 on Artificial Analysis (behind Fable 5 + GPT-5.6 Sol). Filed to add to catalog (high). See moonshot-kimi.md. 2026-08-21 sweep: NO material change -- docs change-log and models page both top out at kimi-k3 (2026-07-16); k2.5/k2.6/k2.7-code/k2.7-code-highspeed still active; models page notes kimi-k2.5 is "no longer available to newly registered users" (existing accounts unaffected). The blog changelog URL remains permanently stale (2025-11-06). Open-weights pledge not chased. 2026-08-28 sweep (R02): DROPPED from the light-sweep default -- both touch-points are RETIRED. loop-kimi-build and opencode-kimi are in RETIRED_WORKERS since 2026-08-27 (kn4vz, Moonshot account out of balance; the operator retired rather than funded). Sweeping a changelog for a worker that cannot be dispatched files tasks nobody can act on, so this row is now full-sweep-only. It is NOT deleted: a revival decision would want the changelog, and the row stays live for that. Baseline date bumped so the next full sweep has a real diff point. |
| LiteLLM gateway | gateway (OpenAI-compat proxy) | https://github.com/BerriAI/litellm/releases | LoopAgentAdapter (loop-gateway-a, loop-gateway-b); GATEWAY_BASE_URL/GATEWAY_API_KEY/LOOP_MODEL_A/LOOP_MODEL_B | v1.90.0 | 2026-06-07 | GitHub releases is the changelog of record (no separate docs changelog page). See litellm.md. |
| OpenAI | raw API (gateway + Codex) | https://developers.openai.com/api/docs/changelog | LoopAgentAdapter via gateway (openai/gpt alias); backs Codex CLI; OPENAI_API_KEY/OPENAI_BASE_URL/OPENAI_MODEL | gpt-4o (config default) | 2026-07-17 | platform.openai.com/docs/changelog 301-redirects here. 2026-07-17 sweep: GPT-5.6 family (Sol/Terra/Luna) launched 2026-07-09 — reachable via direct OpenAI-compat API (distinct from Bedrock-only T573) AND Codex -m: sol $5/$30, terra $2.50/$15, luna $1/$6 per 1M, 1.05M ctx (128K max out), reasoning none-max; gpt-5.6 alias routes to Sol. Catalog still on stale gpt-4o/gpt-4o-mini — filed to add + weigh terra as new config default. (models.dev shows these $0/$0 = stale; trust OpenAI's own pricing page.) See openai.md. |
| Anthropic Claude | raw API (gateway + Claude Code) | https://platform.claude.com/docs/en/release-notes/api | Native AnthropicAgentAdapter; gateway (anthropic/claude alias); backs Claude Code CLI; ANTHROPIC_API_KEY/ANTHROPIC_BASE_URL/ANTHROPIC_MODEL | claude-sonnet-5-5 (config default) | 2026-10-01 | 2026-07-01 refresh: Sonnet 5 released (claude-sonnet-5, $3/$15, adaptive-on) — adopted as Cyberine default (catalog + pricing + config); Fable 5 (claude-fable-5, $10/$50) releasing 2026-07-02, already in catalog. Fixed a stale retired default (claude-sonnet-4-20250514) in app.tsx. Claude Code's own changes tracked in its CHANGELOG.md. 2026-07-17 sweep: no new SELF-SERVE model beyond catalog; claude-mythos-5 (Fable-5 specs, $10/$50) and claude-mythos-preview ($25/$125, defensive-cyber) are Project Glasswing invitation-only — not catalog-actionable, informational only. See anthropic.md. 2026-08-21 (k3kbw, closes the CC-sweep-filed gap): added claude-opus-5 to catalog + pricing (modelCatalog.ts, modelPricing.ts) alongside the still-cataloged claude-opus-4-8. Standard pricing verified live against platform.claude.com/docs/en/docs/about-claude/pricing model-pricing table: "Claude Opus 5 |
| Claude Code CLI | headless coding agent | https://github.com/anthropics/claude-code/releases | CliAgentAdapter via makeClaudeAdapter (build worker claude); CYBERINE_CLAUDE_MODEL (the plugin shipped a function-hook module until 2026-09-21; it was removed and the plugin now ships no hooks, so function-hook release notes no longer affect this repo) | v2.1.285 | 2026-10-01 | 2026-07-17 sweep (v2.1.206→211, latest pub 2026-07-11): one material flag added, 2.1.211 added --forward-subagent-text for stream-json subagent forwarding (-> T626); all 5 prior releases (2.1.207-2.1.210) are bugfixes/UX/internal (background-session reliability, permission-mode label rename "default"->"Manual", startup warnings for permission rules under --dangerously-skip-permissions bypass, @google/genai+env-var leak fixes). No breaking change to headless spawn/parse surface. Separate under-utilization audit surfaced 6 other CC capability gaps never wired (--exclude-dynamic-system-prompt-sections unconditional for cache-hit, --effort dial, --json-schema structured output, --no-session-persistence for cold-spawn, makeClaudeCodeAdapter dead-code cleanup, ultrareview spike) filed as T622-T630. 2026-07-17b: v2.1.212 (pub today, verified vs two GitHub primary sources; a WebSearch 'latest=2.1.211' hit was stale aggregator cache). Headless deltas: SIGTERM in print/SDK mode now exits 143 (no orphaned process tree); NEW per-session caps CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION + CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION (default 200 each — can silently truncate a fan-out-heavy CC worker); CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS (>2min MCP calls auto-background); set_model applied mid-turn in headless/SDK; transcripts now record reasoning-effort level (stream-json parser watch); Task-tool mode param deprecated. Filed follow-up for caps + exit-code handling. See claude-code-cli.md. 2026-07-23 (T646, live-verified against installed v2.1.218 via claude --help + strings): caps landed as opt-in CYBERINE_CLAUDE_MAX_WEB_SEARCHES_PER_SESSION/CYBERINE_CLAUDE_MAX_SUBAGENTS_PER_SESSION knobs (default omitted, CC's own 200 stands); SIGTERM->143 confirmed a no-op for CliAgentAdapter (its cancel path already gates on an internal aborted flag before ever inspecting the exit code); reasoning-effort transcript field confirmed inert (named-field parsing ignores unknown keys); CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS documented as not yet relevant (T488 MCP-bridge gap still open, no worker is ever given --mcp-config). Closed. 2026-08-21 sweep (v2.1.214->v2.1.237, 23 releases, latest pub 2026-08-20): MATERIAL new model claude-opus-5 in v2.1.219 (2026-07-24, "now the default Opus model -- 1M context, fast mode at $10/$50 per Mtok") -- not in Cyberine's catalog/pricing (only opus-4-8) -> k3kbw. Same release: nested subagent forwarding at depth-2+ under --forward-subagent-text (parseClaudeSubagentText is already depth-agnostic, no adapter change) and mcp_server_errors on the stream-json init event (inert, no worker gets --mcp-config, T488). v2.1.236 added ANTHROPIC_DEFAULT_MODEL (inert: makeClaudeAdapter always passes --model). No flag added/removed/renamed on the -p --output-format stream-json path; rest is permission/TUI/sandbox hardening. Installed 2.1.237. 2026-08-21 follow-up (k3kbw): claude-opus-5 catalog/pricing gap closed — see the Anthropic Claude row above and anthropic.md. 2026-08-27 (T627, GO, installed v2.1.246): live-probed --no-session-persistence against both --output-format json and the real stream-json --verbose shape — session_id and the system/init topology fields parseClaudeSessionTree reads both survive with the flag set, only the on-disk transcript under ~/.claude/projects is suppressed. Adopted on the cold-spawn path in makeClaudeAdapter, scoped !opts.warmSession && !opts.captureSessionTree; guard npm run selftest:no-session-persistence. Full probe record in claude-code-cli.md ("Gotchas"). Closed. 2026-08-28 sweep (R02): MATERIAL, filed T695. Installed v2.1.247, up from the reviewed v2.1.237. Three headless-relevant deltas, verbatim: v2.1.247 "SIGTERM in print/SDK mode no longer records an interrupted turn or synthetic tool denials before exiting; running commands are still terminated and the process still exits with code 143" -- Cyberine SIGTERMs a claude -p worker on timeout/cancel, so what a killed worker's transcript reports has changed. v2.1.239 + v2.1.238 "MCP headersHelper in a project .mcp.json, plugin, or agent file now require that folder's trust dialog to have been accepted (also under claude -p)" -- a worker spawned in a throwaway worktree has never accepted a trust dialog for that path. v2.1.247 "Fixed sub-agents dying on a first-call model 404: they now use the session's fallback model chain" -- changes what a bad CYBERINE_CLAUDE_MODEL does (silent fallback instead of a hard fail). 2026-08-29 (T695, CONFIRMED HARMLESS x3, no adapter change, closed): re-checked against the raw CHANGELOG.md (the SIGTERM delta is actually v2.1.234 and the headersHelper deltas are all v2.1.238, not v2.1.239 -- version-only correction, immaterial to the verdicts) and live-verified against the installed v2.1.251 binary. SIGTERM: parseClaudeStreamJson never read the removed interrupted-turn/denial markers (reads only the final result line) and a killed session's cache entry is never stored for warm-resume (result.status 'error'/'cancelled' both skip the cache-set in runStreaming), so a killed worker is never subsequently resumed either. MCP headersHelper: no claude worker is ever given --mcp-config (T488 gap) and --safe-mode (applied unconditionally on every build-worker spawn) disables all MCP servers per claude --help, so this repo's own root .mcp.json is inert for a spawned worker regardless. Model-404 fallback: scoped to CC's own internal Task-tool sub-agents, not the top-level spawn; Result.provider/WorkerRun.provider is set once from the configured model and never re-read from the CLI's output, so there was never a field for a silent fallback to corrupt. Full evidence in claude-code-cli.md ("Gotchas"). 2026-09-04 sweep (T708): MATERIAL x2, both filed; 6 recorded harmless. Baseline said v2.1.247 while the installed binary reported v2.1.260, so the diff covered 13 releases, not the 4 the task named (2.1.253-2.1.256 have no entries; 2.1.250 is "Bug fixes and reliability improvements"). MATERIAL: (1) v2.1.257 added the model claude-fable-5-1 -- Cyberine's catalog/pricing carry only claude-fable-5, the same gap class k3kbw closed for opus-5; cross-checked live rather than trusting the release note (the k3kbw lesson), and this time the note is right: base $10/$50 same as Fable 5, but the cache-HIT rate is $0.25/MTok because Fable 5.1 and Mythos 5.1 price reads at 0.025x instead of the standard 0.1x. (2) Two new headless flags, v2.1.248 --restricted (removes built-in command/code tools + WebFetch) and v2.1.259 --permission-prompts none (deny anything prompting, for unattended hosts) -- neither adoptable for a build worker, both candidate postures for a read-only worker / a stdin-closed stall. HARMLESS with evidence in claude-code-cli.md: the v2.1.251 default commit trailer Co-Authored-By: Claude Code cannot reach a Cyberine commit (Cyberine commits with its own message; captureDiff reads git diff --cached), CLAUDE_CODE_SUBAGENT_MODEL now beating an agent definition is a cost note on a claude worker's INTERNAL subagents only (cost is read from the CLI's own total_cost_usd), and four worktree/sandbox/-p --resume FIXES (v2.1.257/259/260) land on the side Cyberine is on -- every isolate step spawns inside a detached worktree under the host sandbox. Nothing else across the 13 releases touches print mode, the stream-json shape, or a passed flag. 2026-09-10 sweep (R02): MATERIAL x3, filed kb8rd; read from the local ~/.claude/cache/changelog.md against the installed binary (2.1.267, so the diff covered 2.1.261/263/265/266/267 -- 2.1.263 is "Bug fixes and reliability improvements" and 2.1.266 is a single gateway regression fix for CLAUDE_CODE_USE_GATEWAY, which this repo never sets). (1) v2.1.261 added the settings bashOutputMaxChars AND taskOutputMaxChars (both up to 128K) -- kqq2g wired only the first, so the Task-tool half of the same knob is an unclaimed gap on a build worker that fans out internally. (2) v2.1.261 added the flag --append-subagent-system-prompt-file and v2.1.267 added --system-prompt-snapshot off; neither is passed today and the second interacts with --system-prompt / --exclude-dynamic-system-prompt-sections, both of which makeClaudeAdapter already decides between. (3) v2.1.267 added the maxEffortLevel setting, which CAPS effort on every provider -- Cyberine passes --effort from CYBERINE_CLAUDE_EFFORT, so a user-level or managed cap can now silently lower a worker's effort with no adapter-visible signal. Recorded, not filed: v2.1.261's "keybindingFlavor no longer has any effect" and its Bash-matching word-edit keys are input for the existing karmy keymap task, and v2.1.265's 1 GB cap on tool results saved to disk sits far above anything a worker produces. kb8rd CLOSED the same day. taskOutputMaxChars is now wired as the sibling of bashOutputMaxChars -- both ride ONE inline --settings object on both claude paths (makeClaudeAdapter and makeClaudeBgAdapter), because a second --settings flag REPLACES the first instead of merging, and selftest:claude-bash-output-cap now asserts exactly that plus the merged JSON. Its presence was confirmed with strings on the installed 2.1.267 bundle rather than from the changelog line, since it is a settings key and --help cannot show it. Both new flags were DECLINED with reasons: --system-prompt-snapshot off re-renders the system prompt every request, a deliberate prompt-cache miss that works against the reuse --exclude-dynamic-system-prompt-sections already buys; --append-subagent-system-prompt-file does not appear in claude --help on 2.1.267 at all, so it is unverified rather than adopted. maxEffortLevel is recorded as an accepted, unsurfaced risk in USAGE.md (no doctor plumbing added). 2026-09-17 R02 light sweep: v2.1.267 -> v2.1.273 (installed matches latest). No -p --output-format stream-json flag added, removed or renamed, no auth change. Two non-adopted findings: v2.1.269 fixed permission_denials omitting path-scoped deny blocks (Cyberine never reads that field), and v2.1.271 replaced Monitor's no-timeout persistent option with a deadline (10 minutes in -p) that asks Claude to re-arm, filed as kvks8 to probe whether a headless worker can stall on it. 2026-09-18 (ka37q, scoped re-diff, NOT an R02 sweep -- one row only, R02's last-done stays 2026-09-17): version correction + one new material entry. Live-fetched the raw CHANGELOG.md off github.com/anthropics/claude-code rather than trusting the prior line: the Monitor deadline-for-persistent change is actually v2.1.269, not v2.1.271 as recorded above -- verbatim: "Changed Monitor watches to always have a deadline (at most 30 minutes; 10 in single-prompt -p runs) and notify Claude to re-arm, replacing the no-timeout persistent option." No Monitor-relevant line exists at v2.1.271 itself; that citation was wrong. NEW since the 2026-09-17 sweep: v2.1.274 (now the installed binary on this host) further improved the same surface -- verbatim: "Improved Monitor tool notifications: a script's final output and its exit now arrive as one notification instead of two, saving a model turn." Both facts adopted into plugin/skills/autopilot/SKILL.md's log-watch instructions (kjaw1/ka37q); no file under plugin/ mentions persistent: true any more. kvks8 (headless -p Monitor-deadline stall probe) is unaffected and still open, now anchored to the 10-minute -p figure v2.1.269 states explicitly. 2026-09-24 R02: v2.1.275-281 -- claude --bg in an untrusted cwd now exits when not interactive (2.1.281, -> kz74p); TaskOutput tool removed so taskOutputMaxChars is a no-op (2.1.278, -> khv8j); claude-opus-5-5 added as default Opus (2.1.280, -> kdhbf). 2026-10-01 sweep: v2.1.281 -> v2.1.285. Material: v2.1.284 added claude-sonnet-5-5 (default Sonnet on the Anthropic API, 1M context, $2/$10 per Mtok, $0.20 cache reads), not yet in modelCatalog.ts / modelPricing.ts; v2.1.285 "Changed background Bash and PowerShell commands to stop after a time limit (their timeout with run_in_background, default 30 min, max 2 h)", which cuts the run skill's backgrounded cyberine wait <runId> && cyberine digest <runId> at 30 minutes. Both filed as backlog tasks (see Sweep log). |
| Codex CLI | headless coding agent | https://github.com/openai/codex/releases | CliAgentAdapter via makeCodexHeadlessAdapter (build worker codex) / makeCodexAdapter; CYBERINE_CODEX_MODEL | 0.159.2 (installed 0.159.2) | 2026-10-01 | 2026-07-17 sweep (0.144.1→144.5, live installed 0.143.0 is actually one patch behind): no material change — releases 0.144.2-5 (2026-07-13 to 2026-07-16) are Guardian auto-review rollback, version-only empty release, no-changes release, and improved dangerous-command detection that's bypassed by --dangerously-bypass-approvals-and-sandbox anyway. T572 (writes approval mode) still correctly deferred (approval policy now reachable via -c approval_policy= only, not a new flag). T573 (Bedrock models) unaffected. Separate under-utilization audit surfaced 3 other Codex capability gaps: task.images wire (-i flag, critical bug-fix), --dangerously-bypass-hook-trust (reliability gap for repo with hooks), --output-schema (optional structured output) filed as T623-T625/T631. 2026-07-17b: 0.144.5 still newest STABLE — a 0.145.0-alpha.1-20 pre-release train exists (194 commits, newest today) but a compare-diff shows ZERO changes to exec flag-parsing (-m/-i/--output-schema/approval/sandbox untouched). Inside Codex only: GPT-5.6 model migration (gpt-5.4 hidden -> terra/luna) + agents config-key unify — neither touches Cyberine's spawn surface. No CLI task. See codex-cli.md. 2026-08-21 sweep (0.144.6->0.148.0, 6 stable; installed binary is 0.146.0, NOT 0.148.0 as codex-cli.md briefly claimed -- corrected): live-verified on the installed binary that --full-auto is REMOVED (not merely deprecated) and -a/--ask-for-approval exists only on top-level codex, absent from codex exec; codex-cli.md flag table stale on both. 0.147.0 (2026-08-07, PR #36373) added --approve-for-me (alias --not-so-yolo; approvals_reviewer=auto_review + approval_policy=on-request + sandbox_mode=workspace-write; conflicts with --dangerously-bypass-approvals-and-sandbox) -- supersedes the archived T572 deferral. 0.145.0/0.148.0 made Amazon Bedrock a built-in provider (GPT-5.6 Sol default); 0.148.0 added codex exec fork. 0.144.6 states GPT-5.6 ctx as 272K inside Codex (vs 1.05M on OpenAI's API page -- likely Codex's own budget). All -> k2n3k (doc corrections + binary upgrade + --approve-for-me go/no-go). 2026-08-21 (k2n3k, docs half, DONE): codex-cli.md flag table + gotchas fixed to match the installed v0.146.0 binary, re-verified live via codex exec --help / codex --help -- --full-auto documented as REMOVED entirely (not deprecated), absent from both surfaces; -a/--ask-for-approval documented as top-level-codex-only, absent from codex exec, unreachable by a headless worker. --approve-for-me (0.147.0) documented as an ALTERNATIVE approval mode conflicting with --dangerously-bypass-approvals-and-sandbox (never additive), UNPROBED pending upgrade; Bedrock-built-in-provider + codex exec fork (0.148.0) documented as unprobed upstream facts. No adapter/CliAgentAdapter.ts code change needed or made (grep-confirmed no --full-auto/-a call sites; --approve-for-me intentionally NOT wired). Binary upgrade (0.146.0 -> >=0.147.0) and the --approve-for-me go/no-go remain PENDING A HUMAN DECISION -- out of the docs-half scope; the shared global codex binary was not touched. 2026-08-28 sweep (R02): no material change to Cyberine's touch-points. Newest stable 0.150.1 (2026-08-27); installed 0.149.1. Release bodies for 0.149.0 / 0.149.1 / 0.150.0 / 0.150.1 grepped for flag / breaking / exec / model / auth / deprecation lines -- nothing touches codex exec's headless invocation, its flags, or model-id handling. The two closest, both internal: "Standardize shell execution on unified exec" and "Remove skill model delegation support" (Cyberine uses neither). Version bump filed as T696 because the upgrade decision is the operator's, not the sweep's. 2026-09-04 sweep (R02): no material change to Cyberine's touch-points; ONE parser watch filed. Installed 0.153.2 (the newest stable, published 2026-09-03); reviewed baseline was 0.150.1, so 0.151.0 / 0.152.0 / 0.153.0 / 0.153.1 / 0.153.2 were read in full from the GitHub release bodies (the 0.154.0-alpha train was skipped -- pre-release, and this row has always tracked stable). NO flag added, removed or renamed on codex exec; no auth-scheme change; no deprecation; no change to -m / model-id handling. The one line that touches a Cyberine-consumed surface is 0.152.0's "The terminal UI and codex exec show credential-refresh progress, including Amazon Bedrock reauthentication" (#41239) -- NEW output on the exec stream parseCodexStdout reads, which is a parser-tolerance question rather than a flag change, so it is filed rather than assumed harmless. Informational, not actionable: 0.153.1 added GPT-6-Astra behind API config only ("without changing default model or showing it in the model picker") and 0.153.2 corrected its Fast-tier description to "2x speed, increased usage" -- no confirmed API id string, nothing to catalog. Everything else across the five releases is TUI (vim search/undo, rate-limit banners, recap config, history rendering), MCP naming/limits, plugin-catalog and Guardian/approval-review internals, none of which a headless codex exec spawn reaches. Note the T696 operator-gated upgrade decision is now two minor versions further behind (installed 0.153.2 IS current, so T696's premise -- 0.149.1 installed vs 0.150.1 available -- is already satisfied; that task should be re-read before acting on it). 2026-09-09 scoped re-diff (0.153.2 -> 0.153.4, NOT a full R02 sweep -- this row only; R02's last-done is deliberately NOT bumped). Run out of T696's closure. Installed binary is 0.153.4, the newest stable (the 0.154.0-alpha train is skipped as always). Only two stable releases were unreviewed and they are BOTH Astra rollout hotfixes -- but one IS material, reversing the "informational, not actionable" read the 2026-09-04 pass correctly gave 0.153.1. 0.153.3 (#42805): "Added GPT-6-Astra to the Amazon Bedrock model picker for Mantle and Runtime global/US routes." -- Bedrock-only, not Cyberine's path. 0.153.4 (#42874): "Fixed Astra's visibility in the bundled model picker and made it the bundled default when no model is explicitly configured." That is a model-default change landing directly on Cyberine's touch-point: makeCodexHeadlessAdapter emits -m ONLY when CYBERINE_CODEX_MODEL is set, and it is set neither in .env nor in the shell, so the codex build worker now rides whatever Codex calls its bundled default. Locally this is masked -- the operator's own ~/.codex/config.toml pins model = "gpt-6-astra" -- but that is a personal file, not a project guarantee, so CI or another machine would silently swap models. Filed as kd7ax (pin it or record the decision, and stop logging the model as the literal string default). Still NO flag added/removed/renamed on codex exec, no auth-scheme change, no deprecation. Dispatch re-verified live on 0.153.4 with the adapter's exact argv: exit 0, file written, and the tokens used label parseCodexHumanUsage reads still present (T694 surface intact). The other two lines across both releases are Astra async-question guidance (#42809, #42878), internal to Codex. 2026-09-10 sweep (R02): one new stable, no flag change on codex exec; filed kn4td (p2) for the review. 0.154.0 published 2026-09-09, one release past the installed 0.153.4. Its notes name no codex exec flag, no auth-scheme change and no deprecation; the two lines closest to a Cyberine surface are "GPT-6-Astra is now available in the model picker and Amazon Bedrock catalogs" (the bundled-default question is already open as kd7ax, which 0.153.4 created and this release does not close) and "Experimental worktree support lets you create isolated checkouts for new or forked sessions" -- Codex growing its OWN worktree feature, which overlaps nothing today because Cyberine hands each isolate step a detached worktree and spawns inside it. Everything else is TUI (vim R mode, inline questions, /copy), Windows daemon lifecycle, MCP OAuth refresh and plugin-tool pickup. 2026-09-17 R02 light sweep: 0.154.0 is still the newest stable (0.155.0 alphas out of scope) and is now the installed binary, so kn4td's upgrade has been taken. Full 0.154.0 body re-read: no codex exec flag, auth or output change; the one chore removes the codex mcp-server entry point, which Cyberine never calls. 2026-09-24 R02: GPT-6 Sol / GPT-6 Luna in the model catalog (0.156.1) and a new --no-daemon flag (0.156.0) -> kdhbf; no codex exec flag change seen. 2026-10-01 sweep: 0.156.1 -> 0.159.2, no material change for Cyberine: GPT-6 Sol/Luna (0.157.0) already cataloged; GPT-5.4 removed from bundled catalogs (#47932), which nothing in src/ or plugin/ references. |
| Google Gemini CLI | headless coding agent | https://github.com/google-gemini/gemini-cli/releases | CliAgentAdapter via makeGeminiAdapter (build worker gemini); CYBERINE_GEMINI_MODEL | v0.51.0 | 2026-07-17 | 2026-07-17 sweep: CLI v0.51.0 (2026-07-16) — no headless gemini -p/--model flag change (security hardening + tool-registry-discovery only; docs mirror lags GitHub by one version). Models: catalog has only gemini-2.5-pro; 5+ new usable ids exist — gemini-3.5-flash (new flagship), gemini-3.1-flash-lite, gemini-3.1-pro-preview, gemini-2.5-flash, gemini-2.5-flash-lite. ai.google.dev vs models.dev prices disagree ~20-30% (needs source-of-truth pick before cataloging). Gemini 3.5 Pro NOT GA yet. Filed. UPDATE (T651b, 2026-08-27, doc-verified only — no GEMINI_API_KEY on this machine to live-probe): catalog now carries all 5 ids named above plus 3 more found this pass — gemini-3.7-flash and gemini-3.6-flash are BOTH new Stable/GA Flash generations superseding the 3.5-flash line (raw HTML off ai.google.dev/gemini-api/docs/models + /docs/pricing, last-modified 2026-08-26; WebFetch's own page summary agreed but was cross-checked against the raw <h3 data-text> section anchors rather than trusted alone, since a prior pass on this same page produced inconsistent reads), and gemini-3.5-flash-lite is Stable/GA (its own copy says "Our most cost-efficient GA model"). Declined as non-GA: gemini-3-flash-preview, gemini-3.5-live-translate-preview, gemini-3.1-flash-live-preview, gemini-3.1-flash-tts-preview, gemini-omni-flash (all explicitly Preview). Declined as out-of-modality: gemini-3.5-transcribe(-live) (STT), gemini-3.1-flash-image / gemini-3.1-flash-lite-image / gemini-3-pro-image ("Nano Banana" image gen). See modelCatalog.ts's google entry for the full breakdown. See gemini-cli.md. |
| OpenCode CLI | headless coding agent (multi-provider) | https://github.com/anomalyco/opencode/releases | CliAgentAdapter via makeOpenCodeAdapter (opencode, build workers opencode-deepseek/opencode-kimi); OPENCODE_MODEL/OPENCODE_AGENT/OPENCODE_VARIANT | v1.18.27 | 2026-09-04 | Repo moved orgs: live org is anomalyco/opencode (sst/opencode 404s). RESOLVED 2026-08-22 (cyber-06): the stale sst/opencode cites are gone from opencode-cli.md (title + Sources), src/adapters/CliAgentAdapter.ts's makeOpenCodeAdapter comment, .claude/evolve/SOURCES.md and five [watching] rows in .claude/evolve/LEDGER.md. 2026-07-01 sweep: v1.17.12 still latest, nothing newer; recent at-baseline content (Sonnet 5 adaptive thinking, session snapshots/revert, --mini mode) already covered. 2026-07-10 sweep (v1.17.12->18): NO material change — all six releases are Desktop-app UI polish plus internal provider-routing fixes (Z.ai context-overflow classification, xAI reasoning-effort exposure, GitHub Copilot model routing, Meta Muse Spark system prompt, a new code-mode MCP adapter). No CLI flag added/removed/renamed on the --dangerously-skip-permissions headless path Cyberine's adapter uses, no deprecation, no breaking change. 2026-07-17 sweep: v1.18.3 (2026-07-16) — no headless flag change on --dangerously-skip-permissions/run -p; all deltas are Desktop-app v2 UI. Behavior flip worth noting: v1.18.2 stopped subagents from launching NESTED subagents by default (new configurable subagent_depth) — check if the opencode fan-out path relies on nesting. Filed low-pri. 2026-07-23 (T647): assessed — Cyberine's fan-out (opencode-deepseek/opencode-kimi, oc-fanout) is orchestrator-level (N independent top-level opencode run processes), never one opencode session spawning its own nested subagents; the T493 per-worker opencode.json defines no agent/subagent_depth config. No impact, single-level by design, no override added. Closed. See opencode-cli.md. 2026-08-21 sweep (v1.18.4->v1.18.19, 16 releases; installed binary still v1.17.10): no headless flag change on opencode run --dangerously-skip-permissions. Behaviour deltas on the two providers Cyberine dispatches to: v1.18.17 "Applied the correct sampling defaults to DeepSeek V4 Flash", v1.18.18 "Select the Kimi system prompt correctly for official Moonshot and Kimi providers", v1.18.4 adaptive thinking controls for Kimi on Anthropic-compatible providers; v1.18.16 "Ignore unknown top-level config fields instead of failing config parsing" (T493's generated opencode.json now fails silently on a typo). -> km8aw (binary upgrade + doc notes + known-keys assertion). 2026-08-21 km8aw non-upgrade half landed: assertKnownOpenCodeConfigKeys (src/adapters/CliAgentAdapter.ts) now fails closed at generation time on any per-worker opencode.json top-level key outside opencode's own published schema (https://opencode.ai/config.json), locked by scripts/km8aw-config-guard-smoke.ts; doc notes landed in opencode-cli.md (release deltas, install channel = standalone installer at ~/.opencode/bin, not brew/npm). Binary upgrade itself (still v1.17.10) remains a separate human-gated decision, not done here. 2026-08-22 (cyber-06, triggered by a user report that "opencode released version 2" — the user was RIGHT): OpenCode 2.0 EXISTS as a public beta and is INVISIBLE to this row's watch surfaces. It ships from a different npm package (@opencode-ai/cli, beta dist-tag) than the one this row tracks (opencode-ai, still "latest": "1.18.21"), has NO GitHub release tag (releases still show only v1.18.x), is documented on the /v2 site path (https://opencode.ai/v2/docs, migration guide https://opencode.ai/v2/docs/migrate-v1) with no link from the top nav, and installs as a SEPARATE binary opencode2 alongside v1. An earlier revision of this row claimed no v2 existed — wrong, and the lesson is structural: a release-tag + latest-dist-tag sweep cannot see a product that ships under a new package name on a pre-release tag. The tui-v2 dist-tag (0.0.0-tui-v2-202606261840) lives on @opencode-ai/cli — it was pointing at v2, not at a dead experiment. ACTION for this file: v2 needs its OWN row and its own page (opencode2-v2-beta.md); this row stays scoped to v1. Material in the two releases past the km8aw baseline: v1.18.20 "Answer permission requests triggered by subagents during opencode run" — a BUGFIX, so the installed 1.17.10 is the buggy side: subagent-triggered permission requests were NOT covered by --dangerously-skip-permissions, and Cyberine spawns with stdin closed, so such a request can only stall to the 30-min timeout with no exit code. Upgrading REMOVES that latent stall rather than introducing it; the residual unknown is the new answering path's behaviour under closed stdin, so still probe with a subagent-spawning prompt and v1.18.20 "Surface failed subagent tool calls with a resumable task_id" + "Surface resumable subagent failures instead of returning an empty result" (undocumented new failure-event shape on a path our parser consumes). v1.18.21 is a finish-reason continuation fix + Vertex REP routing + two Desktop bugfixes, no headless surface. Config schema re-verified: 36 live top-level keys == the 36 in OPENCODE_CONFIG_KNOWN_TOP_LEVEL_KEYS, set difference empty both ways, so km8aw's guard needs NO refresh. Full 32-release diff found NO release note touching --dangerously-skip-permissions, --format json, the run flags, the credential paths, the three routed model ids, or the SQLite WAL-lock crash — silence, not proof. Landed WITHOUT upgrading the binary (still 1.17.10): parseOpenCodeStdout now surfaces error events instead of swallowing them and reports SCHEMA DRIFT when zero events match a known type (previously an envelope rename degraded to status:'success' + usage:undefined + a generic "0 tool calls across 0 steps" — a build worker could write real diffs and report nothing); selftest:opencode-parse extended 7 -> 21 checks; the generic unknown-flag diagnosis is now direction-neutral with a provider-doc pointer (no opencode row in CLI_FLAG_COMPAT, so opencode always took that path and was told to "upgrade" even for a flag upstream might have deleted). Also found, NOT fixed: opencode-kimi passes no --variant at all, contradicting the "Don't omit --variant" gotcha (needs a live probe on kimi-k2.7-code); opencode-cli.md cited .claude/rules/opencode-worker-permissions.md, a file that has NEVER existed, and claimed a "deny floor" while the generated per-worker config is all-allow (both corrected in that page). Binary upgrade 1.17.10 -> 1.18.21 remains USER-GATED (shared with the nf-opencode skill). 2026-08-22 (cyber-008, k8xp5): the missing---variant gap above is RESOLVED as a NON-issue, and the gotcha it contradicted is RETIRED. Live-probed on the now-upgraded 1.18.21 binary: moonshotai/kimi-k2.7-code declares "variants": {} in opencode's own model registry (as do k2.6 and k2.7-code-highspeed; kimi-k3 declares low/high/max), so --variant has no tier to map onto; opencode does not validate the value either (--variant bogus-nonexistent runs normally on both a variants-declaring and a variants-less model). And the 2026-05-25 "omitting --variant injects extra skill/rules context" claim does NOT reproduce: on deepseek-v4-pro with everything else fixed, omit / high / bogus all sent an identical 27717-token context (equal step_finish totals AND a full-prefix prompt-cache hit), only max differs (+13 tokens, cache miss). opencode-kimi therefore keeps passing no variant, with the probe cited in buildAdapters.ts. Also measured, unrelated to variants: the moonshotai provider resolves ONLY from MOONSHOT_API_KEY in the env (absent from auth.json here), and that account is currently SUSPENDED for insufficient balance — every kimi arm returned a 429 error event with isRetryable: true, which isOpenCodeTransientError correctly refuses to retry. So the opencode-kimi worker cannot complete a run today for billing reasons, independent of any flag. Evidence .local/research/kimi-variant-probe-20260822/. 2026-08-28 sweep (R02): no material change. Newest 1.18.23 (2026-08-25); installed 1.18.21. 1.18.22-1.18.23 are bugfix-only -- Cloudflare AI Gateway routing for third-party providers, dotted-to-dashed Anthropic model-slug conversion through that gateway, device-login relative verification URLs, and textVerbosity no longer sent to OpenAI-compatible providers that reject it. No CLI flag added / removed / renamed, so --dir / --agent / --dangerously-skip-permissions and OPENCODE_MODEL are untouched. Bumped baseline only; no task filed. 2026-09-04 sweep (R02): no material change. Newest v1.18.27 (2026-09-02); installed binary still 1.18.21, so the operator-gated upgrade from km8aw/cyber-06 remains open. v1.18.24-v1.18.27 are bugfix-only and none touches a flag: the notable deltas are provider header timeouts and streamed-chunk timeouts both DEFAULTING to five minutes (false disables the chunk timeout), Anthropic thinking.blockBinding becoming config-opt-out-able and limited to Claude 5.1+ models so older deployments stop rejecting requests, and an unhandled-rejection fix when cancelling a timed-out SSE read. --dir / --agent / --dangerously-skip-permissions / --variant and OPENCODE_MODEL are untouched; the two five-minute timeout defaults are robustness improvements on the streaming path Cyberine's opencode workers use, in the direction of fewer spurious failures. No task filed. 2026-09-10 (R02): DROPPED from the light-sweep default -- every touch-point is now RETIRED, same rule that moved the Moonshot/Kimi row on 2026-08-28. opencode-deepseek and the default-compare opencode planner entered RETIRED_WORKERS on 2026-09-07 (ks4sf, "operator is dropping the opencode binaries; cyberine replaces opencode as the one-command edit tool"), joining opencode-kimi (2026-08-27, kn4vz) and opencode2-deepseek (2026-09-06, kzhyc). With no dispatchable worker left on this CLI, sweeping its releases files work nobody can act on. The row is NOT deleted -- a revival decision would want the changelog -- but it is full-sweep-only from here, and this sweep did not read it. Baseline left at v1.18.27 / 2026-09-04 deliberately, since nothing was diffed. |
| Ollama (local) | local inference server | https://github.com/ollama/ollama/releases | LoopAgentAdapter (loop-ollama, loop-ollama-build); OLLAMA_BASE_URL/OLLAMA_MODEL | v0.31.1 | 2026-06-07 | See ollama.md. |
| MiniMax | raw API | https://platform.minimax.io/docs/api-reference/text-openai-api (unverified changelog) | LoopAgentAdapter (loop-minimax-direct, loop-minimax-build); MINIMAX_API_KEY/MINIMAX_BASE_URL/MINIMAX_MODEL | MiniMax-M3 | 2026-07-17 | No dedicated changelog/news page found on the international platform docs — the API-reference page itself is the closest live doc. 2026-07-17 sweep: no new model (M3 still latest; next-gen M3/Hailuo 3 H2-2026 only rumored). DATA-CORRECTNESS found: models.dev lists M3 at $0/$0 (stale) — actual $0.30/1M in, $1.20/1M out for prompts <=512K (a 50%-off promo off list $0.60/$2.40), $0.60/$2.40 above 512K, cached-read $0.12, 1M ctx. Also: the mimo-* ids in Cyberine's catalog have NO matching MiniMax product (likely a Xiaomi 'MiMo' mislabel), and MiniMax-M2.1 (2025-12-22) is missing from catalog — filed to verify/fix. RESOLVED (T645, then T651a 2026-08-27): not a mislabel. mimo-* is genuinely Xiaomi's MiMo family, correctly keyed under the separate xiaomi provider (XIAOMI_API_KEY/loop-mimo-build), never grouped under MiniMax — see direct-api.md for the T651a live-probe that also removed 3 dead mimo-v2 ids. MiniMax-M2.1 gap separately closed in modelCatalog.ts (added 2026-07-23, unrelated to this note). See minimax.md. |
| Command Code | CLI (cmd) + raw API (OpenAI-compatible Provider API) | https://commandcode.ai/changelog | LoopAgentAdapter (loop-commandcode-build, free lane loop-commandcode-free-build; CLI worker gated, kd823); CMD_API_KEY/CMD_BASE_URL/CMD_MODEL/CMD_FREE_MODEL/CMD_FREE_FALLBACK | CLI v1.72.4 (installed 1.72.4) | 2026-10-01 | Added 2026-09-17 (kd4d6) with command-code.md. High velocity: the model catalog, the free-model list and per-model deals rotate within days, and the CLI self-updates by default, so a stale pin ships a wrong id or flag. Re-resolve the live catalog every sweep with GET https://api.commandcode.ai/provider/v1/models rather than trusting the changelog alone. Also re-check the three undocumented /alpha billing routes still answer (they are unstable by name). 2026-09-17 R02 confirmation: npm latest and the installed binary are both 1.54.2; the changelog page still tops out at v1.54.0. 2026-09-24 R02: v1.58.0 retired the free LongCat 2.0 tier, and the CMD_MODEL default deepseek/deepseek-v4-flash is a DeepSeek-retired id on a temporary route -> kz9mk. 2026-10-01 sweep: v1.64.0 -> v1.72.4, no material change for Cyberine: new models (Claude Sonnet 5.5, GPT-6.1 Sol, DeepSeek V4.1 Flash Fast) and new free models (Space Bunny Alpha, Pixel Canary, Ling 3.1 Flash) need nothing because the free lane resolves its model from the live catalog; CMD_MODEL default deepseek/deepseek-v4.1-flash unchanged; v1.69.0 moved the Go plan to per-model credits (plan pricing, not a wire change). |
Build-fleet vendors
| Vendor | Kind | Changelog / releases URL | Cyberine touch-points | Last-reviewed version | Last-reviewed date | Notes |
|---|---|---|---|---|---|---|
| xAI | raw API (build-fleet) | https://docs.x.ai/docs/release-notes | LoopAgentAdapter (loop-xai-build); XAI_API_KEY/XAI_BASE_URL/XAI_MODEL | grok-3 (config default) | unknown | See direct-api.md. |
| Groq | raw API (build-fleet) | https://console.groq.com/docs/changelog | LoopAgentAdapter (loop-groq-build); GROQ_API_KEY/GROQ_BASE_URL/GROQ_MODEL | llama-3.3-70b-versatile (config default) | unknown | See direct-api.md. |
| Mistral | raw API (build-fleet) | https://docs.mistral.ai/getting-started/changelog/ | LoopAgentAdapter (loop-mistral-build); MISTRAL_API_KEY/MISTRAL_BASE_URL/MISTRAL_MODEL | mistral-large-latest (config default) | unknown | See direct-api.md. |
| Together AI | raw API (build-fleet) | https://docs.together.ai/docs/changelog | LoopAgentAdapter (loop-together-build); TOGETHER_API_KEY/TOGETHER_BASE_URL/TOGETHER_MODEL | Llama-3.3-70B-Instruct-Turbo (config default) | unknown | See direct-api.md. |
| Fireworks AI | raw API (build-fleet) | https://docs.fireworks.ai/updates/changelog | LoopAgentAdapter (loop-fireworks-build); FIREWORKS_API_KEY/FIREWORKS_BASE_URL/FIREWORKS_MODEL | deepseek-v3 (config default) | unknown | See direct-api.md. |
| Qwen / DashScope | raw API (build-fleet) | https://www.alibabacloud.com/help/en/model-studio/release-notes | LoopAgentAdapter (loop-qwen-build); QWEN_API_KEY/QWEN_BASE_URL/QWEN_MODEL | qwen3-coder-plus (config default) | unknown | See direct-api.md. |
| Zhipu GLM | raw API (build-fleet) | https://docs.z.ai/release-notes/new-released | LoopAgentAdapter (loop-zhipu-build); ZHIPU_API_KEY/ZHIPU_BASE_URL/ZHIPU_MODEL | glm-4.6 (config default) | unknown | Cyberine points at the mainland open.bigmodel.cn base URL; this release-notes page is on the Z.ai (international) docs site — same model family, verify against bigmodel.cn announcements if mainland-specific drift matters. See direct-api.md. |
| Perplexity | raw API (build-fleet) | https://docs.perplexity.ai/changelog/changelog | LoopAgentAdapter (loop-perplexity-build); also backs the shared web_search tool; PERPLEXITY_API_KEY/PERPLEXITY_BASE_URL/PERPLEXITY_MODEL | sonar-pro (config default) | unknown | See direct-api.md. |
| Cerebras | raw API (build-fleet) | https://inference-docs.cerebras.ai/resources/changelog (unverified) | LoopAgentAdapter (loop-cerebras-build); CEREBRAS_API_KEY/CEREBRAS_BASE_URL/CEREBRAS_MODEL | llama-3.3-70b (config default) | unknown | WebFetch 404'd on this URL at review time — could not confirm live; verify manually before relying on it. See direct-api.md. |
| NVIDIA NIM | raw API (build-fleet) | https://docs.nvidia.com/nim/large-language-models/latest/release-notes.html | LoopAgentAdapter (loop-nvidia-build); NVIDIA_API_KEY/NVIDIA_BASE_URL/NVIDIA_MODEL | meta/llama-3.3-70b-instruct (config default) | unknown | NIM ships per-microservice release notes; this is the LLM-microservice page (the relevant one for Cyberine's chat-completions usage). See direct-api.md. |
| Cohere | raw API (build-fleet) | https://docs.cohere.com/changelog | LoopAgentAdapter (loop-cohere-build); COHERE_API_KEY/COHERE_BASE_URL/COHERE_MODEL | command-r-plus (config default) | unknown | See direct-api.md. |
| Azure OpenAI | raw API (build-fleet) | https://learn.microsoft.com/en-us/azure/ai-foundry/openai/whats-new | LoopAgentAdapter (loop-azure-build); AZURE_OPENAI_API_KEY/AZURE_OPENAI_ENDPOINT/AZURE_OPENAI_DEPLOYMENT/AZURE_OPENAI_API_VERSION | gpt-4o (config default) | unknown | Live page reflects the "classic" Foundry portal naming as of this review; Microsoft is mid-migration to a new Foundry portal doc tree — re-check the URL if it starts 404ing. See direct-api.md. |
| Cloud Bedrock (AWS) | raw API (build-fleet) | https://docs.aws.amazon.com/bedrock/latest/userguide/doc-history.html | BedrockAdapter (loop-bedrock-build, loop-bedrock-direct); BEDROCK_REGION/BEDROCK_MODEL/BEDROCK_ACCESS_KEY_ID/BEDROCK_SECRET_ACCESS_KEY/BEDROCK_PROFILE | anthropic.claude-3-5-sonnet-20241022-v2:0 (config default) | unknown | Converse API, not the OpenAI-compat shim. See cloud-native.md. |
| Vertex AI (Google) | raw API (build-fleet) | https://cloud.google.com/vertex-ai/generative-ai/docs/release-notes | dedicated Vertex adapter (loop-vertex-build); VERTEX_PROJECT_ID/VERTEX_LOCATION/VERTEX_MODEL/VERTEX_SERVICE_ACCOUNT_KEY_JSON | gemini-2.5-pro (config default) | unknown | URL 301-redirects to docs.cloud.google.com/... — same content, new host. Supports Gemini and Claude-on-Vertex. See cloud-native.md. |
Model registry
| Vendor | Kind | Changelog / releases URL | Cyberine touch-points | Last-reviewed version | Last-reviewed date | Notes |
|---|---|---|---|---|---|---|
| models.dev | model-registry | https://models.dev (unverified changelog) | not wired into Cyberine directly today; reference catalog for model ids/pricing/capabilities used when adding new provider entries | n/a | unknown | No dedicated changelog page found — the site itself is a live-updated database (its own "last updated" per model is the closest signal), not a chronological changelog. |
| Model strength benchmarks | benchmark aggregate + vendor model cards | https://artificialanalysis.ai/leaderboards/models (no changelog; a live leaderboard, sources S2-S8 listed in model-strength.md) | MODEL_STRENGTH_TABLE in src/core/modelStrengthTable.ts, read by resolveModelStrength (src/core/modelStrength.ts), the router's capability reorder and cyberine fleet doctor; fleet.json strength overrides win over it | table snapshot 2026-09-17 (71 rows, 35 VERIFIED) | 2026-09-17 | Added 2026-09-17 (kyhae). Re-derive on every full sweep, and on a light sweep whenever modelCatalog.ts or WORKER_PROFILES gains a model id or codex reports a new model in run.json; the procedure is "Refresh procedure" in model-strength.md. Material = a model crossing a band edge, a new id with no row, or a vendor card that contradicts a rank: file a task per runbook step 4, do not re-rank inline. |
Verification
Fetched live (WebFetch) at seed time (2026-07-01) and confirmed to resolve to real changelog/release content: DeepSeek, OpenRouter, Moonshot/Kimi, LiteLLM, OpenAI, Anthropic, Claude Code CLI, Codex CLI, Gemini CLI, OpenCode CLI (org corrected to anomalyco/opencode), Ollama, xAI, Groq, Mistral, Together AI, Fireworks AI, Qwen/DashScope, Zhipu GLM (Z.ai), Perplexity, Cohere, NVIDIA NIM, Azure OpenAI, AWS Bedrock, Vertex AI.
Could not confirm live — marked (unverified) in the table above, re-check before treating as authoritative: MiniMax (no dedicated changelog page found; linked its API-reference page instead), Cerebras (URL 404'd at review time), models.dev (no changelog surface; it is a live-updated database, not a dated log).
Sweep log
-
2026-10-01 — R02 light sweep, direct (no fan-out). Scope re-derived from
RETIRED_WORKERS: Claude Code CLI, Codex CLI, DeepSeek, Command Code; OpenCode stays out, the OpenRouter standing check was not run. Claude Code v2.1.281 -> v2.1.285: filed kvhxs (claude-sonnet-5-5catalog and default) and ktq9j (the new 30-minute default cap on background Bash stops the run skill's backgroundedcyberine wait), both backlog. Codex 0.156.1 -> 0.159.2, DeepSeek (no entry since 2026-09-10) and Command Code v1.64.0 -> v1.72.4: no material change. GitHub rows read viagh api .../releases, the other two via WebFetch. -
2026-09-24 — R02 light sweep, direct (no fan-out). Scope re-derived from
RETIRED_WORKERS: Claude Code CLI, Codex CLI, DeepSeek, Command Code; OpenCode stays out, the OpenRouter standing check was not run. Claude Code v2.1.274 -> v2.1.281: filed kz74p (p1,claude --bgexits in an untrusted cwd when not interactive), khv8j (taskOutputMaxCharsdead since TaskOutput was removed in 2.1.278), kdhbf (claude-opus-5-5). Codex 0.154.0 -> 0.156.1: GPT-6 Sol/Luna +--no-daemon, folded into kdhbf. DeepSeek: no new entry, pin clean. Command Code v1.54.2 -> v1.64.0: filed kz9mk (retiredCMD_MODELdefault, LongCat free tier gone). GitHub rows read viagh api .../releases, the other two via WebFetch. -
2026-09-18 — Scoped re-diff, NOT an R02 sweep. One row only (Claude Code CLI), run out of ka37q (AUTOPILOT-SKILL-MONITOR-REARM) to verify the 2026-09-17 sweep's own Monitor-persistent citation before writing it into
plugin/skills/autopilot/SKILL.md; R02'slast-doneis deliberately left at 2026-09-17 because no other row was read. Correction: the deadline-replacing-persistentchange is v2.1.269, not v2.1.271 as recorded below. Material finding: v2.1.274 (newest entry, now installed on this host) further improved Monitor notifications so a script's final output and exit arrive as one notification instead of two. Both facts adopted into the autopilot skill's log-watch instructions. -
2026-09-17 — R02 light sweep, one read-only research agent, spot-checked by the orchestrator (installed versions, the adapter flags, the v2.1.271 Monitor line). Scope re-derived from
RETIRED_WORKERS: Claude Code CLI, Codex CLI, DeepSeek, plus Command Code (row added the same day); OpenCode stays out, and the OpenRouter standing check was not run this pass. Claude Code v2.1.267 -> v2.1.273: no headless flag or auth change; filed kvks8 (probe the new-pMonitor deadline against a headless worker). Codex: 0.154.0 now installed, nocodex execdelta. DeepSeek: no new entry, pin clean. Command Code: no newer release. -
2026-09-10 — R02 light sweep, direct (no fan-out). Scope re-derived from
RETIRED_WORKERSper runbook step 1, which SHRANK it: OpenCode CLI left the light set becauseopencode-deepseek+opencodewere retired on 2026-09-07 (ks4sf), so the scope was Claude Code CLI, Codex CLI and DeepSeek, plus the OpenRouter standing check (T691). Material: (1) DeepSeek shipped V4.1-Flash TODAY and will routedeepseek-v4-pro-- this repo'sconfig.deepseekModeldefault -- to it on 2026-09-14, verified on two separate pages -> k9tvx (p0); (2) three Claude Code deltas across v2.1.261-267, thetaskOutputMaxCharsgap next to the already-wiredbashOutputMaxChars, two new flags, and themaxEffortLevelcap -> kb8rd (p2); (3) a new undated OpenRouter linedeepseek/deepseek-v4.1-flash-> kq2ne (p2); (4) Codex 0.154.0 stable, one past the installed 0.153.4, nocodex execflag change -> kn4td (p2). Checked and NOT filed: the pricing page's weekday-only peak window is already implemented (T685), and both OpenRouter dated pins are still the newest dated ids. Method note: the DeepSeek page is a Docusaurus SPA, socurlyields no prose -- both DeepSeek claims come from two DIFFERENT rendered pages (updates + pricing) agreeing verbatim, not from one summary. -
2026-09-09 — Scoped re-diff, NOT an R02 sweep. One row only (Codex CLI, 0.153.2 -> 0.153.4), run to resolve the stale operator gate T696; R02's
last-doneis deliberately left at 2026-09-04 because no other row was read. Material finding: 0.153.4 (#42874) made GPT-6-Astra "the bundled default when no model is explicitly configured", andmakeCodexHeadlessAdapterpasses-monly whenCYBERINE_CODEX_MODELis set (it is not), so thecodexbuild worker's model is now upstream's choice. Masked locally by the operator's own~/.codex/config.tomlpin, which is not a project guarantee. Filed kd7ax. T696 closed [done]: the binary is already on the newest stable and a live dispatch with the adapter's exact argv exited 0 with thetokens usedlabel intact. -
2026-09-04 — R02 light sweep, direct (no fan-out). Scope: Codex CLI, OpenCode CLI, DeepSeek, plus the OpenRouter row's STANDING DeepSeek-id check. Claude Code CLI was swept HOURS EARLIER the same day by T708 (v2.1.247 -> v2.1.260, two tasks filed) and is not re-read here. Moonshot/Kimi and Gemini stay out of the light set as retired workers (
RETIRED_WORKERSre-checked insrc/core/workerProfiles.ts:loop-kimi-build,opencode-kimi,loop-minimax-build,loop-minimax-direct,mmx-text-build,gemini,loop-gemini-build). Installed versions read locally: claude 2.1.260, codex 0.153.2, opencode 1.18.21. TWO findings, both filed: kjcwz (Codex 0.152.0's "The terminal UI andcodex execshow credential-refresh progress, including Amazon Bedrock reauthentication" is new output on the streamparseCodexStdoutreads -- a parser-tolerance question filed rather than assumed harmless, and live TODAY since 0.153.2 is what is installed) and km6mp (filed on this row's own STALE wording -- it claimed no~...-latestalias existed, while openrouter.md's T691 section had recorded since 2026-08-25 that the flash alias exists and was rejected. km6mp closed the same day: the decision re-confirmed, the row corrected, and a fifth reason MEASURED that nobody had checked -- the alias serves 0 endpoints withcanonical_slug: null, against 30 endpoints fordeepseek/deepseek-v4-flash-0731minutes apart, so adopting it would break every dispatch rather than merely cost reproducibility). No material change on the other rows: Codex 0.151.0-0.153.2 add no flag, no auth change and no model-id handling change oncodex exec; OpenCode v1.18.24-v1.18.27 are bugfix-only with no flag touched (two timeout defaults moved to five minutes, in the direction of fewer spurious failures on the streaming path Cyberine uses); DeepSeek's updates page has nothing newer than its 2026-08-21 Vision-Exp entry, already recorded. The dated OpenRouter constants insrc/core/openrouterModelIds.tswere re-verified live and are still the newest dated ids, so no bump. Also noted, not adopted:deepseek/deepseek-v4-flash-vision-expand:batchvariants of both dated ids are now on the OpenRouter route. Baselines bumped: Codex -> 0.153.2, OpenCode -> v1.18.27, DeepSeek + OpenRouter -> 2026-09-04. -
2026-09-04 — T708 (single-row sweep, NOT R02: scope was the Claude Code CLI row only, by that task's own instruction not to widen). Installed
claude --versionread locally: 2.1.260, while the row's baseline said v2.1.247 — so the diff covered 13 releases rather than the 4 (2.1.248-2.1.251) the task was filed for, which is exactly the drift T708 existed to catch. Source: the rawanthropics/claude-codeCHANGELOG.md. TWO material findings, both filed: kmq47 (v2.1.257 added the modelclaude-fable-5-1; Cyberine's catalog/pricing carry onlyclaude-fable-5— the k3kbw gap class, with the live pricing page cross-checked rather than the release note trusted, and a genuine anomaly to carry: Fable 5.1 prices cache HITS at 0.025x base input, $0.25/MTok, where every other model uses 0.1x) and k7hha (two new headless flags,--restrictedin v2.1.248 and--permission-prompts nonein v2.1.259 — neither adoptable for a build worker, both worth a probed verdict). Six deltas recorded HARMLESS with evidence in claude-code-cli.md rather than filed: the v2.1.251 defaultCo-Authored-By: Claude Codecommit trailer (cannot reach a Cyberine commit — Cyberine commits with its own message andcaptureDiffreadsgit diff --cached),CLAUDE_CODE_SUBAGENT_MODELnow outranking an agent definition (a cost note on a claude worker's INTERNAL subagents only), and four worktree / sandboxed-git /-p --resumeFIXES in v2.1.257/259/260 that land on the side Cyberine is on, since every isolate step spawns inside a detached worktree under the host sandbox. 2.1.253-2.1.256 carry no changelog entries and 2.1.250 is "Bug fixes and reliability improvements"; everything else across the 13 releases is interactive TUI / VSCode / Remote Control / Desktop / gateway / managed-settings / plugin surface and touches neither print mode, the stream-json shapeparseClaudeStreamJsonreads, nor a flag Cyberine passes. Row baseline bumped v2.1.247 -> v2.1.260. R02 itself is a SEPARATE, still-due sweep — this pass deliberately did not touch the Codex / OpenCode / DeepSeek rows. -
2026-08-28 — R02 light sweep, direct (no fan-out). Scope: Claude Code CLI, Codex CLI, OpenCode CLI, DeepSeek; Moonshot/Kimi dropped from the light set as retired (see the scope note in the runbook). Installed versions read locally: claude 2.1.247, codex 0.149.1, opencode 1.18.21. ONE material finding — Claude Code v2.1.237→v2.1.247 carries three headless-relevant deltas (SIGTERM behaviour in print mode, MCP
headersHelpernow trust-gated underclaude -p, and a sub-agent model-404 fallback), filed as T695. Codex 0.148.0→0.150.1 and OpenCode v1.18.21→v1.18.23 reviewed line-by-line and carry NO change to Cyberine's touch-points; the codex version bump itself is filed as T696 because the upgrade is the operator's call. DeepSeek unchanged since the 2026-08-21 vision entry. Pinned-id re-resolve clean:deepseek/deepseek-v4-pro-0813still live on OpenRouter. -
2026-08-27 — T627 CHANGELOG-ADOPT, ad-hoc — Claude Code CLI
--no-session-persistence(installed v2.1.246). Live probe (both--output-format jsonand the realstream-json --verboseshape) confirmedsession_idand thesystem/inittopology fieldsparseClaudeSessionTreereads both survive the flag, and no transcript lands under~/.claude/projects— GO. Adopted onmakeClaudeAdapter's cold-spawn path, scoped!opts.warmSession && !opts.captureSessionTree; guardnpm run selftest:no-session-persistence. Closes the last open item of the T622-T630 batch filed 2026-07-17. No task-manifest row edited by this sweep (nf-tasks owns that). -
2026-08-24 — DeepSeek doc refresh, ad-hoc (hl-t679; probes re-run and findings corrected 2026-08-25). Material: three never-documented surfaces are live (Vision, Files API, native Responses API + Codex integration) and now have their own sections in deepseek.md. Two corrections to previously-recorded facts, both from live probes rather than pages:
reasoning_efforthas SEVEN values (minimalwas missing everywhere — the API's own deserialization error is the authoritative list, not the schema page's displayed three), and the legacy idsdeepseek-chat/deepseek-reasonerare DELISTED but still answered with HTTP 200, silently resolving todeepseek-v4-flash— so the "every call fails at the provider" claim in deepseek.md,src/core/config.ts,src/tui/doctor.tsandsrc/cyberine-carry-run.tswas false and is rewritten (T681's hard-stop kept, re-justified). Also added: the vision id is in the chat-completionsmodelenum, no image-specificusagefield exists,prompt_tokens_details.cached_tokensis undocumented-but-always-present, andfrequency_penalty/presence_penaltyare deprecated no-ops. No new task filed. -
2026-08-25 — OpenCode billing-surface correction, ad-hoc (hl-t693). Only ONE of opencode's two billing surfaces died. GONE: the opencode-BRANDED credit tier ("opencode-go") — subscription lapsed, not being renewed,
opencode-go/*absent fromopencode modelsentirely,opencode/big-pickletimes out. ALIVE: separate auth per provider on own balance —deepseek/deepseek-v4-flash,xiaomi/mimo-v2.5,minimax/MiniMax-M2.5,minimax/MiniMax-M3all live-probed OK; sixopencode/*-freeids still free but UNPROVEN for build work (no worker registered; lineup already churned once — prove with a recorded dispatch first). An earlier revision of the brief said "only free models remain usable" — WRONG, and worth recording: per-provider auth survives the branded tier's death, which is whyopencode-deepseek(own-balance DeepSeek,costModel: 'metered'all along) kept working straight through.opencode auth listholds three own-balance credentials (DeepSeek, MiniMax, Xiaomi) and NO Moonshot credential — soopencode-kimiis dead TWICE over (nomoonshotaicredential + the Moonshot account behindMOONSHOT_API_KEYseparately suspended for insufficient balance, per the 2026-08-22 entry below). Two id traps documented: opencode model ids are CASE-SENSITIVE (minimax/MiniMax-M2.5works,minimax/minimax-m2.5fails opaquely — this produced a false "MiniMax is dead" reading), and the catalog still listsdeepseek/deepseek-chat/deepseek/deepseek-reasoner, removed from DeepSeek's API 2026-07-24, so either id looks valid inopencode modelsand errors at call time. Shipped:checkOpencodeProviderCredential()+OPENCODE_PROVIDER_ENV_VARSinsrc/core/cliAvailability.ts(fail-open; shared withcredentialAllowlistForCli's env scoping so the prefix map cannot drift); a per-provider gate incliWorkerAvailable()so every opencode worker self-skips before spawn when its pinned provider is uncredentialled (opencode-kimichosen registered-and-self-skipping over de-registered, so it revives automatically); per-workercyberine doctorlines replacing the binary's flat PASS;free-via-opencoderemoved fromopencode-kimi'sstrengths(false, and the router scores on those strings); the deadgo-limitusage windows deleted (inert for gating, butcyberine billingwas printing a phantom 1M/day row for the retired tier). Left as a filed gap:opencode-*still map to''increditLedger.ts, so their spend is invisible to the ledger — fixing it is a spend-enforcement change, not a labelling one. No sweep of upstream releases in this pass; OpenCode row unchanged at v1.18.21/2026-08-22. -
2026-08-22 — OpenCode-only ad-hoc check (user report of a "version 2" — CONFIRMED, the user was right) — OpenCode 2.0 is a public beta shipping from a separate npm package
@opencode-ai/cli@betaas a separate binaryopencode2, documented at https://opencode.ai/v2/docs with a v1->v2 migration guide; it has NO GitHub release tag and is absent fromopencode-ai'slatest, so this file's tag/dist-tag sweep method was blind to it (method gap now recorded in the row). v1 newest is v1.18.21. Material past the km8aw baseline: v1.18.20's subagent permission-request handling duringopencode run(stall risk under closed stdin) + its two subagent-failure output-shape bullets. Config allow-list re-verified 36/36, zero drift. Shipped without a binary upgrade:error-event surfacing +SCHEMA DRIFTdetection inparseOpenCodeStdout(selftest:opencode-parse 7 -> 21 checks), direction-neutral unknown-flag diagnosis, and the owedsst/opencodeorg-rename cleanup. Row bumped to v1.18.21/2026-08-22. Tasks: km8aw brief extended (binary upgrade still USER-GATED); filed for theopencode-kimimissing---variantgap. -
2026-08-22 — OpenCode
--variantsemantics, live-measured on the upgraded 1.18.21 binary (k8xp5).--variantis a reasoning-effort knob ONLY, valid only for a model whose registry entry declares a non-emptyvariantsmap, and unvalidated (an unknown value is silently ignored). The 2026-05-25 "don't omit it or OpenCode injects extra skill/rules context" rule was RETIRED — it does not reproduce (identical 27717-token context across omit/high/bogus, confirmed by a full-prefix prompt-cache hit; onlymaxchanges the prefix). Resolution:opencode-kimikeeps passing none;opencode-cli.mdflags table, Models table and Gotchas rewritten. Separately blocking: the Moonshot account is suspended (429, insufficient balance), so that worker cannot complete a run until it is funded — a USER call, filed as its own task. -
2026-08-21 — R02 sweep (highest-velocity scope: Claude Code CLI, Codex CLI, OpenCode CLI, DeepSeek, Kimi; baseline 2026-07-17) — Material: DeepSeek V4 GA (Flash 07-31, Pro 08-13) + peak/off-peak pricing LIVE since 2026-08-16 with modelPricing.ts under-counting (→ knk0q p0) + reasoning_effort=low; Claude Code v2.1.219
claude-opus-5missing from catalog (→ k3kbw); Codex --full-auto REMOVED / -a exec-scoped / 0.147 --approve-for-me supersedes T572 / Bedrock built-in (→ k2n3k); OpenCode v1.18.17-18 DeepSeek-Flash sampling + Kimi prompt fixes never received by the stale 1.17.10 install, v1.18.16 config leniency (→ km8aw). No material: Kimi (k3 still newest). Also corrected codex-cli.md's "installed v0.148.0" claim (binary is 0.146.0). Filed: knk0q, k3kbw, k2n3k, km8aw. One line per sweep (newest first): date — scope — what changed — tasks filed. -
2026-07-17 — full-scope sweep (nf-evolve heavy, all providers + new models) — NEW MODELS: Kimi K3 (2026-07-16, ->catalog high), OpenAI GPT-5.6 Sol/Terra/Luna (2026-07-09, direct-API ->catalog), 5 Gemini ids (3.5-flash flagship + 3.1/2.5 tiers ->catalog). CLI bumps: Claude Code v2.1.212 (per-session caps + SIGTERM-143 + reasoning-effort transcript field), Gemini CLI v0.51.0, OpenCode v1.18.3 (nested-subagent default off). No change: Codex 0.144.5 stable (0.145 alpha no exec-flag change), DeepSeek V4 still not GA (T574 advanced). Data bugs found: MiniMax M3 $0/$0 models.dev pricing +
mimo-*likely-mislabel. Anthropic mythos-5/preview gated invite-only. Provider/model tasks filed after the evolve-heavy wave completes. -
2026-07-17 — R02 full sweep (CC/Codex high-velocity scope) — Claude Code CLI (v2.1.206→v2.1.211, material: --forward-subagent-text 2.1.211→T626) + Codex CLI (0.144.1→0.144.5, no material, T572/T573 still correctly deferred). Under-utilization audit independently discovered 6 CC capability gaps (T622-T630: --exclude-dynamic-system-prompt-sections unconditional, --effort dial, --json-schema, --no-session-persistence, dead-code cleanup, ultrareview spike) + 3 Codex gaps (T623/T624/T631: task.images wire, --dangerously-bypass-hook-trust, --output-schema). Total filed: T622-T632 (11 new tasks: 7 CC, 3 Codex, 1 doc update). Bumped CC row to v2.1.211/2026-07-17, Codex row to 0.144.5/2026-07-17.
-
2026-07-11 — CC-only ad-hoc re-check (no tasks) — Claude Code CLI. v2.1.206 still latest (no release since 2026-07-10 sweep); v2.1.206 bullets all TUI/CC-internal, NO material change to headless spawn surface.
claude-opus-4-8(named in changelog) already cataloged. Bumped Claude Code CLI row date to 2026-07-11. Justified no-op. -
2026-07-10 — R02 sweep (filed T572-T574) — highest-velocity scope (Claude Code CLI, Codex CLI, OpenCode CLI, DeepSeek, Kimi). Material: Codex CLI shipped a new
writesapp-approval mode (→ T572) and Amazon Bedrock GPT-5.6 Sol/Terra/Luna models (→ T573); DeepSeek external coverage confirms V4 GA mid-July 2026 with a new peak/off-peak 2x pricing scheme (→ T574). No material: Claude Code CLI (v2.1.199->206, all bugfix/UX, no flag/model/deprecation change), OpenCode CLI (v1.17.12->18, Desktop UI + provider polish only), Moonshot/Kimi (official changelog stale since 2025-11-06, no new 2026 model; a WebSearch hit was a mis-dated 2025 entry). Last-reviewed dates bumped to 2026-07-10 on all 5 rows. -
2026-07-01 — Anthropic model refresh (Claude 5 family) — Sonnet 5 GA today + Fable 5 GA 2026-07-02. Adopted
claude-sonnet-5as the Anthropic default across modelCatalog.ts / modelPricing.ts / config.ts / workerProfiles.ts / CliAgentAdapter.ts / providers.ts;claude-fable-5already cataloged (bumped notes + confirmed $10/$50). Fixed app.tsx fallback that pointed at retiredclaude-sonnet-4-20250514. Docs (anthropic.md) model table + pricing refreshed. Closes T518. typecheck clean. -
2026-07-01 — R02 first run (T513) — highest-velocity scope (Claude Code CLI, Codex CLI, OpenCode CLI, DeepSeek, Kimi). Material: DeepSeek legacy
deepseek-chat/deepseek-reasonersunset 2026-07-24 (→ T516); Kimikimi-k2.7-codereleased (→ T517); Claude Sonnet 5 now CC default, 1M ctx (→ T518). No material: Codex (0.142.5 latest stable, only 0.143 alphas newer), OpenCode (v1.17.12 latest, nothing past baseline). Last-reviewed dates bumped to 2026-07-01 on all 5 rows. -
2026-07-01 — seed — initial watch-list committed (T512); no sweep-diff performed.
Provider API Reference
A trace-it-fast reference for every AI provider / coding-CLI that Cyberine integrates directly. Each provider has its own page with the official API/CLI surface (endpoints, auth, models, gotchas,...
Model strength reference (2026-09-17)
One sourced answer to "which enabled model is strongest", used by the router today and meant for planning, task splitting and judging. It ranks every model id the fleet can run (every...