Yun Chan
30d51278c9
build(release): forbid unsigned Windows artifacts
2026-08-29 19:07:16 +09:00
Yun Chan
5205dcdfa9
feat(release): prepare 1.1.0 candidate
2026-08-29 18:33:45 +09:00
Yun Chan
63b97c4761
feat(updater): overhaul cross-platform auto-update with user consent, blockmap diffs, skip version, and mobile update manager
deploy-site-windows / deploy-win (push) Waiting to run
deploy-site / deploy (push) Failing after 19s
2026-08-20 22:17:14 +09:00
Yun Chan
708e20f747
feat: complete release preparation, 10+ ad mediation, CI/CD, and docker deployment
CI Pipeline / Code Quality & Typecheck (push) Waiting to run
CI Pipeline / Test Suite (macos-latest) (push) Blocked by required conditions
CI Pipeline / Test Suite (ubuntu-latest) (push) Blocked by required conditions
CI Pipeline / Test Suite (windows-latest) (push) Blocked by required conditions
CI Pipeline / Build Validation (admin) (push) Blocked by required conditions
CI Pipeline / Build Validation (desktop) (push) Blocked by required conditions
Deploy Landing Page / deploy (push) Blocked by required conditions
Deploy Landing Page / build (push) Waiting to run
Release & Packaging Pipeline / Build & Publish Admin Docker Image (push) Failing after 8s
Release & Code Signing CA Pipeline / build-and-sign-windows (push) Failing after 1m51s
Build macOS / Build & Package (macOS) (push) Failing after 4s
Build macOS / Build & Package (macOS)-1 (push) Failing after 5s
Release & Code Signing CA Pipeline / build-and-sign-macos (push) Failing after 3s
Release & Packaging Pipeline / Package macOS Desktop App (push) Failing after 4s
Release & Packaging Pipeline / Package Windows Desktop App (push) Failing after 2m28s
Release & Packaging Pipeline / Publish Official GitHub Release (push) Has been skipped
2026-08-20 11:12:05 +09:00
Yun Chan
4c256202f7
chore(deps): 미사용 의존성 8종 제거 + electron-builder Linux 섹션 삭제 (WS-DEPS)
...
- apps/desktop/package.json에서 8종 제거(각 역추적 0건):
@mui/icons-material, @d3ro/api-client, fluent-ffmpeg, @types/fluent-ffmpeg,
pdf-parse, node-record-lpcm16, electron-audio-loopback, @electron-toolkit/preload
- node-record-lpcm16.d.ts 타입 선언 삭제
- electron-builder.yml Linux 섹션 삭제 (CI는 win/mac만 호출)
참고: @mui/icons-material은 @d3ro/ui 트랜시티브로 잔존(desktop 직접 의존에서는 제거)
정책: docs/REFACTOR_POLICY.md DP9
2026-07-22 02:38:10 +09:00
Yun Chan
cbed451209
feat(icon)+fix(audio): 앱 아이콘 적용 + 트레이 아이콘 + 마이크 테스트 조기 종료 수정
...
Build macOS / Build & Package (macOS) (push) Failing after 5s
Build macOS / Build & Package (macOS)-1 (push) Failing after 5s
- 앱 아이콘: icon.svg 마스터(d3ro 브랜드 — 메탈 섀시+오렌지 웨이브) → png/ico
생성 스크립트(generate-icons.mjs, sharp) + electron-builder win/mac 연결
- 트레이: createEmpty() 빈 아이콘 → 실제 앱 아이콘 (getAppIconPath)
- 마이크 테스트: 초기 무음 level:0을 종료로 오인하던 조기 종료 버그 —
AUDIO.TEST_LEVEL에 done 플래그 신설(SSOT), STOP 버튼이 실제 캡처 중지,
testDevice 실패 시 상태 롤백
2026-07-21 19:00:23 +09:00
Yun Chan
3e6e392920
ci: 첫 파이프라인 실패 2건 수정 — alpha 채널 감지 차단 + mac sox 자동 설치
...
Build macOS / Build & Package (macOS) (push) Failing after 5s
Build macOS / Build & Package (macOS)-1 (push) Failing after 3s
- detectUpdateChannel:false — prerelease 버전이 alpha.yml을 만들어 latest.yml
글롭/가드에 안 걸리던 문제 (electron-updater 기본 채널 latest와 정렬)
- artifacts 글롭 *.yml로 방어적 확장, publish 스크립트 메타데이터 regex 확장
- package-macos: sox 미설치 시 brew install sox 폴백
2026-07-21 15:48:21 +09:00
Yun Chan
c6fd8c9a9a
ci: runner 인프라 정렬 + 자동 업데이트 feed 활성화 (프로젝트 1172)
...
- CI 태그를 실제 사내 runner에 맞게 교체: build-win-x64(TW-VIVEN-BUILD) /
build-mac-arm64(TW-BUILD-MAC-ARM64) / build-linux-x64(TW-BUILD01, release+검증 잡)
- package-macos: volta 부트스트랩 폴백 추가
- update-feed.ts + electron-builder.yml publish.url에 프로젝트 ID 1172 기입
- release-guide: 완료된 설정 반영 (D3RO_MAC_RUNNER, registry public pull)
2026-07-21 15:33:30 +09:00
Yun Chan
3beba99668
feat(release): switchboard 릴리스 체계 이식 — Mac 배포 + Registry 게시 + 자동 업데이트
...
- package-macos CI job: arm64 무서명(ad-hoc) dmg+zip, D3RO_MAC_RUNNER 변수 게이트
- sync-version.mjs: 태그 → package.json 버전 동기화
- publish-gitlab-release.mjs: Generic Package Registry(버전별+latest) 업로드 + Release 생성
- electron-builder: publish generic(latest.yml 생성), 공백 없는 artifactName, mac arm64 단일화
- UpdateService: electron-updater 4h 주기 체크 + 재시작 다이얼로그 (update-feed.ts SSOT)
- @rollup/rollup-win32-x64-msvc → optionalDependencies (mac npm ci EBADPLATFORM 해소)
- docs/deployment/release-guide.md: runner 등록·feed 설정·파일명 규칙 가이드
리뷰 워크플로(3관점 적대적 검증)로 확정된 결함 8건 반영:
publish 부재로 latest.yml 미생성, 파일명 공백 vs 레지스트리 404,
mac EBADPLATFORM, needs optional의 실패 미커버, DELETE 권한 의존,
CHANGELOG regex 경계, --arm64 무시, 다이얼로그 parent 부재
2026-07-21 12:43:16 +09:00
yunchan8804
72144a4c2e
fix(installer): 대용량 NSIS 크래시 해소 — Ollama GPU 런타임 가지치기 + oneClick 전환
...
Build macOS / Build & Package (macOS) (push) Failing after 5s
Build macOS / Build & Package (macOS)-1 (push) Failing after 5s
- download-ollama.ps1: cuda_v11, cuda_v12, rocm_avx 런타임 삭제 (~1GB 절감)
첫 실행 시 gemma4:e4b는 CPU로 충분. GPU 가속 필요 시 별도 Ollama 설치 또는 차기 빌드.
- electron-builder.yml nsis: oneClick=true로 전환 — oneClick=false+perMachine=false가
System.dll 0xc0000005 유발하는 electron-builder 알려진 이슈(#7921 ) 회피.
2026-04-15 22:57:39 +09:00
yunchan8804
8e31b36337
fix(installer): custom NSIS include 비활성화 — System.dll 0xc0000005 크래시 해소
...
- 이전 installer.nsh의 ReadRegDWORD + MessageBox 조합이 설치 중 System.dll에서
access violation 유발 (WER로 확인)
- electron-builder 기본 installer UX만 사용 → 안정화 후 단계적으로 커스텀 재추가
- installer.nsh는 최소 버전으로 보존(향후 참고)
2026-04-15 22:30:10 +09:00
yunchan8804
5e74272aef
fix(build): buildResources → build/ — resources/icons/ 빈폴더 자동 스캔 우회
2026-04-15 21:50:46 +09:00
yunchan8804
a18666dd6a
fix(build): 아이콘 의존 제거 + NSISdl 비의존화
...
- electron-builder.yml: win/mac/linux icon 경로 제거 (resources/icons/가 비어있어 아이콘 수집 실패)
Electron 기본 아이콘 사용. 추후 resources/icons/icon.ico 준비되면 win.icon 복원.
- extraResources의 resources/icons/ 복사 엔트리 삭제
- installer.nsh: NSISdl::download 제거 → 번들 플러그인 의존 제거
VC++ 재배포 미설치 시 수동 설치 링크 안내만 표시
2026-04-15 21:43:39 +09:00
yunchan8804
adc88853fa
fix(build): electronVersion 33.3.0 명시 — 모노레포 hoisting 자동감지 실패 우회
2026-04-15 21:29:08 +09:00
yunchan8804
aa65e710ec
feat: 배포 파이프라인 — Ollama/sidecar 번들 + NSIS 자동 VC++ + GitLab CI + 온보딩 모달
...
- sidecar 슬림화: torch/pyannote 제거, ctranslate2 GPU 감지, /diarize 삭제
- Ollama 번들: resources/ollama/에 포터블 바이너리 배치, LocalLLMService 1순위 탐색
- installer.nsh: VC++ 재배포 x64 자동 다운로드(aka.ms 경유) + 사일런트 설치
- electron-builder: extraResources에 ollama 추가, nsis.include로 installer.nsh 연결
- scripts: download-ollama.ps1/sh 신규
- LLM.PULL_MODEL IPC 핸들러 + LocalLLMService.pullModel() 구현 (api/pull 스트리밍)
- 온보딩 모달: gemma4:e4b 미설치 감지 시 자동 표시, 진행률 UI, i18n(ko/en) 키 추가
- .gitlab-ci.yml: Windows 러너에서 sidecar/sox/ollama 준비 후 NSIS 패키징, 태그 시 Release 자동 생성
2026-04-15 19:47:27 +09:00
yunchan8804
77d514222e
feat(V2-5): macOS 빌드 지원 — 플랫폼 분기 + electron-builder mac 타겟 + CI
...
플랫폼 분기 (paths.ts):
- EXE_SUFFIX 상수로 sox/sidecar/ffmpeg 실행파일 확장자 통합
- Windows에선 .exe 자동 부착, Mac/Linux에선 빈 문자열
- 미사용 getProjectRoot 헬퍼 제거
런타임 서비스 Mac 분기:
- SoundEffectService: darwin → /usr/bin/afplay,
linux → aplay 분기 추가 (execFile로 안전하게)
- ScreenContextService._getActiveWindowInfo:
win32 → PowerShell + user32.dll (기존),
darwin → osascript (System Events frontmost process + 윈도우 타이틀)
Linux는 미지원 (null)
electron-builder.yml:
- mac 타겟 추가 (dmg + zip, arm64 + x64 매트릭스)
- hardenedRuntime, gatekeeperAssess, entitlements 설정
- extendInfo로 NSMicrophoneUsage / NSCameraUsage / NSAppleEvents /
NSSystemAdministration 권한 메시지
- dmg 레이아웃 (드래그 to /Applications)
- linux AppImage placeholder
- notarize: false 기본, NOTARIZE 환경변수로 활성화
build/entitlements.mac.plist:
- allow-jit, allow-unsigned-executable-memory (Electron 필수)
- audio-input, camera, network.client
- automation.apple-events (활성 윈도우 조회용)
- files.user-selected.read-write
- allow-dyld-environment-variables (sox/ffmpeg 라이브러리 로드)
scripts/build-sidecar.py:
- IS_WINDOWS / IS_MACOS / EXE_SUFFIX 도입
- Windows에서만 --noconsole 플래그
- 빌드 결과 경로 + size 출력 플랫폼 통합
scripts/install-sox.sh (신규):
- Mac/Linux용 SoX 번들 스크립트
- macOS는 otool로 dylib 의존성 식별 후 함께 복사,
install_name_tool로 rpath를 @loader_path로 변경
- electron-builder의 extraResources 대상 디렉토리에 배치
resources/icons/ (신규):
- README.md만 커밋, 실제 아이콘 파일은 분리
- sips/iconutil/imagemagick으로 .icns/.ico/.png 생성 가이드
.github/workflows/build-mac.yml (신규):
- macos-14 runner (Apple Silicon), arm64/x64 matrix
- brew sox, npm install, @electron/rebuild,
install-sox.sh, build-sidecar.py, electron-builder dist
- CSC/NOTARIZE 환경변수 자동 처리
- artifact 업로드 (dmg + zip, retention 7일)
docs/v2/phase-V2-5-mac-guide.md (신규):
- 사전 조건, 시스템 의존성, dev 실행, dist 빌드,
Code signing + Notarization, CI 트리거, 트러블슈팅
검증 (Windows에서):
- typecheck 통과 (Mac 분기 추가에도 회귀 없음)
- build 통과
- dev 런타임 정상
Mac 검증은 사용자 본인 Mac에서 수행 (V2-5 사용자 액션).
2026-04-08 15:57:16 +09:00
yunchan8804
45a580878a
feat(V2-1a): Monorepo 구조 전환 — apps/desktop으로 V1 이동
...
- npm workspaces 루트 (apps/*, packages/*) 세팅
- V1 전체를 apps/desktop/으로 git mv (src, resources, tests, sidecar,
scripts, electron.vite.config.ts, electron-builder.yml, vitest.config.ts,
tsconfig.node.json, tsconfig.web.json)
- apps/desktop/package.json 신규 (name=@d3ro/desktop)
- productName: 'd3ro-voice' 명시 — app.getName()을 고정하여 userData 경로
%APPDATA%\d3ro-voice\ 그대로 유지 (기존 DB/설정 연속성 보장)
- 루트 package.json을 workspace 루트로 재구성, 공통 devDep만 유지
(typescript, eslint, prettier)
- turbo.json, tsconfig.base.json 추가 (Turborepo 자체 설치는 별도 sub-phase)
- memory/project_status.md 생성 (규칙 13)
검증:
- npm run typecheck 통과
- npm run build 통과 (electron-vite main+preload+renderer)
- npm run dev 실제 실행 → DB/핫키/Ollama 자동 실행 모두 정상
2026-04-08 14:04:41 +09:00