a3b5a2cd80
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.7 KiB
2.7 KiB
id, title, status, priority, created, completed
| id | title | status | priority | created | completed |
|---|---|---|---|---|---|
| 0006 | Sistema de proyectos dentro de la app — subcarpetas + switcher | completed | high | 2026-04-30 | 2026-04-30 |
Objetivo
Cada "proyecto" es una subcarpeta junto al exe que contiene su propio
operations.db, types.yaml y graph_explorer.db (layouts). El usuario
crea proyectos, los nombra, y conmuta entre ellos sin reiniciar la app.
Esto es lo que va a permitir guardar muchos datos separados por caso/tema
sin acumularlos en un solo grafo.
Independiente del concepto de "project" del registry (projects/ raiz
del repo) — aqui es organizativo, dentro de la app desplegada.
Layout en disco (junto al exe)
graph_explorer.exe
graph_explorer.ini # estado global: ultimo proyecto abierto, recientes
projects/
default/
operations.db
types.yaml # copia editable; semilla = examples/types.yaml
graph_explorer.db # layouts de este proyecto
notes/ # opcional, .md sueltos
caso_aurgi/
operations.db
types.yaml
graph_explorer.db
osint_demo/
...
UI
- Menu "Project" en la menubar:
New...(input de nombre, valida slug, crea carpeta + semilla types.yaml + operations.db vacio con schema migrado).Open...(combo con los proyectos detectados en./projects/).Recent(lista los ultimos 5 desdegraph_explorer.ini).Reveal in explorer(abre la carpeta del proyecto activo).
- Title bar muestra
graph_explorer — <proyecto activo>. - Switch de proyecto: cierra BDs, limpia grafo + viewport, abre nuevas BDs, hace reload.
Cambios en codigo
main.cpp:- Resolver paths a traves de
g_active_projecten vez de./operations.dby./graph_explorer.dbdirectos. - Modo legacy: si arranca con
--input <path>o positional, no usa proyecto (compatibilidad con flujo actual).
- Resolver paths a traves de
app_statenuevo campostring active_project_dir.- Nueva fn
project_create(name)que escribe schema base de operations.db (entities/relations/...) — extraerlo de lo que ya hace el registry o copiar el DDL. graph_explorer.inilee/escribe viaapp_settings_*ya existente.
Migracion del flujo actual
- Al primer arranque sin
--input, si no existe./projects/, crear./projects/default/y mover./operations.db+./graph_explorer.dbahi (si existen). - Issues 0005/0007/0008 ya asumen este layout.
Definicion de hecho
- Crear, abrir y conmutar proyectos sin reiniciar.
- Cada proyecto tiene su
operations.db,types.yaml,graph_explorer.dbaislados. - "Recent" persiste entre sesiones via
graph_explorer.ini. - El layout (posiciones de nodos) es por-proyecto: cambiar de proyecto recupera las posiciones del nuevo, no las del anterior.