Skip to content

feat(providers): register GPT-5.6 models (sol, terra, luna) - #598

Merged
rng1995 merged 10 commits into
NVIDIA:mainfrom
chinmay1819:main
Sep 28, 2026
Merged

rng1995 merged 10 commits into
NVIDIA:mainfrom
chinmay1819:main

Conversation

@chinmay1819

Copy link
Copy Markdown

What

Adds gpt-5.6-sol, gpt-5.6-terra and gpt-5.6-luna to the OpenAI provider's
bundled registry (src/skillspector/providers/openai/model_registry.yaml) and
to the root model_registry.yaml.

Why

These models already worked through SKILLSPECTOR_MODEL, but because they
weren't in the registry, SkillSpector:

  • fell back to a 128K context window, so large files were split into far more
    LLM chunks than needed
  • logged a "not found in model_registry.yaml" warning on every scan
  • refused to start when SKILLSPECTOR_STRICT_MODEL_VALIDATION=true

How

Registry entries only, no code changes. All three models get the values from
OpenAI's model docs:

Model context_length max_output_tokens
gpt-5.6-sol 1,050,000 128,000
gpt-5.6-terra 1,050,000 128,000
gpt-5.6-luna 1,050,000 128,000
  • Sol caps input at 922K tokens. SkillSpector budgets 75% of the context
    window (~787K), which stays under that cap, so no extra field is needed.
  • Prices appear only as YAML comments with the source link. SkillSpector
    still never computes cost, as described in docs/INFERENCE_USAGE.md.
  • DEFAULT_MODEL stays gpt-5.4.

Testing

  • test_metadata_known_model now checks the context window and max output
    tokens for all three models.
  • make test-unit, make lint and make format-check all pass.
  • A --no-llm scan with strict model validation starts cleanly for each model.

chinmay1819 and others added 5 commits September 21, 2026 14:23
Add both models to the OpenAI provider registry and the root
model_registry.yaml with their 1,050,000-token context window and
128,000 max output tokens, so token budgeting uses real limits and
strict model validation accepts them. Pricing is recorded as comments
only; SkillSpector still does not compute cost.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Signed-off-by: chinmay1819 <[email protected]>
Add the GPT-5.6 flagship to the OpenAI provider registry and the root
model_registry.yaml with its 1,050,000-token context window and
128,000 max output tokens. Its 922K input cap sits above the 75%
input budget (~787K), so context_length alone is sufficient. Pricing
is recorded as comments only.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Signed-off-by: chinmay1819 <[email protected]>
feat(providers): register gpt-5.6-sol

@rng1995 rng1995 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.

[SkillSpector Review]

Reviewed the complete three-file diff, registry lookup/default behavior, focused provider assertions, discussion, and hosted checks. The three additive entries preserve the gpt-5.4 default. Official model pages confirm 1,050,000 context / 128,000 output limits; the existing 75% input allowance stays below the documented 922,000 input limit. Pricing comments are informational and agree with the source pages.

Sources: https://developers.openai.com/api/docs/models/gpt-5.6-sol, https://developers.openai.com/api/docs/models/gpt-5.6-terra, https://developers.openai.com/api/docs/models/gpt-5.6-luna.

The new regression checks all three provider entries. All six hosted checks pass. No required code or documentation changes found. Static review only; contributor code/tests were not executed locally.

Reviewed head: 88bce9bfd5f0400781ea49bae35648d1c3a7ee8c.
Priority: P2 — Optional model availability; no default-provider or scanner behavior changes.

@rng1995

rng1995 commented Sep 23, 2026

Copy link
Copy Markdown
Collaborator

The code review remains approved at 88bce9bfd5f0400781ea49bae35648d1c3a7ee8c, but I am leaving this open for merge-result revalidation after #539 landed. Main now contains the same three provider model entries plus additional GPT budgets and the corrected gpt-5.4 context. The currently advertised test-merge commit e7427cbb5e4d20bca89dc55100c7f093c7f9f3b2 still has old base c2222556fec0b5740316fca81be9256149ede813, so its successful checks do not establish how these overlapping edits integrate with current main.

Please refresh against current main, preserve the root-registry additions, reconcile the overlapping provider entries without duplicate keys or reverting #539, and revalidate the combined registry/tests. No merge was attempted; this is a merge-readiness action item, not a duplicate code finding.

@chinmay1819

Copy link
Copy Markdown
Author

@rng1995 , I will do it

@rng1995 rng1995 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.

[SkillSpector Review]

Re-reviewed exact head d7811ca517386022a6e618d87d709238099c9c20 after merging current main. The root model_registry.yaml additions are preserved, and #539's broader OpenAI/Azure generation, corrected gpt-5.4 budget, gpt-5.6 alias, and gpt-6-astra entries remain.

One merge-reconciliation issue remains: the OpenAI provider YAML now declares gpt-5.6-luna, gpt-5.6-terra, and gpt-5.6-sol twice—once in #539's canonical generation block and again in this PR's pricing block. YAML loaders commonly retain only the last duplicate while stricter loaders reject duplicates, and the current lookup assertions cannot detect drift because both copies presently resolve to the same values. Remove the duplicate mappings and retain any useful pricing comments alongside the canonical entries. The added loop in test_metadata_known_model now repeats the same three lookups covered by test_metadata_flagship_generation; replace it with meaningful root-registry/unique-key coverage or remove the redundant assertions.

