fix(config): v0.2.1-alpha — CONFIG_DEFAULTS 7키 기본값 누락 핫픽스 (앱 실행 불가)
refactor-wave WS2가 AppConfig 인터페이스에 7키 추가 + as never 16건 제거했으나 CONFIG_DEFAULTS(ConfigService.ts) 기본값 누락 → 기존 사용자 config(0.1.x) 마이그레이션 시 configGet undefined → main 프로세스 .map() 크래시 (v0.2.0-alpha 앱 실행 불가). 수정: CONFIG_DEFAULTS에 7키 기본값 추가. 검증: dev 실행 — main 빌드 + electron start 정상 (수정 전엔 이 단계 크래시). 교훈: 배포 전 dev 실행 + 산물 e2e 필수. typecheck GREEN ≠ 런타임 안전.
This commit is contained in:
parent
c8fb3abbaf
commit
4fdf8bfdf8
3 changed files with 27 additions and 0 deletions
|
|
@ -13,6 +13,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
- Cloud-optional backup (encrypted, opt-in)
|
- Cloud-optional backup (encrypted, opt-in)
|
||||||
- Plugin system for custom pipelines
|
- Plugin system for custom pipelines
|
||||||
|
|
||||||
|
## [0.2.1-alpha] - 2026-07-22
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- **v0.2.0-alpha 치명적 버그 (앱 실행 불가)**: refactor-wave WS2(AppConfig SSOT)에서 7개 키(`customInstructions`, `llmChains`, `voiceCommandRules`, `voiceCommandsEnabled`, `activeInstructionId`, `activeChainId`, `captionAudioSource`)를 AppConfig 인터페이스에 추가하고 `as never` 16건을 제거했으나 **`CONFIG_DEFAULTS`(ConfigService.ts) 기본값을 누락** → 기존 사용자 config(0.1.x) 마이그레이션 시 `configGet()`이 `undefined` 반환 → main 프로세스 `.map()` 크래시. `CONFIG_DEFAULTS`에 기본값(`[]`, `[]`, `[]`, `false`, `''`, `null`, `'mic'`) 추가.
|
||||||
|
- **교훈**: typecheck/lint/unit test가 GREEN이어도 런타임을 보장하지 않음. **배포 전 `npm run dev` 실행 + 산물 설치 e2e 필수** — 이번에 e2e를 건너뛰어 사용자가 발견.
|
||||||
|
|
||||||
## [0.2.0-alpha] - 2026-07-22
|
## [0.2.0-alpha] - 2026-07-22
|
||||||
|
|
||||||
> **다운로드**: Windows `D3RO-Voice-Setup-0.2.0-alpha-x64.exe` · macOS `D3RO-Voice-0.2.0-alpha-arm64.dmg`
|
> **다운로드**: Windows `D3RO-Voice-Setup-0.2.0-alpha-x64.exe` · macOS `D3RO-Voice-0.2.0-alpha-arm64.dmg`
|
||||||
|
|
|
||||||
|
|
@ -80,6 +80,17 @@ const CONFIG_DEFAULTS: AppConfig = {
|
||||||
supabaseAnonKey: '',
|
supabaseAnonKey: '',
|
||||||
cloudSyncLastAt: null,
|
cloudSyncLastAt: null,
|
||||||
onboardingCompleted: false,
|
onboardingCompleted: false,
|
||||||
|
// Phase 6/10+: AppConfig 키 기본값 (WS2 SSOT 강화 대응).
|
||||||
|
// as never 제거 후 configGet이 이 키들을 반환 — 기존 사용자 config(0.1.x)에
|
||||||
|
// 없고 CONFIG_DEFAULTS에도 없으면 undefined → .map() 등에서 main 크래시.
|
||||||
|
// v0.2.0-alpha 핫픽스.
|
||||||
|
customInstructions: [],
|
||||||
|
llmChains: [],
|
||||||
|
voiceCommandRules: [],
|
||||||
|
voiceCommandsEnabled: false,
|
||||||
|
activeInstructionId: '',
|
||||||
|
activeChainId: null,
|
||||||
|
captionAudioSource: 'mic',
|
||||||
}
|
}
|
||||||
|
|
||||||
let store: ElectronStore<AppConfig> | null = null
|
let store: ElectronStore<AppConfig> | null = null
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,15 @@
|
||||||
# D3RO-VOICE 프로젝트 현황
|
# D3RO-VOICE 프로젝트 현황
|
||||||
|
|
||||||
|
## v0.2.1-alpha 핫픽스 (2026-07-22) 🐛
|
||||||
|
|
||||||
|
v0.2.0-alpha 치명적 버그(앱 실행 불가) 핫픽스. 사용자 보고 "설치 실행 안 됨".
|
||||||
|
|
||||||
|
- **원인**: refactor-wave WS2(AppConfig SSOT)가 AppConfig 인터페이스에 7키 추가 + `as never` 16건 제거했으나 **`CONFIG_DEFAULTS`(ConfigService.ts) 기본값 누락**. 기존 사용자 config(0.1.x) 마이그레이션 시 `configGet()`이 undefined → ChainService/VoiceCommandService `.map()` 크래시 → main 시작 실패. typecheck는 통과(런타임 값 검사 못 함).
|
||||||
|
- **수정**: CONFIG_DEFAULTS에 7키 기본값 추가(`[]`,`[]`,`[]`,`false`,`''`,`null`,`'mic'`).
|
||||||
|
- **검증**: dev 실행 — main 빌드 성공 + electron start(① 수정 전엔 이 단계에서 configGet undefined 크래시). ② getI18n(main 번들 포함)은 순수 함수라 문제 아님.
|
||||||
|
- **근본 교훈**: **배포 전 dev 실행 + 산물 설치 e2e 필수**. typecheck GREEN ≠ 런타임 안전. refactor-wave SKILL R7에 "배포 전 런타임 게이트(dev 실행 + 산물 e2e)" 추가 필요 (현재 R7은 typecheck/lint/test만).
|
||||||
|
- **배포**: tag v0.2.1-alpha → CI 재빌드 → Windows 자동업데이트로 전달.
|
||||||
|
|
||||||
## v0.2.0-alpha 릴리스 (2026-07-22) 🚀
|
## v0.2.0-alpha 릴리스 (2026-07-22) 🚀
|
||||||
|
|
||||||
Midnight Glass v2 + refactor-wave Wave 1/2 + TiltCard 정리를 묶은 첫 마이너 릴리스.
|
Midnight Glass v2 + refactor-wave Wave 1/2 + TiltCard 정리를 묶은 첫 마이너 릴리스.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue