Skip to content

5-file batching, BulkRead tool, label preservation, cold-start retry#26

Merged
Chhinna merged 1 commit into
mainfrom
feature/chinmay/agentic-review-batching
May 31, 2026
Merged

5-file batching, BulkRead tool, label preservation, cold-start retry#26
Chhinna merged 1 commit into
mainfrom
feature/chinmay/agentic-review-batching

Conversation

@Chhinna
Copy link
Copy Markdown
Contributor

@Chhinna Chhinna commented May 31, 2026

User description

Summary

Align the headless agent review with the backend's pragent-based flow:

  • 5-file batching: each agent session now reviews up to 5 files at once instead of 1 — matches pragent's MAX_FILES_PER_BATCH=5. For an 8-file diff, the CLI fires 2 sessions (5+3) instead of 8, cutting backend session count by ~80%.
  • BulkRead tool: new client-side handler mirroring backend pragent llm_tools.bulk_read_tool so the agent can fetch up to 10 files in one tool call.
  • Label preservation: pragent's rejector schema drops the generator's label field; the CLI now matches reflector issue_content ↔ generator one_sentence_summary (pragent's primary smart_match_feedback strategy) to keep specific labels (security, null pointer, resource leak, …) instead of falling back to 'Code Quality'.
  • Cold-start retry: undici Agent with 60s connect timeout + transient-error retry. Default 10s connect timeout caused UND_ERR_CONNECT_TIMEOUT during cold-start TLS handshakes under burst review load.
  • Tool dispatcher: path normalization (/workspace/ stripping) so the agent's absolute-path tool calls resolve in the CLI's relative-cwd model.

Test plan

  • node src/index.js review --headless on a multi-file diff against test backend — confirm batching reduces session count, labels are specific, progress shows actual file counts.
  • Run on a 1-file diff — confirm single-file path still sends file_path / file_content so backend head_file_str works.
  • Cold-start scenario: warm Lambda, wait for it to idle, fire a burst of 6+ files — should retry once on UND_ERR_CONNECT_TIMEOUT and succeed.
  • Interactive codeant review (not just headless) still works.
  • VSCode extension integration unchanged (response shape: issue_content / start_line / label preserved).

🤖 Generated with Claude Code


CodeAnt-AI Description

Review multiple files in one session and keep reviews stable during cold starts

What Changed

  • Headless reviews now group files into batches of up to 5, so one run can review several files at once instead of sending one session per file
  • Progress updates now show the actual number of files being reviewed, and single-file batches still include file-specific context
  • The review flow now supports bulk reading up to 10 files in one tool call, and paths starting with /workspace/ are handled correctly
  • Review labels are preserved more often after the reflector step instead of falling back to a generic label
  • Network requests now wait longer before timing out and retry transient failures, which helps reviews complete during cold starts

Impact

✅ Fewer review sessions for large diffs
✅ Clearer review progress for multi-file changes
✅ Fewer failed reviews during cold starts

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

Align the headless agent review with the backend's pragent-based
flow (which now batches up to 5 files per session and exposes
Read/Grep/Glob/LS/BulkRead).

- splitIntoPerFileRequests: group files in chunks of 5 per agent
  session instead of 1, matching pragent's MAX_FILES_PER_BATCH.
  Concatenate diffs + merge file_contents per batch.
- reviewHeadless: per-batch loop; pass file_path/file_content only
  on single-file batches (multi-file batches let the agent gather
  per-file context via tools). Progress messages report actual file
  counts, not batch counts.
- Preserve generator labels through the reflector by matching
  reflector issue_content to generator one_sentence_summary
  (pragent's primary smart_match_feedback strategy).
- BulkRead tool handler (mirrors backend pragent llm_tools), plus
  /workspace/ prefix stripping in the dispatcher so the agent's
  absolute-path tool calls resolve to the CLI's relative-cwd model.
- fetchApi: undici Agent with 60s connect timeout + transient-error
  retry. Default 10s connect timeout caused UND_ERR_CONNECT_TIMEOUT
  during cold-start TLS handshakes under burst review load.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 31, 2026

CodeAnt AI is running Incremental review

@codeant-ai codeant-ai Bot added the size:L This PR changes 100-499 lines, ignoring generated files label May 31, 2026
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 31, 2026

CodeAnt AI Incremental review completed.

@Chhinna Chhinna merged commit f875c2e into main May 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant