Commit Graph

  • 325b897f38 Merge branch 'worktree-landing-backup' Deeman 2026-02-23 15:01:32 +01:00
  • ccf03db9a3 feat: SEO/GEO admin hub — migration, sync module, routes, templates Deeman 2026-02-23 15:00:36 +01:00
  • 76814dade7 feat: landing zone backup to R2 via rclone + Litestream Deeman 2026-02-23 14:06:16 +01:00
  • a1faddbed6 feat: Python supervisor + feature flags Deeman 2026-02-23 13:53:45 +01:00
  • f77ec421e1 chore: add missing gitignore entries for worktrees, duckdb, logs, sqlmesh cache Deeman 2026-02-23 13:21:14 +01:00
  • 49cadf6995 Merge branch 'worktree-sitemap-improvement' Deeman 2026-02-23 13:15:21 +01:00
  • 488e47b4b4 docs: rewrite CMS.md for SSG architecture Deeman 2026-02-23 13:03:30 +01:00
  • 454b362c88 feat: admin email hub — sent log, inbox, compose, audiences, delivery tracking Deeman 2026-02-23 12:15:34 +01:00
  • 1a6eae20d5 feat: pSEO CMS — SSG architecture with git templates + DuckDB Deeman 2026-02-23 12:51:30 +01:00
  • afd46398af test: add E2E and unit tests for pSEO CMS flows Deeman 2026-02-23 12:48:26 +01:00
  • f1181342ad feat: SSG-inspired pSEO CMS — git templates + DuckDB direct reads Deeman 2026-02-23 12:25:44 +01:00
  • cb1f00baf0 test: add live Resend integration tests (delivered@resend.dev) Deeman 2026-02-23 11:19:26 +01:00
  • aafb3cfc94 test: add e2e tests for all 9 email handlers (54 tests) Deeman 2026-02-23 11:08:58 +01:00
  • 894fd0c719 feat: email design & copy upgrade for all 9 transactional emails Deeman 2026-02-23 11:00:49 +01:00
  • 7737b79230 fix: DuckDB compat issues in Playtomic pipeline + export_serving Deeman 2026-02-23 01:27:51 +01:00
  • a055660cd2 fix: replace broken bbox pagination with global page-based extraction Deeman 2026-02-23 01:16:35 +01:00
  • 4e8d94de47 feat: email i18n + Resend audience restructuring Deeman 2026-02-23 01:06:03 +01:00
  • 13c86ebf84 Merge branch 'worktree-extraction-overhaul' Deeman 2026-02-23 01:01:26 +01:00
  • 343808a276 fix: move Markets to demand side of nav + translate mobile sections Deeman 2026-02-23 00:57:51 +01:00
  • 79f7fc6fad feat: Playtomic pricing/occupancy pipeline + email i18n + audience restructure Deeman 2026-02-23 00:54:53 +01:00
  • 9aa8a796e5 Merge branch 'worktree-sitemap-improvement' Deeman 2026-02-23 00:39:38 +01:00
  • 5b6c4182f7 fix: sort imports in remaining test files (ruff I001) Deeman 2026-02-22 23:22:51 +01:00
  • 6f81ffbc45 fix: sort imports in test files (ruff I001) Deeman 2026-02-22 23:19:19 +01:00
  • e270d54f62 feat: sitemap hreflang alternates, caching, and lastmod cleanup Deeman 2026-02-22 23:13:32 +01:00
  • 0521e89d7c fix: CI test failure — skip WeasyPrint tests when native libs unavailable Deeman 2026-02-22 23:07:04 +01:00
  • 76695f3902 feat: admin scenario PDF download + business plan export tests Deeman 2026-02-22 21:27:32 +01:00
  • cac3b3b324 docs: reorganize research docs + add project tracker and marketing strategy Deeman 2026-02-22 21:27:23 +01:00
  • 5a1bb21624 fix: eurostat JSON-stat parsing + staging model corrections Deeman 2026-02-22 20:52:25 +01:00
  • c25e20f83a fix: playtomic pagination stale-page exit + calculator test assertions Deeman 2026-02-22 20:06:48 +01:00
  • 2db66efe77 feat: migrate transform to 3-layer architecture with per-layer schemas Deeman 2026-02-22 19:04:40 +01:00
  • 53e9bbd66b feat: restructure extraction to one file per source Deeman 2026-02-22 18:56:41 +01:00
  • ea86940b78 feat: copier update v0.9.0 → v0.10.0 Deeman 2026-02-22 17:50:36 +01:00
  • 59306d5a90 Merge branch 'worktree-planner-mobile-redesign' Deeman 2026-02-22 17:08:10 +01:00
  • a36aef7116 fix(planner): mobile polish — z-index fixes, sidebar alignment, table layout, German i18n Deeman 2026-02-22 17:07:31 +01:00
  • 3b08a845e2 Merge branch 'worktree-opaque-tokens' Deeman 2026-02-22 17:06:32 +01:00
  • 815fb7d98a feat: replace sequential IDs with opaque tokens in public URLs Deeman 2026-02-22 17:03:13 +01:00
  • 18ee24818b feat: copier update v0.9.0 — extraction docs, state tracking, architecture guides Deeman 2026-02-22 15:44:48 +01:00
  • 37caf3db66 feat(planner): mobile-first redesign with bottom nav, collapsible sections, CTA bar Deeman 2026-02-22 15:26:55 +01:00
  • b76e87a0b6 fix: add missing copier toggle flags to answers file Deeman 2026-02-22 15:04:33 +01:00
  • 35fe934fec fix: dashboard quote link points to quote wizard instead of suppliers page Deeman 2026-02-22 14:41:51 +01:00
  • 156cd43a14 fix(deploy): restore router config to current slot before health check Deeman 2026-02-22 14:22:22 +01:00
  • e88c514376 fix(deploy): add --profile to blue-app log dump Deeman 2026-02-22 14:12:34 +01:00
  • 13c264ca75 fix(deploy): split log dump by service, revert litestream to latest Deeman 2026-02-22 14:01:32 +01:00
  • ad5e2516c4 fix(infra): pin litestream to v0.5.8 for R2 compatibility Deeman 2026-02-22 13:49:02 +01:00
  • 044dfd836b fix(deps): add duckdb to padelnomics production dependencies Deeman 2026-02-22 13:43:34 +01:00
  • 5f7e8f1200 fix(deploy): move router config write to after health check passes Deeman 2026-02-22 13:22:50 +01:00
  • e39eaefb43 fix(deploy): dump app container logs on health check failure Deeman 2026-02-22 13:12:26 +01:00
  • 95888dedb9 fix(leads): fix undefined lang variable in quote validation error path Deeman 2026-02-22 13:04:36 +01:00
  • 6e1e6b0484 fix(tests): fix all 10 e2e test failures Deeman 2026-02-22 11:42:54 +01:00
  • 2521ba61b6 fix(test): correct article slug in test_article_url_and_title Deeman 2026-02-22 10:48:43 +01:00
  • ff31d35782 fix(ci): update paths after repo flatten Deeman 2026-02-22 10:42:10 +01:00
  • 625c089284 fix: post-flatten dev scripts, lead form validation, copy improvements Deeman 2026-02-22 10:29:59 +01:00
  • 22ad855c70 fix(deploy): update docker-compose.prod.yml paths after repo flatten Deeman 2026-02-22 01:17:47 +01:00
  • 80b2148108 refactor: flatten padelnomics/padelnomics/ → repo root Deeman 2026-02-22 00:49:37 +01:00
  • 4ae00b35d1 refactor: flatten padelnomics/padelnomics/ → repo root Deeman 2026-02-22 00:44:40 +01:00
  • 5e471567b9 feat(seo): expand city coverage to 40 cities + DuckDB refresh script Deeman 2026-02-22 00:02:13 +01:00
  • f958f1e816 feat(seo): expand city coverage to 40 cities + DuckDB refresh script Deeman 2026-02-22 00:01:37 +01:00
  • 3710665f45 feat(planner): wire DuckDB analytics + market-data endpoint Deeman 2026-02-21 23:42:51 +01:00
  • a2de1a0206 feat(planner): wire DuckDB analytics + market-data endpoint Deeman 2026-02-21 23:26:06 +01:00
  • 47db8c2418 feat(sqlmesh): merge 4-layer DuckDB pipeline Deeman 2026-02-21 22:08:50 +01:00
  • 9f8ca82505 feat(sqlmesh): add transform workspace member with 4-layer DuckDB pipeline Deeman 2026-02-21 22:03:59 +01:00
  • b8471c7f31 feat(daas): merge extraction pipelines (Overpass, Eurostat, Playtomic) Deeman 2026-02-21 21:48:26 +01:00
  • af09597930 feat(daas): add extract workspace member with Overpass, Eurostat, Playtomic extractors Deeman 2026-02-21 21:38:55 +01:00
  • f18e788fc7 Merge feat/flatten-padelnomics: UV workspace monorepo structure Deeman 2026-02-21 17:51:47 +01:00
  • 8221174683 feat(structure): flatten padelnomics to UV workspace monorepo layout Deeman 2026-02-21 17:51:14 +01:00
  • 7325fc905f docs: market research enhancement + data sources inventory Deeman 2026-02-21 15:51:42 +01:00
  • 9b23ab712c Merge branch 'currency-by-country' Deeman 2026-02-21 01:53:28 +01:00
  • 5662a7dce3 feat(planner): currency formatting by country (UK=£, US=$, EU=€) Deeman 2026-02-21 01:51:46 +01:00
  • 0b4f2f2180 fix(merge): resolve conflict in bake_scenario_cards — pass lang + t(lang) Deeman 2026-02-21 01:41:39 +01:00
  • ceee85caba feat(content): programmatic SEO seed script + lang bug fixes Deeman 2026-02-21 01:38:33 +01:00
  • 9a71396524 fix(copy): honest data privacy claim, simplify quote CTA buttons Deeman 2026-02-21 01:33:03 +01:00
  • 2b0798c768 merge(i18n): i18n-foundation — complete i18n for all pages (Iterations 4–5) Deeman 2026-02-21 01:29:12 +01:00
  • 420a2f063b feat(i18n): translate all auth-gated pages (Iteration 5) Deeman 2026-02-21 01:24:22 +01:00
  • 7485bdffad feat(seo): add Google site verification meta tag Deeman 2026-02-21 01:18:13 +01:00
  • 8174b7f0c0 refactor(i18n): Phase 4 — eliminate ad-hoc features_de and is_en patterns Deeman 2026-02-21 00:34:00 +01:00
  • 7c440a209a refactor(i18n): Batch 6 — eliminate {% if lang %} blocks in public templates Deeman 2026-02-21 00:29:08 +01:00
  • 798ade2bc3 refactor(i18n): Batch 5 — eliminate {% if lang %} blocks in planner templates Deeman 2026-02-21 00:13:32 +01:00
  • 43905b343b refactor(i18n): Batch 4 — eliminate {% if lang %} blocks in suppliers templates Deeman 2026-02-21 00:08:25 +01:00
  • dd6f73a7a2 refactor(i18n): Batch 3 — eliminate {% if lang %} blocks in directory templates Deeman 2026-02-20 23:50:06 +01:00
  • 5c99b1bf44 refactor(i18n): Batch 2 — eliminate {% if lang %} blocks in leads templates Deeman 2026-02-20 23:41:52 +01:00
  • 84df11aee7 refactor(i18n): Batch 1 — eliminate {% if lang %} blocks in content templates Deeman 2026-02-20 23:29:30 +01:00
  • 8732f5a5e0 feat(i18n): add tformat Jinja2 filter for parameterized translations Deeman 2026-02-20 23:22:49 +01:00
  • 9957b27a77 refactor(i18n): extract translations to JSON locale files Deeman 2026-02-20 23:21:59 +01:00
  • 7b1914839f feat(i18n): translate suppliers page, fix nav labels, Businessplan copy Deeman 2026-02-20 21:53:41 +01:00
  • 24f528a157 feat(feedback): pill button, umami ID capture, contact field, migration Deeman 2026-02-20 21:10:02 +01:00
  • 23bed0d5f9 feat(iteration-2): i18n, UX & quote flow improvements Deeman 2026-02-20 20:56:14 +01:00
  • 696581d57b fix(planner): charts, wizard footer layout, tooltip translations & summary label Deeman 2026-02-20 19:11:24 +01:00
  • 7c710ada6b refactor(planner): HTMX server-render refactor — eliminate JS SPA Deeman 2026-02-20 17:12:28 +01:00
  • e6f4c0a540 copy(de): Sie→Du overhaul, terminology & directory SEO copy Deeman 2026-02-20 16:15:07 +01:00
  • 9d1d42f6db feat: complete German translation of all public-facing content Deeman 2026-02-20 14:45:03 +01:00
  • e66a55a8db fix: nav mobile layout + container width alignment Deeman 2026-02-20 14:44:53 +01:00
  • ddbdc00a3d feat: complete German translation of all public-facing content Deeman 2026-02-20 14:42:31 +01:00
  • 3c903bad97 fix: planner quote button — use lang-prefixed URL to prevent 404 Deeman 2026-02-20 14:13:44 +01:00
  • 48587d6436 feat: responsive nav — hamburger menu + wider container (900px breakpoint) Deeman 2026-02-20 14:04:56 +01:00
  • 32f29c53ec fix: improve German nav labels Deeman 2026-02-20 13:39:57 +01:00
  • 0b0fc7ef50 fix: ADMIN_EMAIL -> ADMIN_EMAILS in CI .env heredoc Deeman 2026-02-20 13:32:25 +01:00
  • 86c4ebf25d fix: add missing env vars to CI .env heredoc Deeman 2026-02-20 13:10:48 +01:00
  • 358bc5c02f fix: use kill -0 1 for litestream healthcheck Deeman 2026-02-20 13:08:00 +01:00
  • 76fc19c183 fix: litestream healthcheck gate + 1yr retention Deeman 2026-02-20 13:00:29 +01:00
  • b0f36192a6 fix: litestream single replica + disable healthcheck gate Deeman 2026-02-20 12:54:19 +01:00