Commit Graph

  • 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