Skip to content

release: v0.1.7 - #103

Merged
ajianaz merged 13 commits into
developfrom
release/v0.1.7
Jun 1, 2026
Merged

ajianaz merged 13 commits into
developfrom
release/v0.1.7

Conversation

@ajianaz

@ajianaz ajianaz commented Jun 1, 2026

Copy link
Copy Markdown
Collaborator

v0.1.7 Release

Focus: Deterministic Reviews + Reliability

Root issue: #97 — same diff produces different issues on every run.

Added

Fixed

Stats

  • 205 tests passing
  • Clippy clean
  • Cora self-review: no issues

CTO Hermes added 13 commits June 1, 2026 15:25
…_ttl) (#98 #99 #101 #100)

- Add LlmSection to CoraFile with temperature, max_tokens, timeout, cache_ttl
- Add temperature/max_tokens/timeout/cache_ttl fields to Config struct
- Add same fields to LLMConfig for LLM call wiring
- Wire config values through build_llm_config()
- Enhanced error messages for malformed YAML files (#78)
- Default temperature is 0.0 for deterministic output
…101)

- Create shared reqwest::Client via LazyLock with 120s timeout + connection pooling
- Replace per-request reqwest::Client::new() with shared client
- Wire config.temperature and config.max_tokens into both chat_completion and
  chat_completion_stream (replacing hardcoded 0.2 and 4096)
- Cache key = SHA-256 of diff content
- Cache stored in ~/.cache/cora/reviews/ as JSON files
- TTL: 24h default, configurable via llm.cache_ttl (in minutes)
- Functions: get_cached_review(), save_cached_review()
- Cache entry includes timestamp for TTL expiry
- Expired cache files are automatically cleaned up on miss
- review_diff_inner checks cache before calling LLM (if use_cache=true)
- Saves response to cache on successful review
- Add review_diff_with_cache() public API
- Add no_cache field to ReviewOptions
- Add --no-cache CLI flag to cora review command
- execute_review passes !opts.no_cache to use_cache
- Add validate_ref() function that rejects refs with shell metacharacters
- Reject path traversal sequences (../etc/passwd) while allowing valid
  git range syntax (HEAD~3..HEAD, main...develop)
- Apply validation in get_branch_diff() and get_commit_diff()
- Add no_cache field to ReviewOpts struct
- Wire through Command::Review destructuring
- Pass to review::ReviewOptions construction
Cache now stores the fully filtered response (after file path validation
and ignore rules), not the raw LLM output. This ensures cache hits
return identical results to fresh reviews.
- Move timeout from Client level to per-request .timeout() on RequestBuilder
- Users can now configure llm.timeout and it actually works
- Remove misleading dead code (shared_client timeout_secs param)
- Cache key now includes model + temperature (config changes invalidate cache)
- Add test: different model/temperature produces different cache key
- Add test: cache key is deterministic

Addresses cora review findings on v0.1.7 diff:
- MAJOR: shared client ignores configurable timeout → fixed with per-request timeout
- MAJOR: cache key only hashes diff → fixed by including model + temperature
- curl -sfL (fail on HTTP errors, silent progress)
- 3 retries with 5s delay on failure
- python3 .get() instead of direct key access (no KeyError)
- Fallback to v0.1.6 with ::warning:: if all retries fail
- Fixed in both cora-review and cora-review-simple actions
Fixed non-deterministic reviews (temperature=0), HTTP timeout, caching,
git ref validation, config error handling, composite action resilience.
Closes #97 #98 #99 #100 #101 #73 #78 #102
@coderabbitai

coderabbitai Bot commented Jun 1, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@ajianaz, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 56 minutes and 8 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ee5aea06-7abf-40d1-814b-688dbea1bb61

📥 Commits

Reviewing files that changed from the base of the PR and between 348a68f and 5e9c39d.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (15)
  • .github/actions/cora-review-simple/action.yml
  • .github/actions/cora-review/action.yml
  • CHANGELOG.md
  • Cargo.toml
  • README.md
  • src/commands/review.rs
  • src/config/loader.rs
  • src/config/schema.rs
  • src/engine/cache.rs
  • src/engine/llm.rs
  • src/engine/mod.rs
  • src/engine/review.rs
  • src/engine/types.rs
  • src/git/diff.rs
  • src/main.rs
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/v0.1.7

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown

🔍 Cora AI Code Review

✅ No issues found. Code looks good!


Review powered by cora-cli · BYOK · MIT

@ajianaz
ajianaz merged commit 58340a9 into develop Jun 1, 2026
14 checks passed
@ajianaz
ajianaz deleted the release/v0.1.7 branch June 1, 2026 08:40
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.

1 participant