Repository navigation
Spec 002: the report made in the background, behind its address (R4) - #100
Closed
adamjohnwright wants to merge 2 commits into
Closed
adamjohnwright wants to merge 2 commits into
adamjohnwright wants to merge 2 commits into
Conversation
Spec 001 T007 measured one diagram with an analysis token at 4.5 s cold, two drawn at once: a report's figures take about a minute for 25 pathways and two for 50, against the 40 s the edge's 100 s leaves after the gateway's wait. The user left the choice to us. The report is now made in the background: a request starts or joins it and waits up to 30 s, then answers 200 with the PDF or 202 with Retry-After (a self-refreshing page for a browser); the same address serves the PDF once ready, and a finished report is kept for an hour. SC-203 is the time to a ready PDF (25 pathways: today's, or 2 minutes; 50: 4 minutes). The website's button opens the address in a tab; the gateway passes 202 through. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ule, a Job - The gateway's report lane stops queueing report requests: with pdf-export holding a request up to 30 s, a lane of one would serialise every browser's polling. pdf-export's own limits protect it. - A finished report is kept in the service's memory only, never on disk, for an hour; the analysis service is asked about the token before a kept report is sent (404/410 drop it); all are dropped when the release changes. US4, SC-205, the plan's storage and R7 say so. - One error rule: a report ended by an error answers it to every waiting request and the next, then is forgotten. A joining request is never counted against the queue (eight by default); the 5-minute budget runs from starting. - A request abandoned ends only its own wait. Reports' render requests share a cap; SC-203 is measured with one report and no other render traffic. - data-model gains a Job; 202/503 carry no-store and a browser page; the curl difference, the quickstart's background runs and the leftovers fixed. Token timings updated to T007's checked run (#99). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
Replaced by the follow-up PR with this review's findings fixed. |
This was referenced Nov 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Spec 002, research R4's open decision, settled. The user left the choice to us. Replaces #98, with its review's findings fixed.
Why: a report cannot be drawn within the edge's 100 s.
Decision: the report is made in the background, behind today's address.
Retry-After: 10. A browser gets a small page that asks again by itself; a script followingRetry-Aftergets the PDF.Retry-Afterthrough.Alternatives considered (R4): a shorter gateway wait, more concurrency or fewer pathways (none gets under 40 s); streaming the PDF early (breaks FR-203); a new address for the result (breaks people's scripts).
From #98's review:
🤖 Generated with Claude Code