Conversation
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughAdds a canonicalLogPath parameter to prompt identity APIs and propagates it through hooks; strengthens prompt-state locking with metadata and heartbeat staleness; centralizes prompt-candidate resolution and skill-detection (whole-word); reuses shared skillUsage in eval set construction and updates audit detail formatting; unifies CLI error handling and adjusts tests. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 64631ac53c
ℹ️ 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".
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@cli/selftune/evolution/evolve-body.ts`:
- Around line 184-185: The code calls readEffectiveSkillUsageRecords directly
which breaks the dependency-injection pattern; change the reference to use the
injected dependency (e.g., _deps.readEffectiveSkillUsageRecords) and update any
places that construct or destructure _deps so the function is provided; keep
createdAuditDetails as-is but ensure createdAuditDetails and any callers still
use the injected readEffectiveSkillUsageRecords via _deps to preserve
testability and consistency with other dependencies.
In `@cli/selftune/ingestors/codex-rollout.ts`:
- Around line 205-219: The helper rememberPromptCandidate currently overwrites a
single prompt variable for both the "first actionable" prompt and the
"last_user_query", causing last_user_query to point to the first actionable
turn; fix by introducing a separate variable (e.g., lastPrompt or lastUserQuery)
and update rememberPromptCandidate so it sets prompt only once when the first
actionable message is seen (using hasActionablePrompt and prompt) but always
updates lastPrompt with the most recent non-empty user message; update any
downstream emission sites that used prompt for last_user_query to use the new
lastPrompt variable instead (references: rememberPromptCandidate, prompt,
hasActionablePrompt, last_user_query).
- Around line 234-245: The code uses unsafe TypeScript assertions like
(payload.id as string) to populate observedSessionId/observedCwd and
observedMeta fields; replace these with runtime type checks by testing typeof
payload.id === "string" (and similarly for payload.cwd, payload.model_provider,
payload.model, payload.originator) before assigning to observedSessionId,
observedCwd or setting properties on observedMeta so only real strings are used;
update the assignment logic in the block that touches observedSessionId,
observedCwd and observedMeta to use these typeof guards and leave values
undefined or skip properties when the check fails.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 5431ccdd-694e-4fe2-b0ca-695edc2e3248
📒 Files selected for processing (4)
cli/selftune/evolution/evolve-body.tscli/selftune/ingestors/codex-rollout.tstests/evolution/evolve-body.test.tstests/ingestors/codex-rollout.test.ts
This follow-up tightens the canonical telemetry boundary after PR #33 by making prompt-state recovery safer, preserving rollback payloads in body evolution, and hardening repair CLI failure handling. It also fixes Codex rollout metadata and prompt merging behavior, and keeps OpenCode adapter-only fields out of the legacy telemetry stream while improving text-only skill detection. Focused tests now cover custom canonical-log recovery, the body-evolution rollback payload, Codex observed-format prompt handling, and OpenCode whole-word matching plus telemetry hygiene. Verified with focused Biome checks and focused Bun tests covering normalization, body evolution, Codex rollout, OpenCode ingest, Claude hooks, and repair skill usage.