Rene Fichtmueller a20094755d feat(scraper): Flexoptix REST API sync robot + scheduler integration
Replaces the GraphQL/search-based Flexoptix scraper with a proper
Magento 2 REST API integration that delivers authoritative SKUs,
prices, stock levels and compatibility data.

New files:
- packages/scraper/src/robots/flexoptix-api-sync.ts
  Self-contained robot: auth → paginated fetch → normalize → DB write.
  Reads FLEXOPTIX_API_BASE_URL / _USERNAME / _PASSWORD from env.
  Returns { fetched, normalized, skipped, priceWrites, stockWrites }.
  No file intermediary — in-memory pipeline.

- scripts/import-flexoptix-catalog.ts
  One-shot CLI importer for the Pulso-generated JSONL (Codex handover).

- docs/FLEXOPTIX_CATALOG_IMPORT.md
  Runbook for manual import + per-SKU specifications enrichment.

Scheduler changes:
- Added sync:flexoptix-catalog queue + work() handler
- Scheduled every 2h at 0 */2 * * * (same cadence as legacy job)
- scrape:pricing:flexoptix kept as legacy GraphQL fallback

Also includes Codex-generated additions from this sprint:
- audiocodes-oem scraper, seed-batch35/36/37, db.ts improvements,
  sql/102 verification reconcile, README + package.json updates
2026-05-13 16:36:33 +02:00
..
2026-05-10 15:57:15 +02:00
2026-04-29 22:42:43 +02:00

TIP Agent Sync

This folder is the shared handoff area for Codex, Claude Code, and laptop sync workflows.

Rules:

  • Always write current work status here before ending a session.
  • Keep entries practical: what changed, what was deployed, what was not deployed, what is risky, and what should happen next.
  • Do not store secrets, tokens, passwords, private keys, cookies, or bearer tokens here.
  • Use Gitea origin as the common sync target.
  • Erik is a controller only for crawler work. Heavy crawling belongs on Proxmox or Pi workers.
  • TIPLLM is the only AI used for TIP crawler/robot planning and extraction feedback.
  • Robot/crawler experiences must also be written to the TIPLLM training pool in Gitea.

Suggested session closeout:

git status --short
date -u

Then update:

  • sync/CURRENT.md for the latest operational state.
  • A dated file under sync/history/ for anything substantial.