Skip to content

Conversation

@NaccOll
Copy link
Contributor

@NaccOll NaccOll commented Sep 16, 2025

Related GitHub Issue

Closes: #7843

Roo Code Task Context (Optional)

Description

Roo asynchronously initializes a checkpoint at the start of a task. When triggering a checkpoint save, a default timeout of 15 seconds is used. In a large code repository, if a user starts a simple task and the editing tools are triggered on the first request, the checkpoint initialization may fail due to a timeout without any warning.

This pull request has two main tasks:

  1. Fixing the issue of incorrectly displaying checkpoint warnings after asynchronous checkpoint initialization. Currently, after 5 seconds, a warning message will be displayed indicating that the checkpoint initialization is taking too long. After the timeout, the user will be notified that the checkpoint function for the current task has been disabled due to a timeout, and the user can extend the initialization timeout.
  2. Allowing users to customize the checkpoint initialization timeout. The default is 15 seconds (the same as before), with a range of 10-60 seconds.

Test Procedure

Open a large code repository, enable checkpoints, and initiate a chat. Ask LLM to insert "hello world" at the end of a file and observe the corresponding checkpoint prompt.

Go to the checkpoint settings, adjust the checkpoint timeout, and try again.

Pre-Submission Checklist

  • Issue Linked: This PR is linked to an approved GitHub Issue (see "Related GitHub Issue" above).
  • Scope: My changes are focused on the linked issue (one major feature/fix per PR).
  • Self-Review: I have performed a thorough self-review of my code.
  • Testing: New and/or updated tests have been added to cover my changes (if applicable).
  • Documentation Impact: I have considered if my changes require documentation updates (see "Documentation Updates" section below).
  • Contribution Guidelines: I have read and agree to the Contributor Guidelines.

Screenshots / Videos

image image image

Documentation Updates

Checkpoint related chapters need to be updated

Additional Notes

Get in Touch

NaccOll


Important

This PR adds a customizable timeout for checkpoint initialization and improves related warning messages, with updates to UI and localization.

  • Behavior:
    • Adds customizable checkpoint initialization timeout in index.ts with a default of 15 seconds, adjustable between 10-60 seconds.
    • Improves warning messages for checkpoint initialization delays and failures in index.ts.
  • UI and Settings:
    • Updates CheckpointSettings.tsx to include a slider for adjusting checkpoint timeout.
    • Modifies ChatView.tsx and CheckpointWarning.tsx to handle and display new warning messages.
  • Localization:
    • Adds new localization strings for checkpoint warnings and settings in multiple language files, including common.json and settings.json for various locales.

This description was created by Ellipsis for a9a2e8c. You can customize this summary. It will automatically update as commits are pushed.

- Added new localization strings for checkpoint initialization timeout messages in multiple languages.
- Implemented checkpoint initialization timeout feature in settings, allowing users to configure the timeout duration (10-60 seconds).
- Updated the ShadowCheckpointService to handle long initialization times and provide appropriate warnings.
- Enhanced the chat component to display checkpoint initialization warnings based on the new timeout settings.
- Modified the CheckpointWarning component to accept custom warning messages.
- Updated tests to cover new checkpoint timeout functionality and ensure proper integration.
@NaccOll NaccOll requested review from cte, jr and mrubens as code owners September 16, 2025 07:47
@dosubot dosubot bot added size:L This PR changes 100-499 lines, ignoring generated files. bug Something isn't working Documentation Improvements or additions to documentation Enhancement New feature or request labels Sep 16, 2025
Copy link
Contributor

@roomote roomote bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your contribution! I've reviewed the changes and this is a well-implemented feature that effectively addresses the checkpoint initialization timeout issue in large repositories. The addition of user-configurable timeout settings and improved warning messages provides a much better user experience.

Positive observations:

  • Good implementation of user-configurable timeout with appropriate UI controls
  • Proper internationalization support for all new warning messages
  • Clear warning messages that guide users on how to resolve timeout issues
  • The --ignore-errors flag addition to git add is a good improvement for handling permission issues

I've left some suggestions inline that could improve code quality and robustness, but overall this is a solid implementation.

@hannesrudolph hannesrudolph added the Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. label Sep 16, 2025
@daniel-lxs daniel-lxs moved this from Triage to PR [Needs Prelim Review] in Roo Code Roadmap Sep 16, 2025
@hannesrudolph hannesrudolph added PR - Needs Preliminary Review and removed Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. labels Sep 16, 2025
@daniel-lxs daniel-lxs moved this from PR [Needs Prelim Review] to PR [Changes Requested] in Roo Code Roadmap Sep 16, 2025
@NaccOll NaccOll requested a review from daniel-lxs September 17, 2025 02:58
@daniel-lxs daniel-lxs moved this from PR [Changes Requested] to PR [Needs Prelim Review] in Roo Code Roadmap Sep 18, 2025
Copy link
Member

@daniel-lxs daniel-lxs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good overall, but there are a few things we should fix before merging. In CheckpointWarning.tsx, the component is currently passing a pre-translated string into Trans i18nKey. When the text prop is present we should just render it directly, and only use Trans with the key when no text is provided.

For timeout handling, we should add schema constraints in global-settings.ts (something like z.number().int().min(10).max(60).optional()) and then clamp the value in the Task.ts constructor so that bad inputs can’t sneak through. Related to that, it’d be better to centralize the default 15s into a constant (e.g. DEFAULT_CHECKPOINT_TIMEOUT_SECONDS) and reuse it in Task.ts, ClineProvider.ts, and the UI settings to avoid drift.

