docs(issues): plan enrichers asincronos + recoleccion web (0026-0030)
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>
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
---
|
||||
id: 0029
|
||||
title: Enrichers via Chrome headless (CDP) — fetch_webpage_browser, fetch_screenshot
|
||||
status: pending
|
||||
priority: medium
|
||||
created: 2026-05-01
|
||||
depends_on: [0028]
|
||||
---
|
||||
|
||||
## 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_browser`
|
||||
- `cdp_navigate_go_browser`
|
||||
- `cdp_wait_load_go_browser`
|
||||
- `cdp_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-fetcher` que el run.py invoque, o reescribir la logica en Python
|
||||
con `pychrome` / `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` → guarda `cache/<sha>.png`.
|
||||
- `node_updates`: anade `screenshot_path` a metadata del Webpage.
|
||||
- No emite entidades nuevas.
|
||||
|
||||
## Definicion de hecho
|
||||
|
||||
- `fetch_webpage_browser` extrae correctamente DOM de una SPA (test:
|
||||
twitter.com, linkedin.com publico).
|
||||
- `fetch_screenshot` produce PNG legible en el cache.
|
||||
- Inspector del nodo Webpage muestra una preview del screenshot
|
||||
cuando `screenshot_path` existe (mejora UI opcional).
|
||||
|
||||
## Out of scope
|
||||
|
||||
- Login flows / auth via CDP — fuera de v1.
|
||||
- Adblock / fingerprint evasion — el user-agent default es suficiente.
|
||||
Reference in New Issue
Block a user