- 진단: 제목(일반 입력)은 정상, 본문 위지윅(contenteditable)만 첫 자음 중복 → ProseMirror+Electron IME 버그
- MarkdownEditor: Electron 감지 시 initialEditType='markdown'(텍스트 기반 입력) → IME 정상. 웹/APK는 위지윅 유지
- 앞서의 불필요한 조합(composition) 처리 코드 제거(원인이 아니었음)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- webPreferences spellcheck:false — Chromium 맞춤법 검사기가 한글 조합을 방해해
첫 자음이 중복('ㅅ사')되던 Electron 알려진 버그 회피 (APK/모바일은 정상이라 데스크톱 전용 이슈)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- MarkdownEditor: IME 조합(compositionstart~end) 중에는 getMarkdown/emit 보류,
조합 완료 시 한 번만 반영 → 조합 중 직렬화로 자음이 중복되던('ㅅ사') 문제 해소
- 조합 중에는 watch 의 setMarkdown 도 건너뜀
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- electron/main.cjs: 시작 시 HTTP 캐시 클리어 → 라이브 사이트 최신 프론트 항상 로드
(루트 '/' HTML 이 캐시돼 옛 번들이 뜨던 문제 — '로그인 전 사이드바' 미반영 원인)
- nginx: location / 에 Cache-Control no-cache 추가(웹/PWA 진입 HTML 항상 최신)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- App.vue: 비로그인 시 사이드바 숨김·단일 컬럼 그리드 → 콘텐츠가 창 중앙 정렬
(프론트 변경이라 데스크톱은 재설치 없이 자동 반영)
- electron/main.cjs: 기본 창 1024x720 + 마지막 크기/위치/최대화 상태 저장·복원
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- WebOnlyNotice: PC 버전 다운로드 버튼(/download/SlimBudget-Setup.exe) + 모바일(준비 중)
- nginx: /download/ 위치 추가 — 배포(dist 교체)에 안 지워지는 /var/www/sb-downloads 에서 서빙
- 설치파일 이름 고정(SlimBudget-Setup.exe)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- electron/main.cjs: dist 번들 → https://app.sblog.kr 직접 로드
· 같은 출처라 webSecurity:false(CORS 우회) 제거, 오프라인 시 '다시 시도' 안내 화면
· 앱 외 도메인 링크만 기본 브라우저로
- package.json: 설치파일에 dist 미포함·build:electron 제거(원격 로드라 불필요)
- .env.electron 삭제
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 계좌(은행/카드) 펼침 시 전체 평면 리스트 대신 월 단위로 표시
· ◀ YYYY.MM ▶ 월 네비게이션(데이터 있는 월만, 빈 달 건너뜀) + 그 달 합계
· 기본은 내역이 있는 가장 최근 월, 월 필터는 클라이언트단(walletEntries 재사용, 백엔드 무변경)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 앱 아이콘: 브랜드(초록 #00bc7e + 흰 막대 차트) 적응형 아이콘 생성(@capacitor/assets)
· assets/ 에 SVG 소스 + 전 해상도 mipmap 재생성, 적응형 XML 인셋 제거(배경 풀블리드)
- 데스크톱: Electron 로 dist 를 감싼 Windows 설치파일(.exe)
· vite electron 모드(상대 base)·라우터 해시 히스토리·App 게이트 Electron 감지
· webSecurity:false 로 file:// CORS 우회, 백엔드는 https://app.sblog.kr/api
· scripts: build:electron / electron:dev / electron:build(electron-builder NSIS)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- HomeView: 날짜 탭 시 아래 인라인 패널 대신 중앙 팝업으로 내역 표시(시인성)
· @mouseenter 제거로 터치 '두 번 탭' 버그 해소(단일 탭 동작)
- docs/release-2026-06-06.md: 이어진 세션 변경(하단 내비·설정/계정·매매수정·보안·테스트/배포·안드로이드) 추가
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- InvestPortfolio: 인라인은 최근 5건만, 초과분은 '전체 보기' 스크롤 모달
- 매매 행에 수정(✏)/삭제 버튼 — PUT /trades/{id} 로 매매 수정
- MainActivity: 콘텐츠 루트에 시스템 바 인셋 패딩(CONSUMED) — 에지투에지 소프트키/상태바 겹침 보정
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- deploy.yaml 은 CI와 별개로 push:[main]에 트리거되며 테스트를 건너뛰고 있었음
(백엔드 bootJar -x test, 프론트 테스트 스텝 없음) → 게이트 무력
- 배포 잡 안에서 테스트를 먼저 실행하도록 변경(Gitea는 워크플로 간 needs 불안정)
· 백엔드: clean bootJar -x test → clean build (test 포함)
· 프론트: Install → Test(npm test) → Build 순으로 분리
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 하단 내비게이션(뒤로/앞으로/홈/새로고침/설정), 사이드바 홈 제거
- 설정 화면: 계정정보·앱 버전(package.json)·App Data 삭제
- 가입정보 변경: 비밀번호 재인증 → 이름/이메일 수정
- 로그인 후 대시보드(/) 이동, 로그인 전 햄버거·네이버 로그인 버튼 숨김
- Vitest 도입(32): authApi/accountApi 와이어링, auth/ui 스토어, 로그인 플로우
- CI(.gitea): npm test 게이트 추가
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 웹(브라우저)은 안내 페이지만, 실제 이용은 앱(Capacitor). 개발모드는 예외
- 회원가입: 약관동의, 관리자 제한 토글, 진입부터 차단, 허니팟
- 카드 알림: pending 건 계좌종류 '카드' 기본선택(현금 X), 확인실패 시 HTTP 상태 표시
- 네이티브 알림필터: '카드' 키워드 제거+광고성 표현 차단
- docs/release-2026-06-06.md 정리
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 사이드바: '가계부' 상위 메뉴 제거, 단일 레벨로(홈/가계부 내역/통계/정기거래/계좌/분류/예산/태그/자유게시판)
- 자유게시판을 가계부 메뉴들 아래로 이동
- 홈(/)을 통합 대시보드로, 기존 가계부 대시보드 차트는 통계(/account/stats)로 이동
- /account → /account/entries 리다이렉트, 대시보드 제목 '통계'로
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- CardNotifListenerService: 결제 알림(금액+승인/결제/카드) 가로채 백엔드로 전송
(토큰은 Capacitor Preferences에서, 결제성 알림만 전송)
- CardNotifPlugin: 알림 접근 권한 확인/설정 열기
- AndroidManifest 서비스 등록, MainActivity 플러그인 등록
- 가계부 화면: 네이티브 미허용 시 '알림 접근 권한' 안내 배너
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 모바일 웹에서 옛 index.html 캐시가 삭제된 옛 청크를 불러 메뉴(가계부 내역 등)가
안 열리는 문제 → router.onError 로 청크 실패 감지 시 목적지로 전체 새로고침
- nginx 설정에 index.html no-cache 추가(재발 방지) — 서버 적용 필요
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- OS 기본 프롬프트 대신 앱 톤의 모달(카메라 촬영 / 갤러리에서 선택 카드)
- 네이티브: CameraSource.Camera / Photos 직접 호출, 웹: file input(capture 토글) 폴백
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>