Skip to content

V0.1.4#12

Merged
arumes31 merged 6 commits into
mainfrom
v0.1.4
Jun 19, 2026
Merged

V0.1.4#12
arumes31 merged 6 commits into
mainfrom
v0.1.4

Conversation

@arumes31

Copy link
Copy Markdown
Owner

No description provided.

arumes31 and others added 6 commits June 19, 2026 10:46
… any depth + rate-limit Drive API by query

Two root causes made a large tree (e.g. node_modules) never finish syncing, so
every restart re-attempted the whole unsynced backlog (looking like "everything
re-uploads"; already-synced files were in fact correctly skipped):

1. Ignore matching only skipped .git/.gcrypt at the sync ROOT, and node_modules
   wasn't ignored at all — so 17k+ dependency/VCS files flooded the queue.
   - Built-in ignores are now matched on ANY path component: .git, .gcrypt,
     .svn, .hg, node_modules are skipped at any depth and on every pair
     (EffectiveIgnorePatterns returns a pair's custom patterns *instead of* the
     defaults, so this had to live in the non-overridable built-in matcher).
   - DefaultIgnorePatterns also gains the common build/cache trees (vendor,
     dist, build, target, bin, obj, __pycache__, .venv, .idea, .vscode, ...)
     for pairs without custom patterns.

2. The rate limiter counted operations, not Drive API queries — but each upload
   issues several queries (dedup search + encrypted folder-chain creation +
   upload), so the real query rate was several times the cap and blew Google's
   per-minute per-user quota (logs full of "Quota exceeded"/"rate limit").
   - Enforce the cap at the HTTP transport (rateLimitedRoundTripper), so EVERY
     request across all pairs, upload chunks and token refreshes counts —
     process-global since the quota is per-user. Default 100 q/s (~6,000/min,
     well under the ~12,000/min limit, with headroom for retries).

Note: already-synced node_modules/.git files become "ignored" and are removed
from Drive (trashed, recoverable) on the next scan, as intended.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 19, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@arumes31, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 44 minutes and 45 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8c31dd2e-a895-4714-952d-b3a3e1207d15

📥 Commits

Reviewing files that changed from the base of the PR and between 5d488ad and dc32254.

📒 Files selected for processing (16)
  • .dockerignore
  • .github/workflows/release.yml
  • .goreleaser.yaml
  • Dockerfile
  • cmd/gcrypt/main.go
  • internal/config/config.go
  • internal/config/config_test.go
  • internal/drive/client.go
  • internal/drive/store.go
  • internal/drive/store_test.go
  • internal/service/fyneui_activity.go
  • internal/service/fyneui_settings.go
  • internal/sync/engine.go
  • internal/sync/ignore.go
  • internal/sync/ignore_test.go
  • internal/sync/scanner.go
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch v0.1.4

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@arumes31
arumes31 merged commit 3b9a0c2 into main Jun 19, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant