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:
20
CHANGELOG.md
20
CHANGELOG.md
@@ -7,6 +7,26 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
### Added
|
### 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
|
- **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,
|
(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
|
Argentina, Middle East, USA); PAGE_SIZE increased from 20 to 100; availability
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Padelnomics — Project Tracker
|
# Padelnomics — Project Tracker
|
||||||
|
|
||||||
> Move tasks across columns as you work. Add new tasks at the top of the relevant column.
|
> 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] Boost purchases (logo, highlight, verified, card color, sticky week/month)
|
||||||
- [x] Credit pack purchases (25/50/100/250)
|
- [x] Credit pack purchases (25/50/100/250)
|
||||||
- [x] Supplier subscription tiers (Basic free / Growth €149 / Pro €399, monthly + annual)
|
- [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] Resend email integration (transactional: magic link, welcome, quote verify, lead forward, enquiry)
|
||||||
- [x] Auto-create Resend audiences per blueprint (waitlist, planner nurture)
|
- [x] Auto-create Resend audiences per blueprint (waitlist, planner nurture)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user