Repository navigation
Releases: subev/libratory
Releases · subev/libratory
Release list
v26.1007.4
- docs: the person stamps a review, not the agent that did it
- ci: find the release build by commit, not by the tag's name
- fix(voices): find mkdir and rm when the desktop app installs BgTTS
- ci: gate releases on a recorded local review, and tag without committing
- ci: release every merge to main that passes the tests
v26.1007.3
- fix(synthesize): refuse to start with a voice whose engine is missing
- feat(voices): download and set up BgTTS from the voice picker
v26.1007.2
- feat(chapters): pin the checkbox and number with the title
- fix(chapters): keep the open chapter in the URL so a reload reopens it
- feat(library): scroll the book table sideways instead of hiding columns
v26.1007.1
- feat(chapters): when each chapter was made, bilingual state, and filters for both
- feat(voices): filter the picker by word timing and speed control
v26.1007.0
- fix(security): clear the advisories the release's checks found
- fix(say): keep a stored macOS voice working after macOS renames it
- feat(desktop): Piper in the Mac app and the Docker image; honest rows for what is not
- docs(tasks): pause the Linux desktop work for the release
- feat(chapters): a Voice column — which voice and engine made each chapter's audio
- docs(tasks): Omarchy as the Linux test bed, the AppImage's FUSE 2 need, and where Flatpak fits
- build(desktop): build the Linux AppImage from a Mac, and name its window
- feat(desktop): Linux build path and first run, with Windows noted
- fix: what the branch review found — two bugs, three hardenings, dead code
- docs: the voice picker GIF and README say Kokoro times words in every language
- feat(kokoro): word timings for every Kokoro language written with spaces
- feat(piper): word timings from Piper's own phoneme durations
- docs: re-record the voice picker for the engines that remain
- refactor(tts): retire BG-TTS V5 and KugelAudio, and with them MLX
- fix(tts): pause after a title — a blank line ends a chunk
- feat(voices): a speed control that keeps up, and a cost meter that reads at a glance
- fix(voices): show a truncated voice row in full on hover
- feat(voices): price a metered synthesis before it starts
- feat(voices): add Piper and BgTTS-38M for Bulgarian, list ElevenLabs everywhere it reads
v26.1003.0
- docs: describe bilingual reading and the assistant panel
- fix(assistant): keep the panel header's buttons on screen with a long title
- fix(security): clear the advisories published since the last audit
- feat(mcp): answer what a bilingual export run needs without workarounds
- fix(bilingual): keep linking after a batch the model answered wrongly
- fix(cartesia): name an empty account instead of passing its JSON through
- feat(voices): say which voices time their words
- feat(bilingual): carry the pages in a printed book's bilingual export
- feat(bilingual): keep alternating through uncertain and untimed pairs
- feat(bilingual): make export an explicit choice and pairing reachable
- fix(bilingual): allow one-sided legacy audio conversion
- fix(bilingual): preserve queued work and convert legacy recordings
- docs(bilingual): hand off user trial and next review
- test(bilingual): verify full-selection text exports and transitions
- feat(bilingual): prepare selected chapters with visible progress
- feat(bilingual): carry prepared text in ordinary epub exports
- fix(reader): keep bilingual navigation and failures usable
- perf(reader): avoid rebuilding unchanged bilingual passages
- test(bilingual): exercise real chapter exports and record bottlenecks
- fix(bilingual): address reader review and preserve valid word links
- feat(bilingual): prepare chapter pairs and word links
- feat(reader): alternate paired sentences between narrations
- feat(reader): add bilingual reading and offline epub foundation
- feat(tts): narrate Cartesia voices with sonic-3.6
- fix(variants): drop a variant's narration when its text is replaced
- test(export): cover the variant read-along layer against the test database
- fix(export): give a variant's synced EPUB its read-along layer
- ci(image): pull Postgres before booting with --pull never
- ci(image): build and boot the image when its inputs change
v26.927.2
- docs(readme): one-command Docker install, and back up the database volume
- ci(docker): publish an install compose file beside the image
- docs(readme): the desktop app already requires Docker
v26.927.1
- fix(server): sweep staged files after migrations run
- fix(docker): copy patches/ before pnpm install
v26.920.0
- feat(chat): open citations in the reader, search in the book's language
v26.919.0
- docs(tasks): drop the fixed TOC task and stop listing tasks by hand
- fix(ocr): rename rejected-page diagnostics into place
- feat(reader): read along in books with no PDF, with a link to the source
- fix(tts): queue MLX narrator jobs on their own named queue
- fix(extraction): preserve paid work and refresh book retrieval
- docs(read-along): document the cue document's text and range
- fix(chapters): anchor TOC pages on the body, not repeated notes headings
- feat(files): reorder PDFs without changing extraction identity
- feat(files): offer searchable PDF downloads
- fix(chapters): preserve work when redetection fails or is unchanged
- fix(ocr): preserve progress across rejected ordered pages
- test(e2e): open model settings independently of Marker availability
- feat(ocr): preserve structure with resumable ordered extraction
- fix(ocr): preserve measured geometry for AI-read highlights
- test(ocr): a real scanned book as the placement fixture
- feat(ocr): read scanned pages with a cloud vision model and place its words locally
- docs: plan the LLM extraction engine
- feat(mcp): capabilities, downloads, voices and the tools the first agent run asked for
- fix(workers): keep a failed progress write from taking the server down
- feat(server): serve an MCP endpoint so agents can drive the library