Dashboard fn-registry Apps con 10 cards: KPIs por lenguaje, dominio,
framework, dependencias y catálogo completo. Cards del Overview
ampliadas a grid de 24 columnas con tamaños más legibles.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Script Python que crea un dashboard en Metabase con 15 cards: KPIs
escalares, distribucion por lenguaje/dominio/kind/pureza, ranking de
funciones mas usadas y complejas, cobertura de tests y tabla cruzada.
Agrega regla apps_vs_functions que establece que codigo reutilizable va
en functions/ y codigo especifico/hardcodeado va en apps/.
Agrega soporte completo para indexar aplicaciones del directorio apps/.
Cada app tiene un descriptor app.md con frontmatter YAML que el indexer
recoge automaticamente. Incluye migracion 004, modelo App, ParseAppMD,
ValidateApp, store CRUD con FTS5, y soporte en fn list/search/show.
Crea descriptores app.md para docker_tui, pipeline_launcher y metabase_registry.
Refactoriza la ejecucion de funciones Python en fn run. Extrae la logica
a pyrunner.go con soporte para importar dependencias del registry y
ejecutar con el venv del proyecto. Agrega WalCheckpoint en db.go para
que lectores externos vean datos actualizados tras fn index.
Añadidos patrones recursivos para Python (__pycache__, .pyc, .venv),
Node (node_modules), y secrets (.env, .env.*) en cualquier subdirectorio.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Documentación de fn run para todos los lenguajes, nueva ubicación de tipos Go,
sección de uso por agentes. Añadidas funciones Bash del registry (shell, infra,
core, pipelines).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Nueva función metabase_setup para setup inicial via API. Fix list_databases
que no extraía data del response wrapper. Pipeline init_metabase soporta
--mb-volumes para montar SQLite como volumen con fix de permisos automático.
Añadido .env a gitignore.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Nuevo comando que despacha automáticamente según lenguaje: Go pipelines con
go run, Go functions con go test/vet, Python con venv y -m para imports
relativos, Bash directo, TypeScript con tsx del frontend. Resolución por
nombre con desambiguación. Añadido GetFunctionsByName al store y tsx al frontend.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Result[T] y Option[T] de core no son accesibles desde otros paquetes sin import.
Cambiado a (T, error) y (T, bool) siguiendo la regla de tipos nativos en firmas.
Añadidas dependencias bubbletea/bubbles/lipgloss al go.mod raíz para que tui compile.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Los archivos .go de tipos ahora viven junto a las funciones en functions/{domain}/
(mismo paquete Go), resolviendo errores de compilación por tipos no encontrados
(Option, Pair, Result, etc.). Los .md de metadata permanecen en types/{domain}/
con file_path actualizado a functions/. Se elimina types.go duplicado de infra.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Añade módulo Python con funciones para la API de Metabase en dominio infra.
Incluye cliente HTTP, auth, y CRUD de cards, dashboards y users.
Proyecto gestionado con uv (pyproject.toml).
Añade funciones Go stub para la API de Metabase en dominio infra:
auth, CRUD de cards, dashboards y users, execute_query y execute_card.
Incluye tipo MetabaseClient y helper HTTP compartido.
Todas las funciones son impuras con stubs not-implemented.
Añade campos documentation, notes y code a functions y types.
El parser extrae el contenido del .md y el código fuente del archivo
referenciado en file_path. El indexer los almacena en SQLite y los
incluye en FTS5 para búsqueda sobre código y documentación.
Nueva migración 003_documentation.sql para añadir las columnas.
Cambia patrón de /operations.db (solo raíz) a **/operations.db para ignorar los archivos de datos vivos en cualquier app. La template en fn_operations/project_template/ sigue trackeada por estar ya en el índice.
Añade tag 'launcher' a init_metabase para que aparezca en la TUI. Elimina tag 'launcher' de pipeline_launcher ya que es una TUI interactiva, no un subproceso lanzable.
Parsea flags de -help de cada pipeline para mostrar formulario de argumentos antes de ejecutar. Filtra pipelines por tag 'launcher'. Corrige selección en historial delegando enter al list antes de leer item.
Simplifica CLAUDE.md eliminando contenido redundante y extrae las reglas operativas a archivos independientes en .claude/rules/ con un INDEX.md. Cada regla es atómica y referenciable.
Elimina operations.db de docker_tui (no lo usaba) y corrige pipeline_launcher para que resuelva operations.db en su propia carpeta (apps/pipeline_launcher/) en vez de la raíz del registro.
Añade sistema de proposals al registry, executions/assertions con bucle
reactivo a fn_operations, pipelines init_metabase y pipeline_launcher TUI,
funciones docker network, y reorganiza apps en carpeta apps/.
Documenta la nueva estructura apps/ para aplicaciones ejecutables,
el sistema de proposals, executions/assertions, motor de evaluación SQL,
bucle reactivo (EJECUTAR→EVALUAR→REACCIONAR→PROPONER) y CLI completo
para fn ops assertion/execution y fn proposal.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Separa aplicaciones ejecutables (docker_tui, pipeline_launcher) de la
librería fn_operations. La carpeta apps/ contiene módulos Go independientes,
fn_operations/ queda como librería pura de models/store/operations.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
TUI fullscreen con dos tabs: Pipelines (lista filtrable del registry,
lanzamiento como subproceso, registro automático en operations.db) y
History (historial de ejecuciones con status, duración y detalles).
Incluye launcher.sh en la raíz para ejecución rápida.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Pipeline ejecutable que orquesta: crear red Docker, pull de imágenes,
iniciar Postgres con volume persistente, health check con retry
exponencial (pg_isready), e iniciar Metabase conectado via red interna.
Configurable con flags: --project, --metabase-port, --pg-user, etc.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Funciones para crear y eliminar redes Docker. DockerCreateNetwork
usa bridge como driver por defecto. Necesarias para pipelines que
orquestan múltiples contenedores en red compartida.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Añade Execution, Assertion, AssertionResult al paquete fn_operations.
Motor de evaluación de assertions con reescritura SQL automática.
Bucle reactivo: ExecuteAndReact evalúa assertions y cambia status de
entities (corrupted/stale) + auto-crea proposals en registry.
CLI fn ops: assertion (add/list/show/delete/eval) y execution (add/list/show).
Migración 002_executions_assertions.sql con FTS para assertions.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Añade sistema de proposals al registry: modelos (ProposalKind, ProposalStatus),
CRUD completo (Insert/Get/Update/Delete/List/Search con FTS), validación,
migración 002_proposals.sql y subcomando CLI fn proposal (add/list/show/update).
Motor de migraciones con embed.FS reemplaza schema estático.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Comando check compara versiones locales vs registry y marca outdated.
Comando update re-snapshottea por ID o --all, muestra diff de definition
y description. Requiere registry accesible via FN_REGISTRY_ROOT.
Añade UpdateTypeSnapshot al store, CheckSnapshots para comparar snapshots
locales vs registry (up_to_date/outdated/missing), y UpdateSnapshot para
re-snapshot con retorno de old/new para diffing.
Cada vista expone HandleBack() bool que retrocede un nivel interno (logs ->
lista) o indica que esta en estado base. El model principal intercepta q/0/esc
y delega a HandleBack: si retorna true, sale de la TUI; si false, la vista
retrocedio internamente. Elimina manejo duplicado de esc/q/0 en sub-estados.
TUI fullscreen con 5 vistas: Containers (start/stop/restart/logs),
Images (list/remove), Volumes (list/remove), Networks (list/remove),
Compose (up/down/logs). Usa DevFactory (tui, shell, core). Navegacion
por tabs, filtrado en containers/images, scroll en logs.
Incluye operations.db con entities y relations del proyecto.
Subcomando ops integrado en el CLI fn. Soporta CRUD de entities con
snapshot automatico de tipos, CRUD de relations con validacion de ciclos,
dump ASCII del grafo, y listado de tipos snapshotted. Variable de entorno
FN_REGISTRY_ROOT para acceder al registry desde cualquier directorio.
Paquete Go completo con modelos (Entity, Relation, RelationInput, TypeSnapshot),
DB SQLite con WAL + FTS5 en entities, CRUD para las 4 tablas, validacion de
integridad, deteccion de ciclos solo en relaciones causales (via != ''), y
operaciones de alto nivel con snapshot automatico de tipos del registry.
9 tests, todos pasan.
Tipo cmd_result (product: Stdout, Stderr, ExitCode). Funciones: Run,
RunWithTimeout, RunShell, RunShellTimeout, RunPipe (impuras) y Which (pura).
Stubs que documentan devfactory/shell para el registry.