Parent
#1
What to build
The first end-to-end list feature: create a list with no account and land on it at a secret URL. Introduce the List document (one Mongo document per list with embedded members and items, plus token, name, ownerToken, createdAt, lastActivityAt). Creating a list generates a cryptographically unguessable token, sets a signed owner cookie holding the list's ownerToken (this is what marks the creator as owner on their device), and redirects to the capability URL /l/<token>. Viewing that URL renders the list shell (empty for now). An unknown or malformed token returns 404.
The list name can be set as part of creation (or defaulted and made editable later). Every mutation should bump lastActivityAt (used later by inactivity expiry).
Acceptance criteria
Blocked by
Parent
#1
What to build
The first end-to-end list feature: create a list with no account and land on it at a secret URL. Introduce the
Listdocument (one Mongo document per list with embeddedmembersanditems, plustoken,name,ownerToken,createdAt,lastActivityAt). Creating a list generates a cryptographically unguessabletoken, sets a signed owner cookie holding the list'sownerToken(this is what marks the creator as owner on their device), and redirects to the capability URL/l/<token>. Viewing that URL renders the list shell (empty for now). An unknown or malformed token returns 404.The list
namecan be set as part of creation (or defaulted and made editable later). Every mutation should bumplastActivityAt(used later by inactivity expiry).Acceptance criteria
Listschema exists with embeddedmembers/itemsand the fields above/l/<token>/l/<token>for an existing list renders the list shellBlocked by