Conversation
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 50 minutes and 0 seconds. ⌛ 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 (9)
WalkthroughVersion 0.7.1 release extends the repository scanner to recognize additional programming language file extensions (C#, Java, Kotlin, Swift, PHP, Elixir, F#), skips build artifact directories (bin, obj, target) during scanning and size estimation, and updates documentation and tests accordingly. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ❌ 3❌ Failed checks (2 warnings, 1 inconclusive)
✏️ 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.
Actionable comments posted: 2
🧹 Nitpick comments (2)
src/lib/scanner.js (1)
83-86: Skip list inestimateRepoSizeduplicatesSKIP_DIR_NAMESlogic.The
entry === 'x' || entry === 'y' || ...chain andSKIP_DIR_NAMESnow largely overlap (both skipbin/obj/target/node_modules/etc.). Optional: consolidate both call sites to reference a sharedSetto prevent the two lists from drifting on the next language addition.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/lib/scanner.js` around lines 83 - 86, The skip-list in estimateRepoSize duplicates the hardcoded chain of directory names; replace the inline condition with a lookup against the existing SKIP_DIR_NAMES set (used elsewhere) so both call sites share one source of truth: in the function estimateRepoSize, remove the long "entry === 'x' || ..." chain and instead check SKIP_DIR_NAMES.has(entry) (or similar) to skip entries; ensure SKIP_DIR_NAMES is imported/available in that module and preserve the existing behavior for entries starting with '.' by combining that check with the set lookup.tests/scanner.test.js (1)
221-236: Consider also asserting the language detections here.The fixture exercises Java/Swift/PHP/Elixir/Kotlin source-file presence, but doesn't drop any marker file (e.g.,
pom.xml,Package.swift,composer.json,mix.exs,build.gradle.kts).detectLanguagesis marker-based, soscan.languageswill be empty here. The test still validates domain behavior correctly, but adding one marker + atoContainassertion would catch regressions indetectLanguagesalongsidedetectDomains.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@tests/scanner.test.js` around lines 221 - 236, The test currently creates source files but no language marker files so detectLanguages (and thus scan.languages) stays empty; update the fixture created via createFixture in the test case to include at least one marker file per language (e.g., add 'pom.xml' for Java, 'Package.swift' for Swift, 'composer.json' for PHP, 'mix.exs' for Elixir, 'build.gradle.kts' for Kotlin) and then add assertions against scan.languages (e.g., expect(scan.languages).toContain('java'), etc.) to verify detectLanguages works alongside domain detection when using scanRepo and detectLanguages.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@CHANGELOG.md`:
- Around line 5-12: The changelog entry for version header "[0.7.1] -
2026-04-16" conflicts with the skill files' "Last Updated" date of 2026-04-17;
pick a single canonical date and make them consistent—either update the
CHANGELOG header "[0.7.1] - 2026-04-16" to 2026-04-17 or update the skill files'
"Last Updated" to 2026-04-16 so both match; ensure you change all occurrences
(the version header in CHANGELOG.md and any "Last Updated" fields in the skill
files) to the chosen date.
In `@src/lib/scanner.js`:
- Around line 635-643: context-builder.js currently defines a SOURCE_EXTS list
that is out of sync with scanner.js (scanner.js added .mjs, .cjs, .kts, .cs,
.fs, .fsx), causing files the scanner accepts to be ignored during domain
context building; update context-builder.js to include the missing extensions or
better yet extract a single shared constant used by both modules (e.g., move
SOURCE_EXTS into a new shared module and import it from scanner.js and
context-builder.js) so the set used by SOURCE_EXTS in context-builder.js matches
the scanner.js definition and prevents silent omissions downstream.
---
Nitpick comments:
In `@src/lib/scanner.js`:
- Around line 83-86: The skip-list in estimateRepoSize duplicates the hardcoded
chain of directory names; replace the inline condition with a lookup against the
existing SKIP_DIR_NAMES set (used elsewhere) so both call sites share one source
of truth: in the function estimateRepoSize, remove the long "entry === 'x' ||
..." chain and instead check SKIP_DIR_NAMES.has(entry) (or similar) to skip
entries; ensure SKIP_DIR_NAMES is imported/available in that module and preserve
the existing behavior for entries starting with '.' by combining that check with
the set lookup.
In `@tests/scanner.test.js`:
- Around line 221-236: The test currently creates source files but no language
marker files so detectLanguages (and thus scan.languages) stays empty; update
the fixture created via createFixture in the test case to include at least one
marker file per language (e.g., add 'pom.xml' for Java, 'Package.swift' for
Swift, 'composer.json' for PHP, 'mix.exs' for Elixir, 'build.gradle.kts' for
Kotlin) and then add assertions against scan.languages (e.g.,
expect(scan.languages).toContain('java'), etc.) to verify detectLanguages works
alongside domain detection when using scanRepo and detectLanguages.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 53f40792-2f6f-4bba-a222-b4afc6734b27
⛔ Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (8)
.agents/skills/architecture/references/code-map.md.agents/skills/repo-scanning/SKILL.md.claude/skills/repo-scanning/skill.mdAGENTS.mdCHANGELOG.mdpackage.jsonsrc/lib/scanner.jstests/scanner.test.js
| ## [0.7.1] - 2026-04-16 | ||
|
|
||
| ### Fixed | ||
| - **Domain discovery for C#, Java, Kotlin, Swift, PHP, Elixir, F#** — scanner's `SOURCE_EXTS` only recognized JS/TS/Python/Ruby/Go/Rust files, so `doc init` reported zero domains for projects in other languages even when language detection itself succeeded. Added `.cs`, `.java`, `.kt`, `.kts`, `.swift`, `.php`, `.ex`, `.exs`, `.fs`, `.fsx`, `.mjs`, and `.cjs` to the source-extension set. | ||
| - **Build-output skipping** — repo-size estimation and domain detection now skip `bin/`, `obj/`, and `target/` directories, preventing .NET / Java / Rust build artifacts from polluting module lists or line counts. | ||
|
|
||
| ### Known Limitations | ||
| - Import graph, hub files, and cluster detection remain JS/TS/Python-only — `doc init` on C#/Java/Swift/PHP/Elixir/Kotlin/Rust/Go/Ruby projects will generate skills and domains but produce a minimal atlas. Full multi-language import parsing is tracked for a future release. |
There was a problem hiding this comment.
Minor date drift.
Release date here is 2026-04-16 but the skill files' Last Updated is 2026-04-17. Pick one to avoid confusion.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@CHANGELOG.md` around lines 5 - 12, The changelog entry for version header
"[0.7.1] - 2026-04-16" conflicts with the skill files' "Last Updated" date of
2026-04-17; pick a single canonical date and make them consistent—either update
the CHANGELOG header "[0.7.1] - 2026-04-16" to 2026-04-17 or update the skill
files' "Last Updated" to 2026-04-16 so both match; ensure you change all
occurrences (the version header in CHANGELOG.md and any "Last Updated" fields in
the skill files) to the chosen date.
What
Why
Closes #
How I tested
npm testpasses--dry-runoutput looks correct (if applicable)Checklist
Summary by CodeRabbit
New Features
Bug Fixes
Documentation