Commit Graph

382 Commits

Author SHA1 Message Date
sb 810a5d9380 feat(ui): 공통 ChipSelect + 계좌 선택을 칩(2열)으로
Deploy / deploy (push) Failing after 15m12s
select 대체 ChipSelect 컴포넌트(cols 지원) 신설. 계좌 선택 드롭다운을 칩(한 줄 2개)으로 교체:
- AccountView 출금·입금·상환대상 계좌
- RecurringView 출금·입금 계좌
계좌 종류 뱃지로 이미 걸러지고 무료 한도(종류별 2개)라 칩 수도 적당.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 23:06:17 +09:00
sb e2d9b8ea37 fix(account): 출금 계좌 종류 뱃지에서 대출 제외
Deploy / deploy (push) Successful in 36s
대출은 지출·이체의 출처가 아니라 상환 대상 → 계좌 종류(출금) 선택지에서 대출 숨김.
이체 입금 종류·상환 대상(대출/카드)은 그대로 유지.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 22:51:46 +09:00
sb cdf94b75cb fix(account): 빠른입력 대출상환 — 금리 있으면 이자/원금 자동분리
Deploy / deploy (push) Failing after 15m15s
금액을 principal 이 아니라 납입금액(loanPaymentAmount)에 넣어 기존 자동분리 로직이 작동하게 함
(toWalletId 리셋 감시자 뒤 nextTick). 금리 미설정/카드는 전액 원금.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 22:36:15 +09:00
sb e3ab2f9f3c fix(account): 빠른입력 — 계좌→대출/카드 이체는 상환(REPAYMENT)으로 재분류
Deploy / deploy (push) Failing after 11m2s
AI가 TRANSFER로 준 것을, 받는 계좌가 대출/카드면 상환으로 바꿔 폼을 상환모드로 염
(출금=walletId·대상=toWalletId·원금=금액). 이자 있으면 사용자가 분리 입력.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 22:25:29 +09:00
sb 769aa38b52 feat(account): 빠른입력 이체 폼 반영 — 출금/입금 계좌 자동 채움
Deploy / deploy (push) Failing after 13m5s
applyParsed 가 TRANSFER 처리: type=이체, 분류 비움, wallet→출금(walletId)/toWallet→입금(toWalletId) 매칭.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 22:16:52 +09:00
sb d5b4c46163 feat(stats): 예상 지출 10일부터 노출 — 초반 표본부족 튐 방지
Deploy / deploy (push) Failing after 13m52s
경과일 < 10 이면 값 대신 '10일부터 표시돼요' 안내. 초반 소표본+일회성으로 과대 추정되던 문제 완화.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 02:17:38 +09:00
sb 5b46ba93f3 fix(stats): 예상지출 — 비정기 큰 지출(대출상환 등)을 모두 일평균에서 제외
Deploy / deploy (push) Failing after 14m58s
가장 큰 하루 1건만 제외하던 것을, 중앙값 3배(또는 10만원) 초과 '모든' 날 제외로 변경.
대출상환·다건 일회성이 일평균에 남아 남은 날에 곱해져 예상지출이 과다 추정되던 문제 해결.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 02:01:33 +09:00
sb a52ac6532c docs: 백로그에 포인트 상점(AI 사용량 종량제·계좌 슬롯) 추가
Deploy / deploy (push) Failing after 12m15s
AI 텍스트 월5회/OCR 월3회 무료 + 포인트 추가충전(300P/500P), 계좌슬롯 500P·최대5·영구.
설계·확정필요·견적(~1~1.5일) 기록.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 01:54:17 +09:00
sb 253e88e0fa feat(wallet): 무료 회원 종류별 2개 한도 안내 — 추가 버튼 비활성·힌트
Deploy / deploy (push) Failing after 14m9s
한도 도달 시 추가 버튼 비활성 + '무료 종류별 2개·유료 무제한' 안내, openCreate 가드.
백엔드 400 메시지는 폼 에러로 폴백 노출.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 01:40:41 +09:00
sb 296ae594f8 fix(layout): 앱 셸 고정 높이 — 페이지 전체 스크롤 제거 + 상·하단 고정
Deploy / deploy (push) Failing after 12m26s
.layout 을 100dvh 고정 + overflow hidden, .layout-body 에 min-height:0 로
본문만 세로 스크롤(가로 숨김). 기기별 뷰포트·안전영역 차로 생기던 불필요한
상하좌우 스크롤과 하단 내비 밀림 해결.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 01:19:04 +09:00
ByungCheol ac20174378 build(android): versionCode 4, versionName 1.0.3 — Play Store v4 AAB 빌드
Deploy / deploy (push) Successful in 33s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-05 17:48:15 +09:00
sb 87c7695cc3 docs: 오늘 작업 현행화 — AI 편의기능·홈 넛지·통계 통합·개근 보너스·iOS 수정
Deploy / deploy (push) Failing after 13m21s
- LAUNCH-PROGRESS.md: 2026-07-05 추가분 반영
- README.md 주요 기능: AI 보조·활동 포인트·통계 현행화

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 17:28:11 +09:00
sb 9d1ae0e402 feat(home): 인사말을 '오늘 기록 넛지'로 — 습관 유도
Deploy / deploy (push) Failing after 10m46s
'안녕하세요 OO님' 자리를 오늘 기록 상태로 대체:
- 오늘 기록 없음 → 'OO님, 오늘은 아직 기록이 없어요' + 지금 기록하기 CTA
- 오늘 기록 있음 → '오늘 N건 기록했어요' / 연속 2일+ → 'N일 연속 기록 중 🔥'

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 16:40:45 +09:00
ByungCheol fb4accdca6 docs: SQL_INIT_MODE=always 적용 완료 — 안내 문구 제거
Deploy / deploy (push) Failing after 13m55s
2026-07-05 16:27:33 +09:00
ByungCheol 03e11cc79c docs: LAUNCH-PROGRESS 충돌 해결 — AI 기능 반영, BudgetOnetime 완료 표기
Deploy / deploy (push) Failing after 11m55s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-05 16:24:33 +09:00
sb d1dd19d5a3 docs+policy: AI(Anthropic) 데이터 처리 고지 + 런치 문서 현행화
Deploy / deploy (push) Failing after 14m28s
- 개인정보처리방침(terms.js §2·§3): 처리자 Anthropic(Claude) 명시, 전송 데이터 범위·학습 미사용·서버 키보관 고지. OCR은 AI 보조/폴백으로 갱신. 적용일 2026-07-05
- play-store-listing.md 데이터안전: AI 편의 기능 처리 위탁 명시(공유 아님)
- LAUNCH-PROGRESS.md: AI 기능 완료 반영, 가계부 오류 해결 표시, v3/재개지점 정리

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 16:15:45 +09:00
sb f3f11fa15b fix(ui): 사이드바 드로어 상단 safe-area 여백 — iOS 상태바 겹침 해결
Deploy / deploy (push) Failing after 11m23s
드로어 최상단(로고/제목)이 iOS 상태바에 가리던 문제. app-sidebar 에 padding-top: env(safe-area-inset-top) 추가.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 16:00:08 +09:00
sb 4c325544a6 fix(account): 모달 열 때 클립보드 자동읽기 제거 — iOS '붙여넣기' 토스트 방지
Deploy / deploy (push) Failing after 13m7s
내역 추가·빠른입력 모달이 열릴 때 navigator.clipboard.readText() 호출로
iOS 시스템 붙여넣기 토스트가 매번 떴음. 자동 읽기/배지 감지 제거(수동 붙여넣기는 유지).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 15:53:24 +09:00
sb 0090c31294 fix(stats): 예상 지출을 결정적 계산으로 — 매 접속 동일값
Deploy / deploy (push) Failing after 11m2s
일별 지출에서 일회성 큰 지출일(중앙값 3배 초과)을 하루평균 산정에서 제외 →
실제 지출 + 남은 날 × 평소 하루 지출. AI 비결정 값(40만~500만 변동) 문제 해결.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 15:43:47 +09:00
sb 59a17f9087 feat(stats): AI 코멘트 로딩 인디케이터 바 + 예상지출 '계산 중' 표시
Deploy / deploy (push) Failing after 12m6s
코멘트 생성 지연 동안 애니메이션 진행바와 예상지출 계산 중 상태 노출.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 15:34:23 +09:00
sb e9e397434f feat(stats): 예상 지출을 AI 추정으로 교체 — 일회성 큰 지출 왜곡 해결
Deploy / deploy (push) Failing after 10m53s
선형 계산(expenseForecast) 제거, AI 코멘트의 forecast/근거 표시. 경과일·총일수 전달.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 15:29:16 +09:00
sb 9f9fc14c64 refactor(stats): 예산·수입 대비 지출을 '이번 달 현황' 단일 패널로 통합
Deploy / deploy (push) Failing after 11m32s
두 패널을 하나로 합쳐 지출 중복 표기 제거·화면 밀도 완화(도넛+수입/지출 좌우 배치, 모바일 세로).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 15:19:59 +09:00
sb a9d4ea8410 feat(account): 통계 AI 코멘트 카드에 절약 가이드 섹션 추가
Deploy / deploy (push) Failing after 11m37s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 15:13:19 +09:00
sb 7affe5c318 feat(account): 통계 화면에 AI 재무 코멘트 카드
Deploy / deploy (push) Failing after 14m16s
집계만 /account/ai-comment 로 보내 코멘트 수신, 상단에 카드 표시(로딩·빈값 처리).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 15:06:56 +09:00
ByungCheol 5660451f04 docs: LAUNCH-PROGRESS 백로그 정리 (2026-07-05)
Deploy / deploy (push) Failing after 15m25s
완료 항목 v2 이후 추가 섹션으로 이동:
- 게시판 포인트 정책 / 가계부 포인트 / 스팸 자동 블라인드 / 관리자 신고 목록 고도화 / 외화 환율 갱신 시각
백로그 3항목 제거(완료), 다음 세션 재개 지점 업데이트

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-05 15:01:04 +09:00
ByungCheol c069e70de4 feat(fx): 환율 갱신 시각 표시 및 자동 업데이트 레이블
Deploy / deploy (push) Failing after 13m33s
- 환율 자동조회 후 '방금 업데이트 / N분 전 / N시간 전' 표시
- 30초 간격 ticker로 레이블 자동 갱신
- 폼 열기/통화 변경 시 rateUpdatedAt 초기화

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-05 14:52:02 +09:00
sb e23a694675 fix(account): 영수증 AI 힌트를 단일 필드로 전송(멀티파트 파트수 제한 회피)
Deploy / deploy (push) Failing after 13m37s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 14:46:44 +09:00
sb 7e13a42848 feat(account): 영수증 사진 AI 구조화 — 비전 우선, OCR 폴백
Deploy / deploy (push) Failing after 14m23s
영수증 선택 시 Claude Vision(/receipt-ai)으로 금액·상호·날짜·분류·계좌 자동 채움.
AI 실패/미인식 시 기존 Google Vision OCR+규칙파서로 폴백. 결과 배너에 ·분류 표시.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 14:22:07 +09:00
sb 6a4d01b6e1 feat(account): 자연어 빠른입력 완성 — 분류·계좌 자동추천 + 내역화면 진입점
Deploy / deploy (push) Failing after 11m25s
- applyParsed의 미선언 categoryMajor 참조 버그 수정(응답 처리 실패 원인)
- 빠른입력 모달 버튼 텍스트화 + 안전영역 하단 고정(가림 해결)
- 클립보드 자동입력을 거래성 텍스트일 때만(로컬 판단, 불필요 AI 호출 제거)
- AI 응답의 분류·결제수단을 폼에 자동 매칭(사용자 실제 목록 기준)
- 내역 화면에 ' 빠른 입력' 텍스트 바 진입점 추가

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 14:10:05 +09:00
ByungCheol 9994456f30 feat(admin): 스팸 감지 항목 관리자 신고 목록 표시
Deploy / deploy (push) Failing after 11m46s
- 스팸 감지 항목에 🤖 스팸감지 뱃지 표시 (🚩 신고 수 대신)
- blockReason(블라인드 사유) 카드에 표시
- 스팸 항목에는 신고 무시 버튼 숨김
- 안내 문구에 스팸 자동 블라인드 정책 추가

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-05 13:54:41 +09:00
sb 066ada961a feat(ai): 빠른 입력 버튼 라벨 '문자·푸시'→'빠른 입력' (자연어 입력 발견성)
Deploy / deploy (push) Failing after 10m50s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 11:50:39 +09:00
sb a561eccef8 feat(ai): 빠른 입력 모달 — 자연어 입력 안내 (백엔드 AI 파싱 연계)
Deploy / deploy (push) Failing after 11m36s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 11:24:14 +09:00
sb 902b213f60 ci: setup 캐시 제거 — 'Save cache' 후처리 hang 회피
Deploy / deploy (push) Failing after 15m35s
Gitea 캐시 서버 미연결 시 setup-node cache:npm 의 저장 후처리가 수 분 hang →
'job succeeded 인데 계속 실행중 → 타임아웃 가짜 실패' 유발. 캐시 제거로 즉시 종료.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 09:55:57 +09:00
sb 42406b4c75 fix(ui): 내역 추가 모달 닫기(×) 버튼이 상태바에 가려 클릭 안 되던 문제
Deploy / deploy (push) Failing after 14m18s
전체화면 entry 모달의 .close 에 env(safe-area-inset-top) 누락 → 상태바/노치 아래로 내림.
중앙 모달(확인/붙여넣기)에는 미적용(닫기가 다이얼로그 기준이라 불필요).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 22:42:37 +09:00
sb 16e8973532 feat(ios): 구글 로그인 iOS 설정 — GIDClientID + URL Scheme(역순 클라이언트 ID)
Info.plist 에 iOS OAuth 클라이언트 ID 와 리다이렉트 URL 스킴 추가.
plugin initialize 의 web 클라이언트 ID 는 그대로(백엔드 aud 검증).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 22:24:15 +09:00
sb 0d7e9ba4f5 docs: iOS 가이드(IOS.md) — 빌드·실기기 실행·Apple 로그인·safe-area·배포 정리
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 18:48:20 +09:00
sb 1525460149 fix(ui): 헤더 로그인 버튼과 하단 구분선 겹침 — 세로 패딩 추가
Deploy / deploy (push) Failing after 14m23s
- .app-header 및 모바일 미디어쿼리(≤768px) 둘 다 세로 패딩(0.5rem) 적용
  (미디어쿼리가 padding:0 1rem 으로 덮어써 앱에서 효과 없던 문제 포함)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 17:26:54 +09:00
sb cbb3d47bfa fix(ui): iOS safe-area 겹침 수정 — 헤더·하단 내비 콘텐츠 눌림 해결
- border-box 전역에서 고정 height 가 safe-area 패딩을 포함해 콘텐츠 행이 눌리던 문제
- AppBottomNav: height = calc(56px + safe-area-inset-bottom) → 아이콘 행 온전한 56px + 홈인디케이터 분리
- AppHeader: height → min-height → layout-top 상단 safe-area 패딩만큼 헤더가 커지도록

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 17:12:50 +09:00
sb 1cbf47ff87 feat(auth): iOS 애플 로그인 버튼 — Sign in with Apple(App Store 4.8 대응)
- @capacitor-community/apple-sign-in + LoginModal Apple 버튼(iOS 전용, HIG 검은 버튼)
- appleAuth 네이티브 래퍼 + authApi/auth store appleLogin
- SPM capacitor-swift-pm 8.x 로 패치(patch-package) — @capawesome 구글 플러그인과 iOS 공존
- App.entitlements(applesignin) 준비 — Xcode 'Sign in with Apple' Capability 추가 시 사용

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 17:01:43 +09:00
sb a7e5bf9c0f fix(ui): 하단 내비 상단 그림자 추가 — 콘텐츠와 시각적 분리(iOS 탭바 스타일)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 16:32:29 +09:00
sb 9de1949da8 feat(ios): Capacitor iOS 플랫폼 추가 — 시뮬레이터 실행 확인
- @capacitor/ios 추가, cap add ios (SPM, 플러그인 7종)
- Info.plist 카메라·사진 보관함 권한 문구
- 브랜드 앱 아이콘 생성, 번들 ID kr.sblog.slimbudget (안드와 동일)
- iPhone 17 시뮬레이터(iOS 26.5) 빌드·구동 확인

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 16:23:28 +09:00
sb 7861eef05b feat(admin): 신고 관리 화면 — 신고된 글/댓글 목록·블라인드·신고 무시
Deploy / deploy (push) Failing after 14m51s
- /admin/reports 라우트 + 사이드바 메뉴 + 헤더 타이틀
- boardApi.reports()/dismissReport() 추가(기존 block/unblock 재사용)
- 글 보기·블라인드(사유)·해제·신고 무시 액션

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 12:10:06 +09:00
sb a261dd2ca2 docs: README 실제 문서화 + FRONTEND.md 현행화(브랜딩·플랫폼·화면·투자)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 12:10:06 +09:00
ByungCheol ea9fbc359b feat(ui): 입력 모달 전체화면 슬라이드업 + 셀렉트→뱃지 전면 전환
Deploy / deploy (push) Failing after 12m1s
- AppModal.vue: 전체화면 슬라이드업 공통 모달 (Teleport+Transition)
- CategoryPicker.vue: 대/소분류 아코디언 칩 공통 컴포넌트
  admin 모드(일반: 행 단위+수정/삭제, 순서변경: flat+SortableJS)
