Yun Chan
6ba25f53b7
fix(desktop): surface configuration and provider failures instead of hiding them
...
Several desktop paths quietly substituted defaults or partial results: a
config write could fall back to a throwaway in-memory store, speech provider
errors were absorbed into empty transcriptions, and meeting exports built
file names from raw titles.
Writes now fail explicitly when the store is unavailable, provider and model
failures reach the UI as errors, and export names pass through one
sanitizer. Settings, license, ad, and support surfaces use the shared theme
tokens, unused hotkey helpers are gone, and the package gains strict
node/renderer typecheck configs plus red-team e2e scenarios for these flows.
2026-09-16 23:23:58 +09:00
Yun Chan
c8d802d78f
feat(desktop): fill sponsor slots from direct house campaigns
...
When mediation had no programmatic fill, the banner and rewarded surfaces
collapsed to empty space. Direct house sponsors now serve their own copy and
click-through, with the same settlement accounting used by the mediated
network, and the mediation engine tests cover the added path.
2026-09-16 23:23:39 +09:00
Yun Chan
911c9f0229
feat(desktop): move dictionary entries in and out as files
...
Users could only rebuild their spoken-word dictionary entry by entry. Import
and export now round-trip the whole list, reporting duplicate and invalid
entries per row instead of failing the batch, so a dictionary survives a
reinstall or a move to another machine.
2026-09-16 23:23:30 +09:00
Yun Chan
7953706142
feat(release): publish desktop updates from a tag through one feed
...
Desktop clients had two competing update sources: the runtime pointed at a
legacy GitLab registry while the Forgejo packages were filled in by
hardcoded, version-pinned scripts. Operators could not tell which feed was
authoritative, and no release could be reproduced from a tag.
Auto-update now reads a single canonical Forgejo registry feed, updated by
a version-agnostic publisher that runs from the tag on Forgejo, GitLab, and
GitHub CI alike. Channel, minimum supported version, forced install,
full-versus-delta thresholds, staged rollout, and a remote kill switch come
from one policy file the client fetches alongside the feed. Tag creation is
gated on a clean tree, matching version surfaces, and a changelog section.
2026-09-16 23:23:00 +09:00
Yun Chan
65ecc7aabc
chore: keep release checkouts free of build output and dev automation
...
Release packaging walked a working tree that still carried .NET build
output, Playwright run artifacts, and one-off browser automation scripts.
Those files are not source, could not be reproduced from the commit, and
made a clean-tree release gate impossible.
Build output and test run directories are now ignored and untracked, and
developer-only automation/scratch material moved under a single ignored
`scripts/local/` directory. A stale admin bundle that no HTML referenced
was dropped from the API server web root.
2026-09-16 23:22:38 +09:00
Yun Chan
aa5fc5b7d9
docs: finalize mobile release handoff
2026-08-30 09:50:07 +09:00
Yun Chan
784c9c291e
docs: record mobile production audit
2026-08-30 09:37:40 +09:00
Yun Chan
1f71cf6fae
ci: allow protected mobile candidate
2026-08-30 09:20:49 +09:00
Yun Chan
4872d6f6c5
docs(release): update 1.1.0 launch metadata
deploy-site / deploy (push) Failing after 10m53s
2026-08-29 20:16:49 +09:00
Yun Chan
0a8cf4396f
feat(play): finalize store graphics and copy
2026-08-29 20:11:54 +09:00
Yun Chan
563d4cb1de
fix(ci): make mobile Gradle wrapper executable
2026-08-29 19:25:09 +09:00
Yun Chan
6a9608c447
ci: bootstrap Linux release toolchains
2026-08-29 19:19:19 +09:00
Yun Chan
30d51278c9
build(release): forbid unsigned Windows artifacts
2026-08-29 19:07:16 +09:00
Yun Chan
ec5aec758b
fix(release): retire legacy capture publisher
2026-08-29 19:04:07 +09:00
Yun Chan
547d4ad97a
security: remove credential automation from releases
2026-08-29 19:00:44 +09:00
Yun Chan
f342ea8640
fix(release): sync legacy mobile version
2026-08-29 18:55:27 +09:00
Yun Chan
3e9e04f68c
ci(release): require trusted Windows signing
2026-08-29 18:49:08 +09:00
Yun Chan
5205dcdfa9
feat(release): prepare 1.1.0 candidate
2026-08-29 18:33:45 +09:00
Yun Chan
5a34f66981
feat(admin): 예전/최신 어드민 통합 — 실데이터 복원 + 인증 아키텍처 정리
...
예전 배포본(HEAD)의 상세 기능을 새 아키텍처(인증=.NET 백엔드, 데이터=Supabase)
위에 실데이터로 복원. 예전 HEAD는 서명 쿠키를 거부하고 위조 쿠키는 통과시키는
인증 결함이 있었고, 삭제된 페이지 다수는 백엔드 호출 0인 하드코딩 목업이었음.
인증/세션
- 로그인 이메일 전용화(username 폐지), 에러 키별 안내 메시지
- ADMIN_COOKIE_SECURE 옵션: TLS 없는 LAN HTTP 배포에서 Secure 쿠키 유실로
로그인이 유지되지 않던 문제 해결 (login/logout route, admin-session, compose, .env.example)
- Supabase 미설정 시 우아한 저하: isSupabaseAdminConfigured + UnavailableAdminPanel
기능 복원 (실데이터)
- Release Hub: Forgejo API 실데이터(다운로드 수/SHA-256 체크섬/릴리스 이력)
- Ad Monetization: 데스크톱 미디에이션 10개 어댑터 로스터(fail-closed) + ad_reward_claims 통계
- License Issuer: 서버사이드 Ed25519 서명(/api/admin/license, super_admin 전용),
개인키는 ADMIN_LICENSE_PRIVATE_KEY env로만, 발급 감사를 .NET AdminAuditEntries에 기록
- Service Models: STT 7종/LLM 5종 프리셋 드롭다운 + 자동채움
- 대시보드 ARR/MRR KPI: Supabase 구독 실집계(티어 월단가 기반)
- 사용자 상세 티어별 기능 배지(pro_plus 조건부)
.NET
- SuperAdminOnly 정책 추가, /api/admin/license-audit 엔드포인트, LicenseAuditDto
2026-08-23 23:38:08 +09:00
Yun Chan
a9c9a1ca6e
fix(mobile): prevent supabaseUrl crash on startup with fallback auth config
2026-08-20 23:29:10 +09:00
Yun Chan
9b24bbc576
chore(api-server): sync built site to wwwroot
2026-08-20 23:23:08 +09:00
Yun Chan
692338926d
fix(site): link mobile APK and desktop EXE directly to Forgejo release attachments
deploy-site / deploy (push) Failing after 28s
deploy-site-windows / deploy-win (push) Successful in 41s
2026-08-20 23:04:53 +09:00
Yun Chan
3e4ca38926
fix(mobile-rn): bundle offline index.android.bundle into release APK and sign with v2/v3 scheme
deploy-site-windows / deploy-win (push) Waiting to run
deploy-site / deploy (push) Waiting to run
2026-08-20 23:02:26 +09:00
Yun Chan
55d03baf6b
feat(site): implement dynamic client OS negotiation for Hero and CTA download buttons
deploy-site-windows / deploy-win (push) Waiting to run
deploy-site / deploy (push) Failing after 24s
2026-08-20 22:57:38 +09:00
Yun Chan
4865387d7f
feat(release): publish complete desktop and mobile signed release v1.0.0
deploy-site-windows / deploy-win (push) Waiting to run
deploy-site / deploy (push) Waiting to run
2026-08-20 22:50:19 +09:00
Yun Chan
eedbe97d02
fix(desktop): clean single-instance lock exit and suppress devtools console crash
deploy-site-windows / deploy-win (push) Waiting to run
deploy-site / deploy (push) Waiting to run
2026-08-20 22:48:58 +09:00
Yun Chan
0dc6a1dc93
test(e2e): add live multi-tab electron screen verification script
deploy-site-windows / deploy-win (push) Waiting to run
deploy-site / deploy (push) Failing after 20s
2026-08-20 22:33:46 +09:00
Yun Chan
9b2b83b2ab
test(desktop): add automated Playwright Electron real-app E2E verification suites
deploy-site-windows / deploy-win (push) Waiting to run
deploy-site / deploy (push) Failing after 21s
2026-08-20 22:27:49 +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
d4dc498448
fix(site): completely remove Launch Sandbox menu and mockup pages
deploy-site-windows / deploy-win (push) Waiting to run
deploy-site / deploy (push) Waiting to run
2026-08-20 22:11:29 +09:00
Yun Chan
9b8dbdaffa
fix(site): link fresh signed APK zip with cache busting in download section
deploy-site-windows / deploy-win (push) Waiting to run
deploy-site / deploy (push) Failing after 18s
2026-08-20 22:07:40 +09:00
Yun Chan
781a896d02
build(android): configure production RSA-2048 release keystore with APK Signature Scheme v2/v3
deploy-site-windows / deploy-win (push) Waiting to run
deploy-site / deploy (push) Failing after 21s
2026-08-20 21:58:07 +09:00
Yun Chan
7e264dca37
feat(mobile): overhaul mobile app with Pro paywall, rewarded video refill, iOS permissions, and build APK
deploy-site-windows / deploy-win (push) Successful in 48s
deploy-site / deploy (push) Failing after 24s
2026-08-20 21:49:05 +09:00
Yun Chan
e87567fa90
ci: add .forgejo/workflows/deploy-site.yml for Cloudflare Pages auto-deployment to d3ro.chanpaca.net
deploy-site-windows / deploy-win (push) Successful in 31s
deploy-site / deploy (push) Failing after 35s
2026-08-20 17:16:12 +09:00
Yun Chan
9dd52f0626
feat: integrate official download and releases section directly into the main homepage
Deploy Landing Page / build (push) Waiting to run
Deploy Landing Page / deploy (push) Blocked by required conditions
CI Pipeline / Code Quality & Typecheck (push) Successful in 3m3s
CI Pipeline / Test Suite (ubuntu-latest) (push) Successful in 1m5s
CI Pipeline / Build Validation (admin) (push) Successful in 1m22s
CI Pipeline / Test Suite (macos-latest) (push) Failing after 5s
CI Pipeline / Test Suite (windows-latest) (push) Failing after 2m6s
CI Pipeline / Build Validation (desktop) (push) Successful in 4m1s
2026-08-20 17:11:52 +09:00
Yun Chan
abd26e91af
feat: add /download and /releases routes in apps/web and sync binary distribution
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 / build (push) Waiting to run
Deploy Landing Page / deploy (push) Blocked by required conditions
2026-08-20 17:06:51 +09:00
Yun Chan
7879d493ea
feat: add high-end download center and admin release management hub
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 / build (push) Waiting to run
Deploy Landing Page / deploy (push) Blocked by required conditions
2026-08-20 11:24:58 +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
5cd1de6859
agent update
2026-07-23 11:14:13 +09:00
Yun Chan
4fdf8bfdf8
fix(config): v0.2.1-alpha — CONFIG_DEFAULTS 7키 기본값 누락 핫픽스 (앱 실행 불가)
...
Build macOS / Build & Package (macOS) (push) Failing after 4s
Build macOS / Build & Package (macOS)-1 (push) Failing after 4s
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 ≠ 런타임 안전.
2026-07-22 04:06:43 +09:00
Yun Chan
c8fb3abbaf
docs(release): Linux(deb/AppImage) 별도 Phase 백로그 명시
...
- release-guide 알려진 제약 표에 Linux 행 추가 (사이드카/TTS 백엔드 장벽 + Phase 범위)
- project_status v0.2.0 후속에 Linux 별도 Phase 합의 기록 (7대 장벽)
2026-07-22 03:50:34 +09:00
Yun Chan
38a466ea0c
docs(release): v0.2.0-alpha — CHANGELOG + Release 운영 가이드
...
Build macOS / Build & Package (macOS) (push) Failing after 5s
Build macOS / Build & Package (macOS)-1 (push) Failing after 5s
- CHANGELOG [0.2.0-alpha] 섹션 (switchboard 스타일, ## [Unreleased] 최상단 정렬,
Added/Changed/Fixed/Removed/Internal). publish-gitlab-release.mjs가 Release 노트로 자동 추출.
- release-guide.md "Release 페이지 운영" 섹션 추가 (CHANGELOG=Release 노트,
권장 구조, 릴리스 체크리스트, 버전 정책). switchboard 패턴 벤치마크.
- project_status: v0.2.0-alpha 릴리스 기록
2026-07-22 02:50:26 +09:00
Yun Chan
b1435b0ba5
docs: refactor-wave Wave 2 보고서·현황 (메타)
...
- docs/REFACTOR_WAVE2_REPORT.md (신규): 정량 산출, 검증, 이월,
메타 학습 M7-M9, Wave 3 계획, 누적 통계
- memory/project_status.md: Wave 2 섹션 추가
2026-07-22 02:40:08 +09:00
Yun Chan
5b6e7aae6b
refactor(main): ipcSuccess/ipcError 헬퍼 통일 + catch(error) 패턴 (WS-PATTERN)
...
- cloud-sync-handlers 수동 ok/fail -> ipcSuccess/ipcError 헬퍼 (6 핸들러)
- catch {} -> catch(error) 에러 메시지 보강 32건 (11 ipc handler 파일)
KEEP: template-handlers(주석 명시 에러 무시), license-handlers(이미 헬퍼 사용),
audio-handlers stop().catch(() => {})(의도적 무시)
정책: docs/REFACTOR_POLICY.md DP2
2026-07-22 02:38:23 +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
00a99e4087
refactor(popup): 5종 팝업 _i18n 주입 + 색상 토큰화 (WS-POPUP)
...
- 4종 팝업(command/history/result/recording-tip) _i18n 주입:
WindowManager getPopupI18nStrings() + 팝업 script applyI18nToHtml()
- 한국어/영어 하드코딩 -> popup.* i18n 키 (ko/en 17키)
- theme-vars.ts에 --d3-wave-1~9, --d3-status-error/success 토큰 추가 (6 테마)
- 팝업 style.css hex -> CSS var 토큰
- packages/i18n getI18n() (main 프로세스용) 추가
SKIP: caption-overlay _i18n(별도 IPC 구조), wave box-shadow 보간(opacity 단순화)
정책: docs/REFACTOR_POLICY.md DP3, 이식 인사이트 P5
2026-07-22 02:37:58 +09:00
Yun Chan
660e622a93
refactor(ui-native): d3roNativePalette amber->main 개명 (WS-NATIVE)
...
- packages/ui-native theme.ts accent: amber->main, amberDim->dim, amberGlow->glow (값 보존)
- apps/mobile 20건 + apps/mobile-rn 18건 + ui-native 컴포넌트 9건 = 47 참조 치환
SKIP: Led/PhosphorText/Header color prop 'amber'(의미론적 컴포넌트 API, 별도 마이그레이션)
green/greenGlow 키(amber계 범위外)
정책: docs/REFACTOR_POLICY.md DP1, 이식 인사이트 P7
2026-07-22 02:37:45 +09:00
Yun Chan
efac690362
refactor(ui): web/admin amber->main 치환 + theme.ts deprecated 별칭 제거 (WS-AMBER)
...
- apps/web 11건 + apps/admin 10건 accent.amber->main 치환
- packages/ui/src/theme.ts에서 amber/amberDim/amberGlow @deprecated 별칭 제거
(본체 main/dim/glow 유지). 전 모노레포 amber 잔여 0건 확인.
SKIP: site/src/tokens.ts(별도 토큰 계통, d3roPalette 비의존)
정책: docs/REFACTOR_POLICY.md DP1, 이식 인사이트 P7
2026-07-22 02:37:32 +09:00
Yun Chan
988a222fda
docs: refactor-wave Wave 1 정책·보고서·현황 (메타)
...
- docs/REFACTOR_POLICY.md (신규): 8 결정포인트 + 본 wave 한정 DP9-DP11,
합의 이력(DRY 3회 / 공격적 DELETE / 전체 typecheck 강제)
- docs/REFACTOR_WAVE1_REPORT.md (신규): 정량 산출, 검증, SKIP/이월,
메타 학습 M1-M6, Wave 2 계획
- memory/project_status.md: Wave 1 섹션 추가
2026-07-22 02:01:26 +09:00
Yun Chan
87f2dac9e5
refactor(i18n): date 중복 버그 수정 + 고아 키 967건 삭제 (WS4)
...
- date.today/yesterday 중복 정의(uppercase 잔해 "TODAY"/"YESTERDAY")
삭제 (ko/en) -> 한국어 사용자에게 잘못된 대문자 표시 버그 해소.
- 고아 키 967건 삭제: ko/en 109건 + 타 10 locale 858건.
- P1 재검증으로 20건 KEEP 전환 (camelCase license.feature 15 +
nav 5) -- 동적 보간/프로퍼티 패스스루 참조로, typecheck가 잡지
못하는 런타임 버그 15건 예방.
정책: docs/REFACTOR_POLICY.md DP3, DP9, 이식 인사이트 P1
2026-07-22 01:54:51 +09:00