Skip to content

feat: Name the app's version and project in its user agent - #37

Merged
scooper4711 merged 1 commit into
mainfrom
feat/identify-in-user-agent
Oct 20, 2026
Merged

scooper4711 merged 1 commit into
mainfrom
feat/identify-in-user-agent

Conversation

@scooper4711

Copy link
Copy Markdown
Owner

Closes #36

Every request already carried Scrollkeeper/1.0 after Safari's user agent. It now carries the app's real version (CFBundleShortVersionString) and the project link:

… Safari/605.1.15 Scrollkeeper/1.4.2 (+https://github.com/scooper4711/scrollkeeper)

So Paizo can tell the app's traffic apart by release, measure its load, find the project, and block it at the server if it ever has to. The Safari prefix stays so paizo.com serves the app as it serves a browser.

  • URLSessionHTTPClient.userAgent(version:) builds it; the version comes from the bundle, or "0" without one (unit tests).
  • New unit test for the format.
  • Requirement 9.4 and a design note in docs/specs/library-manager/.

Checks: lint clean, 273 unit tests pass, ScrollkeeperKit coverage 97.2% lines / 94.3% regions. paizo.com's public sign-in page answers 200 with the same content for the new user agent as for the old.

Every request now ends its Safari user agent with Scrollkeeper/<version> (+https://github.com/scooper4711/scrollkeeper) instead of a fixed Scrollkeeper/1.0, so Paizo can tell releases apart, measure the app's load and block it if it ever has to.
@scooper4711
scooper4711 merged commit 8feb78f into main Oct 20, 2026
2 checks passed
@scooper4711
scooper4711 deleted the feat/identify-in-user-agent branch October 20, 2026 15:55
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.

Name the app's version and project in its user agent

1 participant