Add GPT-6-Astra to the bundled model catalog (#42607)

## What changed

- Add the hidden `gpt-6-astra` model definition, including its reasoning levels,
  tool capabilities, context limits, agent instructions, and review policies.
- Reorder existing model priorities around the new catalog entry and provide the
  browser-use policy to the bundled auto-review model.
- Keep TUI snapshots pinned to `gpt-5.6-sol` and make Guardian coverage read the
  policy from the model selected by each test case.
- Allow the expanded `models.json` through the repository blob-size check.

GitOrigin-RevId: 039b224b91ca35c8d894cf6d23568bc6dc18ceeb
This commit is contained in:
rhan-oai
2026-09-03 20:05:58 +00:00
committed by copyberry
parent 801ca0d0d1
commit ed391d4dd2
5 changed files with 187 additions and 17 deletions
+1
View File
@@ -5,6 +5,7 @@
MODULE.bazel.lock
codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json
codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.v2.schemas.json
codex-rs/models-manager/models.json
codex-rs/tui/tests/fixtures/oss-story.jsonl
codex-rs/tui_app_server/tests/fixtures/oss-story.jsonl
codex-rs/tui/src/app.rs
+1 -9
View File
@@ -360,7 +360,7 @@ async fn guardian_session_prewarms_and_is_reused_for_first_review(
let bundled_models = codex_models_manager::bundled_models_response()?.models;
let catalog_auto_review = bundled_models
.iter()
.find(|model| model.slug == "codex-auto-review")
.find(|model| model.slug == expected_model)
.and_then(|model| model.model_messages.as_ref())
.and_then(|messages| messages.auto_review.as_ref())
.expect("bundled auto-review model Guardian policy");
@@ -381,14 +381,6 @@ async fn guardian_session_prewarms_and_is_reused_for_first_review(
let use_responses_lite = review_model.use_responses_lite;
if expected_model == "gpt-5.6-luna" {
assert!(use_responses_lite, "Luna must use Responses Lite");
assert!(
review_model
.model_messages
.as_ref()
.and_then(|messages| messages.auto_review.as_ref())
.is_none(),
"Luna must exercise the bundled Guardian policy fallback"
);
}
let tool_args = json!({
File diff suppressed because one or more lines are too long
@@ -15,6 +15,8 @@ pub(super) async fn test_config() -> Config {
Config::load_default_with_cli_overrides_for_codex_home(codex_home.clone(), Vec::new())
.await
.expect("config");
// Keep generic UI snapshots stable when the bundled catalog default changes.
config.model = Some("gpt-5.6-sol".to_string());
config.codex_home = codex_home.abs();
config.sqlite = codex_state::SqliteConfig::new_for_testing(codex_home.as_path().abs());
config.log_dir = codex_home.join("log");
+1
View File
@@ -735,6 +735,7 @@ async fn status_snapshot_shows_active_user_defined_profile() {
async fn status_model_provider_uses_bedrock_runtime_base_url_and_gates_usage_link() {
let temp_home = TempDir::new().expect("temp home");
let mut config = test_config(&temp_home).await;
config.model = Some("gpt-5.6-sol".to_string());
set_workspace_cwd(&mut config, test_path_buf("/workspace/tests").abs());
config.model_provider_id = "amazon-bedrock".to_string();
config.model_provider =