Repository navigation
Conversation
The reader kept an asset's drawn URL for the life of an open book. When the library moved an adopted key to another copy (a book pruned its file, or the library switched location after its check), or a signed link expired, the element stayed broken until the book was reopened. - Book.renewUrl(id, failed): drops that id's cached answer (only if it is the one that failed; concurrent failures share one new resolution) and resolves again. Implemented for bookFrom (host resolver: a new signed link), streamed and library books (OpenedLibraryBook.forgetUrl drops the index shard and refetches it with cache: no-cache), withLibraries (Library.forget), and the author wrapper. A resolution that threw (not "not available") is retried too. - useAssetSrc / mediaRenewer: an element's error event renews once after a short backoff and swaps the src; a renewed URL that fails before it loaded is left (no loop); a load resets it, so an expiring link renews again later. Wired to page/background/openable/modal images, thumbnails, posters, video, audio (resuming position), <model-viewer>, and host renderers (onError). - assetBytes (labs, PDFs) renews once on a failed fetch. - createResolver: forget(id), and locate drops a shard whose path failed. - tools/reader-media-recover-e2e.ts: a disk library, media adopted at two paths, the drawn copy deleted while the book is open. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…er stays paused; onLoad for host players; no-cache shard in createResolver; forgetUrl optional Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nder its renewed URL; Resolver.forget optional in the type Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ys paused under its renewed URL Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…edia paused Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
feat(reader): recover media whose URL fails while a book is open
…e records of a registry Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…uestion links as editable records (registry-api §11) Two tables (migration step 5) and the endpoints of §11: reading the lines of pages with their link counts, a line's or a question's links, review lists, and the writes an editor and a matcher make (tag, change, move, take off, a question's highlight, the matcher's place, the indexer's sync, an import with ids). A link taken off stays as a rejected row so a matcher never puts it back; a question with a person's decision is never placed by a matcher. Writes to one question are serialised. Db gains begin() for transactions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… link, lock lines while placing, one lock per id whatever its case, sync writes new words Codex review round 1 (PR #44). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…from the body and from the URL Codex review round 2 (PR #44). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ed as own keys; bulk remove and move lock their questions and touch only those Codex review round 3 (PR #44). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…moving a line onto itself still checks the line Codex review round 4 (PR #44). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…pter Codex review round 5 (PR #44). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
feat(library-server): book highlights as editable records (registry API §11)
This was referenced Nov 1, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Deploys
maintoprod. The Coolify appchalk-library(library.pathshalax.com) redeploys fromprod.What goes live:
book_linesandbook_links, migration step 5). Nothing existing changes.npm:
release.jsonis still0.1.4, which is already on npm, so the release job publishes nothing and thev0.1.4tag already exists.After the deploy:
GET https://library.pathshalax.com/v1/books/physics-9-10-bn/chaptersanswers{"items":[]}instead of 404. Then ChalkBook'shighlights:movecopies the highlights in (runagent-dev/chalkbook-internal#33).🤖 Generated with Claude Code