Skip to content

Docs: player redesign 8b-1, household members - #130

Merged
KodeStar merged 11 commits into
mainfrom
docs/player-8b-1
Oct 14, 2026
Merged

KodeStar merged 11 commits into
mainfrom
docs/player-8b-1

Conversation

@KodeStar

@KodeStar KodeStar commented Oct 13, 2026 •

Copy link
Copy Markdown
Owner

Player redesign Phase 8b-1 (★): household members. Pairs with KodeStar/audiosilo-server#127, KodeStar/audiosilo-frontend#100 and KodeStar/audiosilo#54. Merge after the server and frontend PRs.

Pages

  • User Guide: new "Your household" (the Household page, adding a kid and a grown-up, what they can listen to, a member's card, their own devices, deleting vs removing from this device, a member signed out on this device, if a phone is lost); profiles, kids mode (a kid's own device, links in kids mode, a signed-out kid, 1x), account (a kid's account, also sign out on a lost phone), settings, you, connecting, in the car, in the house, remote access ("No sign-ups"); admin: People and invites (household members, Assign to someone, Make independent, deleting an owner, the kid rules), Server settings (Household topic), books.
  • Developer Docs: new frontend "Household page and members"; API reference (the eight member routes, also_members, keep_members, the user fields, admin fields and PATCH, the capability, every new code); api index codes; auth and security (the member rule, kids, moving between households, disabled members); configuration (household.*, env vars); data model (0044); backups and notifications (the member audit area); frontend kids mode, profiles, state and data (apiErrorKind), connect, you and settings, native integrations; the cross-repo contract seam 16; the documentation mapping; the critical-path lists in gates-and-ci and invariants.

Screenshots

New: the Household page (light), the device card (dark), a member card, the phone Household segment, the add dialog (kid, grown-up QR), the console's member person page. Retaken: profiles, profile menu, kids, phone kids, phone You, settings, phone settings, console People (household group) and console settings. Every household shot has capture-web.mjs/capture-admin.mjs steps (the Phase 8 gap is closed; the household pass spends 7-8 of the server's 10 self-service attempts, fine on run.sh's fresh server).

Gates and passes

npm run build (links and anchors). /simplify (4 reviewers: one home per fact, a plainer User Guide, capture-script efficiency) and /code-review max --fix (15 confirmed findings fixed: claims matched against the final server and player, stale shots retaken, pages outside the diff that household members made false).

…d the admin side

User Guide: a new Your household page (where it is, adding a kid and a
grown-up, what they can listen to, a member's card and their devices,
deleting versus removing from this device, the lost-phone tick); profiles,
kids mode (the quick way, a kid's own device, the collections shelf),
settings, You, browsing, account, in the house and in the car follow the
Household page; the admin guide gains household members (the two settings,
the per-person switch, Assign to someone, Make independent, deleting an
owner) and the console's Household settings topic and audit area; the
invite-only claims now name household members.

Developer Docs: the eight member routes, also_members and keep_members, the
new user and admin fields, the capability, the kid 403s and every new error
code in the reference and conventions; household.* in configuration; 0044 in
the data model; the member rule in auth and security; the audit area; the
Household page, addMemberHere, kids by default, the kids shelf and the car
in the frontend pages; seam 16 of the cross-repo contract (profiles and kids
mode are client-side, household members server-side); the docs mapping.
Reference: the member routes' guards in the order they answer, the uncapped
username numbering (no username_taken on add), 409 member_disabled on a
member's session and pairing code, every route's status table, the full kid
switch (invites, house sharing, collections shared outside the household);
display_name on a member's /me and session envelopes; the admin's
managed_by.display_name, members[] with created_at and devices,
owner_libraries and owner_is_admin, the create answering the admin object;
PATCH as one transaction with kid_no_password, member_is_demo and the moves
(leaveOwners); keep_members repeated or comma-separated; also_members audited;
the settings envelope's household facts. Error codes, auth and security (the
rule riding on the request, UpdateUser's guards, kids refused inside the
writes, disabled members, moves), configuration, the data model, the audit
log and the cross-repo contract follow.

User Guide: People's household groups, a kid's Password card, what Assign,
Make independent and keeping a member on delete sign out, the full kid switch,
Members per person's range check, the book page's access line, and a disabled
member on the Household page.
… shots

User Guide: the Household page's final wording (the member's own view names
their owner, the empty line, the count beside Add); the add dialog's pending
"<Name>'s books" made on save and "Share <Name>'s books"; the member card
(This device, Sign in on this device, rename here, the remove and delete
copy, refusals in the app's words); switching to everything stops sharing
and a kid gets one library; a member signed out on this device and Sign in
again; kids mode turns links away, asks a grown-up to sign a kid in again,
plays at 1x and is where a kid's account starts; a kid's Account page; the
sign-out warnings for members; pairing link refusals; the car's 50 stories.

Developer Docs: apiErrorKind and the codes, signInMemberHere and
renewMemberHere, the add flow's useMemberBooks, the member card, DevicePeople
in household/, kidsShelfMode and kidsOfflineScope, listenerSettings (1x and
bedtime), the provider's read-again on a new token, connect/_layout as the
only kids gate, the car's trimmed shelf, useRevokeMyDevice's one shape.

Screenshots: Ellen now adds Leo (kid) and Ruth (grown-up) through POST
/me/household/members and signs Leo in from his card; new household,
household-device (was settings-household), household-member, the add
dialog for a kid and a grown-up, phone-household; maya's household for
admin/people and admin/person-member; profiles, profile-menu and the kids
shots retaken.
…airing card for a kid

A kid's Account page has no Pair another device card; copy that names a
member's owner uses their profile name here, else display_name, else the
username (managerName with { connection, people }, useManagerName,
kidsManager). phone-you-stats retaken with Household in the sections row.
Owner-naming, kid limits, the lost-phone tick and the sign-out rules each live on
one page and the others link to it; the error catalogue, history notes and the
admin validation detail go; the profiles page is now Sharing a device (profiles).
…and members

frontend/household.md takes the Household page, the members section, the add
dialog, member cards, addMemberHere and its neighbours, and naming the owner out
of profiles.md, which keeps DevicePeople. apiErrorKind is described once, under
the client's error mapping; kids mode links the car spec, the owner rule and the
sign-in-again flow instead of repeating them; plan and phase notes go.
…le once

The kid refusals, the clear-on-kid list and moving between households live in
auth-and-security; the reference and the error table link there. The long path
list form joins the pathFilterSQL row (the benchmark named, no numbers), the
member rule joins the security-critical lists, the contract's section keeps
what a client relies on, and the mapping row names every page.
…oads

addHousehold in lib.mjs makes a collection and members for both capture scripts,
reusing what a rerun finds; around() moves there too. capture-web makes Leo only
for a shot that shows him and adds Ruth with the add dialog (before the page
shot) instead of a separate grown-up, so a full run spends 7 of the 10
self-service slots. The Household page is reloaded only when the browser left it,
the sign-in toast is dismissed, the QR step waits for its countdown, stale
cleanup deletes owners only, and the README owns the household prose.
The password race answers 403 kid_account; pairing links that last for an
invite's uses; assign sign-outs spare the new owner's devices; make admin needs a
password on a member; stale settings, phone settings and console settings shots
retaken; the household shots wait for both members; maya's household runs last
and only for its shots; server and frontend pages that household members made
false (session sources, share targets, sharing grants access, member scopes);
admin and listening guide drift; no pronouns guessed from fixture names.
The admin's invite and rotate answer 409 kid_account for a kid's account
(reverting the lines that said the admin could still pair one), the codes
table lists it, and the kid's person page shot is retaken without Pair a
device.
@KodeStar
KodeStar merged commit 76e1adf into main Oct 14, 2026
1 check passed
@KodeStar
KodeStar deleted the docs/player-8b-1 branch October 14, 2026 08:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant