Commit Graph

  • c3bd1c33e3 Merge pull request 'feat(security): close audit waves 1-4 (C1-C6, H1, H2, H4, H11, H13, H14, H16)' (#1) from feat/security-audit-waves-1-4-remediation into main main vikingowl 2026-05-01 00:02:09 +02:00
  • 0d5788c951 docs(security): record waves 1-4 remediation status in audit report vikingowl 2026-04-30 23:41:56 +02:00
  • 5821547a73 feat(security): close audit waves 1-4 (C1-C6, H1, H2, H4, H11, H13, H14, H16) vikingowl 2026-04-30 23:41:48 +02:00
  • bef8657d81 chore(tooling): migrate pre-commit framework to husky vikingowl 2026-04-30 22:15:51 +02:00
  • dee4cee23c fix(auth): invalidate valkey cache on session revoke vikingowl 2026-04-30 22:12:09 +02:00
  • b7c88dd86a docs(planning): add security threat model and abuse-case audit vikingowl 2026-04-30 22:11:54 +02:00
  • 6181adbba4 feat(helm): port VerticalPodAutoscaler resources into monolithic chart vikingowl 2026-04-30 22:11:43 +02:00
  • c2bcdf0881 feat(promptguard): redact prompt-injection patterns in LLM input vikingowl 2026-04-30 22:11:20 +02:00
  • c1430e66b0 fix(auth): use structured logger for valkey-cache failure vikingowl 2026-04-30 22:11:02 +02:00
  • af7b6232e0 docs(readme): correct cache backend naming and bump status date vikingowl 2026-04-29 00:44:53 +02:00
  • 5ad8126b81 fix(web): use proper umlauts in remaining server-side error messages vikingowl 2026-04-28 23:07:15 +02:00
  • 8d8d96c231 fix(web): use proper umlauts in feedback dialog text vikingowl 2026-04-28 22:43:10 +02:00
  • 709fb6663a fix(web): center feedback dialog (Tailwind 4 preflight resets dialog margin) vikingowl 2026-04-28 22:35:44 +02:00
  • a89bed4a3e fix(research): expand multi-day opening hours; reject aggregator websites vikingowl 2026-04-28 21:22:43 +02:00
  • e50b1526f0 fix(research): restore LLM->form shape conversion in server-side apply vikingowl 2026-04-28 20:59:35 +02:00
  • 6a145088bd docs: add top-level README vikingowl 2026-04-28 17:40:01 +02:00
  • bafe0c3680 chore(helm): pin values.yaml image tags to currently-deployed SHAs vikingowl 2026-04-28 17:17:00 +02:00
  • 208f76f9cc docs(claude): refresh post-migration — somegit, Woodpecker, helm/marktvogt, Bun vikingowl 2026-04-28 17:11:35 +02:00
  • d293dd9182 fix(ci): use --set-string for image tags (avoids float coercion of all-digit SHAs) vikingowl 2026-04-28 17:04:54 +02:00
  • 1539879098 fix(ci): retry helm upgrade on race + revert workflow depends_on vikingowl 2026-04-28 17:01:40 +02:00
  • 99a0d13ab9 chore(ci): web workflow depends_on backend to serialize helm upgrades vikingowl 2026-04-28 16:58:36 +02:00
  • f2973dc905 fix(ci): drop --install flag (release exists; helm 4.1 errors on it) vikingowl 2026-04-28 16:40:52 +02:00
  • 36db6f08ed fix(ci): use --reuse-values instead of --reset-then-reuse-values vikingowl 2026-04-28 16:39:16 +02:00
  • 75a626b127 chore: switch CI to monolithic chart, delete old per-service charts vikingowl 2026-04-28 16:33:53 +02:00
  • d3982c1d73 feat(helm): add monolithic marktvogt chart + secrets sync script vikingowl 2026-04-28 15:57:30 +02:00
  • ae8e06c7b0 fix(ci): revert corepack on node:25-alpine (no longer bundled) vikingowl 2026-04-28 15:31:13 +02:00
  • 08aa34141f chore(ci): split web install/check, corepack, pin platforms vikingowl 2026-04-28 15:25:06 +02:00
  • 5b34252132 feat(web): add explicit /healthz endpoint for liveness/readiness probes vikingowl 2026-04-28 15:13:48 +02:00
  • 921f329dab chore(web): switch runtime to bun (drop-in node replacement, ~50MB lighter) vikingowl 2026-04-28 14:51:17 +02:00
  • 2758e315a8 fix(ci): prune step keeps 8-char SHAs and guards against empty history vikingowl 2026-04-28 14:48:07 +02:00
  • 2acfeed12e chore(ci): prune old SHA-tagged images, keep last 10 per pipeline vikingowl 2026-04-28 14:37:13 +02:00
  • ec76bc2528 fix(ci): cd web once in check step (cwd persists across commands) vikingowl 2026-04-28 14:26:50 +02:00
  • c857544a12 chore(ci): drop environment from plugin steps to satisfy schema vikingowl 2026-04-28 14:21:54 +02:00
  • fbaa598ae7 chore(ci): switch woodpecker pipelines to plugin-docker-buildx vikingowl 2026-04-28 14:18:58 +02:00
  • 8fd3e53fe6 chore(ci): add woodpecker pipelines for backend and web vikingowl 2026-04-28 14:04:16 +02:00
  • 5f96daf7f3 feat(market): admin edit link and public feedback form vikingowl 2026-04-28 13:43:22 +02:00
  • f30a963329 fix(market): marshal empty merge-plan buckets as [] not null vikingowl 2026-04-28 13:09:26 +02:00
  • 3d62ba9526 chore(web): integrate @typescript/native-preview (tsgo) for type-checking vikingowl 2026-04-28 12:56:41 +02:00
  • 2de9bdf6c3 chore(db): backfill historical ai_usage costs after pricing fix vikingowl 2026-04-28 12:56:32 +02:00
  • ba4dce1f76 fix(ai): per-model cost calc + thinking toggle and token tracking vikingowl 2026-04-28 12:56:04 +02:00
  • 34a3da6e8b fix(auth): include legacy expires_at column in session INSERT vikingowl 2026-04-26 14:10:19 +02:00
  • bf4d8eb71d chore(settings): update stale JWT_SECRET comment to APP_SECRET vikingowl 2026-04-26 13:57:19 +02:00
  • 38401ca802 docs(app): auth migration notes for Flutter interceptor update vikingowl 2026-04-26 13:39:59 +02:00
  • c6cdc11693 feat(auth): D5 cleanup + W3 web refresh UX vikingowl 2026-04-26 13:25:48 +02:00
  • 515a72e6e8 feat(auth): D4 TOTP backup codes + session management vikingowl 2026-04-26 12:33:47 +02:00
  • 492bbb350e feat(auth): D2/D3 opaque-token session model — drop JWT vikingowl 2026-04-26 12:15:57 +02:00
  • 0997d4befa feat(auth): D1 non-breaking security foundations vikingowl 2026-04-26 11:54:37 +02:00
  • 49a31bca02 chore: add .worktrees/ to .gitignore vikingowl 2026-04-26 11:36:27 +02:00
  • 24dc46eeb8 fix(merge-plan): snapshot proposal prop to avoid structuredClone proxy throw vikingowl 2026-04-26 00:28:21 +02:00
  • 131d8c8ff0 fix(merge-plan): extend poll timeout to 270s + guard undefined proposal vikingowl 2026-04-26 00:11:31 +02:00
  • 643ee77600 feat(merge-plan): convert to async polling to bypass nginx 60s timeout vikingowl 2026-04-25 23:37:03 +02:00
  • caaad8adf4 fix(web): SSR calls use cluster-internal backend URL to bypass nginx timeout vikingowl 2026-04-25 22:25:31 +02:00
  • 4916b0d6af fix(infra): increase gateway timeout for admin+market routes to 120s vikingowl 2026-04-25 22:03:20 +02:00
  • e6445b5db8 fix(dedup): wire merge advisor JSON schema + flexible field_merges parser vikingowl 2026-04-25 21:33:58 +02:00
  • 3d922e50bf perf(admin): stream duplicate check async — don't block page render vikingowl 2026-04-25 21:08:56 +02:00
  • 11377b8463 fix(research): return full body from plan proxy, not res.data vikingowl 2026-04-25 20:53:57 +02:00
  • 73c30d2f5f feat(admin/dedup): merge UI + enrich enum fix + robust JSON parse vikingowl 2026-04-25 19:34:49 +02:00
  • 77e150f122 feat(dedup): E5+E2+E2b — merge advisor LLM + merge-plan/merge-into endpoints vikingowl 2026-04-25 19:05:52 +02:00
  • 5a643098d1 feat(dedup): E3+E1 — merged status, LLM tiebreaker in FindDuplicates vikingowl 2026-04-25 18:56:58 +02:00
  • 9b308639fd feat(admin/ui): three-section merge plan UI + plan/apply proxy endpoints (D6) vikingowl 2026-04-25 18:45:40 +02:00
  • 65c8c4bf96 feat(research/merge): add merge planner, validators, plan+apply endpoints, audit log (D1-D5) vikingowl 2026-04-25 18:39:01 +02:00
  • 1b991518a4 feat(ai): warn on unsupported schema keys + enrich grounding gate vikingowl 2026-04-25 18:10:37 +02:00
  • 66aee62646 feat(ai): add PromptHash to ProviderError + log on schema violation vikingowl 2026-04-25 18:09:28 +02:00
  • ad1da8be66 feat(ai): add prompt_version to ai_usage + wire version constants vikingowl 2026-04-25 18:08:53 +02:00
  • 69c6453e26 feat(similarity): confidence calibration anchors + Ronneburg failure-case fixtures (B4-B5) vikingowl 2026-04-25 18:00:39 +02:00
  • b25ae09bd2 feat(enrich): full category taxonomy, tighter description + opening_hours rules (B1-B3) vikingowl 2026-04-25 17:58:08 +02:00
  • f98ecf8790 fix(discovery): auto-trigger Pass B (LLM enrich) after post-crawl Pass A vikingowl 2026-04-25 17:53:56 +02:00
  • 2e3141aaeb fix(discovery): skip enrichment cache for date-less rows (year=0) vikingowl 2026-04-25 17:50:27 +02:00
  • f151c0865e fix(discovery): use JSON schema instead of JSONMode for LLM enricher vikingowl 2026-04-25 17:48:48 +02:00
  • eb169689d5 fix(admin): submit save form after applying research suggestions vikingowl 2026-04-25 17:39:35 +02:00
  • a6298d2be2 fix(enrich): set Temperature=0.1 on enrich_b and similarity call sites vikingowl 2026-04-25 17:39:13 +02:00
  • 87e2f06323 fix(research): remove fetch instructions + add ziel_jahr to prompt payload vikingowl 2026-04-25 17:37:56 +02:00
  • 2f32d4b954 chore: remove Mistral/Ollama legacy references after Gemini migration vikingowl 2026-04-25 17:31:58 +02:00
  • 33539b703a feat(research): add logo_url field + require per-field hints vikingowl 2026-04-25 16:58:47 +02:00
  • bde41be767 fix(research): surface errors to UI + proceed without pages when all fetches fail vikingowl 2026-04-25 13:59:05 +02:00
  • 0bff6771ce feat(admin): filter markets by missing fields + row indicators vikingowl 2026-04-25 13:46:14 +02:00
  • 51fc9828a0 chore(docs): document local branch-merge-push git workflow vikingowl 2026-04-25 13:35:41 +02:00
  • e166ad5e48 content(impressum): add data accuracy disclaimer section vikingowl 2026-04-25 13:34:32 +02:00
  • bc93213d16 fix(ai): switch grounding tool from GoogleSearchRetrieval to GoogleSearch vikingowl 2026-04-25 13:34:07 +02:00
  • bb3ab382e1 Merge branch 'fix/gemini-model-filter-tuned-check' into 'main' Christian Nachtigall 2026-04-25 11:12:21 +00:00
  • 0110156018 fix(ai): drop TunedModelInfo nil check in model filter vikingowl 2026-04-25 13:09:55 +02:00
  • cae0d7ae3e merge: feat/gemini-filter-image-display vikingowl 2026-04-25 12:46:36 +02:00
  • 9d9520bcad feat(ui): image display improvements across admin and public views vikingowl 2026-04-25 12:46:13 +02:00
  • 9d457462d5 feat(research): year verification in LLM prompt + image URL HEAD check vikingowl 2026-04-25 12:44:01 +02:00
  • 6b3c673cd0 feat(ai): tighter Gemini model filter with per-model pricing vikingowl 2026-04-25 12:42:53 +02:00
  • 0036a63557 fix(research): move all form fields to reactive state, add setField dispatcher vikingowl 2026-04-25 11:25:35 +02:00
  • da9754cb2f fix(research): move all form fields to reactive state, add setField dispatcher vikingowl 2026-04-25 11:25:21 +02:00
  • cc69bf51bc fix(research): apply description via reactive state, add name correction vikingowl 2026-04-25 11:15:33 +02:00
  • c5c84ff297 fix(research): apply description via reactive state, add name correction vikingowl 2026-04-25 11:15:16 +02:00
  • 6b8d2d621f fix(research): add beschreibung to prompt, auto-note on apply vikingowl 2026-04-25 11:05:43 +02:00
  • 282d59e6c1 fix(research): add beschreibung to prompt, auto-note on apply vikingowl 2026-04-25 11:05:27 +02:00
  • d7dd003a67 fix(research): convert LLM schema shapes to form-compatible types on apply vikingowl 2026-04-25 11:01:36 +02:00
  • dd9a5ae9cc fix(research): convert LLM schema shapes to form-compatible types on apply vikingowl 2026-04-25 11:01:18 +02:00
  • 25b682f030 fix(research): remove Grounded from LLM call — incompatible with JSONSchema in Gemini API vikingowl 2026-04-25 10:50:01 +02:00
  • eff7b7ec65 fix(ai): strip models/ prefix from Gemini model names in ListModelNames vikingowl 2026-04-25 10:46:32 +02:00
  • 016d7a0792 fix(settings): handle missing migrations gracefully, guard AI status page vikingowl 2026-04-25 10:41:25 +02:00
  • c6ce0f3a2d feat(discovery): auto-accept high-confidence crawl rows during crawl vikingowl 2026-04-25 10:08:26 +02:00
  • 3ddfd87408 feat(ai): migrate to Google Gemini 2.5 Flash-Lite, drop Mistral/Ollama vikingowl 2026-04-25 09:54:49 +02:00
  • 80149de317 feat(discovery): auto-trigger Pass A enrichment after crawl vikingowl 2026-04-25 08:42:28 +02:00
  • 7552e5073f feat(discovery): auto-trigger Pass A enrichment after crawl vikingowl 2026-04-25 08:42:20 +02:00