fix(release): stop shipping native modules built for the wrong runtime
Some checks failed
deploy-site / deploy (push) Failing after 14m16s

The released installer could not start: it carried a better-sqlite3 build for the
host Node runtime instead of Electron, so the app died immediately with a module
version mismatch when it opened its database.

Packaging now proves the Electron build of every runtime-sensitive native module
before an installer or archive exists, and installers are produced only from that
verified tree, so the mistake cannot pass silently. The release pipelines run the
same check.

The default local model also pointed at a retired model: a *.gguf name that
Ollama cannot serve, while the settings, onboarding, and guide screens
recommended an older model. All of them now use the model the service code
already preferred.
This commit is contained in:
Yun Chan 2026-09-18 15:45:03 +09:00
parent 0fbbbc1756
commit 1af3cf75c7
42 changed files with 473 additions and 83 deletions

View file

@ -1,5 +1,24 @@
# D3RO-VOICE 프로젝트 현황
## v1.3.3 — 배포본 시작 실패(네이티브 ABI) + gemma4 기본값 (2026-09-18) 🛠️
배포한 1.3.2 설치본이 **시작 즉시 죽었다**: `NODE_MODULE_VERSION 131 ... requires 130`.
- 원인: 로컬에서 `npm install`(ffmpeg/tar)을 돌리면서 `better-sqlite3`가 **Node ABI(131)**로 재빌드됐고,
패키징이 네이티브 재빌드를 건너뛰어(npmRebuild=false) 그 모듈이 설치본에 들어갔다. 또 그 설치는
예전 경로(`Programs\@d3rodesktop`)를 덮어써 1.0.0을 망가뜨렸다.
- 대책: `scripts/ci/verify-native-abi.mjs`(패키징된 모듈이 Electron ABI인지 호스트 Node 로드 거부로
판별) + `fix-native-abi.mjs`(로컬 잠금 우회 주입). 설치본은 **검증된 트리에서만** 생성(`--prepackaged`).
GitLab/Forgejo/GitHub 패키징 단계에 게이트 삽입. 검증: 1.3.3 설치본을 7za로 풀어 그 안의 바이너리로
재검증 → Electron ABI GREEN, 피드 sha512가 로컬 빌드와 일치.
- 함께 수정: 로컬 모델 기본값이 레거시 `*.gguf`였고 UI가 `gemma2:2b`를 추천하던 것을 **gemma4:e4b**로
통일(ConfigService 기본값, LocalLLMService 폴백/상태, 설정·온보딩·Ollama 가이드).
- `publish-*`의 "동일 파일 건너뛰기"가 **크기만 비교**해 버전만 바뀐 `latest.yml`을 놓쳤다(피드가 1.3.2로
남는 사고) → 1MiB 이하는 내용까지 비교하도록 수정.
- 배포: `1.3.3` 업데이터 피드 게시 완료(`latest.yml` = 1.3.3). 기존 설치본은 1.3.3을 1회 수동 설치하면 이후 자동.
---
## v1.3.2 — 자동 업데이트 복구: 런타임을 설치본에서 분리 (2026-09-18) 🔄
자동 업데이트가 왜 안 되는지 끝까지 추적했다. 원인은 서명만이 아니라 **업로드 크기 한도**였다.