- Artwork: a saved login is only sent for URLs under the repository by whole
path segments. Paths with dot segments (plain or percent-encoded), encoded
slashes/backslashes, double encoding or ';' get nothing, since a server
could normalise them outside the repository. Checked again on every
redirect hop; Handler(scoped=True) does the same for urllib callers.
- Credentials file: every read-modify-write holds an inter-process lock
(source-credentials.lock, flock or msvcrt), so the CLI and the app can't
undo each other's saves or bring back a removed login.
- Store page: a login typed into the address moves into the login fields,
and out of the address field, before the add starts, and stays there if
it fails.
- Rate-limit backoff is keyed per login (anonymous or each token), so saving
a GitHub token after anonymous requests were limited is used at once.
Regression tests: outgoing artwork headers for traversal URLs and a
redirect to one, two processes churning the credentials file, anonymous
limit then token, and the page's login handling in node.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Include curated app images and summaries, owner avatars and social banners for topic discovery, and fixture coverage for artwork preservation.
Co-Authored-By: GPT-6 Astra <noreply@openai.com>
Survey publisher consent and access limits; add cached sources, recorded fixtures and local APK proof.
Co-Authored-By: GPT-6 Astra <noreply@openai.com>