docs(libraries): Beam WO5 batch 5 — 11 endpoints backfilled + pilot recovery

Beam backfilled 11 library docs (CRUD, folders, visibility, browse, stats,
media-items) and re-attached frontmatter to create_collection.md — which had
silently lost its pilot version in cc893f75: the negative-test
'git checkout --' restored the OLD file because the pilot was never staged,
and a frontmatter-less doc is invisible to the gate. Claude restored the full
corrected pilot content (priority higher-wins, time.String() note, 409).

Claude registry: 11 entries + one inverted catch — DELETE /:id/folders DOES
bind {folder_path} (handler reuses AddLibraryFolderRequest); registry first
draft said bodyless. GET /:id/visibility returns joined
GetUserVisibleLibrariesRow (type_name etc.), not bare Libraries.

Gate-driven merges fixed create/get library response shapes (sqlc row keys:
created_by_admin_id, library_type_id, updated_at; dropped invented type/
folders/is_visible). Fixed invented request fields (user_id in
set-visibility; library_type_id in update). make test 9/9.
This commit is contained in:
John O'Keefe committed 2026-10-24 16:18:48 -04:00
1 parent 6f13dc2b63
commit b77eab7ffd
13 files changed
+223 -121

No files matched your search

+41
View File
@@ -511,4 +511,45 @@ var Schemas = map[string]Schema{
Request: sync.SaveProgressRequest{},
Response: database.ReadingProgress{},
},
// --- Beam batch 5: libraries ---
"POST /api/libraries": {
Request: handlers.CreateLibraryRequest{},
Response: database.Libraries{},
},
"GET /api/libraries/:id": {
Response: database.Libraries{},
},
"PUT /api/libraries/:id": {
Request: handlers.UpdateLibraryRequest{},
Response: database.Libraries{},
},
"DELETE /api/libraries/:id": {},
"POST /api/libraries/:id/folders": {
Request: handlers.AddLibraryFolderRequest{},
Response: database.LibraryFolders{},
},
"DELETE /api/libraries/:id/folders": {
// Handler REUSES AddLibraryFolderRequest ({folder_path}) on delete.
Request: handlers.AddLibraryFolderRequest{},
},
"GET /api/libraries/visibility": {
Response: []database.GetUserVisibleLibrariesRow{},
},
"POST /api/libraries/visibility": {
Request: handlers.SetLibraryVisibilityRequest{},
Response: database.LibraryVisibility{},
},
"GET /api/libraries/browse": {
Response: json.RawMessage(`{
"current_path": "", "parent_path": "", "directories": [{}]
}`),
},
"GET /api/libraries/:id/stats": {
Response: services.LibraryStats{},
},
"GET /api/libraries/:id/media-items": {
// Delegates to ListMediaItems with library_id injected.
Response: json.RawMessage(`{"data": [{}]}`),
},
}