Skip to content

Mobile: full-text chip (M19) with tutorial and disclaimer - #72

Merged
westernCasa merged 1 commit into
mobile/screen-readerfrom
mobile/full-text
Nov 8, 2026
Merged

westernCasa merged 1 commit into
mobile/screen-readerfrom
mobile/full-text

Conversation

@westernCasa

Copy link
Copy Markdown
Owner

M19 full-text chip. Stacked on #70, which is stacked on #69: merge #69, then #70, then this one. Only mobile/ changes.

Decision (Sven, 2026-11-08): option (a). Each person adds their own email and key in Settings, and the app shows a tutorial and a disclaimer.

What it does

  • When a page has a DOI or PMID, a Full text button appears above the bottom bar. The phone finds the DOI itself with the capture script, so nothing is sent at that point.
  • Tapping it looks the DOI up:
    • Unpaywall, with the person's email.
    • OpenAlex, with the person's free API key. This one is optional.
  • Copies from both are merged, one row per address. PDFs and published versions come first, and each row shows the version, licence and where the copy is.
  • Through your library (LibKey) and doi.org links are always there. PubMed shows when the page has a PMID.
  • Errors tell the person what to do: bad email, refused key, rate limited, unknown DOI, offline.

Tutorial and disclaimer

  • The feature is off by default. Settings → Full text for papers has the switch, the email field, the optional OpenAlex key field, a 4-step set-up tutorial, and a What NODE sends box.
  • Until full text is set up, tapping Full text shows the same tutorial and box, with a Set up in Settings button.
  • The box says:
    • Only the DOI plus the email or key is sent, and only when the person taps Full text.
    • The email and key stay in the keychain.
    • NODE lists what these services report as free to read and doesn't check copies itself, so check the licence before reusing.
    • LibKey uses your library's sign-in.
    • Unpaywall and OpenAlex are run by OurResearch, under their own terms.

Checks

  • npm test: 16 passed. The new full-text tests cover exactly what is sent, cache keys without the email or key, merge order, error messages, and that nothing is sent when the feature is off.
  • Both bundles build.
  • No lint errors.
  • Not yet tried on a phone.

Generated by Claude Code

Pages with a DOI or PMID (found on the phone with the capture script,
nothing sent) show a Full text button. Tapping it looks the DOI up with
Unpaywall (the person's email) and OpenAlex (the person's free API key),
merges copies (PDFs and published versions first; version, licence,
where), and always offers LibKey ("Through your library") and doi.org.

Sven's decision (option a): each person adds their own email and key in
Settings, kept in the keychain. Settings and the sheet show a set-up
tutorial and a "What NODE sends" disclaimer; off by default. Requests go
through core/net (cached, rate limited); cache keys leave out email/key.
Only mobile/ changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X9wDmS5VvrWmyHhcWA9MoL
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.

2 participants