- .claude/agents/fn-analizador/SKILL.md - .claude/agents/fn-constructor/SKILL.md - .claude/agents/fn-executor/SKILL.md - .claude/agents/fn-mejorador/SKILL.md - .claude/agents/fn-orquestador/SKILL.md - .claude/agents/fn-recopilador/SKILL.md - .claude/commands/app.md - .claude/commands/compile.md - .claude/commands/cpp-app.md - .claude/commands/create_functions.md - ... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4.5 KiB
id, title, status, type, domain, scope, priority, depends, blocks, related, created, updated, tags
| id | title | status | type | domain | scope | priority | depends | blocks | related | created | updated | tags | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0126 | pipeline_launcher: aplicar migracion 003_logs a operations.db | completado | bugfix |
|
app | baja |
|
2026-05-19 | 2026-05-27 |
|
0126 — pipeline_launcher migracion 003_logs
Origen: detectado lateral por fn-recopilador design-e2e apps/pipeline_launcher en 0121a.
Problema
apps/pipeline_launcher/operations.db tiene migraciones 001+002 aplicadas pero falta 003_logs (definida en fn_operations/migrations/003_logs.sql). La tabla logs no existe → cualquier feature futuro de logging in-app falla silencioso.
Investigacion necesaria: por que no aplico? Probable que pipeline_launcher use version vieja del codigo fn_operations o tenga su propio applier que no lee la migracion 003.
Decision
- Diagnosticar por que 003 no aplico (busca
applyMigrationsen codigo de pipeline_launcher o si usa la libreriafn_operations). - Aplicar 003 a la BD existente preservando datos.
- Si pipeline_launcher tiene applier custom, hacerlo consumir las migraciones del registry padre via
embed.FS.
Tareas
- Inspeccionar
apps/pipeline_launcher/{main.go, db.go, store.go}para localizar applier. - Aplicar
003_logs.sqlmanualmente:sqlite3 apps/pipeline_launcher/operations.db < fn_operations/migrations/003_logs.sql. - Si custom applier: refactor para consumir migraciones del padre.
- Verificar con
PRAGMA table_info(logs);que la tabla existe. - Actualizar propuesta 0121a
pipeline_launcher.yamlremoviendo checkops_schema_complete(ya no aplica).
Acceptance
sqlite3 apps/pipeline_launcher/operations.db "PRAGMA table_info(logs);"devuelve columnas esperadas.- Reaplicar 003 sobre BD ya migrada NO falla (idempotente —
CREATE TABLE IF NOT EXISTS). - Tests de pipeline_launcher pasan (si existen).
DoD
- Donde: sqlite3 introspeccion + log de la app si tiene.
- Latencia: invisible al usuario.
- Onboarding: "Si una app tiene operations.db, las migraciones del registry padre se aplican al arrancar — verificar con
PRAGMA table_info."
Resolucion (2026-05-27)
Diagnostico (desde aurgi-pc; BD afectada vive en home-wsl):
apps/pipeline_launcherimportafn-registry/fn_operationsy abre la BD viaops.Open()(verapps/pipeline_launcher/app/model.go:44).fn_operations.Open(fn_operations/db.go:35) llama amigrate()que delega enApplyVersionedMigrations(fn_operations/migrate.go:17).ApplyVersionedMigrations(functions/infra/sqlite_apply_versioned_migrations.go) leeschema_migrations, ordena por version numerica y aplica las pendientes en transaccion. NO existe applier custom en pipeline_launcher.
Conclusion: el codigo es correcto. La BD afectada quedo en version=2 porque pipeline_launcher no se ha vuelto a abrir desde que se anadieron 003-006 al registry padre. En la proxima ejecucion en home-wsl, ops.Open() aplicara 003_logs, 004_e2e_tests, 005_e2e_runs, 006_task_runs automaticamente.
Verificacion del comportamiento: TestMigrations en fn_operations/operations_test.go pasa, y fn ops sobre BD fresca recientemente compilada incluye logs en schema_migrations (versiones 1..5 — la stale del template de fn ops init es separado, no bloquea pipeline_launcher porque este usa ops.Open directo, no el template).
Acciones tomadas:
- Removido el check
ops_schema_completededev/proposals_e2e_checks_0121/pipeline_launcher.yaml(queda obsoleto al ser auto-resuelto porApplyVersionedMigrations).ops_auditsigue cubriendo la integridad de schema/datos. - Clonado
apps/pipeline_launcherdesde Gitea en aurgi-pc para la investigacion;pc_locationspasa demissingaactivetrasfn syncfuturo.
Pendiente fuera de scope:
apps/pipeline_launcher/go.modtienereplace fn-registry => $HOME/fn_registryhardcoded — el build solo funciona en home-wsl. Issue aparte si se quiere cross-PC build.fn_operations/project_template/operations.dbtiene migraciones aplicadas hasta v5, falta v6. Stale template — issue aparte.
Acceptance:
- Tabla
logsse creara automaticamente al reabrir la app en home-wsl (verificable consqlite3 apps/pipeline_launcher/operations.db "PRAGMA table_info(logs);"tras el primer lanzamiento). - Reaplicar 003 es idempotente: tracking por version en
schema_migrationssalta versiones ya aplicadas. - pipeline_launcher no tiene tests propios; los tests de
fn_operationscubren la logica de migracion.