-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Add checkpoint initialization timeout settings and fix checkpoint timeout warnings #8019
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add checkpoint initialization timeout settings and fix checkpoint timeout warnings #8019
Conversation
- 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.
There was a problem hiding this 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-errorsflag addition togit addis 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.
…aveCheckpoint method
There was a problem hiding this 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!
|
Applied the requested English phrasing updates and propagated them to all locales. Summary of changes:
Verification:
This aligns the clickable settings link behavior with the default checkpoint warning and ensures consistent messaging across all locales. |
* 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
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:
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
Screenshots / Videos
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.
index.tswith a default of 15 seconds, adjustable between 10-60 seconds.index.ts.CheckpointSettings.tsxto include a slider for adjusting checkpoint timeout.ChatView.tsxandCheckpointWarning.tsxto handle and display new warning messages.common.jsonandsettings.jsonfor various locales.This description was created by
for a9a2e8c. You can customize this summary. It will automatically update as commits are pushed.