Conversation
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ 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: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe PR refines baseline-205 measurement collection by correcting the Teensy LC environment identifier to lowercase, updating library-hit detection to scan only ChangesBaseline-205 Measurement Refinement
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 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 |
The previous scan globbed every needle (FNET / Snooze / RadioHead / mbedtls) against the entire compile_commands.json entry — file + directory + command + arguments. That caught the framework-wide `-I.../libraries/<lib>` header search-path flag on every TU, so the report read "FNET: 68 entries" on teensylc just because the include path was on every translation unit. The actual AC#1 question — "did any FNET source file get compiled?" — was masked. Switch to a path-segment match against the `file` field only: `/libraries/<needle>/` in the normalized POSIX form. Now the count is "TUs whose `file` is a `<needle>/...` source file", which is the question AC#1 asks. With the fix, all four boards (teensylc, teensy30, teensy41, stm32f103c8) report `0 (not compiled)` for every excluded library — AC#1 is met cleanly across the matrix, no hand-reading required. Also reworded the report line from "Excluded library hits in compile_commands.json" → "Excluded-library source files compiled (AC#1 must be 0 for all)" so the report header itself states the contract. Refs: #205 AC#1. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0e4ea8d to
f80f732
Compare
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
ci/measure_baseline_205.py (1)
388-390:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAdd language identifier to generated code block.
The generated markdown code block is missing a language identifier, causing a markdownlint warning. This affects the generated
tasks/baseline-205.mdfile.📝 Proposed fix
- lines.append("```") + lines.append("```shell") lines.append("uv run python ci/measure_baseline_205.py --out tasks/baseline-205.md") lines.append("```")🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@ci/measure_baseline_205.py` around lines 388 - 390, Update the code that emits the markdown fenced code block so it includes a language identifier: change the call that appends the opening fence (the lines.append("```") invocation that outputs the uv run example in ci/measure_baseline_205.py) to append a language-tagged fence (e.g., "```shell") so the generated tasks/baseline-205.md contains ```shell before the command and fixes the markdownlint warning; leave the closing lines.append("```") untouched.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@ci/measure_baseline_205.py`:
- Around line 388-390: Update the code that emits the markdown fenced code block
so it includes a language identifier: change the call that appends the opening
fence (the lines.append("```") invocation that outputs the uv run example in
ci/measure_baseline_205.py) to append a language-tagged fence (e.g., "```shell")
so the generated tasks/baseline-205.md contains ```shell before the command and
fixes the markdownlint warning; leave the closing lines.append("```") untouched.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 5dd640fb-109f-4304-bac1-78a3821b546f
📒 Files selected for processing (2)
ci/measure_baseline_205.pytasks/baseline-205.md
…nsylc env, add CI badges Three final polish items before closing #205. ## test — `r04_pass2_reconciliation_catches_cpp_only_dependency` The canonical "why 2-pass beats single-pass BFS" scenario, which the existing 16-test suite was missing as an explicit guard: - Project includes `<SPI.h>`. `SPI.h` is silent (no transitive includes). - `SPI.cpp` is the *only* place that includes `<Wire.h>`. A single-pass BFS over headers selects {SPI} and silently misses Wire — link-time undefined symbols. The LDF's pass 2 re-seeds with each selected lib's full source set, so Wire is reached and selected. Test asserts {SPI, Wire} and is the regression guard against accidentally collapsing the resolver back to a single pass. Brings the resolver test count to 17 (10 LDF + 7 cache). ## fix — teensylc acceptance gate env name `tests/teensylc_acceptance.rs` passed `env_name: "teensyLC"` (camelCase) and looked up `compile_commands.json` under `<build>/teensyLC/`. The actual env in `tests/platform/teensylc/platformio.ini` is `[env:teensylc]` (lowercase) — same case-sensitivity bug fixed in #220 / #221 for `measure_baseline_205.py`. The acceptance gate has been failing on every run (including main) for this reason. ## badges Adds badges for the two #205 workflows to README.md's CI status block: - `acceptance-205.yml` — AC#1 (teensyLC) and AC#4 (stm32 SPI) gates - `bench-205.yml` — P-02 (cold) / P-03 (scanner) / P-01-mini (warm) perf gates Both have been live since #211 / #210 but were not discoverable from the README. Refs: #205. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…nsylc env, add CI badges Three final polish items before closing #205. ## test — `r04_pass2_reconciliation_catches_cpp_only_dependency` The canonical "why 2-pass beats single-pass BFS" scenario, which the existing 16-test suite was missing as an explicit guard: - Project includes `<SPI.h>`. `SPI.h` is silent (no transitive includes). - `SPI.cpp` is the *only* place that includes `<Wire.h>`. A single-pass BFS over headers selects {SPI} and silently misses Wire — link-time undefined symbols. The LDF's pass 2 re-seeds with each selected lib's full source set, so Wire is reached and selected. Test asserts {SPI, Wire} and is the regression guard against accidentally collapsing the resolver back to a single pass. Brings the resolver test count to 17 (10 LDF + 7 cache). ## fix — teensylc acceptance gate env name `tests/teensylc_acceptance.rs` passed `env_name: "teensyLC"` (camelCase) and looked up `compile_commands.json` under `<build>/teensyLC/`. The actual env in `tests/platform/teensylc/platformio.ini` is `[env:teensylc]` (lowercase) — same case-sensitivity bug fixed in #220 / #221 for `measure_baseline_205.py`. The acceptance gate has been failing on every run (including main) for this reason. ## badges Adds badges for the two #205 workflows to README.md's CI status block: - `acceptance-205.yml` — AC#1 (teensyLC) and AC#4 (stm32 SPI) gates - `bench-205.yml` — P-02 (cold) / P-03 (scanner) / P-01-mini (warm) perf gates Both have been live since #211 / #210 but were not discoverable from the README. Refs: #205. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…nsylc env, add CI badges (#222) Three final polish items before closing #205. ## test — `r04_pass2_reconciliation_catches_cpp_only_dependency` The canonical "why 2-pass beats single-pass BFS" scenario, which the existing 16-test suite was missing as an explicit guard: - Project includes `<SPI.h>`. `SPI.h` is silent (no transitive includes). - `SPI.cpp` is the *only* place that includes `<Wire.h>`. A single-pass BFS over headers selects {SPI} and silently misses Wire — link-time undefined symbols. The LDF's pass 2 re-seeds with each selected lib's full source set, so Wire is reached and selected. Test asserts {SPI, Wire} and is the regression guard against accidentally collapsing the resolver back to a single pass. Brings the resolver test count to 17 (10 LDF + 7 cache). ## fix — teensylc acceptance gate env name `tests/teensylc_acceptance.rs` passed `env_name: "teensyLC"` (camelCase) and looked up `compile_commands.json` under `<build>/teensyLC/`. The actual env in `tests/platform/teensylc/platformio.ini` is `[env:teensylc]` (lowercase) — same case-sensitivity bug fixed in #220 / #221 for `measure_baseline_205.py`. The acceptance gate has been failing on every run (including main) for this reason. ## badges Adds badges for the two #205 workflows to README.md's CI status block: - `acceptance-205.yml` — AC#1 (teensyLC) and AC#4 (stm32 SPI) gates - `bench-205.yml` — P-02 (cold) / P-03 (scanner) / P-01-mini (warm) perf gates Both have been live since #211 / #210 but were not discoverable from the README. Refs: #205. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
The previous scan in
parse_compile_commandsmatched the needles (FNET / Snooze / RadioHead / mbedtls) against every field of everycompile_commands.jsonentry — file + directory + command + arguments. That caught the framework-wide-I.../libraries/<lib>header search-path flag on every TU, so teensylc's report read "FNET: 68 entries" just because the include path was on every translation unit. The actual AC#1 question — "did any FNET source file get compiled?" — was masked.Switched to a path-segment match (
/libraries/<needle>/) against thefilefield only. Now the count is "TUs whosefileis a<needle>/...source file" — the question AC#1 asks.Result
All four boards now report
0 (not compiled)for every excluded library:AC#1 is met cleanly across the matrix — no hand-reading required.
The report line was also reworded from "Excluded library hits in compile_commands.json" → "Excluded-library source files compiled (AC#1 must be 0 for all)" so the report header states the contract directly.
Test plan
filefields under/libraries/<needle>/(also zero).Refs: #205 AC#1.
🤖 Generated with Claude Code
Summary by CodeRabbit
Chores
Documentation