Commit Graph

  • bf06993b63 ui: show creation time (HH:MM) alongside date in blog list Rene Fichtmueller 2026-04-06 17:07:05 +02:00
  • 3928755c60 fix: correct verified badge, comparable pricing, and clickable product images Rene Fichtmueller 2026-04-06 10:24:39 +02:00
  • 8f060d0159 feat(training): add blog-014 new_product and blog-015 competitor_analysis Rene Fichtmueller 2026-04-06 04:16:00 +02:00
  • 4acf293690 fix(llm): checkHealth uses key presence check, not live API call Rene Fichtmueller 2026-04-06 04:07:21 +02:00
  • f7bdee9583 feat: add 2 more gold-standard blog training articles (13 total) Rene Fichtmueller 2026-04-06 03:09:55 +02:00
  • de05bbbec8 docs: update training data README to reflect 11 articles Rene Fichtmueller 2026-04-06 02:55:34 +02:00
  • b8e6a62c7b feat: add 4 more gold-standard blog training articles for BlogLLM Rene Fichtmueller 2026-04-06 02:55:10 +02:00
  • 72033ff5c5 fix(blog): fix claudeQueue deadlock from recursive 429 retry Rene Fichtmueller 2026-04-06 02:51:28 +02:00
  • 55de4920b2 feat(sql): migrations 026+027 for price cleanup and FS.COM EUR fix Rene Fichtmueller 2026-04-06 02:22:00 +02:00
  • 2e852e0a2f fix(scrapers): replace bot User-Agents with Chrome UA + disable dead domain Rene Fichtmueller 2026-04-06 02:17:50 +02:00
  • 80aa85961b feat: add 7 gold-standard blog training articles for BlogLLM Rene Fichtmueller 2026-04-06 01:58:05 +02:00
  • dfe86fb347 fix(scraper): switch fs-com to de.fs.com for EUR prices as primary source Rene Fichtmueller 2026-04-06 01:24:47 +02:00
  • e4e432d9fa fix: parsePrice requires currency symbol + uses largest number to avoid misreads Rene Fichtmueller 2026-04-06 01:19:25 +02:00
  • a35817c96d fix: preserve user-provided title in blog generation + price floor validation Rene Fichtmueller 2026-04-06 01:14:37 +02:00
  • df8d1e797c fix: show price_verified_eur as fallback price + strict badge logic Rene Fichtmueller 2026-04-06 01:04:44 +02:00
  • b6928265bf fix: serialize Claude API calls via queue to prevent 429 rate-limit spam Rene Fichtmueller 2026-04-06 00:57:03 +02:00
  • cf04549b1b feat: add Anthropic Claude provider to blog LLM client Rene Fichtmueller 2026-04-06 00:21:48 +02:00
  • c43e1f881a fix(blog): hard story blacklist in STEP4 + LinkedIn — ban 2AM/dirty connector/lab-vs-prod stories Rene Fichtmueller 2026-04-05 23:55:56 +02:00
  • 80435f8e07 feat(blog): Post to Ghost + LinkedIn buttons in dashboard Rene Fichtmueller 2026-04-05 23:33:58 +02:00
  • 3913372f10 feat(blog): Title Contract + Technical Sanity Check + Self-Heal + angle-aware LinkedIn generator Rene Fichtmueller 2026-04-05 23:11:16 +02:00
  • 8e0eda6c41 fix(blog): anti-repetition engine — 6 angle types, forbidden structures, existing article context injection Rene Fichtmueller 2026-04-05 22:47:15 +02:00
  • 438225cf7c fix(blog): raise word target to 1200-1600, fix power-budget false positive in validateArticle Rene Fichtmueller 2026-04-05 20:49:22 +02:00
  • 1434037d29 fix(scraper): use false instead of null for image_verified on insert Rene Fichtmueller 2026-04-05 12:15:10 +02:00
  • 308cf8e774 feat(dashboard): add data verification status section to overview tab Rene Fichtmueller 2026-04-05 12:11:23 +02:00
  • 7c7d9f7b51 fix: make /api/hot-topics public — dashboard fetch has no auth token Rene Fichtmueller 2026-04-05 12:07:44 +02:00
  • e6d042f827 fix: resolve merge conflict in index.ts + add untracked blog-sll, news, sql migration Rene Fichtmueller 2026-04-05 11:51:07 +02:00
  • 5d8768b43b fix: mount blogSllRouter + scraperRouter — SLL and Crawler Intelligence routes were missing root 2026-04-05 09:50:30 +00:00
  • 8cc19011f4 feat(scraper): all pricing scrapers to 2h 24/7 — full competitor coverage, no gaps Rene Fichtmueller 2026-04-05 01:32:08 +02:00
  • 44244a22a1 feat: 4th verification criterion (Competitor) + scraper frequency FS/10Gtek/ProLabs to 2h Rene Fichtmueller 2026-04-05 01:28:46 +02:00
  • e4dfd2a2db feat(blog): AEM/APM pipeline steps + SLL context builder + LinkedIn v2 prompts Rene Fichtmueller 2026-04-05 01:26:09 +02:00
  • 95a8aa8552 fix: include linkedin_post in GET /api/blog response for SLL matching Rene Fichtmueller 2026-04-05 01:24:52 +02:00
  • 931588fffd fix(verification): 100% Verified Badge war dramatisch zu großzügig Rene Fichtmueller 2026-04-04 15:41:57 +02:00
  • 1e789f67eb fix(scrapers): Flexoptix Catalog zeigt 0 records statt 963 Rene Fichtmueller 2026-04-04 15:26:04 +02:00
  • fea0b0fb66 feat: blog engine v5 — Auto-Kill Layer, 16-step pipeline, longer content Rene Fichtmueller 2026-04-04 11:02:45 +02:00
  • ede4f5b966 feat: blog engine v3 — 8-stage pipeline with Auto-Kill Layer Rene Fichtmueller 2026-04-04 10:52:31 +02:00
  • c509251109 feat(blog): Spec dump hard fail + Gold Standards 6 + LinkedIn v2 Rene Fichtmueller 2026-04-04 09:32:01 +02:00
  • 4f631fc61e feat(blog): Reduction Engine v1.0 + LaTeX/connector hard fails Rene Fichtmueller 2026-04-04 08:57:21 +02:00
  • d6adb5600f ui: blog detail — separate blog article + linkedin post sections with copy buttons and char count badge Rene Fichtmueller 2026-04-04 08:35:33 +02:00
  • 3431ccbebc chore: changelog — blog engine v5 + linkedin post 2026-04-04 Rene Fichtmueller 2026-04-04 08:30:54 +02:00
  • 1e19365e96 feat: blog engine v5 — narrative control + linkedin post + min words fix Rene Fichtmueller 2026-04-04 08:30:27 +02:00
  • be9209ffbd chore: changelog — proxy network geo/uptime fixes 2026-04-04 Rene Fichtmueller 2026-04-04 08:15:58 +02:00
  • ae0bda9e06 feat: proxy network — geo-lookup, uptime tracking, dedup fix Rene Fichtmueller 2026-04-04 08:15:32 +02:00
  • 9074b6ede0 docs: update changelog 2026-04-03/04 — scraper fixes, blog engine v4, proxy network, pg-boss fix Rene Fichtmueller 2026-04-04 07:58:29 +02:00
  • f616e0ebbe feat: blog engine v4 (reduction+style-lock passes) + flexoptix scraper fixes Rene Fichtmueller 2026-04-04 07:50:01 +02:00
  • 0ac932a304 fix: flexoptix catalog scraper — 1G SFP coverage + SKU suffix + pagination Rene Fichtmueller 2026-04-04 07:26:13 +02:00
  • c179b236d7 fix: auto-set image_verified and price_verified in db utils Rene Fichtmueller 2026-04-04 07:14:26 +02:00
  • 2913ad451b fix: reduce pg-boss pool size to 4, add idle_in_transaction_session_timeout Rene Fichtmueller 2026-04-03 21:15:35 +02:00
  • 1026787318 feat: add proxy network, image backfill, and scraper improvements Rene Fichtmueller 2026-04-03 21:13:03 +02:00
  • abea0cd8fa fix: remove orphaned floating text causing TypeScript build error in fo-blog-pipeline Rene Fichtmueller 2026-04-03 00:51:59 +02:00
  • 3a61723126 fix(blog): complete pipeline rewrite — eliminate sections/bullets, fix DR4 wavelength, fix scope description Rene Fichtmueller 2026-04-03 00:43:14 +02:00
  • c7697308f6 feat: NOG conference talks scraper + hot topics integration Rene Fichtmueller 2026-04-02 22:38:00 +02:00
  • c81b9f5375 feat: hot topics now uses market_intelligence + LLM queue reset Rene Fichtmueller 2026-04-02 22:23:21 +02:00
  • 25839e731d fix: loadCrawlerStatus missing token — add var token = localStorage.getItem Rene Fichtmueller 2026-04-02 16:00:27 +02:00
  • 69ef507d8a fix: scrapers status endpoint — correct table and column names Rene Fichtmueller 2026-04-02 15:24:18 +02:00
  • e3b53343d4 fix: crawler intelligence hot topics now reads market_intelligence table Rene Fichtmueller 2026-04-02 15:22:09 +02:00
  • 6a89b5468b fix: smart tooltips that flip above/below based on viewport position Rene Fichtmueller 2026-04-02 13:03:51 +02:00
  • fe81b27248 fix: correct import paths in index-pi.ts (fs-com, tenGtek, utils/forecast-engine) Rene Fichtmueller 2026-04-02 09:36:51 +02:00
  • 6ccaa03932 feat: add index-pi.ts with all 44 workers for Pi fleet scraper nodes Rene Fichtmueller 2026-04-02 09:34:05 +02:00
  • f146ac873e feat: add 5 form-factor coverage scrapers with worker registrations Rene Fichtmueller 2026-04-02 08:39:17 +02:00
  • b7613538bf fix: remove internal IPs, ports, tokens from changelog entries Rene Fichtmueller 2026-04-02 08:16:48 +02:00
  • b313522a2a chore: changelog entry for auth feature Rene Fichtmueller 2026-04-02 07:32:40 +02:00
  • a066300cf2 feat: password-protected login page + API auth middleware Rene Fichtmueller 2026-04-02 07:31:15 +02:00
  • dba4c80e2f chore: update CHANGELOG_PENDING with Pi fleet + prediction intelligence system entries Rene Fichtmueller 2026-04-02 02:14:45 +02:00
  • 370c1d8801 feat: 6 prediction signal scrapers + forecast engine Rene Fichtmueller 2026-04-02 02:02:44 +02:00
  • c156e8d9f6 feat: download datasheets + manuals to Fearghas NAS in nightly sync Rene Fichtmueller 2026-04-02 01:47:16 +02:00
  • 5abe6397c4 feat: add logger utility + WireGuard setup in pi-scraper-setup.sh Rene Fichtmueller 2026-04-02 01:42:25 +02:00
  • 072978f1a4 feat: 24/7 scraping fleet — 8 new vendors + continuous schedule + Pi setup Rene Fichtmueller 2026-04-02 01:09:05 +02:00
  • 1c1fb28189 fix: pre-create Crawlee subdirs to prevent ENOENT race in withIsolatedStorage Rene Fichtmueller 2026-04-02 00:45:48 +02:00
  • bb80e8bbe6 feat: tag all demo data with purple 'Demo Data' badge in Procurement Intelligence Rene Fichtmueller 2026-04-01 23:41:40 +02:00
  • 4f8170dc36 feat: register ALL scrapers in nightly 00:00-08:00 window (30 jobs) Rene Fichtmueller 2026-04-01 23:39:08 +02:00
  • 3e780ce6b7 feat: add tooltips throughout Procurement Intelligence tab + rename nav Rene Fichtmueller 2026-04-01 23:32:01 +02:00
  • af69040070 fix: procurement demo data — correct schema column names for all 4 tables Rene Fichtmueller 2026-04-01 23:16:50 +02:00
  • 48218a553d feat: nightly scraper window 00-08 + NAS Fearghas sync + procurement demo data Rene Fichtmueller 2026-04-01 23:07:26 +02:00
  • 732d7c3246 fix: switch seed lifecycle_status casing (Active not active) Rene Fichtmueller 2026-04-01 22:50:10 +02:00
  • 4020ec77d9 feat: product intelligence layer — eBay enricher, community issues, datasheets+manuals API Rene Fichtmueller 2026-04-01 22:46:27 +02:00
  • 64074f988f feat: SMB/campus switch seed 26 models (Cisco/HPE/Ubiquiti/MikroTik/Netgear/Zyxel) + fix forecast.ts fiveYearProjection accessor Rene Fichtmueller 2026-04-01 22:34:58 +02:00
  • 4b1734379a fix: Finder 404 shows helpful message + fuzzy switch name matching Rene Fichtmueller 2026-04-01 22:17:07 +02:00
  • dad4750a86 feat: Changelog — CHANGELOG_PENDING.md, /api/changelog route, Overview tab widget Rene Fichtmueller 2026-04-01 22:14:14 +02:00
  • 681da54523 feat: Procurement Intelligence Engine (WS0c) Rene Fichtmueller 2026-04-01 22:04:33 +02:00
  • 480decd307 fix: detect+warn garbage product names, add DB cleanup migration 018 Rene Fichtmueller 2026-04-01 21:26:13 +02:00
  • 7b14ac4bbe fix: panel-title shows proper manufacturer name, not auto-generated slug Rene Fichtmueller 2026-04-01 21:23:18 +02:00
  • 33c417cf21 fix: comparable price rows same layout as direct prices, part number as tooltip Rene Fichtmueller 2026-04-01 21:17:41 +02:00
  • 7fd9fd3c8a feat: competitor price comparison in transceiver detail Rene Fichtmueller 2026-04-01 21:08:09 +02:00
  • c23b9f68ce fix: verification bar white text, pricing removes unverified fallback Rene Fichtmueller 2026-04-01 21:04:42 +02:00
  • f91d2a15b9 feat: switch Flexoptix recommendations, switch verified labels, stronger verification check Rene Fichtmueller 2026-04-01 20:59:30 +02:00
  • 3811b3b953 feat: temp range display, verification badges, competitor prices, tag tooltips Rene Fichtmueller 2026-04-01 20:47:02 +02:00
  • cd48eee316 fix: panel close button dark on light background Rene Fichtmueller 2026-04-01 20:39:50 +02:00
  • fe81c2d19d feat: visible close button, product name above image, SKU + descriptive name in list Rene Fichtmueller 2026-04-01 20:02:52 +02:00
  • 2b683dadfb feat: Verified Price + 100% Verified stamp system Rene Fichtmueller 2026-04-01 17:43:48 +02:00
  • 6a6a22d303 feat: Switch→Transceiver Finder tab in dashboard Rene Fichtmueller 2026-04-01 17:30:49 +02:00
  • 174078efdb feat: 100% verified data — no invented prices, part numbers, or designations Rene Fichtmueller 2026-04-01 17:27:55 +02:00
  • ee8b3c0779 feat: hot topics daily rotation — 30+ topic pool, seeded shuffle, next-refresh countdown Rene Fichtmueller 2026-04-01 11:12:38 +02:00
  • 580df8be01 blog: calibration v8 — AI phrasing blacklist, STEP8 6-step rewrite, Flexoptix author identity Rene Fichtmueller 2026-04-01 00:43:38 +02:00
  • 52a04129e2 blog: calibration v7 — remove Cause/Fix/Example labels, integrate as prose narrative Rene Fichtmueller 2026-04-01 00:10:50 +02:00
  • 6b77b18842 fix(blog): extract article from QA, status badge ready/step X/10, calibration v6 Flexoptix balance Rene Fichtmueller 2026-03-31 23:52:56 +02:00
  • ef0b0bb148 fix(llm): add 429 retry with exponential backoff + ollamaQueue concurrency guard Rene Fichtmueller 2026-03-31 21:45:46 +02:00
  • 01ad16464d blog: calibration v5 — anti-consulting-prose, correct loss budget math, vendor lock-in specifics Rene Fichtmueller 2026-03-31 21:26:39 +02:00
  • ea554ebd6f security: remove hardcoded secrets from ecosystem.config.js, add example template Rene Fichtmueller 2026-03-31 20:36:33 +02:00
  • 58a26116b1 fix(blog): 3s delay between queued LLM pipelines to prevent nginx 429 bursts Rene Fichtmueller 2026-03-31 19:40:40 +02:00
  • 45abd15fe4 blog: calibration v4 — technical accuracy + structure limits Rene Fichtmueller 2026-03-31 17:27:51 +02:00