fix(ui): boot sobrevive a estado de abas corrompido (Firefox)

Erro relatado: 'can't access property "key", opened[want] is undefined'.
Causa: persistTabs gravava active = -1 quando findIndex não achava a aba
ativa (corrida em pagehide/fechamento); restoreTabs usava o índice cru →
opened[-1] undefined derrubava o boot inteiro.

- persistTabs: grava Math.max(0, index) — nunca negativo
- restoreTabs: clamp do índice salvo para [0, len-1]
- boot: try/catch em restoreTabs com fallback de rascunho novo — estado
  corrompido algum (JSON lixo, ids fantasmas, índices inválidos) não impede
  mais o app de abrir
- sw.js: CACHE bump para notas-shell-v3

Testado: {open:[{id:fantasma}],active:-1} e {active:5} com rascunho → boot
limpo, rascunho restaurado, sem toast de erro.
This commit is contained in:
lgcosta committed 2026-11-05 08:30:17 -03:00
1 parent 650229bdb4
commit 0d0482e4b6
2 files changed
+12 -4

No files matched your search

+1 -1
View File
@@ -1,7 +1,7 @@
/* Service Worker do Notas — caches versionados.
* BUMP de CACHE em todo deploy que mude shell/assets (o activate limpa os antigos).
*/
const CACHE = 'notas-shell-v2';
const CACHE = 'notas-shell-v3';
const SHELL = [
'/',
'/css/app.css',