Skip to content

fix(share): explain the hourly review-version limit - #7539

Merged
terencecho merged 1 commit into
mainfrom
terence/review-hourly-limit-sentence
Nov 11, 2026
Merged

terencecho merged 1 commit into
mainfrom
terence/review-hourly-limit-sentence

Conversation

@terencecho

Copy link
Copy Markdown
Contributor

What

Adds a sentence for the review service's new 429 export_hourly_limit refusal (too many new versions in the last hour):

You've added the most versions for this hour. Try again in 25 minutes.

The wait comes from the server's Retry-After. If none is sent, it falls back to "in an hour". The daily limit's sentence is unchanged and keeps its "tomorrow" fallback.

Why

The review service now limits new versions per hour as well as per day. versionSentence only knew the daily reason, so an hourly refusal fell through to "Couldn't add this version. Try again." That told the person to retry immediately, and every retry within the hour was refused again. Now they see what happened and how long to wait.

Related work

The server-side limit change is in a separate repository.

How

  • A new export_hourly_limit entry in SAID.
  • laterIn now takes the fallback to use when the server sends no Retry-After, so each limit falls back to its own window.

Test plan

  • Unit tests added: packages/share/tests/reviewVersionSentences.test.mjs covers the hourly sentence with a wait, both fallbacks, and the daily sentence rounding to hours. Without this change, the hourly test gets the generic "Try again" sentence and fails.
  • node --test tests/*.test.mjs in packages/share: 60 pass, 0 fail. oxfmt --check and oxlint are clean on both files.
  • Manual testing performed: not exercised against a live review service.
  • Comments follow CONTRIBUTING.md "Comments".

🤖 Generated with Claude Code

The review service can now refuse a new version with 429 export_hourly_limit
(too many versions in the last hour). It had no sentence, so the person read
"Couldn't add this version. Try again." and every retry was refused again.
It now says the hourly limit was reached and when to try again, from the
server's Retry-After, falling back to "in an hour" when none is sent. The
daily limit keeps its "tomorrow" fallback.

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

@heygengenesis heygengenesis Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Verdict: APPROVE · 0 blocker · 0 important · 0 nits

laterIn now takes a per-limit fallback. The daily sentence is unchanged ("tomorrow"), and the hourly one falls back to "in an hour". versionSentence's only internal caller, reviewExport.mjs:217, passes its replay fallback through untouched, so a matched reason still wins. The new tests pass locally (3/3), and all CI on this head is green.

— Genesis

@terencecho
terencecho added this pull request to the merge queue Nov 11, 2026
Merged via the queue into main with commit 8a15d9f Nov 11, 2026
68 checks passed
@terencecho
terencecho deleted the terence/review-hourly-limit-sentence branch November 11, 2026 05:08
@miguel-heygen miguel-heygen mentioned this pull request Nov 11, 2026
3 of 4 tasks
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