- AccountView: 계좌종류·구분 셀렉트→뱃지, 분류→CategoryPicker
- RecurringView: 구분·주기 셀렉트→뱃지, 계좌/카드→뱃지, 분류→CategoryPicker
- AccountWalletView: 카드종류·상환방식 셀렉트→뱃지
- BudgetView: 비고정/고정 라디오→뱃지, 카테고리→CategoryPicker
- CategoryView: 리스트 UI → CategoryPicker 칩 그리드 관리 모드

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-04 01:24:15 +09:00
ByungCheol d364b52c73 fix(account): wallets ref TDZ 오류 수정 — computed 선언 전 초기화되도록 위로 이동
Deploy / deploy (push) Failing after 14m35s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-03 00:56:14 +09:00
ByungCheol 0b64f4f8cd Merge branch 'dev'
Deploy / deploy (push) Failing after 11m10s
2026-07-02 01:50:09 +09:00
ByungCheol c0e5421c33 fix(account): AccountView.vue 첫 줄 잘못된 '1' 문자 제거
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-02 01:43:01 +09:00
ByungCheol 282fb7476d Merge branch 'dev'
Deploy / deploy (push) Failing after 12m58s
2026-07-02 00:31:53 +09:00
ByungCheol 1b53af525e feat(account): 대출 실행금액 필드 추가 + 상환방식별 자동계산 분기
CI / build (push) Failing after 14m30s
- loan_amount(대출 실행 금액) 컬럼 추가(DB/도메인/DTO/mapper)
- 계좌 폼: 대출 실행 금액 입력 / 기록 시작 시 잔액(기존 openingBalance) 레이블 분리
- 계좌 카드: 실행금액·금리·상환방식 표시
- 상환 자동계산 3방식 분기:
  - 원리금균등: 납입금액 입력 → 이자(잔액×월이율) / 원금(납입-이자) 분리
  - 원금균등: 실행금액÷기간=월원금, 잔액×월이율=이자 자동계산
  - 만기일시: 잔액×월이율=이자만 자동계산, 원금 0
- 자동계산 후 이자·원금 수동 조정 가능

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-02 00:31:50 +09:00
ByungCheol 31cb4b7198 Merge branch 'dev'
Deploy / deploy (push) Failing after 12m36s
2026-07-02 00:02:13 +09:00