1fbd756583
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.3 KiB
2.3 KiB
id, title, status, priority, created, completed, depends_on
| id | title | status | priority | created | completed | depends_on | |
|---|---|---|---|---|---|---|---|
| 0008 | Inspector editable — campos del schema + tags + extras | completed | high | 2026-04-30 | 2026-05-01 |
|
Objetivo
Refactor del Inspector (views_inspector) de read-only a editable. El usuario
edita los datos de un nodo y al pulsar Save se persisten en operations.db
con un solo UPDATE.
Bloques del nuevo Inspector
-
Identidad
name(InputText),type_ref(combo con tipos del proyecto),description(InputTextMultiline corto),status(combo: active/stale/corrupted/archived).
-
Fields del tipo (driven by 0005)
- Render automatico segun
EntitySpec.fields:string→ InputText.int→ InputInt.float→ InputDouble.bool→ Checkbox.date→ InputText con placeholderYYYY-MM-DD+ validacion.url→ InputText + boton "Open" que lanza el navegador.enum→ Combo convalues.
- Lee/escribe a
entities.metadata(JSON). Campos requeridos marcados con*.
- Render automatico segun
-
Extras (campos fuera del schema del tipo)
- Lista key-value, "+" para anadir. Tipo siempre string en v1.
- Permite que el usuario meta info ad-hoc sin tocar el schema.
-
Tags
- Chips con boton X para quitar. Input al final con autocomplete (lista de tags ya existentes en la BD via
SELECT DISTINCT json_each.value FROM entities, json_each(entities.tags)). - Enter o coma valida el chip.
- Chips con boton X para quitar. Input al final con autocomplete (lista de tags ya existentes en la BD via
-
Notes — sigue en su panel actual, pero anadir un boton "Open notes" en el Inspector que enfoca el panel Note.
Cambios en codigo
entity_ops.{h,cpp}:bool entity_update(db_path, id, name, type_ref, description, status, tags_json, metadata_json)— un solo UPDATE.bool entity_list_distinct_tags(db_path, vector<string>* out)para autocomplete.
views.cpp::views_inspector: reemplazo completo. Estado de edicion enAppStatepara que cerrar y reabrir conserve el draft hasta Save.- Save → reload del grafo (mismo flujo que toolbar add-node hoy).
Definicion de hecho
- Editar name, type_ref, description, status, tags, fields tipados y extras.
- Save persiste y el viewport refleja los cambios (label, color del tipo, etc.).
- Cancelar / cambiar de seleccion sin guardar muestra un confirm dialog.
- Tags se autocompletan con las existentes en la BD.