Skip to content

fix: name sign-in walls and keep account-bound downloads in the browser - #4

Merged
tahadx merged 3 commits into
mainfrom
fix/signin-wall
Nov 2, 2026
Merged

tahadx merged 3 commits into
mainfrom
fix/signin-wall

Conversation

@tahadx

@tahadx tahadx commented Nov 2, 2026

Copy link
Copy Markdown
Owner

What

  • Treat a filename= query parameter as a file URL, so an HTML sign-in answer to /download?filename=report.docx is explained instead of recorded as 400 Bad Request.
  • Name a redirect that ends at accounts.google.com as a sign-in wall. catch why now points at the browser session instead of suggesting a resume that can never authenticate.
  • Derive the row name from filename= when the path has no extension, so the row and saved file keep their .docx/.zip name.
  • Leave Gemini, Docs, Drive, and Gmail downloads to the browser in both extensions. Catch has no cookies, so taking these over cancels the only request that can succeed.

Tests

  • cargo test -p catch — 63 unit + 42 reliability tests
  • cargo clippy -p catch --all-targets -- -D warnings
  • node --check both extension scripts; cmp confirms they are identical
  • bin/check-release, bin/lint-qml, tests/install.test.sh
  • Manual check with a real account-bound Gemini link: the row now reports sign-in required — this link needs the browser's account session... and keeps its .docx filename.

Try it

git fetch origin fix/signin-wall
git checkout fix/signin-wall
bin/refresh-dist

Then retry an account-bound Google link (or catch why <id> on the existing failed row). It should no longer say 400 Bad Request; it should say sign-in required and tell you to download it with the browser. New Gemini/Docs/Drive/Gmail downloads will stay in the browser instead of being intercepted.

A download endpoint that names the file in ?filename= now counts as a file link, so an HTML sign-in answer is explained instead of recorded as a generic 400. A redirect that ends at accounts.google.com is named as a sign-in wall, the query filename becomes the row name, and catch why points at the browser session rather than suggesting a resume that can never authenticate.
Catch has no browser cookies, so taking over a Gemini, Docs, Drive, or Gmail download cancels the one request that can succeed and leaves a sign-in redirect. Let the browser keep these hosts.
@tahadx
tahadx merged commit aef8740 into main Nov 2, 2026
1 check 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