-
v2.0.7 Stable
released this
2026-09-05 23:18:21 +02:00 | 1 commits to master since this releasedocker pull code.private-home-network.de/devnullv0id/send2ereader:2.0.7What changed
- The build step says what it builds on both forges
Full changelog: https://code.private-home-network.de/devnullv0id/send2ereader/compare/v2.0.6...v2.0.7
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v2.0.6 Stable
released this
2026-09-05 22:57:03 +02:00 | 2 commits to master since this releasedocker pull code.private-home-network.de/devnullv0id/send2ereader:2.0.6What changed
- The extension image carries the version it shipped with
Full changelog: https://code.private-home-network.de/devnullv0id/send2ereader/compare/v2.0.5...v2.0.6
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v2.0.5 Stable
released this
2026-09-05 22:42:35 +02:00 | 3 commits to master since this releasedocker pull code.private-home-network.de/devnullv0id/send2ereader:2.0.5What changed
- The bare errors a browser renders answer in kind
- The success messages and the device names join the dictionary
- A failed conversion complains in the reader's language
Full changelog: https://code.private-home-network.de/devnullv0id/send2ereader/compare/v2.0.4...v2.0.5
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v2.0.4 Stable
released this
2026-09-05 22:35:39 +02:00 | 4 commits to master since this releasedocker pull code.private-home-network.de/devnullv0id/send2ereader:2.0.4What changed
- One name for the PDF cropper — the duplicate key the linter caught
- The mail tests pin what the log already showed
- The walk's findings: the credits line, the picker id and the extension names
- The image ships its languages folder and the docs say how to fill it
- Every mail arrives in the language its reader chose
- The server answers refusals, rules and settings in the request's language
- The last three scripts join the dictionary, ago and the password rules included
- Admin, the converters and the wizard learn to answer in kind
- Settings and the sign-in pages ask the dictionary before they speak
- Send and Convert route every sentence through the dictionary
- Settings offers the language, and the account keeps the answer
- The browser fetches its dictionary and the footer offers the choice
- An account remembers its language, and status says which one won
- The admin picks a default from whatever languages are installed
- Every page answers in the language the request carries
- A languages folder exists, and German is the first thing in it
- The wine wrapper gets its shebang back — the sweep read it as a comment
- The sign-in notices say it once too
- The cramped corners breathe and the hollow ones close in
- Panels share one padding and sections share one rhythm
- A spacing scale exists now, and every button and input draws from it
- Nine emails, one sentence each, and the deadline is the footnote
- The pinned lines shorten too, each with its reason on file
- Every note says its one thing and stops
- Rows delete on the left, download on the right, and every button is a finger wide
- Saving looks the same in every panel
- Got it is the one word a notice ends on
- Enter always confirms, Escape always cancels, and the confirm stands first
- Destruction is red and full-size, and only destruction
- One quiet way to say no: every cancel wears the same neutral outline
- The comments go; the few that survive say a contract in two sentences
- A local history row carries the same two buttons, and Download says why it is grey
- The .env example says what the tokens in the log are worth
- The compose example stops promising what the code never did
- The extensions README catches up with the supervisor, the queue and the agent
- API.md tells the whole truth: every route, every shape, every refusal
- README catches up with the server it describes
- The API's one bare Not signed in gets its ok:false like the others
- One size, one bytes, one ago, one badge, one send — the copies go home to auth.js
- Two dead functions go, and twenty-two exports stop pretending anyone imports them
- Three functions nobody has called in a long while
- Twenty-five styles nothing wears any more
- The suite keeps its books and progress files out of the real data dirs
- The ereader page's assets are stamped like everyone else's, and the hand-bumped version goes
- Reading state answers for a kept copy, the way metadata and download already did
- pino-pretty leaves, and the LOG_PRETTY note says what the switch really does
- The progress route gives the same no-agent answer as the list
- A third-party extension script runs at boot again instead of being queued at an agent that refuses it
- Output is a step of its own, filling the card instead of overflowing it
- The finish step watches the converters arrive instead of pointing away
- The header tells an admin what is installing, whatever page they are on
- Boot queues the installs instead of making the whole site wait on them
- An empty leftover is deleted quietly instead of re-queued as nothing
- What a dead container left mid-install goes back on the queue at start
- A restart the server asks for is the entrypoint's job now, not a policy's
- The formatter's spelling of three lines it was owed
- An empty library says 0 KB, not 1
- The assistant stops denying localhost a passkey it can hold
- An install nothing would ever pick up is refused, and every page says why
- A failed send does not count as a book sent
- A refusal is the server's own words now, not a converter failure it never had
- A converter Windows cannot even start is reported as missing, not a crash
- Sending to a Kobo no longer demands a confirmation no mail could deliver
- A failed conversion says what the converter said
- A long title is not an unsupported file, and a phone can reach the rest of the rail
- The address is checked now, and the mail test can fail
- Two first-run findings, and the dead resend route
- Two buttons on a kept row, and Delete carries a border now
- Six small things a full walk of the pages turned up
- Restore a backup from the page, at the boot where nothing holds the data open
- Tell a signed-in reader the truth about History, and let a kept book go again
- Show what is installed, and switch it on and off the same way everywhere
- Put Admin in the settings rail, for the accounts that have it
- Make the reverse-proxy setting a switch, and make it mean something
- Hand over the environment line the page will not let you edit
- Refuse a Kobo that has never checked in
- Write converted books into History too
- Run the progress bar over the whole range it has
Full changelog: https://code.private-home-network.de/devnullv0id/send2ereader/compare/v2.0.3...v2.0.4
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v2.0.3 Stable
released this
2026-09-05 22:25:58 +02:00 | 5 commits to master since this releasedocker pull code.private-home-network.de/devnullv0id/send2ereader:2.0.3What changed
- Fetch the layout-fix release without asking an API
- Finish the copy pass on the pages it never opened
- Close the gap above the assistant's Continue button
- Let the address step fill itself in from the browser
- Keep compose in two files instead of four
- Put every setting in a compose file, and stop explaining them twice
- Draw the tick, and arm the button, wherever the codes modal appears
- Let Tab carry on down the form instead of into the eye
- Focus the first field of the first-run form, not the third
- Centre the message beside the control it belongs to
- Cut the same essays out of the pages the design owns
- Cut the configuration screens down to one line each
- Bump nanoid, and record pino as the dependency it is
- Drop the config imports nothing uses
- Stop the done panel saying "On your a device"
- Record the sign-in that creating an account performs
- Let a password manager tell which account it is changing
- Keep the setup assistant's Continue button on screen
- Say what deleting an account does to kept books
- Believe X-Forwarded-For only from the proxy that sent it
- Decide the https-only headers per response, not once at boot
- Treat an unset or empty forge as GitHub
- Let the image take the layout-fix engine from either forge
- Take the comments out of the workflows
- Move the workflows to the action versions that run on Node 24
- Stop a documentation change from cutting a release
- Rewrite the README from the code
- Rewrite the README from the code, and stop tracking the review notes
- Let the forge push its own tag, so a release costs one build
- Reach the smoke container from a runner that is itself a container
- Read the registry challenge with a request it answers
- Give the workflows a credential the forge will accept
Full changelog: https://code.private-home-network.de/devnullv0id/send2ereader/compare/v2.0.2...v2.0.3
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v2.0.2 Stable
released this
2026-09-05 22:17:15 +02:00 | 6 commits to master since this releasedocker pull ghcr.io/devnullv0id/send2ereader:2.0.2What changed
- Let the eReader page run its own script again
Full changelog: https://github.com/devnullv0id/send2ereader/compare/v2.0.1...v2.0.2
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v2.0.1 Stable
released this
2026-09-05 22:08:55 +02:00 | 7 commits to master since this releasedocker pull ghcr.io/devnullv0id/send2ereader:2.0.1What changed
- Recognise each extension as its own run ends, not when the queue empties
- Notice a finished extension on a server with no accounts, and a fast one
- Stop removing KFX from breaking calibre's PDF output
- Keep the gh-CLI release workflow alongside the portable one
- Test the container check instead of the machine it runs on
- Make the workflows run on either forge
- Notice an extension finishing when nobody is watching the page
- Make calibre an extension, and let the assistant ask for all three
- Let the browser install PDF cropping, and name a built-in by its id
- Put back the libraries PDF needs, and drop 77MB of calibre
- Make the install page work the way the rest of the app does
- Ask for KFX from the browser, and watch it install
- Make KFX actually convert, and take calibre from calibre
- Stop planning a step that cannot succeed, and let a test rig convert
- Make the log readable and quiet by default
- Ship both KFX plugins, and say what a conversion is doing
- Build the wine prefix as the user that will run it
- Make the Previewer install actually work, and say how far it has got
- Fetch the Previewer without being asked twice
- Publish the extension the README tells people to use
- Take the comments out
Full changelog: https://github.com/devnullv0id/send2ereader/compare/v2.0.0...v2.0.1
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v2.0.0 Stable
released this
2026-09-05 21:43:43 +02:00 | 8 commits to master since this releasedocker pull ghcr.io/devnullv0id/send2ereader:2.0.0Full Changelog: https://github.com/devnullv0id/send2ereader/compare/v1.1.0...v2.0.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
v1.1.0 Stable
released this
2026-09-05 20:35:58 +02:00 | 9 commits to master since this releasedocker pull ghcr.io/devnullv0id/send2ereader:1.1.0Full Changelog: https://github.com/devnullv0id/send2ereader/compare/v1.0.0...v1.1.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
v1.0.0 Stable
released this
2024-10-20 21:40:30 +02:00 | 10 commits to master since this releaseSource release: the tree exactly as forked from daniel-j/send2ereader.
No container image for this version. This tree has no compiler toolchain in the Dockerfile, so the
pdfCropMarginsinstall fails during the build. That is fixed in 1.1.0, which is the first version published to GHCR.Full Changelog: https://github.com/devnullv0id/send2ereader/commits/v1.0.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)