curo1305
bfa4dc502a
feat(12.1-02): centralize listing freshness gate — apply_listing_and_finalize
- Add ListingResult dataclass to cloud_items.py
- Add apply_listing_and_finalize() — single shared gate for complete/incomplete semantics
- complete=True: upserts, soft-deletes unseen children, marks fresh, advances last_refreshed_at
- complete=False: upserts seen items only, never deletes unseen, preserves prior timestamp, warns
- browse.py: replace unconditional update_folder_state('fresh') with apply_listing_and_finalize
- cloud_tasks.py: replace unconditional fresh transition with apply_listing_and_finalize
- Celery task returns structured warning status on incomplete (no credentials/provider item names)
- Fix timezone naive/aware comparison in test (SQLite strips tzinfo)
2026-06-22 08:29:41 +02:00
..
2026-06-05 00:00:26 +02:00
2026-06-22 08:29:41 +02:00
2026-06-18 23:10:30 +02:00
2026-06-06 21:55:13 +02:00
2026-06-05 14:44:59 +02:00
2026-06-18 22:37:28 +02:00
2026-06-22 08:29:41 +02:00
2026-06-22 08:18:23 +02:00
2026-06-22 08:29:41 +02:00
2026-06-22 08:29:41 +02:00
2026-05-24 11:30:56 +02:00
2026-06-18 23:17:34 +02:00
2026-06-06 17:19:50 +02:00
2026-06-04 19:13:05 +02:00
2026-06-22 08:18:23 +02:00
2026-05-22 08:53:28 +02:00
2026-06-03 18:47:43 +02:00
2026-06-12 10:54:34 +02:00