Skip to content

chore(models): refresh CLI 1.87.2 and reviewed display pricing - #169

Merged
pierreraby merged 6 commits into
patlux:mainfrom
sandexzx:chore/models-catalog-1.84.0
Oct 22, 2026
Merged

pierreraby merged 6 commits into
patlux:mainfrom
sandexzx:chore/models-catalog-1.84.0

Conversation

@sandexzx

@sandexzx sandexzx commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Refresh the generated capability snapshot to command-code@1.87.2. This version removes image/reasoning metadata for retired free MiniMax Flash and Ornith variants, plus selectable efforts for free MiniMax Flash.
  • Publish the upstream 1.87.0 capabilities: MiniMax M3.1 Flash supports image input, reasoning, and low/medium/high/xhigh/max efforts; Beam supports reasoning with the same efforts and a 131,072-token output limit; Ornith 1.5 122B supports image input and reasoning without selectable efforts.
  • Add reviewed display pricing for reflection/beam:free, free while capacity lasts with no published expiry.
  • Add paid MiniMax M3.1 Flash pricing at $0.15 input / $0.60 output / $0.015 cache read per million tokens, and paid Ornith 1.5 122B at $0.16 input / $0.64 output / $0.02 cache read. Neither has a cache-write charge.
  • Recheck the live Provider API catalog and official pricing page on 2026-10-22. Both MiniMax Flash and Ornith free promotions ended on October 22, and the API no longer advertises their free variants. Remove their display prices, dated promotion guards, and fixture entries. TEMPORARY_PRICING is now empty.
  • Remove retired Cat Jam display pricing and upstream capability metadata.
  • Refresh pricing/model-id fixtures, tests, README, and changelog. The current API catalog contains 94 models. Existing paid rates remain unchanged.

The capability snapshot now also excludes both retired free variants. Regression tests verify that their image, reasoning, effort, and output-limit metadata are absent.

Automated sync overlap

The CLI snapshot changes overlap with automated catalog synchronization, including PR #168. Pricing, fixtures, tests, and changelog remain manually reviewed additions.

Verification

Verified on the latest revision, 22720fe:

  • npm run check:commandcode-catalog: current against command-code@1.87.2 (72 image-capable models, 81 reasoning models, 65 models with selectable efforts, 10 model-specific output limits).
  • npm run check:commandcode-pricing: PASS, 94 models, no pricing drift.
  • npm test: PASS, including real Pi and Oh My Pi integration against mock APIs.
  • Prettier check of all tracked TypeScript, JavaScript, JSON, and Markdown files: PASS (local .pi/tasks/ harness artifacts excluded).
  • git diff --check: PASS.

Bump the static capability snapshot to command-code@1.84.0, which
publishes no model metadata changes, and add reviewed display pricing
for the new free reflection/beam:free model. Beam is free only while
capacity lasts, with no published expiry, and it has no CLI capability
metadata yet, so it keeps the conservative text-only and non-reasoning
defaults.

Re-verified display prices against the official pricing page on
2026-10-17; the snapshot now covers all 93 advertised models.
pierreraby
pierreraby previously approved these changes Oct 18, 2026

@pierreraby pierreraby left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: catalog 1.84.0 + reviewed Beam pricing

Verified at the exact head 0cbb3fce18be2be5f736ea2c0460c68304727414 (1 commit over main f993145), 7 files +14/−8, no .github/ change, mergeable_state: clean, CI 14 pass / 2 skipped (Update PR comment, sync). No review existed before this one.

What I reproduced locally (isolated worktree, npm ci --ignore-scripts)

  • npm run typecheck, npm run format:check, git diff --check: clean.
  • npm test: exit 0, including [pi-local] PASS and [omp-compat] PASS on the real hosts.
  • npm run check:commandcode-catalog: metadata is current against live command-code@1.84.0 — 70/70 image-capable, 79/79 reasoning, 64/64 with selectable efforts, 10/10 output limits, and every change row is None.
  • npm run check:commandcode-pricing: PASS, 93 models, no drift, reflection/beam:free matched the beam-free promotion (100%, while capacity lasts).
  • Red on base: the PR's tests/test-pricing.ts against main's src/ and fixtures fails in exactly 2 places (catalog coverage + provenance), everything else stays green, so the new assertions really pin this change.

