Library Access Is Your Own Seat, Never the Project's
Owner ruling 2026-10-04 — a person sees and searches only the Libraries they own, were added to, joined or bought. Access to a Project or Document never lends its Libraries to anyone. Replaces the 2026-10-03 rule that sharing a Project shares its assigned Libraries.
In plain terms: a Library is licensed to a person, like a subscription to a precedent service. Bringing another firm onto a matter lets them work on the matter's documents; it never lets them into your precedent banks. Each firm buys its own, and your private templates stay private.
Decision
Owner ruling, 2026-10-04.
- Only your own seat opens a Library. A person sees, searches and inserts from a Library only when they hold a seat on it themselves: they own it, were added to it by name, joined it from the Marketplace, or (when built) bought it.
- Folio access lends no Library. Being given access to a Workspace, Project or Document, at any seat, never lets a person see, search or insert from a Library they hold no seat on. That holds for Goldie acting for them too.
- A folio's Library list only narrows. A Project's or Workspace's chosen
Libraries (
librarySearchScopes, or Project assignment when built) pick among each person's own seats. A collaborator without a seat on a listed Library simply does not search it there. - Why: commercial (each firm buys its own Library; one purchase cannot be shared onward) and confidential (a firm's personal templates never reach another firm brought onto one matter).
Replaces the 2026-10-03 bullet "Sharing a Project shares only its
assigned Libraries … without a seat on the Library itself"
(/docs/decisions/share-dialog-by-page, rule 3). Assigning Libraries to a
Project now chooses what is searched there, for those who hold seats; it
grants nothing.
Status
- Written and tested: search candidates, the chips' list, Keep
selection, insert and Goldie's library search all read the caller's own
seats (
convex/library/searchScope.ts,convex/library/search.ts,convex/library/insertWrites.ts,convex/goldie/libraryEntries.ts; tests inconvex/library/searchScope.convex.test.ts). - Tested for a Project collaborator (2026-10-04,
convex/library/seatNotLent.convex.test.ts): Alice names her Library on a Project's and a Document's search lists and seats Bob on both, but not on the Library. It never reaches Bob's candidates, chips or Keep selection; Goldie's search for him never names it; and both insert doors (the search card and Goldie's) refuse it. Each guard was broken on purpose and the test failed. - Content reads checked (2026-10-04): the canvas, listings, document,
version and export reads, and Goldie's reads all need a seat on the Library
(
convex/folio/containerAccess.ts,callerMayUseRootinconvex/folio/folioUsers.ts). A Project or Document cannot reach into a Library through what it contains: a schedule never points into another folio's children, and insert makes a copy. - Fixed (2026-10-04), with tests in the same file:
- A master inside a Library can no longer be shared on its own ("Share the
Library instead."), and a share left on one is not listed on the sharee's
Workspace (
convex/folio/folioMembers.ts,convex/folio/home.ts). - A copy's About card and YAML export name its Library source
(
derived_from) only to someone seated on that Library (convex/folio/aboutCodec.ts).
- A master inside a Library can no longer be shared on its own ("Share the
Library instead."), and a share left on one is not listed on the sharee's
Workspace (
- Open questions: an Open (public) Library can be browsed by anyone
signed in, without a seat (
libraryDecidesViewinginconvex/library/libraryAccess.ts). A reader seat can browse a Library but not open a master in the canvas. - Not built: Project assignment's backend, paid Libraries and licences. Each must keep rule 1 when built.
Interview Writes Stay Object-Encoded
Why the array-shaped writes encoding is not adopted, why the key-discriminated union that would fix its value corruption is strict-legal after all, and why it is rejected on cost rather than on impossibility
A Library Holds Documents, Not Projects
Owner rulings 2026-10-01 — a Library sits at Project level beside Projects and holds Documents only; a Project, Module or Block can never be saved to it; clauses are reused by searching inside Library Documents and inserting a copy. Reverses the 2026-09-26 ruling that a master may be anything but a Workspace.