commit 906b76b34c9b7ed86657b546d732b275de8f1685
parent 7ea2763de3f13d1d01856d0eac15c635c9d02d3d
Author: claude-bot <noreply@anthropic.com>
Date: Fri, 9 Oct 2026 01:02:25 +0000
Docs: remove the Cloudflare request-size notes (measured: no proxy cap up to 520 MB)
A 105 MB and a 520 MB streamed request were both accepted by cdn.amit.is-a.dev and reached the app,
so the 100 MB Cloudflare example was wrong for this deployment. The app's own limits are the effective ones.
Diffstat:
2 files changed, 4 insertions(+), 10 deletions(-)
diff --git a/app/templates/documentation.html b/app/templates/documentation.html
@@ -165,10 +165,7 @@
<h3>Limits, currently</h3>
<p>Any file type except video. <strong>GitHub sync has no rate limit</strong> and no limit on the size or number of files:
- what protects it instead is the sign-in identity, the approval rule, bans and the video rule above. Separately, the network in front of the
- CDN can cap a single request (for example, Cloudflare's Free and Pro plans refuse requests over 100 MB, and that happens before the
- request reaches this app), so a very large archive can still fail with a <code>413</code> that isn't one of the messages on this page.
- If that happens, shrink the archive with <code>tar --exclude</code>. See <a href="#rate-limits">Rate limits</a>.</p>
+ what protects it instead is the sign-in identity, the approval rule, bans and the video rule above. See <a href="#rate-limits">Rate limits</a>.</p>
</div>
</section>
@@ -312,7 +309,7 @@
<li><strong>What does not count.</strong> Uploads refused before the limit check (banned IP, VPN/proxy address, video) do not use your allowance. Shortener requests <em>do</em> count even when the URL turns out to be invalid, because the limit is checked before the link is examined.</li>
<li><strong>GitHub sync is not rate-limited.</strong> It is protected by the sign-in identity, the approval rule, bans and the video rule instead (see <a href="#gh-sync">GitHub Actions sync</a>).</li>
<li><strong>In memory.</strong> Counters are kept in the server's memory, so a restart or redeploy clears them.</li>
- <li><strong>Your network may add its own cap.</strong> A single request can also be limited by the network in front of the CDN, separately from the limits above. For example, Cloudflare's Free and Pro plans refuse any request over 100 MB before it reaches this app. If a large upload fails with a <code>413</code> that doesn't match the messages below, split it into smaller uploads.</li>
+
</ul>
<h3>When you hit a limit</h3>
diff --git a/app/templates/gh_sync_docs.html b/app/templates/gh_sync_docs.html
@@ -202,8 +202,7 @@ jobs:
rejected and nothing is uploaded. Leave videos out of the archive, for example by adding
<code>--exclude='*.mp4'</code> to the <code>tar</code> command.</li>
<li><strong>No rate limit.</strong> There's no limit on file count, archive size or how often you sync. What protects it instead is your
- sign-in identity, the approval rule, bans and the no-video rule. One caveat outside this service: the network in front of the CDN can cap a
- single request (Cloudflare's free plan refuses requests over 100 MB), so a very large archive may still be refused. Keep it small with
+ sign-in identity, the approval rule, bans and the no-video rule. A smaller archive syncs faster, so leave build output out, for example
<code>--exclude='node_modules'</code> in the <code>tar</code> command.
<a href="/documentation#rate-limits">How rate limits work</a>.</li>
<li>Each sync fully replaces the contents of <em>your own</em> <code>username/repo</code> folder only
@@ -226,9 +225,7 @@ jobs:
or exclude it from the archive.</li>
<li><code>401</code> — the identity token was missing, expired or not for this service. Check that
<code>permissions: id-token: write</code> is set and that the audience is <code>cdn.amit.is-a.dev</code>.</li>
- <li><code>413</code> with a message that isn't from the CDN (for example a plain "Request Entity Too Large") — the request was refused before it
- reached the CDN because the archive is too big for the network in front of it (100 MB on Cloudflare's free plan). Exclude build output and
- dependency folders from the archive. Sync itself has no <a href="/documentation#rate-limits">rate limit</a>.</li>
+
</ul>
<p>The full request/response details are in the <a href="/documentation#gh-sync">documentation</a>.</p>