Skip to content

fix(codex): catch up to rust-v0.123.0 (experimental_thread_store_endpoint) - #768

Closed
avifenesh wants to merge 2 commits into
mainfrom
chore/triage-codex-0-123-0
Closed

fix(codex): catch up to rust-v0.123.0 (experimental_thread_store_endpoint)#768
avifenesh wants to merge 2 commits into
mainfrom
chore/triage-codex-0-123-0

Conversation

@avifenesh

Copy link
Copy Markdown
Collaborator

Summary

Triage of openai/codex rust-v0.122.0 -> rust-v0.123.0 (issue #765). Upstream config-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

Change Why no impact
amazon-bedrock model provider (#18744) Provider names not allowlisted by agnix
/mcp verbose (#18610) CLI command, not a config field
Plugin MCP loading dual format (#18780) MCP validator already permissive
Realtime handoffs (#18597, #18761, #18635) Runtime only
remote_sandbox_config (#18763) Does NOT appear as top-level key in published schema; likely sub-key under sandbox_workspace_write or experimental. Revisit if it surfaces later.
Model metadata refresh, bug fixes, docs, chores No schema impact

Doc bumps

  • Bumped verified_on to 2026-04-23 for all 58 CDX-* rules
  • Synced crates/agnix-rules/rules.json
  • Regenerated website/docs/rules/generated/*.md

Test plan

  • cargo clippy --workspace --all-targets --all-features -- -D warnings clean
  • cargo test -p agnix-core --lib: passes (+1 new regression test)
  • Pre-push hook passes
  • CI

Closes #765.

…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)
Copilot AI review requested due to automatic review settings April 23, 2026 09:41

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

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
  1. 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();

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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_endpoint for 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_on to 2026-04-23 for 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]

Copilot AI Apr 23, 2026

Copy link

Choose a reason for hiding this comment

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

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.

Suggested change
#[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]

Copilot uses AI. Check for mistakes.
Comment thread CHANGELOG.md Outdated
- **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.

Copilot AI Apr 23, 2026

Copy link

Choose a reason for hiding this comment

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

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.

Suggested change
- **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.

Copilot uses AI. Check for mistakes.
@avifenesh

Copy link
Copy Markdown
Collaborator Author

Per-comment reply table for round 1

# Reviewer File Status Resolution
1 Gemini MEDIUM rules/codex.rs:155 (KNOWN_KEYS dedup) Won't fix (intentional pattern) Same answer as PR #758/#763: the duplicate allow-lists are intentional — TOML and JSON/YAML use different validation paths (CDX-004 via `schemas/codex.rs` vs CDX-CFG-006 via `rules/codex.rs`). The dual-edit pattern was established in PR #758 specifically because Copilot caught the missing TOML side; refactoring to a shared const is out of scope for a triage PR.
2 Gemini MEDIUM rules/codex.rs:3171 (test only checks CDX-004 not CDX-CFG-006) Fixed Right — split the test into two: `test_codex_v0_123_top_level_keys_accepted_toml` (existing, asserts no CDX-004 on TOML) and new `test_codex_v0_123_top_level_keys_accepted_json` (asserts no CDX-CFG-006 on JSON). Added a `validate_config_json` helper for the JSON path. Without this second arm, a regression on the JSON/YAML KNOWN_CONFIG_TOP_LEVEL_KEYS allow-list would go undetected.
3 Copilot rules/codex.rs:3179 (same issue as #2) Fixed Same as #2.
4 Copilot CHANGELOG.md:27 (grammar "on any v0.123+ user") Fixed Reworded to "for any v0.123.0+ config".

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).
@avifenesh avifenesh closed this Apr 23, 2026
@avifenesh
avifenesh deleted the chore/triage-codex-0-123-0 branch April 23, 2026 10:14
avifenesh added a commit that referenced this pull request Apr 23, 2026
…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.
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.

Tool release: Codex CLI rust-v0.123.0 (was rust-v0.122.0)

2 participants