Skip to content

My Library — reading tracker

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…
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.

Quick select:
Choose categories to include
Search the literature registry →

Select one or more categories to preview their papers.

Select a category above to build a reading list.

    Loading your local library…

    Calendar and destructive tools
    0overdue
    0due today
    0upcoming
    0total papers

    Overdue

    0

    Due today

    0

    Upcoming reviews

    0

    Not scheduled

    0

    Your library

    Add your own paper

    Only the title is required. Add details whenever they become useful.

    Optional reading details

    Everything here is optional. Marking a paper “Read” does not create a review schedule unless you choose spaced review reminders.

    Spaced review

    Record review

    How well did retrieval go?

    Validated backup preview

    Import portable library

    Nothing changes until you choose a mode and confirm.

    Reading backup…

      How should this backup be applied?

      Confirm the storage boundary

      Connect Google Drive

      Review the selected account and both library copies before anything is uploaded.

      Selected account

      Current library

      Account library

        Each Google account has a separate browser cache. Connecting or switching never deletes another account's cache or cloud snapshot.

        Connection complete

        Google Drive connected

        The Drive connection is verified and your reading library is ready to manage.

        Connected account

        Library status

        Create and organize your reading list on this webpage. Google Drive keeps the cross-device copy in a hidden app-data folder, so no normal folder will appear in My Drive. This browser also keeps an offline working copy.

        There are two fast entry paths:

        1. 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.
        2. 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.

        Continue across sessions, browsers, and devices

        Section titled “Continue across sessions, browsers, and devices”

        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:

        1. 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.
        2. 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.
        3. 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.
        4. Normally choose Merge. Choose Replace only for an intentional exact restore after reviewing the destructive confirmation.
        5. 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.