docs: update CHANGELOG and PROJECT.md for supervisor + feature flags

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Deeman
2026-02-23 15:27:23 +01:00
parent b5c9a4e573
commit 8b7d474ede
2 changed files with 24 additions and 2 deletions

View File

@@ -7,6 +7,26 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
## [Unreleased]
### Added
- **Python supervisor** (`src/padelnomics/supervisor.py`) — replaces `supervisor.sh`;
reads `infra/supervisor/workflows.toml` (module, schedule, entry, depends_on,
proxy_mode); runs due workflows in topological waves (parallel within each wave);
croniter-based `is_due()` check; systemd service updated to use `uv run python`
- **`workflows.toml` workflow registry** — 5 extractors registered: overpass,
eurostat, playtomic_tenants, playtomic_availability, playtomic_prices; cron
presets: hourly/daily/weekly/monthly; `playtomic_availability` depends on
`playtomic_tenants`
- **`proxy.py` proxy rotation** (`extract/padelnomics_extract/proxy.py`) — reads
`PROXY_URLS` env var; `make_round_robin_cycler()` for thread-safe round-robin;
`make_sticky_selector()` for consistent per-tenant proxy assignment (hash-based)
- **DB-backed feature flags** — `feature_flags` table (migration 0019);
`is_flag_enabled(name, default)` helper; `feature_gate(flag, template)` decorator
replaces `WAITLIST_MODE`/`waitlist_gate`; 5 flags seeded: `markets` (on),
`payments`, `planner_export`, `supplier_signup`, `lead_unlock` (all off)
- **Admin feature flags UI** — `/admin/flags` lists all flags with toggle;
`POST /admin/flags/toggle` flips enabled bit; requires admin role; flash message
on unknown flag
- **`lead_unlock` gate** — `unlock_lead` route returns HTTP 403 when `lead_unlock`
flag is disabled
- **Playtomic full data extraction** — expanded venue bounding boxes from 4 regions
(ES, UK, DE, FR) to 23 globally (Italy, Portugal, NL, BE, AT, CH, Nordics, Mexico,
Argentina, Middle East, USA); PAGE_SIZE increased from 20 to 100; availability

View File

@@ -1,7 +1,7 @@
# Padelnomics — Project Tracker
> Move tasks across columns as you work. Add new tasks at the top of the relevant column.
> Last updated: 2026-02-22.
> Last updated: 2026-02-23.
---
@@ -59,7 +59,9 @@
- [x] Boost purchases (logo, highlight, verified, card color, sticky week/month)
- [x] Credit pack purchases (25/50/100/250)
- [x] Supplier subscription tiers (Basic free / Growth €149 / Pro €399, monthly + annual)
- [x] `WAITLIST_MODE` toggle — gates supplier signup + export on GET (default: false)
- [x] **Feature flags** (DB-backed, migration 0019) — `is_flag_enabled()` + `feature_gate()` decorator replace `WAITLIST_MODE`; 5 flags (markets, payments, planner_export, supplier_signup, lead_unlock); admin UI at `/admin/flags` with toggle
- [x] **Python supervisor** (`src/padelnomics/supervisor.py`) + `workflows.toml` — replaces `supervisor.sh`; topological wave scheduling; croniter-based `is_due()`; systemd service updated
- [x] **Proxy rotation** (`extract/padelnomics_extract/proxy.py`) — round-robin + sticky hash-based selector via `PROXY_URLS` env var
- [x] Resend email integration (transactional: magic link, welcome, quote verify, lead forward, enquiry)
- [x] Auto-create Resend audiences per blueprint (waitlist, planner nurture)