fix: el peritaje ya no presenta un fallo de consulta como rastro completo
Detectado probando contra el nodo real: un 503 del backend se mostraba como 'Rastro completo' y contaba la rama como terminal, porque get() devolvía mockData ante cualquier error y findSpendingTx remataba con .catch(()=>[]). Un error de red quedaba así indistinguible de 'output sin gastar' — la conclusión más accionable de un informe pericial, afirmada sobre una consulta que nunca respondió. - getStrict en useApi propaga el fallo; get se mantiene igual para el resto - el motor registra los fallos en trace.queryErrors y no los cuenta como fondos sin gastar - el informe los lista aparte y abre las conclusiones avisando del alcance incompleto (UI, JSON y MD) - la UI muestra el detalle del fallo en vez del falso rastro completo
This commit is contained in:
@@ -10,6 +10,34 @@ y el versionado sigue [Versionado Semántico](https://semver.org/lang/es/):
|
||||
- **MENOR** — características nuevas que no rompen lo anterior
|
||||
- **PARCHE** — arreglos de errores
|
||||
|
||||
---
|
||||
## [1.10.1] — 2026-07-27
|
||||
### Corregido
|
||||
- **Peritaje forense: un fallo de consulta ya no se presenta como "rastro
|
||||
completo".** Detectado probando contra el nodo real: cuando el backend
|
||||
devolvía un 503 o agotaba el timeout, la app lo mostraba como
|
||||
*"✓ Rastro completo — no quedan ramas por explorar"* y contaba esa rama como
|
||||
terminal. La causa eran dos capturas silenciosas encadenadas — `get` devolvía
|
||||
`mockData` ante cualquier error y `findSpendingTx` remataba con
|
||||
`.catch(()=>[])` —, así que `[]` por error era indistinguible de `[]` porque
|
||||
el output sigue sin gastar. En un informe pericial eso convertía una consulta
|
||||
fallida en la conclusión más accionable del documento: *fondos localizados
|
||||
sin gastar*.
|
||||
- Nuevo `getStrict` en `useApi`: propaga el fallo en vez de disfrazarlo.
|
||||
`get` no cambia, así que el resto del dashboard mantiene su comportamiento.
|
||||
- El motor (`findSpendingTx`, `advanceForensicHop`, `initForensicTrace`)
|
||||
distingue "no se pudo consultar" de "no hay gasto" y registra los fallos en
|
||||
`trace.queryErrors`.
|
||||
- El informe excluye las ramas con consulta fallida de "fondos localizados
|
||||
sin gastar", las lista en su propia sección y abre las conclusiones
|
||||
avisando de que el rastreo está incompleto. Incluido en los export JSON y MD.
|
||||
- La UI muestra contador de consultas fallidas y sustituye el falso
|
||||
"rastro completo" por un aviso con el detalle de qué falló.
|
||||
- Peritaje: el error al obtener la transacción de origen ya no culpa siempre al
|
||||
txid — distingue un txid inexistente de un fallo del nodo.
|
||||
- Peritaje: el botón "Generar informe" explica por qué está deshabilitado en
|
||||
vez de quedarse inerte sin dar motivo.
|
||||
|
||||
---
|
||||
## [1.10.0] — 2026-07-16
|
||||
### Añadido
|
||||
|
||||
Reference in New Issue
Block a user