Independent counter-checks (not relying on the repo's own parser)

  • CLI tarballs 1.83.0 vs 1.84.0: dist/bundled/command-code-knowledge/reference/models.md is byte-identical, so the "no model metadata change" claim holds; the generated catalog diff is only COMMAND_CODE_CLI_VERSION plus its doc comment.
  • beam appears nowhere in the 1.84.0 package, so the conservative text-only, non-reasoning defaults are the only defensible choice, and the PR says exactly that.
  • Live /provider/v1/models: 93 models, reflection/beam:free ("Beam 1.0", context_length: 1048576, supported_endpoints: ["/chat/completions", "/responses"]).
  • Official pricing page, #beam-free: 100% off, "Free while capacity lasts", Input / Output / Cache read all $0.00, no expiry → a plain {0,0,0,0} entry with a comment (not a TEMPORARY_PRICING deadline) is the right modelling, including the "no published expiry" caveat.
  • Because the live pricing check re-verifies all 93 advertised models, the global PRICING_LAST_VERIFIED → 2026-10-17 bump is validated rather than assumed.

Notes (non-blocking)

  • P2 — the new rate has no named reviewed-rate assertion. Every catalog cohort in tests/test-pricing.ts since September has its own assertCost block — including the free ones, stealth/glyph-cluster:free (October) and stealth/cat-jam:free (mid-October) — and .agents/skills/refresh-model-catalog/SKILL.md step 5 lists "per-model rate assertions" as part of the refresh. Beam only lands in the freeModels set. Since tests/fixtures/commandcode-pricing.json is generated from src/pricing.ts, the deepEqual at tests/test-pricing.ts:96 is a source↔fixture consistency check rather than a review anchor; the named blocks are what a human actually signed off. A one-line assertCost("reflection/beam:free", { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }) in a late-October block would close it. The zero rates are still pinned transitively by the free-set loop, so this is a provenance gap, not a correctness hole.
  • P2 — what a Beam user actually gets today. The live catalog gives the 1M context window (it is read from context_length), but with no CLI capability metadata the model surfaces as text-only and non-reasoning, and its output limit falls back to DEFAULT_MAX_OUTPUT_TOKENS (65,536). The official page describes Beam 1.0 as a reasoning model with low–max efforts, so the gap is user-visible until the daily sync picks the metadata up. The CHANGELOG states the defaults; a one-clause "effort selection appears with the next catalog sync" would make the expectation explicit.
  • P3 — the fixture date assertion stays brittle. assert.match(fixture.fetchedAt, /^2026-10-17T/) is a pre-existing pattern that this PR has to bump by hand; it pins a literal day instead of the shape or freshness of the snapshot. The base already shows why deriving it from PRICING_LAST_VERIFIED would be wrong (fetch day 10-16, verify day 10-15), so the cheap improvement is to keep PRICING_LAST_VERIFIED as the single date pin and relax the fetchedAt assertion to a format check.
  • P3 — "while capacity lasts" cannot be enforced by the repo's mechanism. TEMPORARY_PRICING requires a YYYY-MM-DD expiresOn, so a condition-based end cannot be encoded; the new comment plus the empty temporary list means the only trigger is the daily check:commandcode-pricing drift when the page starts charging. That matches the existing cat-jam / glyph-cluster pattern, so it is acceptable, but an endsWhen field (or a checker note) would make the condition machine-visible if Beam ever stops being free before its metadata lands.
  • P3 — no unit coverage for :free page-id matching. The pricing checker derives the page id beam:free from reflection/beam:free, and the matching tests never exercise a provider/name:free id; the captured page fixture predates every free model. A live run does match it (beam-free, 100%, while capacity lasts), so this is a testing gap rather than a risk for this PR.

Second opinion

An independent review pass was run on the same head. Its environment had no shell, so I re-checked its substantive claims myself: the four generated catalog maps are byte-identical between 1.83.0 and 1.84.0, and the three artifacts agree at 93 models (commandcode-model-ids.json, MODEL_COSTS, the pricing fixture). It converged on the findings above and added the :free page-id and TEMPORARY_PRICING notes; it found nothing correctness-breaking.

What this PR also restores

The scheduled Command Code catalog sync on main failed on 2026-10-17 with missing-local-price | reflection/beam:free and the snapshot one CLI version behind. This PR is what turns that signal green again, and it is a prerequisite for the check gate of any new PR once CI runs against command-code@1.84.0.

pierreraby
pierreraby previously approved these changes Oct 19, 2026

@pierreraby pierreraby left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-verified at the new head 83ea142c6281008cddc3cfdd582284c6fcf5d6a0 — my earlier approval at 0cbb3fc was auto-dismissed by the push, as expected.

Delta since 0cbb3fc: 3 files, +33/−2, no src/ change.

  • tests/test-pricing.ts — adds the named assertCost("reflection/beam:free", { 0, 0, 0, 0 }) I asked for, and replaces the literal ^2026-10-17T fixture-date regex with a full ISO-8601 shape check plus a toISOString() round-trip. Both were review notes, now addressed.
  • tests/test-pricing-check.ts — new unit test for the provider-prefixed :free id: pricingPageIdCandidates("reflection/beam:free") yields [reflection/beam:free, beam:free], and the capacity-limited beam-free deal (100 % off, no expiry) is preserved with expires === undefined.
  • CHANGELOG.md — now states the 65,536-token output default and that reasoning/effort selection arrives with upstream CLI metadata.

Verification at the exact head (isolated worktree, npm ci --ignore-scripts, clean tree):

  • npm run typecheck exit 0, npm run format:check clean, git diff --check clean.
  • npm test exit 0 — full suite, including [pi-local] PASS and [omp-compat] PASS.
  • npm run check:commandcode-catalog exit 0 against the live command-code@1.84.0: 70/70 image, 79/79 reasoning, 64/64 efforts, 10/10 output limits, every change row None.
  • npm run check:commandcode-pricing exit 0: 93 models checked, Status: PASS, no drift, and reflection/beam:free matched to the beam-free deal (100 % off, "while capacity lasts", no expiry).

Honest note on this delta: it is test-coverage and wording only, and the two touched test files also pass at the parent head 0cbb3fc (11/11 in both cases) — so these assertions are useful anchors, not red/green regression evidence for this change. That is expected here, since the Beam price entry itself landed in the original commit.

One residual note, not blocking: tests/fixtures/commandcode-pricing.json is regenerated from src/pricing.ts (refresh-model-catalog skill), so the deepEqual(MODEL_COSTS, expected) assertion is self-referential and cannot independently anchor those numbers. The named assertCost entries plus the live check:commandcode-pricing run are what actually catch pricing drift — which this PR now does for Beam.

No blocking findings. Merge decision stays with the maintainers; note that main's daily Command Code catalog sync will keep failing on missing-local-price | reflection/beam:free (run 39121673136) until this PR or the bot sync lands.

@sandexzx sandexzx changed the title chore(models): refresh catalog to 1.84.0 and price Beam chore(models): refresh catalog and Beam/MiniMax Flash pricing Oct 20, 2026
@sandexzx

sandexzx commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor Author

While this PR was waiting to merge, the upstream model catalog changed again. I rechecked the live API and official pricing page on 2026-10-20 and pushed the follow-up in 64f7285.

Changes compared with the previous PR revision:

  • Added paid minimax/minimax-m3.1-flash: $0.15 input / $0.60 output / $0.015 cache read per million tokens; cache write is zero.
  • Added minimax/minimax-m3.1-flash:free at zero cost. Its promotion ends 2026-10-21 at 10:45 UTC. The date-only pricing guard requests a fresh review from the start of October 21 UTC, before the promotion expires.
  • Removed the display-price entry for stealth/cat-jam:free, which is no longer advertised by the API.
  • Refreshed model-id and pricing fixtures, provenance date, tests, and changelog. The API catalog increased from 93 to 94 models (two additions, one removal).

The latest published CLI is still command-code@1.84.0, with no capability changes. Both new MiniMax variants therefore retain conservative defaults until the CLI supplies their capability metadata. Beam pricing from the earlier revision is unchanged, and no existing paid rates changed.

Verification: catalog checker current; pricing checker PASS for 94 models; full npm test PASS; OMP compatibility subsequently verified separately with @oh-my-pi/pi-coding-agent@18.12.3 and Bun 1.4.2, using OMP_COMPAT_REQUIRED=1: [omp-compat] PASS, exit 0; formatting PASS with only local .pi/ harness artifacts excluded; git diff --check clean. The PR description is updated as well.

pierreraby
pierreraby previously approved these changes Oct 20, 2026

@pierreraby pierreraby left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-verified at 64f72852b87491eb1a97d9f635a75170780e91f6. This supersedes my earlier approvals on 0cbb3fc and 83ea142, both auto-dismissed by the later pushes.

Delta since my last approval (83ea142..64f7285: 5 files, +44/−7; the only src/ change is src/pricing.ts):

  • paid minimax/minimax-m3.1-flash — $0.15 input / $0.60 output / $0.015 cache-read, no cache-write;
  • minimax/minimax-m3.1-flash:free at zero cost plus a TEMPORARY_PRICING entry;
  • stealth/cat-jam:free display price removed;
  • PRICING_LAST_VERIFIED 2026-10-17 → 2026-10-20, fixtures and tests refreshed accordingly.

Local verification (isolated worktree, npm ci --ignore-scripts) at the exact head:

  • npm run typecheck PASS, npm run format:check PASS, git diff --check clean;
  • npm test PASS (exit 0), including the real-Pi integration suite ([pi-local] PASS, pi 1.3.0) and [omp-compat] PASS;
  • npm run check:commandcode-catalog → CLI version: Current against command-code@1.84.0: 70/70 image, 79/79 reasoning, 64/64 selectable efforts, 10/10 output limits, every New/Removed/Changed row None;
  • npm run check:commandcode-pricing → Status: PASS, 94 models, no drift. The promotions table now lists minimax/minimax-m3.1-flash:free / minimax-m3-1-flash-free at 100% with expires 2026-10-21T10:45:00Z, and no longer lists cat-jam-free.

Independent cross-checks (not taken from the PR body):

  • live GET /provider/v1/models → 94 ids, containing minimax/minimax-m3.1-flash and minimax/minimax-m3.1-flash:free. The -preview spelling the 10-19 sync run reported is gone upstream, and stealth/cat-jam:free is no longer advertised;
  • official pricing page payload → minimax-m3.1-flash inputCost 0.15 / outputCost 0.6 / cacheReadCost 0.015 with no cache-write field, and the free deal minimax-m3-1-flash-free is discountPercent 100, starts 2026-10-19T11:00:00Z, expires 2026-10-21T10:45:00Z. The page carries no cat-jam-free deal any more;
  • RED-before-GREEN on the delta: the parent 83ea142 sources plus this head's tests/test-pricing.ts and fixtures make test:pricing exit 1 with exactly the expected assertions (MODEL_COSTS deep-equal, minimax/minimax-m3.1-flash should have pricing, stealth/cat-jam:free free-model status should be explicit, PRICING_LAST_VERIFIED), and 12/12 pass at the head.

Notes (non-blocking):

  1. P2 — the date-only guard trips at 2026-10-21T00:00Z, about 10h45 before the promotion actually ends. Merged as-is, npm test legitimately goes red on main in the early hours of 2026-10-21. That is the intended forcing function, but it is worth lining up the post-promotion refresh (drop :free, keep the paid rates) as an immediate follow-up so the red window stays short. Related nit: the failure message in tests/test-pricing.ts:415 says "expired on 2026-10-20", which reads as if the promo ended a day early; wording it as "needs recheck after 2026-10-20 (promo ends 2026-10-21T10:45Z)" would avoid that confusion.
  2. P3 — stealth/cat-jam:free is still in src/commandcode-catalog.ts (the pinned CLI 1.84.0 still ships its metadata: reasoning, efforts, 131072 output) while its price entry is gone. index.ts:179 falls back to ZERO_MODEL_COST, so the model renders as $0. Harmless here since it was free, but it is the general silent-zero path; the unknown-price warnings from #159 will cover it once merged.
  3. P3 — both new MiniMax variants keep the conservative defaults (text-only, non-reasoning, 65 536 output) even though the pricing page advertises text+vision+reasoning and a 1M context. Consistent with the repo rule of following the published CLI metadata, same as Beam, but worth stating in the release note.
  4. P3 — the pricing fixture is generated from src/pricing.ts, so deepEqual(MODEL_COSTS, expected) stays self-referential; the named assertCost calls and check:commandcode-pricing remain the real drift detectors (unchanged from my earlier note).
  5. P3 — smaller residue, none blocking: the model-id fixture lost its dated freshness pin (tests/test-pricing.ts:58-60 now checks ISO well-formedness only), the new deal-matching unit test covers beam-free but not the expiring minimax-m3-1-flash-free shape, and the two Unreleased bullets end up ordered 2026-10-20 → 1.83.0 → 1.84.0, which is neither newest-first nor oldest-first.

Method note: a fresh reviewer was launched in an independent context on this head, but its session came up with read-only tooling, so it reviewed the sources and the recorded command output rather than re-running the suites. Every suite result quoted above was produced here at the exact head.

@pierreraby

Copy link
Copy Markdown
Collaborator

While this PR was waiting, upstream moved quite a bit (CLI 1.85.0 → 1.87.0 in ~24 h, 1.87.0 published 2026-10-21 18:02Z, and the live catalog is now 96 models). Your Beam/MiniMax pricing work is still right — I re-checked it against the official page again today and the rates are unchanged — but the current head would now land behind main in two ways, so here is the delta I'd fold in before this merges. Everything below is verified independently (npm tarballs 1.86.3 / 1.87.0, the live /provider/v1/models, and the pricing page payload).

1. Catalog pin 1.84.0 → 1.87.0. dist/bundled/.../reference/models.md is byte-identical between 1.86.3 and 1.87.0, so the metadata is settled; the only difference is the version string. Worth going straight to 1.87.0 rather than 1.86.3: check:commandcode-catalog inspects command-code@latest and exits 1 on a version-only drift, so anything below 1.87.0 keeps the check red until the next bot sync. (The bot's own PR is currently pinned at 1.86.3.)

2. Metadata the CLI now publishes for exactly the models your revision called "no metadata yet". These stop being hypothetical conservative defaults:

  • minimax/minimax-m3.1-flash and minimax/minimax-m3.1-flash:free — image input, reasoning, efforts low/medium/high/xhigh/max;
  • reflection/beam:free — reasoning, same five efforts, 131_072 max output;
  • ornith/ornith-1.5-122b and ornith/ornith-1.5-122b:free — new models: text + image, reasoning, no selectable efforts.

3. Missing prices that keep main red today (check:commandcode-pricing, 96 models):

  • ornith/ornith-1.5-122b — $0.16 input / $0.64 output / $0.02 cache read, no cache-write. The pricing page and the CLI models.md agree on these numbers;
  • ornith/ornith-1.5-122b:free — zero cost, with a TEMPORARY_PRICING entry: the deal ends 2026-10-22T06:00:00Z ("11:00 PM PT on October 21"), so expiresOn: "2026-10-21" trips the date-only guard at the start of 2026-10-22 UTC, after the promotion ends this time.

4. Your MiniMax free entry needs a refresh: the promotion was extended. It now expires 2026-10-22T10:45:00Z on the pricing page (it was 2026-10-21T10:45:00Z when you pushed). Both current fields are stale: the description says "ends 2026-10-21T10:45:00Z" and expiresOn: "2026-10-20" would have tripped the guard on 2026-10-21 UTC. Updating to expiresOn: "2026-10-21" with the 22/10 expiry keeps the fail-early behaviour without a red day in between.

5. stealth/cat-jam:free. Keep your pricing removal — the page no longer carries the deal, the API no longer advertises the model, and the CLI 1.86.3/1.87.0 metadata drops it as well, so the snapshot bump removes the last trace in src/commandcode-catalog.ts.

With 1.87.0 plus those five price entries, both checks go green in one shot (check:commandcode-catalog current, check:commandcode-pricing PASS on 96 models) and the daily sync on main — red since 2026-10-17 — stops failing. No pressure on the review side: ping me when you push and I'll re-verify the exact head (a push dismisses the approval, as usual). Thanks for keeping this one current.

@pierreraby

Copy link
Copy Markdown
Collaborator

Time-boxed re-check at 4705236 (2026-10-22, ~06:15 UTC) — the head was green when you pushed it yesterday evening, but three date-driven things have moved since. Here is the exact list before you spend another push. Verified in a detached worktree on that exact head (npm ci --ignore-scripts), nothing pushed.

  1. npm test is red today. fails once temporary pricing needs review trips: both TEMPORARY_PRICING entries carry expiresOn: "2026-10-21", and today is 2026-10-22. The assertion names MiniMax only because the loop aborts on the first entry — Ornith shares the same expiresOn. All 29 other suites are green (71 + 30 + 19 + 12 assertions, 0 other failure).
  2. check:commandcode-catalog is red: 1.87.0 → 1.87.1. Version row only: dist/bundled/.../reference/models.md is byte-identical between the two tarballs, and every capability row reports "None" (74 image / 83 reasoning / 66 selectable efforts / 10 output limits on both sides). A one-line version bump is enough, no metadata regeneration.
  3. The live API is now 95 models, not 96. ornith/ornith-1.5-122b:free disappeared when its promotion ended at 2026-10-22T06:00:00Z; paid ornith/ornith-1.5-122b is still advertised (/chat/completions only). The pricing page dropped the free row too, so check:commandcode-pricing still exits 0 but lists it under "Unused pricing-page rows", while the recorded fixture still carries 96 ids.
  4. MiniMax free is still live, but only until 10:45Z today: the page still shows minimax/minimax-m3.1-flash:free expiring 2026-10-22T10:45:00Z. Note that the CLI 1.87.1 reference still lists ornith/ornith-1.5-122b:free, so the capability snapshot and the API-derived ids will legitimately disagree until upstream catches up — keep the snapshot's source as is and let the fixture follow the API.

Suggested single push, after 10:45 UTC today so both free promotions are settled:

  • pin 1.87.1 (one-line version bump);
  • drop ornith/ornith-1.5-122b:free: price entry, TEMPORARY_PRICING entry, fixture id, plus the provenance date/verification note;
  • refresh or drop minimax/minimax-m3.1-flash:free according to its state at that moment, with expiresOn >= the day you push so the guard does not go red again tomorrow;
  • fixtures back to 95 models.

That should leave check:commandcode-catalog current, check:commandcode-pricing PASS, and npm test green in one shot.

Why the timing matters here: main is still on 0.7.8 with two unreleased commits (#167 catalog 1.83.0, #157 lifecycle-script fix), and the daily catalog sync on main has been red since 2026-10-17. This PR is the last item before the next patch release, so as soon as you push I will re-verify the exact head, publish the approval, and take it through the 0.7.9 release (version + changelog PR, then tag). If you would rather handle the merge side yourself, just say so.

@pierreraby

Copy link
Copy Markdown
Collaborator

Follow-up at 19:00 UTC — the delta actually shrank: both free promotions ended while we were waiting.

The live API is now 94 models, not 96:

  • ornith/ornith-1.5-122b:free disappeared at 2026-10-22T06:00:00Z; paid ornith/ornith-1.5-122b is unaffected and still /chat/completions only.
  • minimax/minimax-m3.1-flash:free disappeared at 2026-10-22T10:45:00Z; paid minimax/minimax-m3.1-flash is unchanged.
  • reflection/beam:free is untouched (free while capacity lasts, no expiry), so its zero-cost entry stays.
  • Paid rates for Ornith, MiniMax M3.1 Flash and Beam all still matched the official page in today's pricing check — no price edits needed beyond removing the two free entries.

So the remaining work is smaller than this morning's list:

  1. pin 1.87.1 — version string only, models.md is byte-identical between 1.87.0 and 1.87.1;
  2. drop both :free entries: MODEL_COSTS, both TEMPORARY_PRICING entries (the array ends up empty), fixture ids, and the provenance/verification date;
  3. fixtures at 94 models.

At 4705236 today, npm test fails on the date guard (both entries carry expiresOn: "2026-10-21") and check:commandcode-catalog fails on the version row alone; the change above turns both green in one push.

If you'd rather not spend another cycle on it, say the word and I'll push that single commit to your branch myself, keeping your authorship and your Beam/MiniMax/Ornith pricing work untouched. Otherwise ping me when it lands: I'll re-verify the exact head, re-publish the approval, and take it straight into the 0.7.9 release.

@sandexzx sandexzx changed the title chore(models): refresh catalog and Beam/MiniMax Flash pricing chore(models): refresh CLI 1.87.1 and reviewed display pricing Oct 22, 2026
@sandexzx sandexzx changed the title chore(models): refresh CLI 1.87.1 and reviewed display pricing chore(models): refresh CLI 1.87.2 and reviewed display pricing Oct 22, 2026

@pierreraby pierreraby left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved at 22720fecac192f2414c7f82de128b422a987b5ac. Verified independently in a detached worktree on that exact commit (npm ci --ignore-scripts), nothing modified locally:

  • npm test: rc=0, 63 suites green, including [pi-local] PASS and [omp-compat] PASS.
  • check:commandcode-catalog: Current against command-code@1.87.2 (all capability rows unchanged).
  • check:commandcode-pricing: PASS, 94 models, no drift, no unused local price.
  • Fixtures: 94 ids, fetchedAt 2026-10-22T20:38:00Z; TEMPORARY_PRICING empty with the explanatory comment; PRICING_LAST_VERIFIED 2026-10-22.
  • The 1.87.1 → 1.87.2 capability delta is exactly what the changelog says: retired free-model metadata only (minimax/minimax-m3.1-flash:free, ornith/ornith-1.5-122b:free), paid variants untouched.

Re-checked the timing facts independently: ornith/ornith-1.5-122b:free left the API at 2026-10-22T06:00:00Z and minimax/minimax-m3.1-flash:free at 10:45:00Z, so the API now advertises 94 models with only reflection/beam:free and stealth/glyph-cluster:free remaining free; paid MiniMax M3.1 Flash and Ornith rates still match the official page. The removal of both :free entries and of the dated guards is correct, and the test changes only follow the data.

No blocking findings from me. Approving so this can go into the 0.7.9 patch release, which also carries the lifecycle-script guard from #157 and the 1.83/1.87 catalog work.

@pierreraby
pierreraby merged commit c771e34 into patlux:main Oct 22, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants