Releases: prdb-net/prdb-fab
Release list
0.22.0
prdb shows a second kind of picture beside its own: sprite sheets its users made,
each cut from one specific file. Both directions of that arrive here. A Preview
now shows them under the Video's own gallery, as a strip you can scrub through
with a finger or the arrow keys; and because each one carries the hash of the
file it was made from, a downloaded file prdb's own lookup could not name is now
identified from one — at no request cost and through the same gate you
configured.
The other direction is new to this tool: it now makes sheets of its own and
sends them back. A file that has been filed and identified gets a grid of tiles
and the WebVTT that times them, generated in the background and submitted one a
minute. It is the only thing this tool sends that strangers see, so nothing is
generated or sent until a page has said exactly what leaves — and the library
you already hold is published only if you ask for it.
Added
- The pictures other people made. prdb publishes a second kind of picture
beside its own: ones its users submitted, each made from one specific file.
A Preview now shows them under the Video's own gallery, in their own section,
because they are a picture of a file rather than of the Video. - A scrubbing strip where somebody made one. Where a submitted preview is a
sprite sheet with times, the Preview draws it as what it is — one tile at a
time, with a slider that works with a finger, a mouse or the arrow keys, and
the second each tile belongs to. Nothing plays and nothing streams: it is a
picture and a list of times. - They are fetched as you scroll to them, like every other picture in the
sheet, and asked for from a small reserved share of the request budget — so
opening a Video and moving straight on costs nothing. - A picture a moderator removes stops being shown. These are moderated, and
removal and restoration both reach this tool within the hour. A withdrawn
preview disappears from a sheet that is already open, and a restored one
comes back. - Some files prdb cannot name are now identified anyway. A submitted
preview carries the hash of the file it was made from, so when prdb publishes
one under a Video it is saying, in a moderated way, that a file with that
hash is that Video. A downloaded file prdb's own lookup could not name is now
matched against those — and where exactly one Video is named, it is
identified and filed like any other, at a Strong confidence and through the
same gate you configured. It costs no request, so a file that has sat in the
review queue for a week is picked up the moment you open its Video's Preview. - Where the evidence disagrees with itself, or names something prdb did not
list, nothing is chosen and the file stays in the review queue with the
reason spelled out — and the pictures made from that exact file are shown
beside it. - A withdrawal after the fact never moves a filed file. If prdb stops
showing the preview a file's Video was named from, nothing is renamed,
deleted or reassigned: the file is flagged so you can look at it, and the
flag goes away by itself if the preview comes back. - A third Reporting switch: publishing previews back to prdb. prdb shows
pictures its users made from their own files, and this installation holds
files and can make them. The switch is on, it is independent of the other
two, and it is the only thing this tool sends that strangers see. - Nothing is published before you have read what it publishes. Setting up
gains a last step saying what leaves and where it goes; an installation that
was already running is told on Settings → Reporting, and until it has been,
nothing is generated and nothing is sent. Status says so while it waits.
Turning the switch off stops future publications — prdb has no retraction for
one it has accepted, and neither does this. - Only files filed from now on, and only ones prdb identified. What the library
already holds is left alone. - The sheets themselves are now made. Once a file has been filed and the
channel has been explained, a scrubbing sheet for it is generated in the
background — a grid of 320x180 tiles cut from the runtime already measured,
ten seconds a tile between two dozen and four hundred of them, with the
WebVTT that says which tile is when. One file at a time, never while
collecting or filing, and never inside a request. - The tool checks its own output the way it checks somebody else's: the sheet
has to be the grid that was asked for and the cues have to read back against
it, or the pair is discarded rather than kept. - Nothing is decoded twice over. A file whose bytes changed since it was filed,
one that has left the library, and one prdb already shows a sheet of are each
passed over with the reason recorded. - And they are now sent. One sheet per minute leaves for prdb, in the
background, from a share of the request budget of its own — so a publication
backlog never holds up identifying a file that has just arrived. What leaves
is the picture, its list of times, the hash of the file it was made from and
the Video it is filed under, and nothing else: not the file, not its name,
not the path it sits at. - prdb's answer decides what the tool says. Accepted means submitted and
never published — the picture is in moderation, and the tool only says it
is public once prdb shows it back. A refusal is the end of it: the picture is
discarded and nothing tries again, because a second identical upload does not
answer whatever a moderator objected to. - An upload nobody can account for is left alone. If a request leaves and
no answer comes back — a timeout, a dropped connection, a container that
stopped mid-upload — the tool cannot find out whether it arrived: prdb
publishes no way to ask about a picture still in moderation. So it says so on
Status, keeps the picture, and does not send it again. Sending it twice
would put a duplicate in a public gallery that nobody can take down, and the
cost of waiting is a line on a page. - Where prdb later shows a picture made from that same file, the doubt settles
itself and the upload is recorded as having arrived. Nothing waits on it. - Changing your prdb key drops whatever was waiting to be sent rather than
sending one account's queue under another's. What was already sent is kept,
so nothing is published twice. - A page that says where every picture stands. Settings → Reporting →
Published previews counts what is waiting to be made, what is queued, what
prdb accepted and — separately — what prdb is actually showing. Submitted and
published are different words on that page and they stay different: an
accepted submission is in moderation until a read endpoint hands the picture
back. - The library you already hold can now be published, by asking. The page
says how many files it would be and what publishing them sends, and nothing
starts until you say so — not upgrading, not turning the switch on, and not
restoring a backup. It then works through them one at a time in the
background, and a file you download while it runs still gets its own picture
submitted first. - The request can be paused and resumed, and cancelled. Cancelling gives up
what has not been sent, pictures included, and takes back nothing that has —
prdb has no retraction. Asking again later offers only the files the first
request did not reach, so nothing is ever published twice. - An upload nobody could account for is now yours to decide. Each one is
listed with what happened to it and two buttons: send it again, which
publishes it if it never arrived and duplicates it if it did, or leave it,
which discards the picture and never offers the file again. The tool still
does neither on its own.
Changed
- The backup file's format is now 4. A file written by an older build still
restores: it arrives with the new channel switched on and not yet explained,
which is the same position an installation that upgraded is in, and with no
record of anything published — which is the truth about it, because no build
that wrote an older file could send one. - The backup file now carries which previews have been submitted to prdb. It
has to: a submitted picture cannot be looked up while it is in moderation, so
a restore without that record would publish the whole library a second time.
The pictures themselves are not in the file — they are made again from the
files.
0.21.0
A picture on a browse grid is now something you can open. Click one and the
Video appears over the list you were in — the facts, the actors, the same
actions the card offers, and every picture prdb publishes for it rather than the
one tile you were looking at. The list stays where it was underneath, four
gestures close it, and the arrow keys walk to the next Video without closing
anything.
Added
- A Preview on every Catalogue grid. The artwork and the title of a card on
What's New, Search, Sites, Actors and Wanted open the Video in place: a panel
against the right-hand side on a wide window, the whole screen on a phone.
Click outside it, pressEsc, press the close control or press the browser's
back button to get back to exactly where you were — the list is never
reloaded, re-paged or scrolled away. It is an address, so a Video you have
open can be linked to and reloaded. - The rest of a Video's pictures. prdb usually publishes several images per
Video and the grids have only ever shown one. The Preview shows them all: the
familiar one large, the others as a strip underneath, with a click, the arrow
keys or a swipe to move between them. They are fetched as you scroll to them
rather than all at once, so opening a Video and moving straight on costs one
picture. - Actors, the Site and the runtime on the Preview, each a link onward, and
the card's own Download, Mark Wanted and View Releases exactly as they behave
on the card. ←and→step through the page while a Preview is open, moving the
list underneath with them. They stop at the ends of the page rather than
fetching the next one. With a picture selected the same keys move through the
pictures instead.- A Video with no picture asks prdb once. Around one Video in ten arrives in
the catalogue before its artwork does. Opening its Preview now asks for it,
at most once a week per Video, from a small reserved share of the request
budget — so it fills in while you look rather than whenever the background
sync gets to it. The panel never waits for it.
Changed
- The artwork cache may now hold more than one picture per Video. The extra
ones are fetched only when a Preview asks for them, count against the same
8 GiB ceiling as the rest of the browsing cache, and are the first thing
dropped when it is reached. Nothing about the picture your library and your
grids use has changed, and nothing extra is fetched in the background. - A held Video's extra pictures are droppable. Previously every image row of
a Video in your library sat outside the cache ceiling. Only the one picture
the library and filing use does now — otherwise a gallery you opened once
would have been kept forever.
0.20.0
[0.20.0] - 2026-09-13
The installation is now something you can carry. One file holds everything the
tool cannot fetch again, a fresh container can be started from that file instead
of from nothing, and what the library says it holds is checked against what is
actually on disk.
Settings became one surface rather than a dozen screens built one at a time: a
rail that says what each group currently holds, three Indexer controls that
unattended code has always read and nobody could set, and forms that no longer
show a default as though it were an answer. Browsing is quicker because the
artwork now arrives before you do, and Downloads reads as a list rather than as
a wall of cards.
Added
-
Backup: one portable file, from
Settings → Backup. It holds your
settings, every indexer with its address and key, the SABnzbd connection and
its path mapping, your prdb key, every automation rule including the disabled
ones, the review queue, and the local record of what was downloaded, what was
filed where, which releases are used up and what has already been reported to
prdb. It does not hold anything that can be fetched again — the indexer cache,
cached artwork, prdb's catalogue, or the video files.The file is readable, credentials included, and that is deliberate. The
screen says so before it writes one and asks you to acknowledge it. Whatever
you already back up with encrypts everything it carries under a key you
manage; a second passphrase underneath that would be one more thing to lose at
exactly the moment you need the file. Treat the file as you treat the data
volume and put it somewhere that encrypts it. -
Restore, as the second way to begin. A container that holds nothing yet
offers Restore a backup beside set a password — the login credential is
inside the file, so there is nobody to sign in as yet. It asks once where your
library and your downloads are mounted in this container, prefilled with
wherever they were on the machine that wrote the file, and re-roots every
recorded path. It refuses an installation that already holds an indexer, an
automation rule or a library entry, and names what it found. A file from a
newer version of the tool is refused by name rather than half-read.Afterwards, outstanding downloads are picked up at SABnzbd by their job id
where it still knows them; where it does not, the download counts as failed
and that release stays used up for the video, which is the same rule that has
always applied. -
Library verification, and a
Verificationfilter on the Library. A
background pass checks that each filed file is where the library says it is,
using the cheap hash rather than reading whole files. Until it has, entries
count as held, so automation will not decide to fetch them again. Nothing is
deleted and nothing is re-fetched over a file that is missing — a library
mounted somewhere else looks exactly the same from here — and no report to
prdb is retracted. What could not be confirmed is a count on Status, linking
into the Library filtered to it. -
An Indexer can be ranked, given a budget, disabled and deleted.
Enabled,
RankandDailyQueryBudgetare read by code that runs unattended, and none
of the three could be set from anywhere; an Indexer could not be removed at
all. Status said as much, routing "X's daily query budget is spent" to a
page on which that budget did not appear. They are an act of their own rather
than fields on the connection check: changing a rank does not spend a query,
and a broken Indexer can be disabled without the re-check failing and taking
the change with it. Rank stays a list position — two buttons per row, because
a reorder that needs a drag cannot be done from a keyboard — and a move
renumbers the list from zero. Deleting one says what goes and what stays: the
cache goes, the Downloads stay, and a rule left with no permitted Indexer
comes back disabled rather than silently inert. -
Automation's retry budget has a field. It is the third of Automation's
controls and had none anywhere; it takes 1 to 10.
Changed
-
Settings is one surface. Reaching a setting was the sidebar, then an index
page whose whole content was links, then the mask — and once inside there was
no way across to a sibling, while the routes for a single Indexer and a single
automation rule appeared in no navigation at all, although Status links
straight into them. Every settings page now has a rail beside it, in the order
the settings are grouped, each group saying what it currently holds rather
than what it is for, with the Indexers and the rules nested under their
groups. A group that Status is pointing a Gap or a Brake at is marked, so the
surface says where the loop is bleeding before anything is opened. Below
52rem the rail is that page and a mask replaces it. Leaving a mask now returns
to where the visit began rather than to the index, wherever it was entered
from.The masks say more than they did. Library names the root it has and opens
with it, and says what replacing it does — nothing moves and no record is
rewritten, because a filed path is computed once and recorded. Automation
reads as rules: one card each, saying in a sentence what it permits, with the
enable switch on the card. Identification says how its two gates relate,
and remarks on a pair that inverts the intent while still permitting it.
Reporting puts each count beside its own switch, where an unread count
used to show as a confident zero. Account reads as three parts, so the
button that ends a session no longer sits directly under the one that changes
the password. -
Browsing the catalogue no longer waits for the pictures. Clicking Search,
Sites or What's New took seconds before the grid appeared, and none of it was
the database: the queries behind those grids answer in tens of milliseconds
even at fifty thousand videos. What was slow was the artwork. Only images of
videos you hold were fetched in advance, so a grid of two dozen tiles meant
two dozen live fetches from prdb's CDN before it was complete, each one
written to disk and served on the way past.The catalogue's artwork is now fetched before you look at it, newest release
first, along with the front of the Actors list. The cache this fills may take
eight gigabytes rather than two — two held about a sixth of a catalogue
this size, which is why most of every grid was still a live fetch. Filling an
empty cache takes a few hours in the background and costs nothing from your
prdb budget; nothing waits on it, and a tile that is not there yet is fetched
the way it always was.Your browser may also now keep an artwork image for a year instead of a day.
The old horizon expired between one visit and the next, so every visit
re-fetched every tile through the tool. A video that simply has no picture is
remembered as such for a week; a CDN that did not answer in time is still
retried after five minutes, which it was not able to tell apart before.Two things underneath, for anyone watching disk activity: serving an image no
longer writes a row every time — two dozen writes per grid, against a database
with one writer, on disks where a write costs 40 ms — and the write-ahead log
is now emptied daily instead of growing to tens of megabytes. -
Downloads reads as a list. Fifty cards that had to be read one at a time
are one line each: the state as a symbol whose shape says as much as its
colour, the Site in front of the title — a catalogue title on its own does not
name a video, and they repeat across sites — the size, and when it was
submitted.Everything a card carried is still there, beside the list rather than inside
every row: the sentence about the state, the failure message, the release that
was submitted, SABnzbd's last word on it, the indexer, the origin with its
rule links, the job id and the stage log. A selected Download has its own
address,/downloads/<id>, so it can be linked and the back button does what
it looks like it does; where the window is too narrow for two columns that
address is a page of its own, with a way back that keeps the filters it was
reached with. Older/downloads?download=<id>links still arrive.The state filter is a strip that carries a count per state, so is anything
stuck? is answered by looking rather than by filtering, requesting and
reading a total. Choosing an indexer narrows those counts; choosing a state
does not, since they are what the choice is made from. Stop following moved
out of the rows into a bar that appears once something is selected and says
how many it covers. -
Settings → Backupis no longer a named placeholder. It was listed and
greyed out; it is now the page above.
Fixed
-
A settings form no longer shows a default as though it were your answer.
Four screens rendered one while the read behind them was still in flight and
then jumped when it landed, so somebody answering in that window answered a
question the tool had not asked. Every form now starts from the value it read.
With it, five more faults that ran through the whole surface: Save is offered
only once something has actually changed; a group heading is announced
together with the choices under it rather than as a stray sentence; a read
that fails says what failed instead ofError: Failed to fetch; the
Automation cap no longer puts its stored value back the moment the field is
cleared, which made it possible to prefix but never to replace; and deleting
an automation rule asks in the application's own confirmation dialog rather
than the browser's. A filesystem path quoted back by the SABnzbd step also
reads as a path again instead of as a numbered row. -
**Sorting Catalogue Search by title now ignores cas...
0.19.0
[0.19.0] - 2026-09-11
This release settles what order things come back in. The Library leads with what
arrived most recently and can be sorted by hand, the grids that quietly
disagreed with one another no longer do, and the database finally tells its
query planner what is in it. A connection form also stops saying a change was
saved when it was not.
Changed
-
The Library now shows what arrived first, and its order can be changed.
It was sorted by title with no way to change it. The new default is the most
recently filed Library Entry, and aSort bycontrol offers the filing date
and the title in either direction. The choice is in the address bar, so a
sorted Library can be linked to. -
The SABnzbd settings now say what is stored. The category is chosen from
a list SABnzbd only answers once the address and the key have been checked,
so until then the page showed two filled fields and nothing about the two
answers behind them. A line under the form now names the address, the
category, and both halves of the path mapping, and it moves when a save
lands — which is what tells a check that passed from a check that was stored.
Fixed
-
A green "saved" sentence no longer outlives the form it was about. Every
connection form kept its verdict on screen while the fields under it were
edited, so changing a SABnzbd category, an indexer's name or the Library root
left a sentence saying the previous submission had been stored — and the
Library root's button went on readingStoredover a path that was not. The
verdict is now dropped as soon as anything is typed or chosen, so the only
thing on screen saying a connection was saved is one that was. -
The database now tells its query planner what is in it. It had never been
analysed, so SQLite planned every join from its built-in guesses and the
Library grid was five times slower than it needed to be. Statistics are now
written at startup, and a monthly routine renews them — an installation that
records its statistics while it is nearly empty and then grows into hundreds
of thousands of rows was measured costing a Site-filtered grid seven times.
There is nothing to configure. -
The Library grid is now ordered case-insensitively. It sorted on the raw
title, so a lower case title sorted after every title starting with a capital
letter rather than among them. -
Quality labels are now listed best first everywhere they are shown. They were
sorted as text, which put1080pabove720p, buried2160pin the middle
and, in a Library Entry, listed the weakest file above the strongest. -
A Download list shown before a confirmation no longer reorders itself. Two
Downloads created in the same tick had nothing to separate them, so a Video's
Download history and the selection in a stop-following confirmation could
come back in a different order every time they were read. -
A Library Entry now says how many operations it is showing. It embeds the 50
most recent ones and has no pager, so an entry with a longer history lost the
rest of it without saying so. -
A Site page now lists its Videos newest first. It was the last Video grid
ordered alphabetically, which made the two identical grids on a Site page and
an Actor page disagree without either of them saying so.
0.18.0
[0.18.0] - 2026-09-04
This release makes every Actor a complete local profile and lets a person
prepare a bounded recent slice of that Actor's Videos on demand.
Added
- Actor pages now show the complete profile data published by prdb, including
aliases, biography, personal facts, career details and external links. Actor
search also finds aliases. - An Actor page can load up to the latest 500 credited Videos by Release Date.
The governed background fill shows progress, resumes after a restart and
keeps its current bounded result available in the local Catalogue.
0.17.0
[0.17.0] - 2026-09-04
This release turns the Review Queue into a focused comparison workspace so a
person can verify an uncertain match from the arriving file itself.
Added
- The Review Queue now presents one Arriving File at a time with an on-demand
five-frame contact sheet beside the proposed prdb Video artwork and facts.
File, directory and Release names are kept directly against the proposed
title so uncertain identifications can be verified quickly without exposing
the local file for playback.
Changed
- The Library card action is now labelled "Delete Video" so its destructive
effect is immediately clear.
0.16.0
[0.16.0] - 2026-09-04
This release makes a held Library Entry actionable from its card and gives a
person a verified, auditable way to remove it.
Added
- Library cards now offer the complete Release workspace as their primary
action and an overflow menu for opening the Video in prdb or permanently
deleting the complete Library Entry. Deletion names and confirms every Video
File, verifies it has not changed, and records one Operation Log entry per
removed file. A previously reported Fulfilment is then retracted through the
ordinary governed Reporting routine.
0.15.2
[0.15.2] - 2026-09-04
This patch release makes the Library feel like the held half of the same
Catalogue browsing experience as What's New.
Changed
- Library now uses the same responsive artwork grid, page rhythm and card
hierarchy as What's New while keeping its title, Site, Actor and Quality
filters together above the held collection.
0.15.1
[0.15.1] - 2026-09-04
This patch release makes Catalogue cards easier to scan and keeps an active
Download visible from the surfaces where it was started.
Changed
- Catalogue grids use larger artwork and wider cards across What's New, Search,
Wanted, Sites and Actors. They show one card per row on phones, preserve the
primary action label there, and use up to four columns on larger screens. - Catalogue pages contain 24 Videos instead of 48, keeping one-column mobile
browsing to a manageable length. - Cards with an active Download now show whether it is downloading or being
processed and link directly to that Download instead of offering another
Search.
0.15.0
[0.15.0] - 2026-09-04
This release turns the Catalogue's primary Download action into a one-click
choice while keeping exact Release selection available and explicit.
Added
- Catalogue-card Download buttons now submit directly to SABnzbd using a saved
preferred highest Quality with lower-Quality fallback. The new Downloads
setting controls that ceiling, while each card's overflow menu retains the
complete Release view for inspection and exact selection.
Changed
- New installations enable both prdb Reporting channels by default. Existing
installations keep their saved Fulfilment and Confirmed Assignment choices.
Before updating: copy /data. Migrations only go forward, so an older image
cannot use a data directory after 0.15.0 has started against it.