Will Miao
5f4054265d
fix(update): treat a timed paidAccess gate with no recorded end as active
...
CivitAI only returns a non-null paidAccess for an *active* gate: a lapsed gate
stays in the database as a tombstone and is filtered out server-side, so
{"permanent": false, "endsAt": null} — a timed gate whose window end has not
been recorded yet — is still enforced. Verified live: on model 1802980 that
version reports canDownload: false while its lapsed siblings report true.
Both the update service and the download gate dropped that shape, so such
versions read as free and "Hide Early Access Updates" missed them — the class
of bug reported in #1060 .
The interpretation now lives in py/utils/paid_access.py and is shared, so the
badge, the update filter and the download warning cannot disagree.
2026-10-04 08:53:12 +08:00
..
2026-09-28 21:25:48 +08:00
2026-09-02 14:33:44 +08:00
2026-09-14 21:24:57 +08:00
2026-09-25 18:44:06 +08:00
2026-09-01 21:14:30 +08:00
2026-08-08 20:12:59 +08:00
2026-08-08 20:12:59 +08:00
2026-09-14 20:39:10 +08:00
2026-09-25 23:29:30 +08:00
2026-09-29 07:20:12 +08:00
2026-10-03 14:31:10 +08:00
2026-08-08 20:12:59 +08:00
2026-03-18 21:10:56 +08:00
2026-09-28 21:11:38 +08:00
2026-08-08 20:12:59 +08:00
2026-08-08 20:12:59 +08:00
2026-10-01 08:55:47 +08:00
2026-08-08 20:12:59 +08:00
2026-08-27 07:58:48 +08:00
2026-08-08 20:12:59 +08:00
2026-09-06 22:23:48 +08:00
2026-08-28 22:24:07 +08:00
2026-09-15 09:07:56 +08:00
2026-08-27 07:58:48 +08:00
2026-04-20 15:54:30 +08:00
2025-10-13 21:30:23 +08:00
2026-09-19 09:04:24 +08:00
2026-08-08 15:20:43 +08:00
2026-10-02 10:34:59 +08:00
2026-10-02 21:16:06 +08:00
2026-10-02 21:16:06 +08:00
2026-09-13 11:30:57 +08:00
2026-08-25 08:19:54 +08:00
2026-10-02 10:34:59 +08:00
2026-08-25 17:38:09 +08:00
2026-03-26 18:00:04 +08:00
2026-10-02 21:16:06 +08:00
2026-02-03 21:32:15 +08:00
2026-08-08 20:12:59 +08:00
2026-08-08 20:12:59 +08:00
2026-09-12 15:56:47 +08:00
2026-04-12 20:29:01 +08:00
2026-08-08 20:12:59 +08:00
2026-08-08 20:12:59 +08:00
2026-08-08 20:12:59 +08:00
2026-09-14 10:27:33 +08:00
2026-09-19 05:49:01 +08:00
2026-05-26 06:02:17 +08:00
2025-11-29 08:13:55 +08:00
2026-10-03 21:13:07 +08:00
2026-09-16 08:23:13 +08:00
2025-10-18 21:19:09 +08:00
2026-08-19 17:51:31 +08:00
2026-09-26 12:07:03 +08:00
2026-09-01 21:14:30 +08:00
2026-09-19 09:04:24 +08:00
2026-09-06 22:23:48 +08:00
2026-10-03 09:46:46 +08:00
2026-08-08 20:12:59 +08:00
2026-08-08 20:12:59 +08:00
2026-02-02 08:30:59 +08:00
2026-10-01 08:55:47 +08:00
2026-09-25 23:29:30 +08:00
2025-10-11 22:42:24 +08:00
2026-08-03 15:02:49 +08:00
2026-10-03 21:13:07 +08:00
2026-10-04 08:53:12 +08:00
2026-09-17 07:47:07 +08:00
2026-08-08 20:12:59 +08:00
2026-10-03 21:13:07 +08:00
2026-10-03 21:13:07 +08:00
2026-09-13 07:59:28 +08:00
2026-08-27 19:32:17 +08:00
2026-08-08 20:12:59 +08:00
2026-09-18 00:05:47 +08:00
2026-09-25 23:29:30 +08:00
2026-08-08 20:12:59 +08:00
2026-08-27 10:08:32 +08:00
2026-09-18 00:09:34 +08:00
2026-08-31 10:01:18 +08:00
2026-01-22 10:25:03 +08:00
2026-08-30 16:28:41 +08:00
2026-08-24 17:23:20 +08:00
2026-08-27 19:32:17 +08:00
2026-08-25 17:38:17 +08:00
2026-10-03 14:31:10 +08:00
2026-09-29 09:03:26 +08:00
2025-10-24 15:17:12 +08:00
2026-09-15 09:07:56 +08:00
2026-09-02 22:01:44 +08:00
2026-08-08 20:12:59 +08:00
2026-08-08 20:12:59 +08:00
2026-09-12 11:25:51 +08:00
2026-08-08 20:12:59 +08:00
2026-10-02 09:58:01 +08:00
2026-07-04 14:06:50 +08:00
2026-08-08 20:12:59 +08:00
2026-05-20 22:48:44 +08:00
2026-02-05 22:36:30 +08:00
2026-10-03 14:31:10 +08:00
2026-09-05 16:56:20 +08:00
2026-07-26 18:33:31 +08:00