bruno: replace Python generator with Go golden-writer in the drift test

The generator moves into the Go toolchain per repo preference:
internal/docs/bruno_gen.go emits the OpenCollection mirrors (same output
contract — gate-verified example-request bodies, env-var params,
device-token headers, login/register/refresh token-capture scripts) and
TestBrunoMirrorsDocs grows a -update flag: verification by default,
regeneration on demand:

  go test ./internal/docs -run TestBrunoMirrorsDocs -update

Generator and checker are now the same code — they cannot drift apart.
scripts/gen_bruno_from_docs.py deleted; opencollection.yml README points
at the go-test command.

Also fixed vs the Python pass: mirror placement follows the docs tree
folder (RelPath), not the area frontmatter (several docs — highlights,
notes, ratings, users, progress — carry a different area); docs blocks
emit the collection's mapping form (content + type), not a bare scalar;
JSON body sanity is checked at generation time.

Idempotent: back-to-back -update runs are byte-identical.
make test green (9 pkgs).
This commit is contained in:
John O'Keefe committed 2026-10-24 18:47:56 -04:00
1 parent acd82fff0a
commit cfcd95b25e
195 files changed
+1479 -1073

No files matched your search

+6 -4
View File
@@ -19,9 +19,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Add Library Folder
docs:
content: |-
# Add Library Folder
`POST /api/libraries/:id/folders` — auth: jwt+admin.
`POST /api/libraries/:id/folders` — auth: jwt+admin.
Canonical reference: `docs/developer/api/libraries/add_library_folder.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/add_library_folder.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -13,9 +13,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Browse Library Folders
docs:
content: |-
# Browse Library Folders
`GET /api/libraries/browse` — auth: jwt+admin.
`GET /api/libraries/browse` — auth: jwt+admin.
Canonical reference: `docs/developer/api/libraries/browse-folders.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/browse-folders.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -21,9 +21,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Create Library
docs:
content: |-
# Create Library
`POST /api/libraries` — auth: jwt+admin.
`POST /api/libraries` — auth: jwt+admin.
Canonical reference: `docs/developer/api/libraries/create_library.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/create_library.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -13,9 +13,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Delete Library
docs:
content: |-
# Delete Library
`DELETE /api/libraries/:id` — auth: jwt+admin.
`DELETE /api/libraries/:id` — auth: jwt+admin.
Canonical reference: `docs/developer/api/libraries/delete_library.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/delete_library.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -19,9 +19,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Delete Library Folder
docs:
content: |-
# Delete Library Folder
`DELETE /api/libraries/:id/folders` — auth: jwt+admin.
`DELETE /api/libraries/:id/folders` — auth: jwt+admin.
Canonical reference: `docs/developer/api/libraries/delete_library_folder.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/delete_library_folder.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -13,9 +13,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Delete Processing Issue
docs:
content: |-
# Delete Processing Issue
`DELETE /api/libraries/:id/issues/:issueId` — auth: jwt+admin.
`DELETE /api/libraries/:id/issues/:issueId` — auth: jwt+admin.
Canonical reference: `docs/developer/api/libraries/delete_processing_issue.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/delete_processing_issue.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -13,9 +13,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Get Library Details:<|end|><|start|> assistant to=edit<|channel|>analysis <|constrain|>xml<|message|><rfl:parameter name="path">
docs:
content: |-
# Get Library Details:<|end|><|start|> assistant to=edit<|channel|>analysis <|constrain|>xml<|message|><rfl:parameter name="path">
`GET /api/libraries/:id` — auth: jwt+admin.
`GET /api/libraries/:id` — auth: jwt+admin.
Canonical reference: `docs/developer/api/libraries/get_library.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/get_library.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -13,9 +13,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Get Library Folders
docs:
content: |-
# Get Library Folders
`GET /api/libraries/:id/folders` — auth: jwt+admin.
`GET /api/libraries/:id/folders` — auth: jwt+admin.
Canonical reference: `docs/developer/api/libraries/get_library_folders.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/get_library_folders.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -13,9 +13,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Get Library Media Items
docs:
content: |-
# Get Library Media Items
`GET /api/libraries/:id/media-items` — auth: jwt+admin.
`GET /api/libraries/:id/media-items` — auth: jwt+admin.
Canonical reference: `docs/developer/api/libraries/get_library_media_items.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/get_library_media_items.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -13,9 +13,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Get Library Statistics
docs:
content: |-
# Get Library Statistics
`GET /api/libraries/:id/stats` — auth: jwt+admin.
`GET /api/libraries/:id/stats` — auth: jwt+admin.
Canonical reference: `docs/developer/api/libraries/get_library_stats.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/get_library_stats.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -13,9 +13,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Get Library Types
docs:
content: |-
# Get Library Types
`GET /api/libraries/types` — auth: none.
`GET /api/libraries/types` — auth: none.
Canonical reference: `docs/developer/api/libraries/get_library_types.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/get_library_types.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
@@ -13,9 +13,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Get Processing Issue Stats
docs:
content: |-
# Get Processing Issue Stats
`GET /api/libraries/:id/issues/stats` — auth: jwt+admin.
`GET /api/libraries/:id/issues/stats` — auth: jwt+admin.
Canonical reference: `docs/developer/api/libraries/get_processing_issue_stats.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/get_processing_issue_stats.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -13,9 +13,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Get Scan Settings
docs:
content: |-
# Get Scan Settings
`GET /api/libraries/scan-settings` — auth: jwt+admin.
`GET /api/libraries/scan-settings` — auth: jwt+admin.
Canonical reference: `docs/developer/api/libraries/get_scan_settings.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/get_scan_settings.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -13,9 +13,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Get Visible Libraries
docs:
content: |-
# Get Visible Libraries
`GET /api/libraries/visibility` — auth: jwt.
`GET /api/libraries/visibility` — auth: jwt.
Canonical reference: `docs/developer/api/libraries/get_visible_libraries.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/get_visible_libraries.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -13,9 +13,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# List Libraries (Admin)
docs:
content: |-
# List Libraries (Admin)
`GET /api/libraries` — auth: jwt+admin.
`GET /api/libraries` — auth: jwt+admin.
Canonical reference: `docs/developer/api/libraries/list_libraries.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/list_libraries.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -13,9 +13,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# List Processing Issues
docs:
content: |-
# List Processing Issues
`GET /api/libraries/:id/issues/list` — auth: jwt+admin.
`GET /api/libraries/:id/issues/list` — auth: jwt+admin.
Canonical reference: `docs/developer/api/libraries/list_processing_issues.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/list_processing_issues.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -13,9 +13,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Resolve Processing Issue
docs:
content: |-
# Resolve Processing Issue
`POST /api/libraries/:id/issues/:issueId/:mediaItemId/resolve` — auth: jwt+admin.
`POST /api/libraries/:id/issues/:issueId/:mediaItemId/resolve` — auth: jwt+admin.
Canonical reference: `docs/developer/api/libraries/resolve_processing_issue.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/resolve_processing_issue.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -13,9 +13,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Scan Library
docs:
content: |-
# Scan Library
`POST /api/libraries/:id/scan` — auth: jwt+admin.
`POST /api/libraries/:id/scan` — auth: jwt+admin.
Canonical reference: `docs/developer/api/libraries/scan_library.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/scan_library.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -20,9 +20,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Set Library Visibility
docs:
content: |-
# Set Library Visibility
`POST /api/libraries/visibility` — auth: jwt.
`POST /api/libraries/visibility` — auth: jwt.
Canonical reference: `docs/developer/api/libraries/set_library_visibility.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/set_library_visibility.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -20,9 +20,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Update Library
docs:
content: |-
# Update Library
`PUT /api/libraries/:id` — auth: jwt+admin.
`PUT /api/libraries/:id` — auth: jwt+admin.
Canonical reference: `docs/developer/api/libraries/update_library.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/update_library.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown
+6 -4
View File
@@ -20,9 +20,11 @@ settings:
followRedirects: true
maxRedirects: 5
docs: |-
# Update Scan Settings
docs:
content: |-
# Update Scan Settings
`PUT /api/libraries/scan-settings` — auth: jwt+admin.
`PUT /api/libraries/scan-settings` — auth: jwt+admin.
Canonical reference: `docs/developer/api/libraries/update_scan_settings.md` (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, not this file.
Canonical reference: docs/developer/api/libraries/update_scan_settings.md (docs site → Developer → API). This request is GENERATED from that doc; edit the doc, then run the drift test with -update.
type: text/markdown