9042110ea2
Cinco issues que componen el plan: - 0026: sistema de jobs (infra, contrato wire) - 0027: tipo Webpage + cache de documentos - 0028: enricher fetch_webpage (MVP end-to-end) - 0028b: enrichers extract_domain / extract_links / extract_text_entities - 0029: variantes CDP (Chrome headless, screenshot) - 0030: macro "Deep enrich" + expand_domain Tambien anade los issues previos 0012-0025 que estaban untracked. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.9 KiB
1.9 KiB
id, title, status, priority, created, depends_on
| id | title | status | priority | created | depends_on | |
|---|---|---|---|---|---|---|
| 0029 | Enrichers via Chrome headless (CDP) — fetch_webpage_browser, fetch_screenshot | pending | medium | 2026-05-01 |
|
Objetivo
Variantes de los enrichers basicos que usan Chrome headless via CDP, para sitios con contenido renderizado por JavaScript (SPA, paginas con auth visual, etc.) o cuando se quiere capturar evidencia visual.
1. fetch_webpage_browser
applies_to: [Url, Webpage]
emits: [Domain]
relations: [BELONGS_TO]
params:
- { name: chrome_port, type: int, default: 9222 }
- { name: wait_after_load_ms, type: int, default: 1500 }
- Usa funciones del registry:
chrome_launch_go_browser— lanza Chrome en port (reusa si ya esta).cdp_connect_go_browsercdp_navigate_go_browsercdp_wait_load_go_browsercdp_get_html_go_browser— DOM post-JS.
- El run.py shell-out a un binario Go pequeno o llama estas funciones via un wrapper Python que invoca el Go function como subprocess.
- Decision pendiente: empaquetar las funciones Go en un binario CLI
cdp-fetcherque el run.py invoque, o reescribir la logica en Python conpychrome/playwright. Preferencia: binario Go para reusar las funciones del registry.
2. fetch_screenshot
applies_to: [Webpage, Url]
params:
- { name: full_page, type: bool, default: true }
cdp_screenshot_go_browser→ guardacache/<sha>.png.node_updates: anadescreenshot_patha metadata del Webpage.- No emite entidades nuevas.
Definicion de hecho
fetch_webpage_browserextrae correctamente DOM de una SPA (test: twitter.com, linkedin.com publico).fetch_screenshotproduce PNG legible en el cache.- Inspector del nodo Webpage muestra una preview del screenshot
cuando
screenshot_pathexiste (mejora UI opcional).
Out of scope
- Login flows / auth via CDP — fuera de v1.
- Adblock / fingerprint evasion — el user-agent default es suficiente.