fix(codex): catch up to rust-v0.123.0 (experimental_thread_store_endpoint) - #768
fix(codex): catch up to rust-v0.123.0 (experimental_thread_store_endpoint)#768avifenesh wants to merge 2 commits into
Conversation
…oint) Closes #765. Triage of openai/codex rust-v0.122.0 -> rust-v0.123.0. Upstream config-schema.json (verified 2026-04-23) gained 1 new top-level key: `experimental_thread_store_endpoint` (PR #18714 in v0.123.0). Without this fix, agnix would false-positive CDX-004 on any v0.123+ user. Added to BOTH allow-lists (same dual-edit pattern as PR #758): - schemas/codex.rs::KNOWN_TOP_LEVEL_KEYS (CDX-004 TOML path) - rules/codex.rs::KNOWN_CONFIG_TOP_LEVEL_KEYS (CDX-CFG-006 JSON/YAML) Plus regression test test_codex_v0_123_top_level_keys_accepted. Other v0.123.0 changes need no agnix change: - amazon-bedrock model provider (#18744): provider names not allowlisted by agnix - /mcp verbose (#18610): CLI command, not a config field - Plugin MCP loading accepts both `mcpServers` and top-level server maps in .mcp.json (#18780): MCP validator already permissive - Realtime handoffs (#18597, #18761, #18635): runtime only - remote_sandbox_config (#18763): does NOT appear as top-level key in the published schema (likely sub-key under sandbox_workspace_write or experimental); revisit if it surfaces as a top-level key later - Model metadata refresh: data only, no schema impact - All bug fixes / docs / chores: no schema impact Documentation: - Bumped verified_on to 2026-04-23 for all 58 CDX-* rules - Synced crates/agnix-rules/rules.json - Regenerated website/docs/rules/generated/*.md Verified locally: - cargo clippy --workspace --all-targets --all-features -- -D warnings clean - cargo test -p agnix-core --lib: passes (+1 new regression test)
There was a problem hiding this comment.
Code Review
This pull request updates the Codex CLI schema to version rust-v0.123.0 by adding the "experimental_thread_store_endpoint" top-level key and updating verification dates for related rules across the codebase and documentation. Feedback suggests refactoring the duplicated lists of known top-level keys into a single source of truth to prevent synchronization errors and sorting inconsistencies. It is also recommended to expand regression tests to cover JSON and YAML formats, ensuring the new key is correctly validated across all supported configuration types.
| "experimental_realtime_ws_base_url", | ||
| "experimental_realtime_ws_model", | ||
| "experimental_realtime_ws_startup_context", | ||
| "experimental_thread_store_endpoint", |
There was a problem hiding this comment.
The KNOWN_CONFIG_TOP_LEVEL_KEYS list in this file and KNOWN_TOP_LEVEL_KEYS in crates/agnix-core/src/schemas/codex.rs appear to be nearly identical and require synchronized updates for every new Codex key. Following the general rule to avoid data duplication, these should be refactored into a single source of truth in a shared location. This would also resolve the current sorting inconsistency between the two lists (this list is alphabetical, while the one in schemas/codex.rs is not).
References
- Instead of merging and deduplicating data from multiple sources, refactor the code to have a single source of truth to avoid duplication in the first place.
| experimental_thread_store_endpoint = "https://thread-store.example" | ||
| "#; | ||
| let diagnostics = validate_config(toml); | ||
| let unknown: Vec<_> = diagnostics.iter().filter(|d| d.rule == "CDX-004").collect(); |
There was a problem hiding this comment.
This regression test only verifies that the new key is accepted by rule CDX-004 (the TOML path). Since the key was also added to KNOWN_CONFIG_TOP_LEVEL_KEYS to support rule CDX-CFG-006 (the JSON/YAML path), consider adding a test case that verifies the key is also accepted when provided in a JSON or YAML configuration format to ensure full coverage of the changes.
There was a problem hiding this comment.
Pull request overview
Updates agnix’s Codex CLI validation surface to match upstream rust-v0.123.0 by allow-listing the newly added top-level config key experimental_thread_store_endpoint, and refreshes Codex rule verification timestamps/docs to the latest upstream review date.
Changes:
- Allow-list
experimental_thread_store_endpointfor Codex config validation across both TOML (CDX-004) and JSON/YAML (CDX-CFG-006) paths. - Add a regression test for the new Codex v0.123.0 top-level key.
- Bump
verified_onto2026-04-23for all CDX-* rules and regenerate synced rule artifacts/docs.
Reviewed changes
Copilot reviewed 5 out of 63 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| crates/agnix-core/src/schemas/codex.rs | Add new known TOML top-level key (experimental_thread_store_endpoint) for CDX-004. |
| crates/agnix-core/src/rules/codex.rs | Add new known config top-level key for CDX-CFG-006 and add regression test. |
| knowledge-base/rules.json | Bump verified_on for CDX-* rules to 2026-04-23. |
| crates/agnix-rules/rules.json | Sync verified_on bump for CDX-* rules to 2026-04-23. |
| CHANGELOG.md | Document Codex CLI rust-v0.123.0 catch-up and associated rule/doc refresh. |
| website/docs/rules/generated/cdx-000.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-001.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-002.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-003.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-004.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-005.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-006.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-ag-001.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-ag-002.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-ag-003.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-ag-004.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-ag-005.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-ag-006.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-ag-007.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-app-001.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-app-002.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-app-003.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-001.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-002.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-003.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-004.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-005.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-006.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-007.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-008.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-009.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-010.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-011.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-012.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-013.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-014.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-015.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-016.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-017.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-018.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-019.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-020.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-021.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-022.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-023.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-024.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-025.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-026.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-cfg-027.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-pl-001.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-pl-002.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-pl-003.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-pl-004.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-pl-005.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-pl-006.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-pl-007.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-pl-008.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-pl-009.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-pl-010.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-pl-011.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-pl-012.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-pl-013.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
| website/docs/rules/generated/cdx-pl-014.md | Regenerated rule doc (Verified On bump to 2026-04-23). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ); | ||
| } | ||
|
|
||
| #[test] |
There was a problem hiding this comment.
The new regression test only asserts that the TOML unknown-key rule (CDX-004) doesn’t fire. This doesn’t exercise the JSON/YAML unknown-key path (CDX-CFG-006) that relies on KNOWN_CONFIG_TOP_LEVEL_KEYS, so an error in that allow-list would go uncaught. Please extend this test (or add a sibling) to validate a .codex/config.json or .codex/config.yaml containing experimental_thread_store_endpoint and assert no CDX-CFG-006 diagnostics.
| #[test] | |
| #[test] | |
| fn test_codex_v0_123_json_top_level_keys_accepted() { | |
| let json = r#" | |
| { | |
| "experimental_thread_store_endpoint": "https://thread-store.example" | |
| } | |
| "#; | |
| let validator = CodexValidator; | |
| let diagnostics = validator.validate( | |
| std::path::Path::new(".codex/config.json"), | |
| json, | |
| std::path::Path::new("."), | |
| &LintConfig::default(), | |
| ); | |
| let unknown: Vec<_> = diagnostics | |
| .iter() | |
| .filter(|d| d.rule == "CDX-CFG-006") | |
| .collect(); | |
| assert!( | |
| unknown.is_empty(), | |
| "experimental_thread_store_endpoint should not trigger CDX-CFG-006 in .codex/config.json (Codex v0.123+), got: {:?}", | |
| unknown | |
| ); | |
| } | |
| #[test] |
| - **Kiro CLI 1.28.3 -> 2.0.1 doc refresh** (#751) - re-verified all 51 Kiro rules (KIRO-* steering, KR-AG-* agents, KR-HK-* hooks, KR-MCP-* MCP, KR-PW-* powers, KR-SK-* skills) against the upstream `https://kiro.dev/changelog/cli/` HTML changelog and the relevant pages under `https://kiro.dev/docs/`. The 1.28 -> 2.0 jump was platform expansion (Windows native, headless mode `KIRO_API_KEY`, TUI graduation, granular tool trust, session settings tool, simplified agent creation) - none of those add fields to any of the 5 Kiro file types agnix validates. Two ambiguous changelog mentions (`availableAgents`/`trustedAgents` from v1.25, `knowledgeIndex` resource type from v1.23/v1.24) were verified against `kiro.dev/docs/cli/custom-agents/configuration-reference` and confirmed NOT to appear in `.kiro/agents/*.json` field lists - they're either global settings or were never shipped as documented config. No code changes required. Bumped `verified_on` for all 51 Kiro rules to 2026-04-22; bumped `RESEARCH-TRACKING.md` "Last Reviewed" for Kiro CLI from 2026-02-05 to 2026-04-22 (also added `.kiro/powers/*/POWER.md` to the Config Format column - it was missing). Discovered: agnix has FIVE Kiro validators, not four - `kiro_power.rs` (KR-PW-001..008) for `.kiro/powers/*/POWER.md` was undocumented in earlier triage briefings. | ||
|
|
||
| ### Fixed | ||
| - **Codex CLI rust-v0.122.0 -> rust-v0.123.0 catch-up** (#765) - upstream `config-schema.json` (verified 2026-04-23) gained 1 new top-level key: `experimental_thread_store_endpoint` (per #18714 in v0.123.0). Without this fix, agnix would false-positive **CDX-004** (unknown TOML top-level key) on any v0.123.0+ user. Added to both `KNOWN_TOP_LEVEL_KEYS` (schemas/codex.rs, used by CDX-004) and `KNOWN_CONFIG_TOP_LEVEL_KEYS` (rules/codex.rs, used by CDX-CFG-006) plus a regression test. Bumped `verified_on` for all 58 CDX-* rules to 2026-04-23. Other v0.123.0 changes (amazon-bedrock model provider #18744, /mcp verbose #18610, plugin MCP loading dual format #18780, realtime handoffs #18597, `remote_sandbox_config` #18763, model metadata refresh) need no agnix changes — `remote_sandbox_config` does not appear as a top-level key in the published schema (likely sub-key under `sandbox_workspace_write` or experimental); model providers are not allowlisted by agnix; the rest are runtime/CLI/UI. |
There was a problem hiding this comment.
Changelog entry: “would false-positive … on any v0.123.0+ user” reads a bit ungrammatical. Consider rephrasing to “for any v0.123.0+ user” or “for any v0.123.0+ config” for clarity.
| - **Codex CLI rust-v0.122.0 -> rust-v0.123.0 catch-up** (#765) - upstream `config-schema.json` (verified 2026-04-23) gained 1 new top-level key: `experimental_thread_store_endpoint` (per #18714 in v0.123.0). Without this fix, agnix would false-positive **CDX-004** (unknown TOML top-level key) on any v0.123.0+ user. Added to both `KNOWN_TOP_LEVEL_KEYS` (schemas/codex.rs, used by CDX-004) and `KNOWN_CONFIG_TOP_LEVEL_KEYS` (rules/codex.rs, used by CDX-CFG-006) plus a regression test. Bumped `verified_on` for all 58 CDX-* rules to 2026-04-23. Other v0.123.0 changes (amazon-bedrock model provider #18744, /mcp verbose #18610, plugin MCP loading dual format #18780, realtime handoffs #18597, `remote_sandbox_config` #18763, model metadata refresh) need no agnix changes — `remote_sandbox_config` does not appear as a top-level key in the published schema (likely sub-key under `sandbox_workspace_write` or experimental); model providers are not allowlisted by agnix; the rest are runtime/CLI/UI. | |
| - **Codex CLI rust-v0.122.0 -> rust-v0.123.0 catch-up** (#765) - upstream `config-schema.json` (verified 2026-04-23) gained 1 new top-level key: `experimental_thread_store_endpoint` (per #18714 in v0.123.0). Without this fix, agnix would false-positive **CDX-004** (unknown TOML top-level key) on any v0.123.0+ config. Added to both `KNOWN_TOP_LEVEL_KEYS` (schemas/codex.rs, used by CDX-004) and `KNOWN_CONFIG_TOP_LEVEL_KEYS` (rules/codex.rs, used by CDX-CFG-006) plus a regression test. Bumped `verified_on` for all 58 CDX-* rules to 2026-04-23. Other v0.123.0 changes (amazon-bedrock model provider #18744, /mcp verbose #18610, plugin MCP loading dual format #18780, realtime handoffs #18597, `remote_sandbox_config` #18763, model metadata refresh) need no agnix changes — `remote_sandbox_config` does not appear as a top-level key in the published schema (likely sub-key under `sandbox_workspace_write` or experimental); model providers are not allowlisted by agnix; the rest are runtime/CLI/UI. |
|
Per-comment reply table for round 1
Pushing now. |
…eview) Reviewer feedback (PR #768 round 1): - Gemini/Copilot: regression test only checked CDX-004 (TOML) - the JSON/YAML path via CDX-CFG-006 was untested. Split into two tests with a new validate_config_json helper. - Copilot: CHANGELOG grammar 'on any user' -> 'for any config'. - Gemini KNOWN_KEYS dedup: won't fix (project-wide dual-allow-list pattern established in PR #758).
…oint) (#772) Closes #765. Recreated after PR #768 was accidentally closed during a batch merge (branch deleted before merge attempt completed). Adds 'experimental_thread_store_endpoint' (new in v0.123 per #18714) to BOTH allow-lists: - schemas/codex.rs::KNOWN_TOP_LEVEL_KEYS (CDX-004 TOML path) - rules/codex.rs::KNOWN_CONFIG_TOP_LEVEL_KEYS (CDX-CFG-006 JSON path) Plus 2 regression tests (TOML and JSON paths) per round-1 review on the original PR #768. Bumped verified_on for all 58 CDX-* rules to 2026-04-23.
Summary
Triage of openai/codex
rust-v0.122.0->rust-v0.123.0(issue #765). Upstreamconfig-schema.json(verified 2026-04-23) gained 1 new top-level key:experimental_thread_store_endpoint(PR #18714).The fix
Added
"experimental_thread_store_endpoint"to BOTH allow-lists (same dual-edit pattern from PR #758):crates/agnix-core/src/schemas/codex.rs::KNOWN_TOP_LEVEL_KEYS(CDX-004 TOML path)crates/agnix-core/src/rules/codex.rs::KNOWN_CONFIG_TOP_LEVEL_KEYS(CDX-CFG-006 JSON/YAML path)Plus regression test
test_codex_v0_123_top_level_keys_accepted.Other v0.123 changes — NO agnix change
amazon-bedrockmodel provider (#18744)/mcp verbose(#18610)remote_sandbox_config(#18763)sandbox_workspace_writeor experimental. Revisit if it surfaces later.Doc bumps
verified_onto 2026-04-23 for all 58 CDX-* rulescrates/agnix-rules/rules.jsonwebsite/docs/rules/generated/*.mdTest plan
cargo clippy --workspace --all-targets --all-features -- -D warningscleancargo test -p agnix-core --lib: passes (+1 new regression test)Closes #765.