---
id: 0009
title: Filtro por tag + busqueda FTS5 en toolbar
status: completed
priority: medium
created: 2026-04-30
completed: 2026-05-01
depends_on: [0008]
---

## Objetivo

Buscar y filtrar entidades por nombre/tag/description directamente desde la
toolbar, aprovechando el `entities_fts` que ya existe en `operations.db`.

## UI

- Toolbar: input de busqueda + chip-list de tags activas como filtro.
- Mientras se escribe, dropdown con resultados (max 20). Click en resultado selecciona/centra el nodo.
- Click en un tag (en Inspector o en el dropdown) lo anade como chip de filtro.
- Modos de filtro:
  - **Highlight**: nodos no-coincidentes se atenuan (alpha bajado), pero siguen presentes.
  - **Hide**: nodos no-coincidentes se ocultan del viewport.
  - Toggle en la toolbar.

## Cambios en codigo

- Nueva fn `entity_search_fts(db_path, query, limit, vector<EntityHit>* out)` con resultados ordenados por rank.
- Filtro vive en `AppState`: vector de tags + query string + modo (highlight/hide).
- En `graph_viewport.cpp` o donde aplique: aplicar mascara de visibilidad/alpha segun el filtro activo (sin tocar la BD).
- Reset filter desde la toolbar.

## Definicion de hecho

- FTS sobre name/description/tags/domain funciona y los resultados centran el viewport.
- Multiples chips de tag combinan con AND.
- Modo highlight y modo hide funcionan sin recargar el grafo.
- Limpiar filtro restaura visibilidad completa.
