This website requires JavaScript.
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