Rene Fichtmueller
f64dbf7b6b
fix: add fscom targeted detail verification mode
2026-05-09 11:15:36 +02:00
Rene Fichtmueller
e73defe6bb
sync: update flexoptix final gap closure
2026-05-09 09:39:21 +02:00
Rene Fichtmueller
d588a20a54
sync: record magatama atlas fallback and lane registry fix
2026-05-09 09:38:22 +02:00
Rene Fichtmueller
549b4430df
fix: enrich flexoptix detail verification
2026-05-09 09:36:28 +02:00
Rene Fichtmueller
5522bb2152
fix: refresh price verification timestamps
2026-05-09 08:13:39 +02:00
Rene Fichtmueller
bba48d3e84
sync: record magatama atlas rematerialization fix
2026-05-09 08:02:54 +02:00
Rene Fichtmueller
43b7250180
fix: automate equivalence research review queue
2026-05-09 07:48:11 +02:00
Rene Fichtmueller
ef225c7dc5
fix: revalidate flexoptix fs prices and images
2026-05-09 05:13:37 +02:00
Rene Fichtmueller
fd29bee5cb
sync: record magatama dashboard cache and port detail fix
2026-05-09 04:02:36 +02:00
Rene Fichtmueller
8b42077081
sync: refresh cross-agent chat handoff
2026-05-07 11:52:19 +02:00
Rene Fichtmueller
72d61add47
sync: record custom runpod worker build prep
2026-05-07 11:04:22 +02:00
Rene Fichtmueller
2a3576135c
sync: record runpod managed endpoint root cause
2026-05-07 10:47:57 +02:00
Rene Fichtmueller
21b56ead81
sync: record runpod heartbeat and terminal truth
2026-05-07 10:06:40 +02:00
Rene Fichtmueller
01d0365fbf
sync: record live attack-path guidance fix
2026-05-07 06:40:04 +02:00
Rene Fichtmueller
61328b0607
sync: record lane-specific runpod adoption versioning
2026-05-07 01:36:36 +02:00
Rene Fichtmueller
a6278a5041
sync: record magatamallm local training verification
2026-05-07 01:16:25 +02:00
Rene Fichtmueller
a0ea4ccbae
sync: record magatama switchblade port intelligence fix
2026-05-07 00:56:59 +02:00
Rene Fichtmueller
57e20efe49
fix: NADDOD price extraction — read from LD+JSON offers.price
...
NADDOD uses LD+JSON for pricing (Astro/Shopify structure):
{"offers":{"price":"731.00","priceCurrency":"USD",...}}
Old regex (/US$\s*.../) never matched → all 132 price obs were lucky
text matches, not systematic. Now: parse all ld+json blocks first,
fall back to regex.
Also broaden sitemap URL regex to capture new-style URLs without .html:
/products/nvidia-networking/102612 (was being missed)
2026-05-06 23:55:55 +02:00
Rene Fichtmueller
1a7c928120
fix: FS.COM price extraction — use .no_tax/.price CSS selectors
...
FS.com changed their HTML structure; compound class names are gone.
Current layout (verified 2026-05-06):
<div class="no_tax">5,10 € ohne MwSt.</div> ← B2B net price (preferred)
<div class="price">6,07 €</div> ← gross fallback
<div class="standard_price">6,07 €</div> ← gross fallback
Old selectors ([class*='price-value'] etc.) matched nothing → all prices
stored as €? null. New .no_tax first gives us the correct net/B2B price.
2026-05-06 23:45:30 +02:00
Rene Fichtmueller
a1a525b332
chore: sync API routes, dashboard hot-topics, MCP server, scraper package, scripts
2026-05-06 23:39:04 +02:00
Rene Fichtmueller
a8529d166b
fix: resolve TS build errors — export backfillImages, add writeRobotExperience
...
- backfill-images.ts: rename main() → export backfillImages() to match index.ts import
- training-data-writer.ts: add writeRobotExperience export; remove hardcoded Gitea token
- fiber24.ts/fibermall.ts: scraper improvements from previous sessions
- image-downloader.ts/spec-updater.ts: utility updates
- robots/: add verification robots module
2026-05-06 23:39:00 +02:00
Rene Fichtmueller
5a77fce9f3
feat: NADDOD cursor rotation — covers all 7300+ URLs across 12 runs (24h)
...
Previously always sliced first 600 URLs from sitemap, missing 6700+ products.
Now stores offset in naddod-cursor.json, advances by 600 per run with wrap-around.
Full sitemap coverage in ~13 runs (26h). Also adds TIP_STORAGE_DIR env support.
2026-05-06 23:26:58 +02:00
Rene Fichtmueller
efb0c24a19
feat: rewrite ATGBICS scraper to use Shopify products.json API
...
Static HTML collection pages return wrong results (all redirect to same 9 products).
Switch to /collections/{handle}/products.json?limit=250&page=N API which is:
- Reliable JSON (no HTML parsing)
- Correct per-collection product lists
- Clean pagination (stop at < limit results)
- Covers 11 key transceiver collections (1G, 10G, 25G, 40G, 100G, 400G)
2026-05-06 23:17:46 +02:00
Rene Fichtmueller
5c882c3a46
fix: refresh stale price observations after 7 days + fix ATGBICS pagination wrap-around
...
- upsertPriceObservation: insert new observation if last one is >7 days old,
even when price (content_hash) hasn't changed — keeps timeseries data fresh
- ATGBICS: detect Shopify catalog wrap-around by tracking per-category seen URLs;
stop pagination when all products on a page were already seen in a prior page
- ATGBICS: improve hasNextPage to match &page=N anchored in href params
2026-05-06 23:11:15 +02:00
Rene Fichtmueller
d01039734a
sync: record tip lane detangling and disk-safe refresh
2026-05-06 22:53:41 +02:00
Rene Fichtmueller
e6f98c89bd
sync: record magatama runpod adoption and lane truth
2026-05-06 20:23:53 +02:00
Rene Fichtmueller
b9a45f9f23
sync: record lane-specific training pools and url runpod mode
2026-05-06 17:55:20 +02:00
Rene Fichtmueller
830ab57c3c
sync: record magatama ui cache runpod tooltip changelog fix
2026-05-06 17:24:54 +02:00
Rene Fichtmueller
77a4aab592
sync: record magatama training count source fix
2026-05-06 16:27:14 +02:00
Rene Fichtmueller
9bc84a89ee
sync: record runpod serverless materialization check
2026-05-06 13:07:26 +02:00
Rene Fichtmueller
b5d9b4df03
sync: record runpod status truthfulness hardening
2026-05-06 12:18:17 +02:00
Rene Fichtmueller
364cd392c7
sync: record magatama runpod attack-paths atlas exposure fixes
2026-05-06 12:05:15 +02:00
Rene Fichtmueller
ce37d4155a
sync: record magatama training corpus dedupe
2026-05-06 10:46:56 +02:00
Rene Fichtmueller
bb75a5526b
sync: record magatama coverage-gap hardening and training fix
2026-05-06 10:26:15 +02:00
Rene Fichtmueller
08a732e9cc
sync: record magatama zero-open-finding remediation
2026-05-06 08:38:07 +02:00
Rene Fichtmueller
14ad31da46
sync: refresh complete chat handoff with magatama state
2026-04-29 23:06:01 +02:00
Rene Fichtmueller
9a83f66ee9
sync: add complete Codex chat handoff
2026-04-29 23:00:30 +02:00
Rene Fichtmueller
0624b40e64
sync: confirm Codex handoff state
2026-04-29 22:57:06 +02:00
Rene Fichtmueller
470609ed40
sync: document fo-blog v7 TIP handoff
2026-04-29 22:56:31 +02:00
Rene Fichtmueller
e4d4a0c43e
docs: add full codex session sync handoff
2026-04-29 22:52:56 +02:00
Rene Fichtmueller
8e7c5aa6fd
docs: link llm-gateway sync handoff
2026-04-29 22:51:07 +02:00
Rene Fichtmueller
6c42ca7288
docs: add shared agent sync handoff
2026-04-29 22:42:43 +02:00
Rene Fichtmueller
199f36be48
fix(scraper): auto-create pg-boss queues before scheduling + worker/schedule order
...
- scheduler: patch boss.schedule() to call createQueue() first (idempotent),
fixing FK constraint errors after DB reset — no need to touch 277 call sites
- index: registerWorkers() before registerSchedules() since boss.work() must
register handlers before schedules fire
- dashboard: fix switchBlogLlm() to use api() helper (adds Bearer auth token)
instead of raw fetch() which was returning 401 Unauthorized
2026-04-29 16:14:25 +02:00
Rene Fichtmueller
270bd12382
feat(dashboard): clickable LLM model selector — switch blog engine at runtime
...
- client.ts: BLOG_LLM_PROVIDER/OLLAMA_LLM_MODEL as mutable state (setLlmProvider/
getLlmProvider). Reads blog-llm-settings.json on startup for persistence.
All generate()/checkHealth()/chat() calls use dynamic provider() + llmModel()
— no restart required for switches.
- blog.ts: POST /api/blog/llm/switch endpoint — validates provider, calls
setLlmProvider(), writes settings file, returns previous+active state.
- index.html: all 4 model cards now clickable (cursor:pointer, hover fade).
switchBlogLlm(provider, model) — disables cards during switch, shows
green/red feedback toast, auto-refreshes status. SSH instruction removed.
2026-04-29 01:15:45 +02:00
Rene Fichtmueller
39a63e0401
fix(scheduler): vendor discovery crawlers daily 24/7 (not weekly)
2026-04-28 23:59:00 +02:00
Rene Fichtmueller
297dc46f2b
feat(crawler-llm): intelligent vendor discovery pipeline + TIPLLM training data
...
- spec-validator.ts: physical plausibility checks (form factor↔speed matrix,
wavelength↔fiber consistency, IEEE standard cross-check, reach limits).
Outputs tier (high/medium/low/rejected) + confidence_delta for LLM scores.
- training-data-writer.ts: converts validated crawler extractions to SFT JSONL
training pairs (spec_qa / crawl_reasoning / validation / discovery types).
Auto-commits and pushes to Gitea tip-training-data repo in batches of 50.
- vendor-discovery-crawler.ts: PlaywrightCrawler pipeline — catalog URL →
LLM extraction (scrapeWithLLM) → spec validation → DB persist +
Gitea SFT training pairs. 8 vendor configs registered
(Cisco/Juniper/Arista/FS.com/Flexoptix/Nokia/Huawei/II-VI).
- scheduler.ts: 8 weekly discover:vendor:* jobs added (Sun 20:00–Mon 10:00 UTC).
Total registered jobs: 102.
- Gitea repo created: gitea.context-x.org/rene/tip-training-data
2026-04-28 23:46:34 +02:00
Rene Fichtmueller
2466cc5d82
feat(scraper): batch 37 OEM seeds — Extreme (Legacy), Nortel, 3Com, Avaya
...
Added 4 legacy OEM transceiver catalog seed scrapers (72 PIDs total):
- extreme-legacy-oem.ts: 18 PIDs — Summit/BlackDiamond 10052H/10318/10325 family, Legacy
- nortel-legacy-oem.ts: 18 PIDs — Passport/BayStack AA1419xxx + XFP, incl. GBIC, Legacy
- 3com-legacy-oem.ts: 18 PIDs — Switch 5500/7750 3C17770/3CSFP9x + XFP/GBIC, Legacy
- avaya-legacy-oem.ts: 18 PIDs — ERS/VSP AA1419xxx + 700480xxx QSFP28, Legacy
Scheduler: wired at 05:30/05:45/06:00/06:15 UTC. All 72 PIDs seeded clean.
2026-04-28 23:31:13 +02:00
Rene Fichtmueller
e684d3d1c3
feat(scraper): batch 36 OEM seeds — EnGenius, Palo Alto Networks, Brocade, Foundry Networks
...
Added 4 new OEM transceiver catalog seed scrapers (72 PIDs total):
- engenius-oem.ts: 18 PIDs — ECS switch series 1G–100G SFP/SFP+/SFP28/QSFP28 + DAC/AOC
- paloalto-networks-oem.ts: 18 PIDs — PA-3200/5200/7000/5450 NGFW SFP/SFP+/SFP28/QSFP28 + DAC
- brocade-legacy-oem.ts: 18 PIDs — ICX/FCX/VDX/MLX E1MG/10G-SFPP family, market_status=Legacy
- foundry-networks-oem.ts: 18 PIDs — FastIron/NetIron FDR- series incl. XFP, market_status=Legacy
Scheduler: wired at 04:30/04:45/05:00/05:15 UTC. All 72 PIDs seeded clean.
2026-04-28 23:28:10 +02:00
Rene Fichtmueller
e9b8cb95db
feat(scraper): batch 35 OEM seeds — Sierra Wireless, Senao, EMCORE, Reflex Photonics
...
Added 4 new OEM transceiver catalog seed scrapers (75 PIDs total):
- sierra-wireless-oem.ts: 18 PIDs — RV55/RV50X/LX60 SFP/SFP+/QSFP+ incl. Industrial -40~85°C
- senao-oem.ts: 20 PIDs — EnGenius ECS switches 1G–100G SFP/SFP+/SFP28/QSFP28 + DAC
- emcore-oem.ts: 20 PIDs — ORION coherent ZR/ZR+/CFP2-DCO 400G + MIL-grade avionics
- reflex-photonics-oem.ts: 17 PIDs — LightABLE MIL-STD-810H + RAD-HARD space-grade
Scheduler: wired at 03:30/03:45/04:00/04:15 UTC. All 75 PIDs seeded to TIP DB.
2026-04-28 23:24:53 +02:00
Rene Fichtmueller
32d3ded169
feat: add Finisar, Acacia, Inphi OEM scrapers (batch 34)
...
- finisar-oem: 17 PIDs (FTLX/FTLC historical BoM series, 1G-100G, widely referenced)
- acacia-oem: 14 PIDs (AC400/AC1200 coherent CFP2-DCO/QSFP-DD/OSFP up to 1.2T)
- inphi-oem: 13 PIDs (ColorZ/COLORZ-II DWDM QSFP28/QSFP-DD + 800G OSFP)
- scheduler: wired all 3 at 02:45/03:00/03:15 UTC
2026-04-28 23:14:06 +02:00