Deeman
5c22ea9780
feat(affiliate): tests, ruff cleanup, CHANGELOG + PROJECT.md (commit 9/9)
- 26 tests in web/tests/test_affiliate.py covering hash_ip determinism,
daily rotation, product CRUD, bake_product_cards marker replacement,
click redirect (302 + logged), inactive/unknown 404, multi-retailer
- ruff: fix E741 ambiguous var (l → line in _form_to_product), F401 unused
import, I001 import sort in admin/routes.py
- CHANGELOG: affiliate product system entry
- PROJECT.md: affiliate system moved to Done, Wirecutter backlog item removed
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 21:06:01 +01:00
..
2026-02-23 22:26:42 +01:00
2026-02-23 21:08:59 +01:00
2026-02-28 21:06:01 +01:00
2026-02-22 00:44:40 +01:00
2026-02-22 00:44:40 +01:00
2026-02-22 00:44:40 +01:00
2026-02-23 15:26:40 +01:00
2026-02-24 00:11:52 +01:00
2026-02-27 08:44:52 +01:00
2026-02-24 10:30:18 +01:00
2026-02-23 21:08:09 +01:00
2026-02-27 11:52:02 +01:00
2026-02-23 13:00:23 +01:00
2026-02-24 10:30:18 +01:00
2026-02-24 21:24:37 +01:00
2026-02-24 21:24:37 +01:00
2026-02-24 10:15:36 +01:00
2026-02-22 00:44:40 +01:00
2026-02-27 11:52:02 +01:00
2026-02-27 11:52:02 +01:00
2026-02-22 17:03:13 +01:00
2026-02-25 13:02:51 +01:00
2026-02-22 00:44:40 +01:00
2026-02-24 21:24:37 +01:00
2026-02-24 20:50:03 +01:00
2026-02-23 18:40:11 +01:00
2026-02-27 08:44:52 +01:00
2026-02-28 16:57:07 +01:00
2026-02-24 10:30:18 +01:00
2026-02-23 18:40:11 +01:00
2026-02-23 17:03:21 +01:00