62 lines
3.4 KiB
Markdown
62 lines
3.4 KiB
Markdown
---
|
|
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 <id> "<reason>"` (reason required).
|
|
> Mark fixed with `gsd-tools windows fixed <id>`.
|
|
|
|
| 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
|
|
}
|
|
]
|
|
````
|