-
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
-