--- schema_version: 1 open_count: 3 waived_count: 0 fixed_count: 0 total_count: 3 last_updated: 2026-07-30T12:25:22.605Z --- # Broken Windows Ledger > Cross-phase defect register. `/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 | 02 | deviation | neode-ui/src/stores/cloud.ts | | CloudFolder.vue's file listing cache lacks a TTL gate in cloudStore.navigate() — always re-issues the RPC on revisit (paints from cache instantly first, but still refetches unconditionally). Needs a TTL check added to navigate() to fully satisfy 'no new RPC within TTL'. | open | | 2026-07-30T12:25:22.301Z | | | 2 | 02 | deviation | neode-ui/src/views/Home.vue | | Wallet/send flow (SendBitcoinModal.vue via Home.vue) named by 02-FINDINGS.md as owned by 02-03 (worst-ranked revisit, 2607ms) but not in 02-03-PLAN.md's files_modified — reported as an unplanned-item gap, not converted. Cause is pure client-side remount cost (0 RPC), not a caching problem. | open | | 2026-07-30T12:25:22.450Z | | | 3 | 02 | deviation | neode-ui/src/views/PeerFiles.vue | | 02-03-PLAN.md assumed PeerFiles.vue already used useCachedResource; it actually uses the raw resources store directly (correctly per-item-keyed) with no TTL gate and the same loading/refreshing conflation bug fixed in OpenWrtGateway.vue this plan. Left untouched (out of files_modified scope) — candidate for the same fix in a future plan. | open | | 2026-07-30T12:25:22.605Z | | ````json [ { "id": 1, "kind": "deviation", "phase": "02", "file": "neode-ui/src/stores/cloud.ts", "line": null, "description": "CloudFolder.vue's file listing cache lacks a TTL gate in cloudStore.navigate() — always re-issues the RPC on revisit (paints from cache instantly first, but still refetches unconditionally). Needs a TTL check added to navigate() to fully satisfy 'no new RPC within TTL'.", "status": "open", "reason": "", "recorded_at": "2026-07-30T12:25:22.301Z", "resolved_at": null }, { "id": 2, "kind": "deviation", "phase": "02", "file": "neode-ui/src/views/Home.vue", "line": null, "description": "Wallet/send flow (SendBitcoinModal.vue via Home.vue) named by 02-FINDINGS.md as owned by 02-03 (worst-ranked revisit, 2607ms) but not in 02-03-PLAN.md's files_modified — reported as an unplanned-item gap, not converted. Cause is pure client-side remount cost (0 RPC), not a caching problem.", "status": "open", "reason": "", "recorded_at": "2026-07-30T12:25:22.450Z", "resolved_at": null }, { "id": 3, "kind": "deviation", "phase": "02", "file": "neode-ui/src/views/PeerFiles.vue", "line": null, "description": "02-03-PLAN.md assumed PeerFiles.vue already used useCachedResource; it actually uses the raw resources store directly (correctly per-item-keyed) with no TTL gate and the same loading/refreshing conflation bug fixed in OpenWrtGateway.vue this plan. Left untouched (out of files_modified scope) — candidate for the same fix in a future plan.", "status": "open", "reason": "", "recorded_at": "2026-07-30T12:25:22.605Z", "resolved_at": null } ] ````