Skip to content

fix(providers): keep grok-4.7 reasoning tiers from object catalogs - #14525

Merged
diegosouzapw merged 5 commits into
cheaper-inference:release/v3.8.51from
HouMinXi:fix/grok-build-object-efforts
Sep 25, 2026
Merged

diegosouzapw merged 5 commits into
cheaper-inference:release/v3.8.51from
HouMinXi:fix/grok-build-object-efforts

Conversation

@HouMinXi

@HouMinXi HouMinXi commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Grok Build /v1/models now returns each reasoning tier as an object (id, value, label, default) instead of a bare string. Discovery kept only strings, so a non-empty object list counted as explicit and collapsed to nothing. The settings UI then had no tiers for grok-4.7. The built-in seed also stopped at grok-4.6, and the executor filled the default high effort only for grok-4.5 and grok-4.6.

What the live catalog says

Checked a live Grok Build catalog on 2026-09-22. grok-4.7, grok-4.7-build-fast, and grok-4.6 advertise xhigh, high, medium, low, with default high. grok-4.5 advertises high, medium, low and has no xhigh.

Changes

  • Read value, then id, from each tier object. A blank value no longer hides a usable id.
  • Keep xhigh only when the payload names it. A catalog that omits the list still falls back to low/medium/high, so grok-4.5 does not grow a tier it does not advertise.
  • Seed grok-4.7 with those four tiers, and give grok-4.6 xhigh in the seed as well.
  • Apply the default high effort to any non-composer model that omits one, including grok-4.7. Composer still drops the effort.

Validation

node --import tsx/esm --test --test-force-exit tests/unit/grok-build-object-efforts.test.ts tests/unit/grok-cli-responses-compat.test.ts tests/unit/grok-cli-reasoning-strip-6288.test.ts

20/20 passing. The empty-value case fails if the parser treats value: "" as a chosen tier.

Maintainer rework (merge-batch 2026-09-24)

  • Merged release/v3.8.51 into the branch (clean). No code changes from the maintainer.
  • On the xhigh / grok-4.7 conflict with the tip tests: an independent catalog agrees with this PR. CLIProxyAPI's internal/registry/models/models.json (as of 2026-09-25) lists Grok Build grok-4.7, grok-4.7-build-fast and grok-4.6 with low/medium/high/xhigh, and grok-4.5 with low/medium/high only. So the updated expectations in provider-models-discovery-split.test.ts and flagship-0day-discovery.test.ts test 9 (73e93c9) are corrections, not weakened tests. The guard still bans the other unreleased ids.
  • Validation: 454 tests (every grok/xai/catalog discovery unit file), typecheck:core, open-sse typecheck, eslint, file-size.

@diegosouzapw

Copy link
Copy Markdown
Collaborator

Nice catch — the live-catalog check for grok-4.7/4.7-build-fast/4.6/4.5 makes the tier list
concrete instead of guessed. Ran your new test plus the two existing regression files at your
head: 20/20 pass. No blocking items from my side; this looks merge-ready as-is. (Side note,
non-blocking: #14593 fixes the same "catalog sends objects instead of strings" shape for Codex
— different file, no overlap, just flagging the pattern in case a shared helper is worth a
follow-up someday.)

Grok Build /v1/models now returns reasoning_efforts as objects
({id, value, label, default}). The discovery parser kept only bare
strings, so the list collapsed to empty and the UI had no tiers to
set. grok-4.7 was also missing from the seed, and the executor only
filled the default high effort for grok-4.5 and grok-4.6.

Read value or id off each object, accept xhigh when the payload names
it, seed grok-4.7 with the four live tiers, and apply the default
effort to any non-composer model that omits one. A payload with no
tier list still falls back to low/medium/high, because grok-4.5 does
not advertise xhigh.

Signed-off-by: Minxi Hou <houminxi@gmail.com>
An object tier with value "" still counted as a string, so a usable
id on the same object was dropped. Trim the value first and fall
through to id when nothing remains.

Signed-off-by: Minxi Hou <houminxi@gmail.com>
Signed-off-by: Minxi Hou <houminxi@gmail.com>
…ations