Five hosted checks pass; test-unit is still pending. The pending check is a merge gate, not the reason for this decision. Static review only; contributor code/tests were not executed locally.

Comment thread src/skillspector/providers/openai/model_registry.yaml
Merging NVIDIA#539 left gpt-5.6-luna, gpt-5.6-terra, and gpt-5.6-sol mapped
twice in the OpenAI provider registry: once in the canonical 1.05M
generation block and again in the pricing block added here. YAML loaders
disagree on duplicate keys -- most keep the last mapping, stricter ones
reject the document -- so the resolved budget was loader-dependent and
the two copies could drift apart unnoticed.

Keep one mapping per model, the canonical ones, and move the pricing
comments alongside them. That leaves a comment-only diff for this file;
every mapping in it is now NVIDIA#539's.

The lookup loop added to test_metadata_known_model repeated assertions
that test_metadata_flagship_generation already makes, and could not have
caught the duplication in the first place, since both copies resolved to
the same values. Replace it with coverage that value-only assertions
cannot provide:

- test_each_model_is_mapped_once reads keys via yaml.compose across the
  root and all bundled registries. yaml.safe_load collapses a repeated
  key to the last one, which is why a green suite missed this.
- test_root_registry_replaces_bundled_yaml exercises the repo-root file
  as a SKILLSPECTOR_MODEL_REGISTRY override, pinning the ids only it
  carries and the fact that an override replaces the bundled YAML rather
  than merging with it.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Signed-off-by: chinmay1819 <[email protected]>
@chinmay1819

Copy link
Copy Markdown
Author

Hi @rng1995 , can you please approve and merge the request ?

@chinmay1819
chinmay1819 requested a review from rng1995 September 23, 2026 04:22
@chinmay1819

Copy link
Copy Markdown
Author

hi @rng1995,
can you please approve and merge the pr ?

@rng1995 rng1995 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.

[SkillSpector Review]

Hi @chinmay1819, thank you for your contribution to SkillSpector and for the follow-up updates — we really appreciate it!

Re-reviewed head c5de4157. Since the changes-requested review at d7811ca5, the only change to PR files is c885fed; the later commits only merge main. The PR now does three things:

  • adds the three GPT-5.6 entries to the root model_registry.yaml sample
  • moves the informational pricing comments onto #539's canonical OpenAI entries, with a one-mapping-per-model note (a comment-only diff in the provider file)
  • adds TestModelRegistryFiles

What I checked:

  • Values: match the official model pages. gpt-5.6-sol/terra/luna all have 1,050,000 context, 922,000 max input and 128,000 max output, and the pricing comments are accurate.
  • Loader: registry._load is a cached yaml.safe_load, and SKILLSPECTOR_MODEL_REGISTRY replaces the bundled file rather than merging with it.
  • Budgets: the 75% input budget is 787,500, under the 922,000 cap. Output resolves to min(262,500, 128,000) = 128,000.
  • Convention: putting the entries in both the root sample and the OpenAI registry follows the gemini-3.5-flash precedent from #7.
  • Merge: the head merges cleanly with current main, including #529's new Anthropic/Bedrock registry keys. My own yaml.compose key scan of that merge result finds no duplicate model keys in any registry. The same scan flags the three gpt-5.6-* duplicates at d7811ca5, so the new test would have caught the original problem.

Previous findings

  1. Duplicate gpt-5.6-luna/terra/sol mappings in providers/openai/model_registry.yaml (inline thread at line 66): Resolved. Each model is now mapped once (lines 56/60/66), and the pricing comments sit on the canonical entries.
  2. Redundant lookup loop added to test_metadata_known_model: Resolved. The loop is gone. It is replaced by test_each_model_is_mapped_once, which is parametrized over the root file and every bundled registry with a non-vacuous glob guard, and by test_root_registry_replaces_bundled_yaml.
  3. Merge-result revalidation after #539 (issue comment): Resolved. #539's entries, the corrected gpt-5.4 budget, the gpt-5.6 alias and gpt-6-astra are all preserved. Nothing is reverted, and the head merges cleanly with current main.

Findings

  1. [Non-blocking] tests/unit/test_providers.py:421: assert provider.get_context_length("gpt-6-astra") is None pins the root sample's current gap rather than loader behaviour. A later PR that syncs the sample with the bundled OpenAI registry would fail this test for a non-bug reason; the sample still lacks the gpt-5.4 default and the GPT-6 entries. Replace-not-merge is better proven with a tmp_path registry. If drift protection is the goal, assert that every model present in both the root sample and providers/openai/model_registry.yaml has identical budgets.
  2. [Non-blocking] Overlap with #650: it adds its own test_each_model_is_mapped_once inside TestOpenAIProvider, using the same yaml.compose approach. The two PRs merge cleanly with each other, which would leave two copies of the check. Whichever lands second should drop its copy.
  3. [Non-blocking] The PR description is out of date. It still says the provider registry gains the entries and that test_metadata_known_model checks them. Please update it so the squash commit message matches the final change.

Tests/CI: All six checks pass on c5de4157. mergeStateStatus is BLOCKED only by the earlier changes-requested review. This was a static review; contributor code and tests were not run locally.


Decision: Approved (reviewed head c5de41578659793538ea4fdfadf86ceb44eaa35b)

@rng1995
rng1995 merged commit aeb657f into NVIDIA:main Sep 28, 2026
6 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