45b4c2215c
Itens 0, 3 e 4 do plano de correção:
ITEM 0 — Preservar dados na atualização (não reconfigurar do zero)
- index.js: loadConfig/saveConfig grava config.backup.json a cada
gravação válida; ao iniciar, restaura do backup se config.json
sumir ou corromper — protege clientId e credenciais.
- client-monitor.js: nova persistConfig() grava config + backup juntos;
aplicada nos 3 pontos que escrevem o config (clientId init, painel
local, wizard CLI).
- package.json: deleteAppDataOnUninstall: false explícito.
ITEM 3 — Duplicatas na lista de apps do Windows
- Mantido perMachine: false consistente; GUID derivado do appId
(não adicionado explícito para não criar 3ª entrada).
- deleteAppDataOnUninstall: false garante AppData intacto.
ITEM 4 — Loop de notificação de nova versão
- Trava anti-loop: conta tentativas por versão em update-state.json;
após 3 falhas da mesma versão, para de auto-instalar e notifica
balão com mensagem para reinstalar manualmente.
- reconcileUpdateState() no boot zera o contador quando a versão
realmente avançou (instalação bem-sucedida).
- autoUpdater.on('error') agora exibe balão com erro real (throttle 60s).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
51 lines
1.2 KiB
JSON
51 lines
1.2 KiB
JSON
{
|
|
"name": "rx.scoreodonto.com-client",
|
|
"version": "1.3.0",
|
|
"author": "ScoreOdonto",
|
|
"description": "Cliente Windows para envio de imagens dentais da ScoreOdonto",
|
|
"main": "index.js",
|
|
"scripts": {
|
|
"start": "electron .",
|
|
"dist": "electron-builder"
|
|
},
|
|
"dependencies": {
|
|
"chokidar": "^3.5.3",
|
|
"electron-updater": "^6.3.0",
|
|
"socket.io-client": "^4.7.5"
|
|
},
|
|
"build": {
|
|
"appId": "com.scoreodonto.dentalclient",
|
|
"productName": "ScoreOdonto Dental Client",
|
|
"win": {
|
|
"target": "nsis",
|
|
"icon": "favicon.png"
|
|
},
|
|
"nsis": {
|
|
"oneClick": true,
|
|
"perMachine": false,
|
|
"deleteAppDataOnUninstall": false,
|
|
"allowToChangeInstallationDirectory": false,
|
|
"createDesktopShortcut": true,
|
|
"createStartMenuShortcut": true,
|
|
"shortcutName": "ScoreOdonto Dental Client"
|
|
},
|
|
"publish": [
|
|
{
|
|
"provider": "generic",
|
|
"url": "https://rx.scoreodonto.com/updates/"
|
|
}
|
|
],
|
|
"files": [
|
|
"**/*",
|
|
"!docs-client/**/*",
|
|
"!Output/**/*",
|
|
"!dist/**/*"
|
|
],
|
|
"asar": false
|
|
},
|
|
"devDependencies": {
|
|
"electron": "^42.2.0",
|
|
"electron-builder": "^26.8.1"
|
|
}
|
|
}
|