D4 Household request flow
- Area
- D — Content & household
- Audience
- household
- Kind
- feature
- Status
- accepted
- Maturity
- built
- Labels
- household
The feature in the specification · Read at
Requirements
Household members MUST authenticate with their Jellyfin account; no separate registration MAY be required.
Requesters MUST be informed at submission, decision, and availability.
A request that cannot be fulfilled MUST communicate that to the requester with a reason.
The request surface MUST offer only content types the active configuration can deliver.
- locked by
- 0.11.0 met
- recorded done
- lemonfibercrates/lemonfiber-core/src/seed/run/fulfilment.rs
- cited by
- lemonfiber@f30d45fa28
Content already in the library MUST be reported as such rather than accepted as a request.
- locked by
- 0.11.0 met
- recorded done
- lemonfibercrates/lemonfiber-core/src/seerr.rs
- cited by
- lemonfiber@f979a63f47
Unreleased content MUST be accepted and marked awaiting release, not failed.
- locked by
- 0.11.0 met
- recorded done
- lemonfibercrates/lemonfiber-core/src/seerr.rs
- cited by
- lemonfiber@f979a63f47
"Nothing available at the configured quality" MUST be communicated to the operator distinctly from a generic failure. A member is told it has not been found yet, in the core's household sentence (G4-R16).
Pending and failing requests MUST surface in lemonfiber's dashboard.
- locked by
- 0.11.0 met
- recorded done
- lemonfibercrates/lemonfiber-core/src/dashboard/run.rs
- cited by
- lemonfiber@455c5ac76e
Household members MUST NOT require any lemonfiber account or access.
- locked by
- 0.11.0 met
- recorded done
- lemonfibercrates/lemonfiber-core/src/admission.rscrates/lemonfiber-core/tests/integration/the_household_needs_no_account_here.rscrates/lemonfiber-core/src/asking/reasons.rscrates/lemonfiber-core/src/outbound.rscrates/lemonfiber-ports/src/service/addressing.rscrates/lemonfiber-core/src/seerr/addressing.rs
- cited by
- lemonfiber@9623e32d05
A request for something already requested MUST NOT create a second request, and the person asking MUST be told it is already on its way.
- locked by
- 0.11.0 met
- recorded done
- lemonfiberlemonfiber-media-stack:stack.toml
- cited by
- lemonfiber@f979a63f47
Partial series requests MUST be supported without re-acquiring existing content.
- locked by
- 0.11.0 met
- recorded done
- lemonfiberlemonfiber-media-stack:stack.toml
- cited by
- lemonfiber@a75faf60ed
A library scan MUST complete before a request is reported available.
- locked by
- 0.11.0 met
- recorded done
- lemonfiberlemonfiber-media-stack:stack.toml
- cited by
- lemonfiber@f979a63f47
Content a requester lacks permission for MUST NOT be offered.
- locked by
- 0.11.0 met
- recorded done
- lemonfiberlemonfiber-media-stack:stack.toml
- cited by
- lemonfiber@a75faf60ed
Repeated fulfilment failure MUST stop retrying silently and MUST notify both requester and operator.
- locked by
- 0.11.0 met
- recorded done
- lemonfiberlemonfiber-media-stack:stack.toml
- cited by
- lemonfiber@f979a63f47
A member's search, and every list of titles offered to a member to ask for, MUST be answered by the core under that member's limits, and MUST NOT offer a title the member may not watch or ask for (D8-R8, D8-R9). Each title MUST say whether it is here, already asked for, or may be asked for (D4-R5, D4-R10).
A member MUST be able to ask for a title through lemonfiber's web API on their own session. The core MUST check the member's allowance and limits before the request reaches the request service, and MUST answer with what became of it in the household's words (G4-R16).
- locked by
- 0.19.0 met
- recorded done
- lemonfibercrates/lemonfiber-core/src/wishing/ask.rscrates/lemonfiber-api/src/actions/named/wishing.rscrates/lemonfiber-api/src/entitled.rscrates/lemonfiber-core/src/wishing/ask/tests.rs
- cited by
- lemonfiber@874fda833alemonfiber-web@7187c6e791sdk-ts@63ac6ef057sdk-php@c276714bbdlemonfiber-companion@d813497880
A member's search MUST be answered one page at a time, in an order that holds from one page to the next, each page carrying where the next begins until there is none, so a client loads the next as the member reaches it; no title MUST appear on two pages of one search.
Which kinds of title a member's search covers MUST be the kinds the stack can deliver now (D4-R4), decided by the core and said in its answer; the member MUST NOT be offered a kind to choose.
A title a member's search finds with no certification MUST have its certification looked up by the core before it is offered, and where none is found it MUST be treated as unrated under that member's unrated policy (D8-R5), never as allowed.
A member's ask MUST be an action of the web API, rehearsed before it is sent so the member is told what it would leave of their allowance and whether it waits for approval, and sent with an Idempotency-Key so a retry after no answer asks once (ARCH-R165); request.intake MUST carry the search and the ask as operations of its own.
Every request a member or the operator reads MUST name the title it asks for, a request still awaiting approval included: where no library holds the title yet, the core MUST name it from the request service's own record of that title. A request neither can name MUST still be shown and decidable, and MUST NOT make the rest of the reading unreadable.