My Library is the reader-controlled layer of this project. It can record what you
are reading, and—only when useful—your notes, understanding, and next review.
You do not need to type a bibliography, write a summary, or configure reminders
before you can start.
Local-first, with storage choices: every device keeps a working copy in
this browser profile using
localStorage.
When this deployment is configured for Google authorization, Google Drive
sync is the recommended opt-in cross-device choice. This browser only
keeps a separate offline library, and Portable JSON remains an independent
backup and transfer option. Personal records are never included in the
repository, GitHub Actions, or generated website.
Reader-controlled, local-first recordsRecords stay in this browser unless you connect Google Drive or explicitly export JSON/calendar files. They are never written to this repository or GitHub Pages.
Checking browser storage…
Storage & sync
Choose where your reading library lives
Google Drive is the recommended cross-device option. Browser-only storage and manual JSON recovery remain available at all times.
Loading storage settings…
Recommended
Google Drive sync
Not connected
While this page is open and authorized, automatically save this library to a hidden, app-specific folder in your own Google Drive. The tracker cannot read unrelated Drive files. Google normally remembers the permission after your first approval.
Connect an account to create or restore its private reading library.
Restore your cloud library on this browserChoose Connect & restore, then select the same Google account on every browser or device.
The first connection asks for the app-specific Drive permission. Later visits use Continue with Google Drive and normally reuse that approval instead of asking you to grant it again. This page preloads Google's authorization library, but it requests no account, token, or Drive data until you click.Manage papers, notes, and reviews on this page. The synchronized app-data folder is intentionally hidden and does not appear as a normal folder in My Drive.
Offline alternative
This browser only
Available
Keep a separate local library in this browser profile. It will not follow you after clearing site data or changing browser or computer.
Recovery & transfer
Portable JSON
Checking backup…
Download a versioned copy of active papers, notes, and review history, or merge one into the active library.
JSON includes private notes in plain text. Keep it outside the repository in a private location you control.
Drive sync is local-first and opt-in. Cloud records are protected by your Google account but are not end-to-end encrypted by this site. Do not store patient identifiers, PHI, credentials, or controlled clinical data. On a later visit, one Continue with Google Drive click obtains a fresh short-lived token and normally reuses the permission you already granted. This static site never stores access or refresh tokens between sessions. Only a Drive-confirmed save is guaranteed to follow you to another device; the page warns while a newer submitted change is still local. Privacy and deletion details →
Fast paper intake
Build your reading list
Choose reviewed reading routes by topic, adjust individual papers, or add your own paper with only a title.
Reviewed reading routesLoading catalog…
Category choices form one deduplicated list. Adding makes a private, personal-library copy that you can edit or remove without changing the public guide.
Reviewed route registry: choose any combination of background and
computational-pathology categories. The picker forms one stable,
deduplicated union even when a paper belongs to several routes. Deselect
individual papers, add the whole selection once, or use the Add control
beside one paper. New copies enter your personal Inbox.
Your own paper: provide a title and, optionally, a URL, DOI, or arXiv ID.
Authors, year, topic, tags, status, reminders, ratings, and notes stay inside the
collapsed Optional reading details section until you need them.
The catalog is a reviewed snapshot bundled with the static site; using
the picker makes no metadata request. Adding a paper copies its current metadata
into your active reading library. Later public catalog edits never silently overwrite your
status, notes, ratings, or review history. Removing a starter paper affects only
your local copy, and you can add a fresh copy again. Existing tracker records and
version-1 JSON backups remain supported.
For background fields and computational pathology, the picker uses the same canonical
records as the AI background registry and
computational-pathology registry.
The background routes were checked through 2 September 2026; the computational-pathology
routes were checked through 2 September 2026. “Accepted” means that a venue decision
was verified while the proceedings record was still forthcoming; it is deliberately
distinct from both “preprint” and “peer reviewed.”
This is a transparent, conservative, versioned heuristic (heuristic-v1)—not a validated implementation of
FSRS
and not a measurement of learning.
Marking a paper Read does not schedule anything. The default choice is No
reminders — just mark as read, and notes or summaries may remain empty. To use
retrieval practice for a particular paper, choose Spaced review reminders.
The lower of the optional comprehension and confidence ratings then controls its
first interval:
Lower rating
First interval
1 — very unclear / guessing
1 day
2 — partial / uncertain
3 days
3 — working / moderate
7 days
4 — strong / confident
14 days
5 — explain, critique, and recall
30 days
For a scheduled paper, each completed review records the outcome and lets you
rate comprehension and confidence again.
Again returns the paper in 1 day. Hard, Good, and Easy expand the
previous interval by approximately 1.2×, 2×, and 3×, adjusted conservatively by
the lower current self-rating. The result is bounded between 1 and 365 days.
Every outcome, rating, note, interval, and new due date is retained in that paper’s
review history.
You can turn reminders off later without deleting earlier review history. The
paper then has no active due date, no Record review action, and no event in
future calendar exports. Turning reminders on again creates a fresh active due
date.
The schedule is deliberately interpretable. Treat its due dates as prompts for
active retrieval: explain the problem, method, evidence, limitations, and
connections before reopening the paper.
The page itself cannot run while it is closed. For papers where you opted into
spaced review, use Export review calendar
(.ics) to download an
iCalendar file with all active due
dates and 30-, 7-, and 1-day display alarms,
then import that file into your calendar. Your calendar application—not this
website—delivers those reminders.
Calendar support varies: some clients ignore alarms whose dates have passed,
replace imported events on a second import, or apply their own notification
defaults. The export includes a 30-, 7-, or 1-day alarm only when its trigger is
still in the future. Re-export after review dates change. Stable per-paper event
identifiers and logical record sequences help compatible calendar clients update
an imported event.
An export is a snapshot, not a two-way calendar connection. Omitting an archived
or deleted paper does not send a cancellation to events imported earlier. Remove
those events manually, or import tracker exports into a dedicated calendar that
you replace as a unit. The calendar file contains paper titles and links;
importing it into a cloud calendar copies that information to the calendar
provider.
Choose Connect & restore from Drive to grant this site the narrow
drive.appdata
permission. The tracker can read and write its own hidden app-data folder; it
cannot browse unrelated Drive documents. The OAuth access token stays in memory
and is never stored in browser storage, JSON exports, Git, or the generated site.
Drive’s opaque account identifier is hashed before it is used in local cache
keys; the selected account’s email/display label is retained locally so you can
verify which cache is active.
The durable hand-off point is the green Drive copy current · ready on another
device status. It means Google Drive confirmed this browser’s latest snapshot.
That snapshot contains every submitted paper record: reading status, tags,
optional private notes, optional comprehension and confidence ratings, review
events, intervals, due dates, and deletion markers.
Return in the same browser: the account-scoped cache opens immediately.
Choose Continue with Google Drive once so the page can obtain a
short-lived token, pull changes from other devices, and resume uploads.
Google normally reuses the permission recorded at the first connection, so
this continuation does not ask you to grant Drive access again.
Use a new browser or computer: choose Connect & restore from Drive and
select the same Google account. The page reads every valid device snapshot
before it writes anything. An empty new browser restores the Drive library
automatically; no JSON transfer is required.
Already have a separate browser-only library: the pairing preview offers
Restore Drive library; keep browser copy as the safe default. Merging that
browser copy—including private notes—into the selected Google account is a
separate, explicitly confirmed action.
After Google sign-out or token expiry: the data remains in Drive and in
the account-scoped browser cache. Choose Continue with Google Drive to
obtain a new short-lived token. Google can still require sign-in, account
selection, or consent after access was revoked, the requested scope changed,
an administrator imposed a policy, or a Testing-mode grant expired. The
static site never stores a refresh token.
Only submitted paper and review changes synchronize. Unsaved text in an open
form, current filters, scroll position, and an unsubmitted review are not cloud
records. After restoration, Continue reading selects a useful submitted
record—currently-reading first, then due, queued, or inbox work—rather than
pretending to restore an unsaved browser screen.
On connect or Save to Drive now / Check Drive now, the tracker downloads the
available device snapshots, validates them, and merges them with the local
working copy before updating this device’s snapshot. While connected, each
submitted change starts a near-immediate upload. The page shows Saved on this
device · waiting for Drive until the write succeeds, attempts a best-effort
flush when the tab becomes hidden, and asks for confirmation when a navigation
or close would abandon unfinished cloud work. The same warning also protects
changed text in an open paper or review form, although that unsubmitted text is
not uploaded. Browser lifecycle warnings are not reliable on every mobile
shutdown, so wait for the green Drive-current status before relying on another
device. If the network is unavailable, the local working copy remains usable and
can be synchronized later.
Each browser profile has a stable device identity and writes its own snapshot.
That avoids two devices repeatedly overwriting one shared file. During merge:
missing papers and compatible edits are combined;
notes, tags, and append-only review histories are preserved where possible;
logical per-record revisions—not wall-clock timestamps—choose the newer reading
state;
identity-bearing deletion tombstones carry intentional removals to other
devices, so an older snapshot does not simply recreate a deleted paper;
incompatible same-revision changes are reported in the current session. The
conservative merge keeps one scalar-field copy and preserves compatible
notes, tags, and review events; the status or pairing preview names up to the
first three affected papers so you can export JSON before editing them.
Two devices can rarely create different library IDs when they both perform a
first connection before seeing the other’s snapshot. The tracker does not
silently choose one or strand the remote-only copy. Reconnect opens an explicit
recovery preview that folds each lineage, preserves their records under one
deterministically selected lineage, and names merge conflicts. Only after
confirmation does it upload the consolidated current-device snapshot. It does
not delete older lineage files because another device could have changed one
concurrently; the next connection requests review again until those devices
reconnect and adopt the consolidated lineage.
Device snapshots are full working copies, not a change log. A browser profile
that is cleared or abandoned can leave an older snapshot in Drive, and a
logically deleted paper can remain in those older files even though tombstones
hide it from the merged library. The status line reports the snapshot count.
Use the erasure flow below when full removal is required.
When selecting another Google account, Use selected account without copying
is the primary action. Copying into the destination is separate, names the
account, requires a second confirmation, transfers only live paper records, and
never transfers deletion history from the source account. The selected
account’s own deletion history remains authoritative.
This is local-first synchronization, not a server database. Google Identity
Services supplies a short-lived browser token and this static site does not keep
a refresh token. Google requires a user-driven authorization action for a new
browser token, so this deployment does not promise silent login. Prior consent
is recorded by Google per reader and OAuth client ID, and Continue with Google
Drive requests the same scope with an empty prompt so the full consent screen
normally appears only on the first connection. The reader may still need to
select or sign into the intended account. Closing the authorization window or
declining access leaves the browser copy unchanged.
Sync, then disconnect first tries to confirm the newest snapshot before it
stops synchronization. If Drive cannot confirm the write, disconnecting requires
a separate warning that states the newest changes will remain only in this
browser. Disconnect retains both the account-scoped cache and Drive snapshots;
it is not a data-deletion or forget-this-browser action.
Disconnect and Clear library are not complete erasure. Disconnecting stops
automatic sync but retains both the account-scoped browser cache and existing
Drive snapshots. Clear library in Google mode performs a logical deletion:
its tombstones retain paper identity metadata, while older device snapshots can
still contain the full records.
For an intentional full removal, first close or disconnect this site on every
other device, then choose Erase Drive + this account cache for the intended
account cache. After an explicit confirmation, the tracker disables sync
and stores a persistent upload guard before starting any new erasure
authorization or request, then waits for earlier sync work to finish. If a
token is needed, it obtains the same narrow drive.appdata authorization for a
separate in-app deletion-only path. That application path verifies the saved
account but never pulls, merges, or uploads a library. It waits behind this
browser profile’s sync lock, deletes every My Library device snapshot it can
list, erases this browser’s
account-scoped records and sync metadata, and leaves the separate browser-only
library active. Other browser profiles must be cleared separately and must not
reconnect unless restoration is intended. If the app cannot complete every
deletion, it keeps the local recovery copy, leaves sync stopped, and lets you
choose Erase again without a normal reconnect. A persistent erasure guard blocks
automatic uploads after reload; choosing normal Connect requires a separate
warning confirmation that explicitly cancels that guard without pulling or
uploading. A fresh Connect action is then required to restore synchronization.
If a browser lacks the Web Locks API needed to serialize tabs safely, invoking
the in-app erasure action fails closed before deletion; use the provider-side
fallback below instead.
Google Drive Settings → Manage apps → Options → Delete hidden app data is a
provider-side fallback. Stop sync first, delete the hidden app data, then clear
this site’s browser data (which removes all local libraries for this origin);
otherwise a retained cache can upload a new snapshot after reconnection.
Revoking OAuth access prevents future API
access but does not by itself promise deletion of stored app data.
If the Google card says the deployment is not configured, the site maintainer
must complete the Google Drive sync setup.
Browser-only and JSON modes continue to work.
Browser-only mode intentionally keeps a separate library in this browser
profile. Clearing site data, using private-browsing mode, changing browsers or
profiles, or resetting the device can remove it. Other people or extensions
with access to the profile may be able to read it. Any script executing on the
same origin can access that origin’s localStorage; a URL path is not an
isolation boundary. On GitHub Pages this means scripts from other project paths
under https://chengjiahao1234.github.io share the origin and can operate inside
the OAuth origin’s trust boundary. A dedicated custom-domain origin is
recommended before enabling Google authorization broadly.
Protect browser copy optionally requests
StorageManager.persist()
when supported. A grant can reduce automatic eviction, but cannot survive
manual site-data clearing, another profile, disk loss, or a new computer.
Portable JSON remains the provider-independent recovery path whether Drive sync
is enabled or not:
Choose Export JSON after important changes and before clearing browser
data. The versioned file retains paper identifiers, reading states, private
notes, schedule fields, and review history. Cloud deletion tombstones remain
in the account-scoped browser/Drive sync state rather than the portable file.
Move the file out of Downloads into a private location that you control.
Keep several dated generations until a newer restore has been checked. Do
not put the file in this repository.
On another browser or device, choose Import JSON. Import parses and
validates the whole file, checks its version and accidental-corruption marker,
and shows a preview before changing local records. If a Google-linked library
is active, the preview names that destination and warns that imported papers
and private notes will be queued for Drive upload.
Normally choose Merge. Choose Replace only for an intentional exact
restore after reviewing the destructive confirmation.
Check the result, synchronize if desired, and export a fresh recovery copy.
The tracker accepts earlier versioned exports and migrates them during import.
The integrity marker detects ordinary truncation or accidental editing; it is
deliberately non-cryptographic and does not prove who created a file. Import only
a backup you trust.
The backup indicator records when this browser last started an export and
whether the library has changed since then. It calls attention to unexported
changes and backups at least 30 days old; a reminder can be snoozed for seven
days. Starting a browser download does not prove that another storage provider
received the file, so verify it in the destination.
Do not commit exported backups, private notes, unpublished research ideas,
calendar files, tokens, patient identifiers, slides, case data, or protected
health information (PHI) to this repository. Repository privacy is not a backup
or a substitute for access controls appropriate to the data.
The local cache, Google Drive snapshots, portable JSON, and calendar files are
not end-to-end encrypted by this project. Google processes Drive data under the
connected account and its terms. The Pages site has no application database,
background sync worker, or email notification service, and it cannot sync while
the page is closed. The Pages URL may remain reachable even when its source
repository is private.