• v2.0.4 587eddc5c8

    v2.0.4 Stable

    devnullv0id released this 2026-09-05 22:35:39 +02:00 | 4 commits to master since this release

    docker pull code.private-home-network.de/devnullv0id/send2ereader:2.0.4
    

    What 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