-
bf04fa1da0
content: write all 12 Batch 1 cornerstone articles (C2, C3, C5, C6, C7, C8)
Deeman
2026-02-25 13:40:13 +01:00
-
fe9ac1bf78
docs: add SPORTPLATZWELT_RESEARCH.md + update CUSTOMER_CHANNELS.md
Deeman
2026-02-25 13:25:25 +01:00
-
6cb0fb32ec
feat(cms): add language field + seo_head to manual article creation
Deeman
2026-02-25 13:25:17 +01:00
-
-
-
b177d2c377
feat(admin): Pipeline Console — 4-tab data pipeline operational dashboard
Deeman
2026-02-25 13:05:53 +01:00
-
-
d637687795
feat(pipeline): tests, docs, and ruff fixes (subtask 6/6)
Deeman
2026-02-25 13:02:51 +01:00
-
8f8f7f7acb
feat(pipeline): query editor tab templates
Deeman
2026-02-25 12:55:20 +01:00
-
5b48a11e01
feat(pipeline): catalog tab templates
Deeman
2026-02-25 12:54:21 +01:00
-
947a1a778e
feat(pipeline): extractions tab template
Deeman
2026-02-25 12:53:36 +01:00
-
cac876e48f
feat(pipeline): dashboard + overview tab templates
Deeman
2026-02-25 12:53:02 +01:00
-
060cb9b32e
feat(pipeline): scaffold Pipeline Console blueprint + sidebar + app registration
Deeman
2026-02-25 12:44:03 +01:00
-
1905844cd2
merge: bring worktree up to master before pipeline console work
Deeman
2026-02-25 12:40:37 +01:00
-
-
-
-
-
4fbe53d7ca
merge: JSONL streaming landing format + regional overpass_tennis splitting
Deeman
2026-02-25 12:34:03 +01:00
-
-
-
-
683ca3fc24
docs: update CHANGELOG and PROJECT.md for JSONL landing format
Deeman
2026-02-25 12:28:43 +01:00
-
883d98167c
feat(email-templates): Jinja2 template system + admin gallery + compose preview
Deeman
2026-02-25 12:26:33 +01:00
-
-
-
-
578a409893
feat(email-templates): tests, docs, and fix quote_verification sample data (subtask 8)
Deeman
2026-02-25 12:24:52 +01:00
-
ec7f115f16
feat: add init_landing_seeds.py for empty-landing bootstrap
Deeman
2026-02-25 12:24:48 +01:00
-
fb83f432db
feat(emails): subtask 7 — remove _email_wrap() and _email_button() from worker.py
Deeman
2026-02-25 12:20:32 +01:00
-
b5b8493543
feat(extract): regional overpass_tennis splitting + JSONL output
Deeman
2026-02-25 12:19:37 +01:00
-
a4f246d69a
feat(extract): convert geonames to JSONL output
Deeman
2026-02-25 12:16:59 +01:00
-
7b03fd71f9
feat(extract): convert playtomic_availability to JSONL output
Deeman
2026-02-25 12:14:38 +01:00
-
4fafd3e80e
feat(emails): subtask 6 — admin gallery (routes, templates, sidebar link)
Deeman
2026-02-25 12:13:35 +01:00
-
536d5c8f40
feat(emails): subtask 5 — compose preview (admin_compose template + HTMX endpoint)
Deeman
2026-02-25 12:12:09 +01:00
-
c31d4a71a0
feat(emails): subtask 4 — 4 complex templates (lead_forward, match_notify, digest, business_plan)
Deeman
2026-02-25 12:10:55 +01:00
-
1c7cdc42f2
feat(emails): subtask 3 — 4 medium templates (quote_verification, waitlist, lead_matched)
Deeman
2026-02-25 12:05:20 +01:00
-
daf1945d5b
feat(emails): subtask 1-2 — email_templates.py foundation + 3 simple templates
Deeman
2026-02-25 11:58:29 +01:00
-
-
9bef055e6d
feat(extract): convert playtomic_tenants to JSONL output
Deeman
2026-02-25 12:07:53 +01:00
-
6bede60ef8
feat(extract): add compress_jsonl_atomic() utility
Deeman
2026-02-25 11:50:17 +01:00
-
-
e5960c08ff
feat(admin): cross-section links across leads, suppliers, marketplace, emails
Deeman
2026-02-25 10:15:25 +01:00
-
55f179ba54
fix(transform): increase geonames object size limit and remove stale column ref
Deeman
2026-02-25 09:56:05 +01:00
-
3c0f57c0fd
feat(leads): 2-hour admin review window before leads appear in supplier feed
Deeman
2026-02-25 09:53:19 +01:00
-
607dc35a9d
docs: add ADMIN.md — comprehensive admin panel guide
Deeman
2026-02-25 09:44:33 +01:00
-
db14684667
docs: update USER_FLOWS.md for marketplace + lead response flows
Deeman
2026-02-25 09:41:54 +01:00
-
d834bdc59a
feat(extract): recheck every 30 min with 30-min window for accurate occupancy
Deeman
2026-02-25 09:39:30 +01:00
-
5ba4cabcd8
docs: update CHANGELOG and PROJECT.md for marketplace + lead forward tracking
Deeman
2026-02-25 09:37:26 +01:00
-
b7c8568265
fix(extract): recheck window 90→60 min (correct reasoning this time)
Deeman
2026-02-25 09:37:17 +01:00
-
be8872beb2
revert: restore recheck window to 90 min
Deeman
2026-02-25 09:35:12 +01:00
-
d15787caeb
fix(extract): recheck window 90→60 min — matches hourly schedule and min slot duration
Deeman
2026-02-25 09:33:20 +01:00
-
eca21dd147
chore(secrets): update PROXY_URLS in dev sops (tiered proxy config)
Deeman
2026-02-25 09:31:56 +01:00
-
5867c611f8
feat(admin): marketplace dashboard + HTMX lead management improvements
Deeman
2026-02-25 09:31:44 +01:00
-
7af612504b
feat(marketplace): lead matching notifications + weekly digest + CTA tracking
Deeman
2026-02-25 09:31:23 +01:00
-
c84a5ffdd1
feat(db): migration 0022 — add response tracking to lead_forwards
Deeman
2026-02-25 09:31:14 +01:00
-
d5947af8d4
merge: maximum performance extraction (parallel pages + crash-safe partial JSONL)
Deeman
2026-02-24 22:36:34 +01:00
-
-
1ef22770aa
docs: update CHANGELOG for extraction performance improvements
Deeman
2026-02-24 22:31:19 +01:00
-
9f010d8c0c
perf(extract): parallel page fetching in tenants, drop EXTRACT_WORKERS env var
Deeman
2026-02-24 22:30:28 +01:00
-
6116445b56
perf(extract): auto-detect workers from proxies, skip throttle on success, crash-safe partial JSONL
Deeman
2026-02-24 22:21:05 +01:00
-
79d1b0e672
feat(extract): tiered proxy with circuit breaker + proxy provider research
Deeman
2026-02-24 22:15:11 +01:00
-
19dd9843af
fix(dev): scope granian --reload-paths to web/src to stop DB WAL triggering reloads
Deeman
2026-02-24 21:49:14 +01:00
-
77d4c02db3
chore: run dev server with granian --reload for dev/prod parity
Deeman
2026-02-24 21:42:30 +01:00
-
c95d66982b
fix(logging): restore hypercorn logger silencing (still used by Quart dev server)
Deeman
2026-02-24 21:40:23 +01:00
-
fda7da7d59
chore: replace hypercorn with granian (Rust ASGI server)
Deeman
2026-02-24 21:26:19 +01:00
-
aa7a8bad99
test: sync i18n tests to current translation values
Deeman
2026-02-24 21:24:37 +01:00
-
78ffbc313f
feat(extract): parallel DAG scheduler + proxy rotation for tenants
Deeman
2026-02-24 21:17:00 +01:00
-
e8fb8f51f7
feat(pseo): add pSEO Engine admin tab
Deeman
2026-02-24 21:00:00 +01:00
-
-
ec15012d00
test: update mock_fetch_analytics to handle COUNT(*) queries
Deeman
2026-02-24 20:55:38 +01:00
-
a9b14b8f73
docs: update CHANGELOG + PROJECT.md for pSEO Engine
Deeman
2026-02-24 20:51:29 +01:00
-
44c0dd0b8d
refactor: minor TigerStyle cleanups
Deeman
2026-02-24 20:50:43 +01:00
-
ee49862d91
test(pseo): add 45 tests for health checks + pSEO Engine admin routes
Deeman
2026-02-24 20:50:03 +01:00
-
83d148477d
refactor: extract shared _query_scenarios() to remove duplication
Deeman
2026-02-24 20:42:52 +01:00
-
ad48f23cfc
fix: add precondition assertions in extract pipeline
Deeman
2026-02-24 20:42:11 +01:00
-
dd9ffd6d27
style: add units to variable names, name busy_timeout constant
Deeman
2026-02-24 19:35:12 +01:00
-
9107ba9bb8
perf: fix N+1 queries in templates(), handle_refill_monthly_credits()
Deeman
2026-02-24 19:34:15 +01:00
-
a051f9350f
feat(pseo): create pSEO Engine admin templates + sidebar nav
Deeman
2026-02-24 19:33:18 +01:00
-
ef7fe6e079
perf: add missing indexes on lead_requests, suppliers, credit_ledger
Deeman
2026-02-24 19:32:15 +01:00
-
8a6fd61432
fix: bound unbounded operations — LIMIT on scenarios, timeouts on DuckDB and Resend
Deeman
2026-02-24 19:31:34 +01:00
-
04f59e9015
feat(pseo): add pseo_routes.py blueprint + register in app
Deeman
2026-02-24 19:30:18 +01:00
-
dc38972d68
fix: replace silent exception handlers with explicit error logging
Deeman
2026-02-24 19:29:59 +01:00
-
3dc7a7fc02
fix: add unbuffered python output in dev runner, cursor pattern in analytics
Deeman
2026-02-24 19:29:51 +01:00
-
9cc853d38e
feat(pseo): add generation progress tracking to tasks table
Deeman
2026-02-24 19:28:07 +01:00
-
567100076f
feat(pseo): add content/health.py — gap detection, freshness, health checks
Deeman
2026-02-24 18:21:34 +01:00
-
97c3aafea8
feat(pseo): write _serving_meta.json after atomic serving DB swap
Deeman
2026-02-24 17:30:57 +01:00
-
-
3a169d9443
feat: dual market score system — Marktreife + Marktpotenzial scores
Deeman
2026-02-24 17:17:02 +01:00
-
-
405efcfd19
docs: update docs and PROJECT.md for dual score pipeline
Deeman
2026-02-24 17:12:22 +01:00
-
165eaf48bf
fix(admin): live search not firing on text input + spinner always visible
Deeman
2026-02-24 17:09:49 +01:00
-
caec0c4410
feat(ui): apply wordmark span to score h2 headings, add TM to chips
Deeman
2026-02-24 17:08:20 +01:00
-
6d52a122e5
fix(i18n): apply padelnomics wordmark consistently to score names
Deeman
2026-02-24 17:04:57 +01:00
-
6d18c52983
merge: live search + loading indicators on all admin filter forms
Deeman
2026-02-24 16:59:03 +01:00
-
-
4731a91d02
feat(admin): live search with loading indicator on all admin filter forms
Deeman
2026-02-24 16:58:28 +01:00
-
46e41db0f8
fix(i18n): polish German translations — remove English calques
Deeman
2026-02-24 16:54:30 +01:00
-
3d02d1654a
merge: fix scenario filter focus styling
Deeman
2026-02-24 16:49:49 +01:00
-
-
1510cad697
fix(admin): use form-input class on scenario filter fields
Deeman
2026-02-24 16:49:25 +01:00
-
3e2757e0a7
feat(ui): dual market score methodology page and translations
Deeman
2026-02-24 16:48:52 +01:00
-
4dcbb731b0
merge: spinner, batch commits, pre-compiled Jinja templates, timing
Deeman
2026-02-24 16:44:13 +01:00
-
-
af20c59ced
feat(content): spinner, batch commits, pre-compiled templates, timing
Deeman
2026-02-24 16:44:02 +01:00
-
d3db830c98
Merge branch 'master' into worktree-dual-market-score
Deeman
2026-02-24 16:38:25 +01:00
-
-
-
-
f7a753d2d7
merge: content improvement tasks (FAQ, Market Score, DE translations, country names, DB perf)
Deeman
2026-02-24 16:34:51 +01:00
-
-
482b4f9fca
perf(content): batch article generation in single transaction + upsert
Deeman
2026-02-24 16:34:16 +01:00
-
ebfdc84a94
feat(transform): add dim_locations + dual market scoring models
Deeman
2026-02-24 16:28:16 +01:00
-
d1b0e89261
fix(i18n): country_name filter now handles 2-letter ISO codes from DB
Deeman
2026-02-24 16:16:45 +01:00
-
c109488d9d
feat(extract): expand GeoNames to cities1000 + add tennis court extractor
Deeman
2026-02-24 16:15:20 +01:00
-
edf1e30444
feat(data): add spatial extension + extraction API keys
Deeman
2026-02-24 16:05:46 +01:00
-
-
dc10eeae29
merge: tiered proxy with circuit breaker for Playtomic extractor
Deeman
2026-02-24 16:02:43 +01:00
-
-
0b472e1a32
feat(extract): tiered proxy with circuit breaker for Playtomic availability
Deeman
2026-02-24 16:01:50 +01:00
-
-
-
cb08e04b0f
merge: content improvements — country translations, FAQ collapsibles, Market Score branding, DE i18n fixes
Deeman
2026-02-24 14:26:33 +01:00
-
-
-
-
1e0aa6002a
fix(i18n): improve German translation quality across 94 keys
Deeman
2026-02-24 14:24:21 +01:00
-
64728f5995
feat(content): rebrand stats-strip Market Score with padelnomics wordmark + color coding
Deeman
2026-02-24 14:17:03 +01:00
-
3a147b78b6
feat(content): convert article FAQ sections to collapsible details/summary
Deeman
2026-02-24 14:16:12 +01:00
-
2a1e8a781b
feat(i18n): add country name translations for article country badges
Deeman
2026-02-24 14:12:51 +01:00
-
-
1c21adc6a7
fix(logging): silence hypercorn.error and hypercorn.access child loggers
Deeman
2026-02-24 11:27:00 +01:00
-
fae3bbdb43
fix(logging): silence aiosqlite DEBUG noise in setup_logging()
Deeman
2026-02-24 11:19:59 +01:00
-
00ad0f7e63
feat(logging): replace all print() with Python logging module
Deeman
2026-02-24 11:10:02 +01:00
-