The flagship guard test and the discovery-split guard now run against a
registry where grok-4.7 is seeded on purpose and object catalogs carry
xhigh, so the expectations follow the new semantics instead of banning
the model this change adds.

Signed-off-by: Minxi Hou <houminxi@gmail.com>
@HouMinXi
HouMinXi force-pushed the fix/grok-build-object-efforts branch from e001ff6 to 73e93c9 Compare September 24, 2026 18:47
diegosouzapw pushed a commit that referenced this pull request Sep 25, 2026
…attempts (#14474)

Merged in the 2026-09-25 maintainer merge-batch — thank you for the contribution!

The maintainer rework applied to this branch (if any) is described in the "Maintainer rework (merge-batch)" section of the PR body. Re-validated in a combined tree with the other ready Track-B PRs (#14474, #14188, #14525, #14807, #14796) on the current `release/v3.8.51` tip:
- 182/183 focused node tests. The one red (`combo-skipped-reset-timing`) passes 1/1 when run on its own; it is a timing flake under devbox load 95.
- `typecheck:core`: 0 errors; the tests these PRs previously broke (video-bridge-log-redaction, quota-reset-timing, flagship-0day-discovery, provider-models-discovery-split) are all green in the combined tree.
@diegosouzapw
diegosouzapw merged commit 8e6d935 into cheaper-inference:release/v3.8.51 Sep 25, 2026
11 of 16 checks passed
diegosouzapw pushed a commit that referenced this pull request Sep 25, 2026
Merged in the 2026-09-25 maintainer merge-batch — thank you for the contribution!

The maintainer rework applied to this branch (if any) is described in the "Maintainer rework (merge-batch)" section of the PR body. Re-validated in a combined tree with the other ready Track-B PRs (#14474, #14188, #14525, #14807, #14796) on the current `release/v3.8.51` tip:
- 182/183 focused node tests. The one red (`combo-skipped-reset-timing`) passes 1/1 when run on its own; it is a timing flake under devbox load 95.
- `typecheck:core`: 0 errors; the tests these PRs previously broke (video-bridge-log-redaction, quota-reset-timing, flagship-0day-discovery, provider-models-discovery-split) are all green in the combined tree.
diegosouzapw pushed a commit that referenced this pull request Sep 25, 2026
Merged in the 2026-09-25 maintainer merge-batch — thank you for the contribution!

The maintainer rework applied to this branch (if any) is described in the "Maintainer rework (merge-batch)" section of the PR body. Re-validated in a combined tree with the other ready Track-B PRs (#14474, #14188, #14525, #14807, #14796) on the current `release/v3.8.51` tip:
- 182/183 focused node tests. The one red (`combo-skipped-reset-timing`) passes 1/1 when run on its own; it is a timing flake under devbox load 95.
- `typecheck:core`: 0 errors; the tests these PRs previously broke (video-bridge-log-redaction, quota-reset-timing, flagship-0day-discovery, provider-models-discovery-split) are all green in the combined tree.
deptrai pushed a commit to deptrai/OmniRoute that referenced this pull request Sep 28, 2026
…heaper-inference#14525)

Merged in the 2026-09-25 maintainer merge-batch — thank you for the contribution!

The maintainer rework applied to this branch (if any) is described in the "Maintainer rework (merge-batch)" section of the PR body. Re-validated in a combined tree with the other ready Track-B PRs (cheaper-inference#14474, cheaper-inference#14188, cheaper-inference#14525, cheaper-inference#14807, cheaper-inference#14796) on the current `release/v3.8.51` tip:
- 182/183 focused node tests. The one red (`combo-skipped-reset-timing`) passes 1/1 when run on its own; it is a timing flake under devbox load 95.
- `typecheck:core`: 0 errors; the tests these PRs previously broke (video-bridge-log-redaction, quota-reset-timing, flagship-0day-discovery, provider-models-discovery-split) are all green in the combined tree.
@HouMinXi
HouMinXi deleted the fix/grok-build-object-efforts branch October 28, 2026 10:12
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