Files
graph_explorer/issues/completed/0035e-polish-and-tests.md
T
2026-05-04 14:25:40 +02:00

2.4 KiB

id, title, status, priority, created, parent, depends_on
id title status priority created parent depends_on
0035e Pulido del Group + tests cross-platform done medium 2026-05-03 0035
0035c
0035d

Objetivo

Cierre de la fase 1: el cuadrado del grupo es visualmente informativo (hereda iconografia del tipo mayoritario), el threshold se lee del manifest si esta declarado, y la suite de tests cubre los caminos nuevos en WSL y Windows.

Cambios

  1. Iconografia heredada: al construir el atlas / asignar visuales a un nodo Group, mirar los type_ref distintos de sus hijos. Si todos comparten un solo tipo, el cuadrado adopta el color y el icono de ese tipo (manteniendo shape=square para distinguirlo de un nodo individual). Si hay heterogeneidad, se queda con el visual genericamente Group (slate + ti-stack-2).
  2. Threshold desde manifest: el parser de enrichers/<id>/manifest.yaml ya lee campos top-level. Anadir soporte para auto_group_threshold: <int> y propagarlo al runtime del enricher (lo ve via env var _GROUP_THRESHOLD o argumento adicional, lo que sea menos invasivo).
  3. Tests pytest nuevos:
    • test_group_inherits_visual_from_homogeneous_children: crear Group con 5 Urls como hijos, verificar que su color/icono resuelve al de Url.
    • test_group_falls_back_to_generic_for_heterogeneous: Group con Url + Email, verificar que se queda con el visual genericamente Group.
    • test_manifest_auto_group_threshold_override: manifest con auto_group_threshold: 100, run con 80 resultados no agrupa (asumiendo default global 50, override a 100).
    • test_schema_migration_idempotent: BD sin columna group_id migra correctamente; segunda apertura no rompe.
  4. Validacion cross-platform: la suite completa pasa en WSL (32 + N nuevos) y en Windows (21 + N nuevos, mas los 11 saltados conocidos).

Acceptance criteria

  • Group con 5 Urls homogeneos: cuadrado con color/icono de Url.
  • Group con Url + Email mezclados: cuadrado slate generico.
  • Override de threshold via manifest funciona.
  • Migration idempotente: abrir BD ya migrada no genera warnings.
  • Tests verdes en ambos OS.

TBD

Branch issue/0035e-polish-and-tests, merge --no-ff con tests verdes en ambos OS.

Out of scope

  • Cascada (decision 6 — fase 2).
  • Aplicar grouping a extract_links, fetch_webpage, extract_text_entities (fase 2).
  • Promote/regroup desde tableview (fase 2).
  • Persistir flag expanded por grupo (fase 2).