docs(libraries): Work Order 3 batch 2 — 10 missing endpoints + array-response gate support

New frontmatter'd docs with handler-compatible shapes:
- get_library_types.md (public; []LibraryTypes)
- list_libraries.md (admin; {data: ListLibrariesRow})
- get_library_folders.md (admin; []LibraryFolders)
- list/get stats/resolve/delete processing issues (admin; family-lens 403s
  documented)
- scan_library.md (202 + 409 coalescing with active_job_id)
- get/update scan-settings (ScanSettingsResponse)

Gate improvements forced by this batch:
- Array responses: registered slice -> doc example must be a JSON array; key
  set compared against the element type
- RawMessage pins may now be arrays
- update scan-settings uses a RawMessage pin: handler always sets Message but
  the struct's omitempty would reject correct docs via zero-value marshal

Registry: sqlc models pinned directly (LibraryTypes, LibraryFolders,
ListLibrariesRow — json tags verified in the generated code).
This commit is contained in:
John O'Keefe committed 2026-10-24 14:57:45 -04:00
1 parent c4b62af213
commit 85cdaf7196
12 files changed
+423 -11

No files matched your search

@@ -0,0 +1,29 @@
---
method: GET
path: /api/libraries/:id/issues/stats
auth: jwt+admin
area: libraries
---
<!-- source: internal/handlers/processing_issues.go:128 ProcessingIssuesHandler.GetProcessingIssueStats -->
# Get Processing Issue Stats
Severity counts for a library's processing issues.
## Example response
```json example-response
{
"error_count": 2,
"warning_count": 5,
"info_count": 1
}
```
## Errors
| Status | Body | When |
| ------ | ---- | ---- |
| 403 | — | library not in requester's visible set (family lens) |
| 404 | — | no such library |
| 500 | `{"error": "Failed to fetch stats"}` | unexpected server error |