The timeout option was removed from getCheckpointService in checkpoints/index.ts, so we need to double-check all call sites and clean up any stale types or imports. In ChatView.tsx, it’d also be good to defensively clear checkpointWarningText when streaming starts or when messages appear, otherwise warnings can linger if the backend misses a clear signal.

On the i18n side, there are a couple of small grammar fixes: in the English locale, change “after taking long time” to “after taking a long time,” and in the Hindi locale, use “बड़ी रिपॉजिटरी.”

Let me know if you have any questions!

@daniel-lxs daniel-lxs moved this from PR [Needs Prelim Review] to PR [Changes Requested] in Roo Code Roadmap Sep 22, 2025
@roomote
Copy link
Contributor

roomote bot commented Oct 23, 2025

Applied the requested English phrasing updates and propagated them to all locales.

Summary of changes:

  • EN phrasing:
    • Replaced plain settings with the checkpoint settings.
    • Updated grammar to: Checkpoint initialization has taken more than {{timeout}} seconds, so checkpoints are disabled for this task.
  • Propagated the same UX across all locales with settingsLink placeholders and localized references to the checkpoint settings.
  • Updated keys:
    • common.errors.wait_checkpoint_long_time
    • common.errors.init_checkpoint_fail_long_time
  • Files touched (examples):

Verification:

  • Ran scripts/find-missing-translations.js — no missing translations reported.
  • CI check-translations passed.
  • Pushed to branch feature-improve-checkpoint-wait as commit 581c1a3.

This aligns the clickable settings link behavior with the default checkpoint warning and ensures consistent messaging across all locales.

@mrubens mrubens merged commit f4121e2 into RooCodeInc:main Oct 24, 2025
9 checks passed
@github-project-automation github-project-automation bot moved this from New to Done in Roo Code Roadmap Oct 24, 2025
@github-project-automation github-project-automation bot moved this from PR [Needs Review] to Done in Roo Code Roadmap Oct 24, 2025
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Oct 24, 2025
* fix: skip flaky Windows test in custom-system-prompt.spec.ts (RooCodeInc#8023)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add GDPR-compliant cookie consent banner (RooCodeInc#8022)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Release: v1.76.0 (RooCodeInc#8030)

* Types 1.77.0 (RooCodeInc#8031)

* feat(web): update homepage headline and tagline for remote control capabilities (RooCodeInc#7911)

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* ux: Responsive Auto-Approve (RooCodeInc#8032)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* feat(cloud): Add telemetry retry queue for network resilience (RooCodeInc#7597)

* feat(cloud): Add telemetry retry queue for network resilience

- Implement RetryQueue class with workspace-scoped persistence
- Queue failed telemetry events for automatic retry
- Retry events every 60 seconds with fresh auth tokens
- FIFO eviction when queue reaches 100 events
- Persist queue across VS Code restarts

This ensures telemetry data isn't lost during network failures or temporary server issues.
Migrated from RooCodeInc/Roo-Code-Cloud#744

* fix: address PR review feedback for retry queue

- Fix retry order to use consistent FIFO processing
- Add retry limit enforcement with max retries check
- Add configurable request timeout (default 30s)
- Add comprehensive tests for retryAll() method
- Add request-max-retries-exceeded event
- Fix timeout test to avoid timing issues

* fix: resolve TypeScript errors in RetryQueue tests

* fix(cloud): Address PR feedback for telemetry retry queue

- Handle HTTP error status codes (500s, 401/403, 429) as failures that trigger retry
- Remove queuing of backfill operations since they're user-initiated
- Fix race condition in concurrent retry processing with isProcessing flag
- Add specialized retry logic for 429 with Retry-After header support
- Clean up unnecessary comments
- Add comprehensive tests for new status code handling
- Add temporary debug logs with emojis for testing

* refactor: address PR feedback for telemetry retry queue

- Remove unused X-Organization-Id header from auth header provider
- Simplify enqueue() API by removing operation parameter
- Fix error retry logic: only retry 5xx, 429, and network failures
- Stop retrying 4xx client errors (400, 401, 403, 404, 422)
- Implement queue-wide pause for 429 rate limiting
- Add auth state management integration:
  - Pause queue when not in active-session
  - Clear queue on logout or user change
  - Preserve queue when same user logs back in
- Remove debug comments
- Fix ESLint no-case-declarations error with proper block scope
- Update tests for all new behaviors

* Docs: Overhaul README (RooCodeInc#8005)

* docs: overhaul README for clarity and impact

* fix: update badge links and styles in README for improved visibility

* docs(README): stronger CTAs for Discord/Reddit; restore Modes/Roles incl. cloud agents

* docs(readme): add support CTA; refine modes section; clarify custom modes wording

- add centered help/links CTA under badges: [README.md](README.md:8-10)
- expand feature list to explicitly include modes: [README.md](README.md:45)
- rename section header “Modes and Roles” → “Modes”: [README.md](README.md:52)
- update wording to “Custom Modes: build specialized modes for your team or workflow”: [README.md](README.md:60)

* docs: implement @jdilla1277 suggestions for English README

- Updated header to "Your AI-Powered Dev Team, Right in Your Editor" (removed Cline reference)
- Changed line 44 to "Generate Code from natu