fix(12.1): make cloud freshness authoritative — plan 02 documentation and version
- Version bump 0.2.3 → 0.2.4 (user-visible sync status corrected) - CLAUDE.md: update current state; add apply_listing_and_finalize to module map; add no-independent-fresh rule - README.md: bump version - RUNBOOK.md: update freshness state docs; explain complete=True gate and last_refreshed_at behavior - SECURITY.md: add T-12.1-06..10 threat closure evidence for Plan 02
This commit is contained in:
+2
-1
@@ -682,7 +682,8 @@ UPDATE cloud_connections SET status = 'ACTIVE' WHERE id = '<conn-uuid>';
|
||||
### Cloud browse background refresh
|
||||
|
||||
The browse endpoint (`GET /api/cloud/connections/{id}/items`) serves cached metadata and schedules a background refresh when stale:
|
||||
- **Freshness states:** `fresh` (just refreshed), `refreshing` (refresh in progress), `stale` (last refresh > threshold), `warning` (refresh failed)
|
||||
- **Freshness states:** `fresh` (complete authoritative listing), `refreshing` (refresh in progress), `warning` (incomplete listing or provider error)
|
||||
- **`fresh` requires `complete=True`** — a `CloudListing(complete=False)` result from any provider always produces `warning` state (`incomplete_listing` error code), never `fresh`. `last_refreshed_at` is only advanced on successful `complete=True` listings.
|
||||
- **Cached data is always served** — the UI shows a warning banner for stale/error states without blocking navigation
|
||||
- **No bytes are downloaded** during browse; `size_bytes` values come from provider-reported metadata only
|
||||
|
||||
|
||||
Reference in New Issue
Block a user