Conversation
|
✅ Deterministic PR hygiene checks passed. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (2)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
⏳ DRAFT
What to do
Its title has been prefixed with |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fa57dc02d1
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| */ | ||
| function credentialIdentity(provider: OcxProviderConfig): string | undefined { | ||
| if (typeof provider.apiKey !== "string" || provider.apiKey.length === 0) return undefined; | ||
| return new Bun.CryptoHasher("sha256").update(provider.apiKey).digest("hex"); |
There was a problem hiding this comment.
Resolve key references before hashing the credential
When apiKey is configured through the supported ${ENV_VAR} or keychain: references, request routing resolves it before planReasoningEffortDowngrade records the refusal, while catalog generation passes the unresolved configured value to configuredReasoningEfforts. Hashing provider.apiKey directly therefore produces different identities for the same credential, so subsequent catalog syncs continue advertising the refused rung and selecting it is silently clamped at request time. Resolve the key reference before hashing, and cover this path with an env/keychain-reference regression test.
AGENTS.md reference: src/AGENTS.md:L7-L10
Useful? React with 👍 / 👎.
Motivation
Description
credentialIdentity()and including the digest in the support cache key, serialised as a JSON array key; no raw credentials are persisted (src/providers/reasoning-metadata.ts).version: 2and deliberately ignore legacyversion: 1destination-wide rows on load so prior global refusals do not survive the upgrade (src/providers/reasoning-metadata.ts).src/providers/reasoning-metadata.ts).tests/codex-integration/reasoning-metadata.test.ts).structure/runtime.md,structure/subagents.md,structure/transports/inventory.md,structure/providers/xai-grok.md).Testing
bun test tests/codex-integration/reasoning-metadata.test.tsand it passed (18 tests, 0 failures).bun run typecheck,bun run structure:check, andbun run privacy:scanand they all succeeded.bun test tests/responses/responses-reasoning-effort-downgrade.test.tsbut the local environment used Bun 1.2.14 which lacks thenode:zlibexportzstdDecompressSync; that prevented the focused responses test from running here (upstream CI uses Bun 1.4.2).bun run test) in this environment and it exercised many tests but exited nonzero due to unrelated environment/concurrency fixture issues; those failures are orthogonal to this change and were observed only under the local runner constraints.Codex Task