--- schema_version: 1 open_count: 4 waived_count: 0 fixed_count: 4 total_count: 8 last_updated: 2026-09-30T11:32:37.302Z --- # Broken Windows Ledger > Cross-phase defect register. With `workflow.windows_enforce` enabled, `/gsd-ship` blocks while `open_count > 0`. > Waive with `gsd-tools windows waive ""` (reason required). > Mark fixed with `gsd-tools windows fixed `. | id | phase | kind | file | line | description | status | reason | recorded_at | resolved_at | |----|-------|------|------|------|-------------|--------|--------|-------------|-------------| | 1 | 09 | deviation | plugins/golem15/fonoteka/routes_cors_test.go | | Admin test secret also set on bootConfigWithHTTP and testConfigCORS so router assembly keeps failing closed | fixed | | 2026-09-24T15:22:55.173Z | 2026-09-24T15:23:23.945Z | | 2 | 10 | stub | admin/src/app/i18n.ts | | t() returns backend::lang keys until the bundle is served (10-02) and loaded (10-03); SPA copy renders raw keys | fixed | | 2026-09-27T13:36:35.976Z | 2026-09-27T15:01:16.955Z | | 3 | 10 | stub | admin/src/views/ListView.vue | | read-only tracer list without search, sort, paging or row links; full list screens in 10-03 | fixed | | 2026-09-27T13:36:36.179Z | 2026-09-27T15:01:17.178Z | | 4 | 10 | stub | admin/src/components/form/registry.ts | | relation-manager is not registered; the Collections editors tab renders the unsupported-field box until the relation manager lands in 10-04 | fixed | | 2026-09-27T15:01:12.833Z | 2026-09-27T15:27:25.933Z | | 5 | 10 | deviation | scripts/check-phase10.sh | | check-phase10.sh --go allow-lists exactly the two pre-existing fonoteka parity failures (TestMigrateSeedsCanonicalGenres, TestSchemaMatchesPHPSnapshot; deferred-items.md) and refuses once they pass; fix belongs to a Phase 9 follow-up | open | | 2026-09-27T16:22:23.140Z | | | 6 | 10.1 | stub | plugins/golem15/fonoteka/controllers/albums_admin_controller.go | 71 | fonoteka.go: discogsLookup widget action is a D-02 stub answering fixed fill {year: 1977, format: LP}; Phase 14 replaces it with the Discogs client | open | | 2026-09-29T00:27:32.945Z | | | 7 | 10.1 | stub | plugins/golem15/fonoteka/controllers/albums_admin_controller.go | 82 | fonoteka.go: discogsSync toolbar action is a D-02 stub answering stub_not_implemented and changing nothing; Phase 14 replaces it with the Discogs sync | open | | 2026-09-29T00:27:33.153Z | | | 8 | 11 | skipped-test | parity/broadcast_goldens_test.go | | fonoteka.go: TestBroadcastGoldens/created and /updated t.Skip as pending; Phase 12 turns the recorded PHP created/updated goldens into assertions (album subtree, literal created_at/updated_at and artist id handling) | open | | 2026-09-30T11:32:37.302Z | | ````json [ { "id": 1, "kind": "deviation", "phase": "09", "file": "plugins/golem15/fonoteka/routes_cors_test.go", "line": null, "description": "Admin test secret also set on bootConfigWithHTTP and testConfigCORS so router assembly keeps failing closed", "status": "fixed", "reason": "", "recorded_at": "2026-09-24T15:22:55.173Z", "resolved_at": "2026-09-24T15:23:23.945Z", "milestone": "v1.0" }, { "id": 2, "kind": "stub", "phase": "10", "file": "admin/src/app/i18n.ts", "line": null, "description": "t() returns backend::lang keys until the bundle is served (10-02) and loaded (10-03); SPA copy renders raw keys", "status": "fixed", "reason": "", "recorded_at": "2026-09-27T13:36:35.976Z", "resolved_at": "2026-09-27T15:01:16.955Z", "milestone": "v1.0" }, { "id": 3, "kind": "stub", "phase": "10", "file": "admin/src/views/ListView.vue", "line": null, "description": "read-only tracer list without search, sort, paging or row links; full list screens in 10-03", "status": "fixed", "reason": "", "recorded_at": "2026-09-27T13:36:36.179Z", "resolved_at": "2026-09-27T15:01:17.178Z", "milestone": "v1.0" }, { "id": 4, "kind": "stub", "phase": "10", "file": "admin/src/components/form/registry.ts", "line": null, "description": "relation-manager is not registered; the Collections editors tab renders the unsupported-field box until the relation manager lands in 10-04", "status": "fixed", "reason": "", "recorded_at": "2026-09-27T15:01:12.833Z", "resolved_at": "2026-09-27T15:27:25.933Z", "milestone": "v1.0" }, { "id": 5, "kind": "deviation", "phase": "10", "file": "scripts/check-phase10.sh", "line": null, "description": "check-phase10.sh --go allow-lists exactly the two pre-existing fonoteka parity failures (TestMigrateSeedsCanonicalGenres, TestSchemaMatchesPHPSnapshot; deferred-items.md) and refuses once they pass; fix belongs to a Phase 9 follow-up", "status": "open", "reason": "", "recorded_at": "2026-09-27T16:22:23.140Z", "resolved_at": null, "milestone": "v1.0" }, { "id": 6, "kind": "stub", "phase": "10.1", "file": "plugins/golem15/fonoteka/controllers/albums_admin_controller.go", "line": 71, "description": "fonoteka.go: discogsLookup widget action is a D-02 stub answering fixed fill {year: 1977, format: LP}; Phase 14 replaces it with the Discogs client", "status": "open", "reason": "", "recorded_at": "2026-09-29T00:27:32.945Z", "resolved_at": null, "milestone": "v1.0" }, { "id": 7, "kind": "stub", "phase": "10.1", "file": "plugins/golem15/fonoteka/controllers/albums_admin_controller.go", "line": 82, "description": "fonoteka.go: discogsSync toolbar action is a D-02 stub answering stub_not_implemented and changing nothing; Phase 14 replaces it with the Discogs sync", "status": "open", "reason": "", "recorded_at": "2026-09-29T00:27:33.153Z", "resolved_at": null, "milestone": "v1.0" }, { "id": 8, "kind": "skipped-test", "phase": "11", "file": "parity/broadcast_goldens_test.go", "line": null, "description": "fonoteka.go: TestBroadcastGoldens/created and /updated t.Skip as pending; Phase 12 turns the recorded PHP created/updated goldens into assertions (album subtree, literal created_at/updated_at and artist id handling)", "status": "open", "reason": "", "recorded_at": "2026-09-30T11:32:37.302Z", "resolved_at": null, "milestone": "v1.0" } ] ````