Commit Graph

92 Commits

Author SHA1 Message Date
ByungCheol 4916d28604 fix: 웹 안내 페이지 한국어 줄바꿈(word-break: keep-all) — 'O요.' 고아줄 방지
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 20:34:24 +09:00
ByungCheol dbe255cf1c feat: 사이드바 메뉴에 아이콘 추가 (lucide 스타일 인라인 SVG)
CI / build (push) Failing after 15m5s
- 가계부/게시판/관리자 각 메뉴 항목에 18px 아이콘, 하단 내비와 톤 통일
- .menu-item flex 정렬, 활성 항목 아이콘 강조

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 19:56:01 +09:00
ByungCheol 579ee3e4e6 feat: 게시판 작성일 1일 이후 표기 YYYYMMDD → YYYY.MM.DD
- formatRelative: 1시간 이내 N분 전 / 1일 이내 N시간 전 / 그 이상 YYYY.MM.DD
- formatYmdDot 헬퍼 추가(기존 formatYmd 컴팩트 형식은 유지)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 19:51:49 +09:00
ByungCheol 8254460751 feat: 구글 로그인 전용 — 아이디 로그인 폼·회원가입 UI 숨김
CI / build (push) Failing after 14m50s
- src/config/features.js ID_LOGIN_ENABLED 플래그(기본 false)로 게이트
- LoginModal: 아이디/비번 폼·'또는' 구분선·회원가입 링크 숨김(구글 버튼만)
- HomeView: 랜딩 회원가입 버튼 숨김, 안내문구 정리
- 백엔드 /api/auth/login·signup 은 비상용으로 유지(플래그 true 로 복구 가능)
- LoginModal.spec: 아이디 로그인 플로우는 플래그 mock 으로 계속 검증

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 19:41:04 +09:00
ByungCheol b8c1440e4d fix: 앱 헤더 로고만(모바일)·런처 라벨 한 줄·Electron 구글 로그인 팝업
CI / build (push) Successful in 39s
- AppHeader: 좁은 화면(폰)은 브랜드명 텍스트 숨기고 로고만 → 두 줄 줄바꿈 방지
- 안드로이드 런처 라벨 '돈돼지가계부'(한 줄), 앱 내부 브랜드명은 유지
- Electron: accounts.google.com 팝업을 앱 내부 자식 창으로 열어
  GIS 로그인 결과(credential)가 앱 창으로 돌아오게 함(외부 브라우저 X)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 19:01:57 +09:00
ByungCheol a310c7a471 feat: 구글 로그인/가입 — 웹(GIS)·앱(네이티브 Credential Manager)
CI / build (push) Failing after 13m30s
- LoginModal: 서버에서 구글 클라이언트 ID 수신 시에만 버튼 노출
  - 웹/PC: Google Identity Services 렌더 버튼
  - 앱(안드로이드): @capawesome/capacitor-google-sign-in 네이티브 버튼
- 네이티브/웹 모두 ID 토큰을 /api/auth/google 로 전달(aud=웹 클라이언트 ID)
- auth 스토어/authApi 에 googleLogin·googleClientId 추가
- src/native/googleAuth.js 네이티브 래퍼 신규

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 18:02:19 +09:00
ByungCheol 1ca09b7439 feat: 앱명을 '돈돼지 가계부'로 통일 (가계부 인식 + 마스코트)
CI / build (push) Failing after 11m38s
- 헤더·웹안내·홈·약관 서비스명·푸터/설정 저작권·타이틀 → 돈돼지 가계부
- productName/capacitor appName/안드로이드 app_name·창제목/Electron app.setName·window title → 돈돼지 가계부
- 기술 식별자(appId, 설치파일명)는 유지

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 16:51:29 +09:00
ByungCheol 4ef5850613 fix: 아이콘 배경 회색박스 제거 — 원본 체커판(불투명) 키잉해 진짜 투명 돼지로
CI / build (push) Failing after 13m27s
- 저장된 piggy-fg.png 는 투명이 아니라 체커판이 회색/흰색으로 박힘 → 헤더·파비콘·PC에 회색 박스
- 회색/흰색 배경 키잉 + 돼지 본체 bbox 크롭 → assets/piggy-src.png(투명)
- 파비콘·헤더·PC ico = 투명 + 돼지만, 안드로이드는 금색 배경 유지

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 16:29:42 +09:00
ByungCheol d706339649 feat: 파비콘·PC 아이콘 금색배경(외곽선) 제거 → 투명 + 돼지 크게
CI / build (push) Failing after 11m23s
- favicon.png / apple-touch-icon.png / build/icon.ico: 투명 배경 + 돼지 ~95%
- 안드로이드: 금색 배경 유지(적응형 특성) + 전경/단일 돼지 크게
- 헤더 로고도 동일 재생성

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 16:21:43 +09:00
ByungCheol dc62d9883a feat: 헤더 로고를 '돈돼지' 이미지로 변경
CI / build (push) Failing after 11m36s
- AppHeader brand-mark(초록 막대 SVG) → public/logo-piggy.png(투명 돼지)
- 텍스트는 SlimBudget 유지, 비율 유지(height 28 / width auto)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 16:16:26 +09:00
ByungCheol e4d7df2554 fix(electron): 설치파일 손상 방지 — win.icon 을 표준 .ico(≤256)로 지정
CI / build (push) Failing after 11m20s
- 1024px PNG 자동변환 ico(1024 프레임)가 일부 환경에서 손상 인식되던 문제
- build/icon.ico(16~256px, png-to-ico) 생성해 win.icon 으로 지정

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 16:06:48 +09:00
ByungCheol 4e4c28bafe feat: 앱 아이콘·파비콘을 '돈돼지' 이미지로 변경
CI / build (push) Failing after 10m56s
- piggy-fg.png(투명 전경)에서 icon-foreground/background(금색)/only 합성
- @capacitor/assets generate --android 로 안드로이드 런처/적응형 아이콘 재생성
- 파비콘: public/favicon.png·apple-touch-icon.png 생성, index.html 갱신(구 logo.svg→png)
- PC(Electron) 설치 아이콘은 icon-only.png 사용(설치파일 재빌드 시 반영)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 15:52:11 +09:00
ByungCheol 0eb3eaaa67 feat: 영수증·문자푸시 버튼 같은 행 + 문자/푸시 붙여넣기 모달화
CI / build (push) Failing after 11m48s
- 영수증 스캔·문자·푸시 버튼을 상단 한 행(rb-actions)에 나란히, 안내문구는 아래
- 문자·푸시 붙여넣기를 하단 인라인 → 모달로(텍스트영역+감지+분석·채우기)
- 팝업 열 때 클립보드 자동감지 시 버튼에 ● 배지

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 15:31:20 +09:00
ByungCheol 5a5959a26e feat: 자주 쓰는 내역 불러오기 모달 피커 + 붙여넣기 버튼 영수증 행으로
CI / build (push) Failing after 13m52s
- 불러오기: 셀렉트 → 모달 리스트(시인성↑), 항목 탭하면 폼 채움
- 문자·푸시 붙여넣기 버튼을 영수증 스캔과 같은 행(우측)으로 이동, 감지/수동입력은 아래로 분리

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 15:19:13 +09:00
ByungCheol eeea19e20b fix: 자주 쓰는 내역 저장 안내를 수정 모달 안에 표시
CI / build (push) Failing after 14m9s
- 페이지 상단 flash → 모달 내 formInfo(성공 메시지)로 변경(모달에 가려 안 보이던 문제)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 15:08:59 +09:00
ByungCheol ca803272c4 fix: 신규 추가는 '자주 쓰는 내역 불러오기', 수정은 '저장'으로 분기
CI / build (push) Failing after 14m0s
- 신규 추가 폼: 자주 쓰는 내역 선택해 폼 채우기(불러오기) 셀렉트
- '자주 쓰는 내역으로 저장' 버튼은 수정(editId) 시에만 노출

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 14:59:09 +09:00
ByungCheol 8e651c786f feat: 자주 쓰는 내역 칩(바로 등록) + 문자/푸시 붙여넣기 자동채움
CI / build (push) Failing after 15m32s
- 가계부 상단 자주 쓰는 내역 칩: 탭하면 오늘 날짜로 즉시 등록(+안내), 편집 모드로 삭제
- 내역 추가/수정 폼: ' 자주 쓰는 내역으로 저장' 버튼(수입/지출)
- 추가 팝업 열 때 클립보드 자동감지 배너 + '📋 문자·푸시 붙여넣기' 버튼
  (실패 시 수동 붙여넣기 입력칸) → 구분/금액/메모/날짜 자동 채움
- accountApi: parseText / quickEntries CRUD

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 14:50:10 +09:00
ByungCheol dd17fae5f4 feat: 기본 분류 — 관리자 설정 화면 + 사용자 '기본 분류 불러오기'
CI / build (push) Failing after 14m11s
- 관리자 전용 기본 분류 관리 화면(DefaultCategoryView, 계층 드래그) + 라우트/사이드바 링크
- adminApi 기본분류 CRUD/reorder
- CategoryView '기존 분류 불러오기' → '기본 분류 불러오기'(관리자 정의 분류 복사)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 23:03:52 +09:00
ByungCheol f533df0024 feat: 네이티브 alert/confirm/prompt → 공용 인앱 다이얼로그 (PC 'sb_pt' 제거)
CI / build (push) Failing after 15m30s
- composables/dialog + components/ui/AppDialog(App 루트 마운트)
- window.alert 전역 오버라이드로 모든 alert 인앱화
- confirm/prompt(동기)는 각 호출부를 await dialog.confirm/prompt 로 교체
  (가계부·예산·고정지출·계좌·태그·관리자·게시판·설정 — 삭제/열람제한 등)
- 웹/PC/APK 일관 UI, 의미있는 제목 부여

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 21:57:50 +09:00
ByungCheol 643bb8011b fix: 분류 관리 — 삭제 확인 인앱 모달 / 행별 대분류 select 제거 / 추가옵션 대분류명만
CI / build (push) Failing after 11m34s
- 삭제·불러오기 네이티브 confirm('sb_pt' 제목) → 인앱 확인 모달로 교체, 오류도 인라인 표시
- 각 행 아래 '대분류' 선택 박스 제거(불필요) — 계층은 추가 폼·드래그로 관리
- 추가 폼 대분류 옵션 'OOO의 소분류' → 'OOO'(대분류명만)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 21:31:39 +09:00
ByungCheol 8add41d94f fix: 고정지출 등록 확인 인앱 모달 + 분류 관리 계층 드래그
CI / build (push) Successful in 36s
1. PC 네이티브 confirm 제목('sb_pt') 노출 → '고정지출 등록' 인앱 확인 모달로 교체
   (성공 시 토스트 안내). electron app.setName('Slim Budget')로 다른 네이티브
   대화상자 제목도 개선(다음 Electron 빌드 시 반영).
2. 분류 관리 드래그를 계층형으로: 대분류는 블록 단위(소분류 함께) 이동,
   소분류는 그 대분류 안에서만 이동(고유 group). 로컬 즉시반영으로 스냅백 방지.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 21:02:09 +09:00
ByungCheol cad1aba0ca feat: 가계부 분류를 대분류→소분류 2단 선택으로 변경
CI / build (push) Failing after 11m9s
- 단일 긴 드롭다운(대분류 많으면 스크롤 과다) → 대분류 선택 후 소분류 선택
- 자식 없는 대분류는 그 자체가 분류(소분류 select 숨김)
- 편집 진입 시 현재 분류로부터 대분류 자동 추론, 구분 변경 시 초기화
- 인라인 분류 추가는 선택된 대분류의 소분류로 생성

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 23:57:19 +09:00
ByungCheol 27beaf28d4 fix: 분류 관리 행 가로 오버플로우 — 이름+버튼 윗줄 / 대분류 select 아랫줄
CI / build (push) Failing after 13m50s
- 좁은 화면에서 버튼이 화면 밖으로 밀리던 문제 해결
- 행을 2단(이름·저장·삭제 / 대분류 선택)으로 분리, 버튼 sm 크기
- 추가 폼도 대분류 선택은 윗줄, 이름+추가는 아랫줄로 분리

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 23:49:39 +09:00
ByungCheol f55443b823 fix: 폼 셀렉트 높이를 input·버튼과 통일 (font 상속 리셋)
CI / build (push) Successful in 36s
- 네이티브 select 가 폰트 미상속으로 input 과 높이 달라 보이던 이질감 해소
- 전역 input/select/textarea { font: inherit } + select 기본 padding/border 정렬
- CategoryView 대분류 select 폰트 오버라이드 제거

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 23:39:37 +09:00
ByungCheol 6ab8d331e3 feat: 분류 대/소분류 UI — 관리·입력·예산·고정지출·통계
CI / build (push) Failing after 12m0s
- 분류 관리: 대분류 선택·소분류 들여쓰기(드래그 정렬 유지)
- 입력/예산/고정지출 분류 드롭다운 대분류 optgroup 그룹핑(값은 소분류명)
- 대시보드: 파이는 소분류 기준 + 대분류 합계 롤업 표시
- 릴리스 노트 33

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 23:16:46 +09:00
ByungCheol b1f85cee52 feat: 통계·가계부 UX 개선 + 계좌 탭 한 줄
CI / build (push) Failing after 14m57s
- 통계: 순자산 추이 주간(최근 3개월), 이번달 예상 지출(run-rate), 지난달 대비 지출
- 가계부: 내역→고정지출 바로 등록, 날짜별 접기/펴기(기본 접힘·오늘만 펼침·모두 토글)
- 계좌 관리 탭 한 줄(넘치면 가로 스크롤)
- 릴리스 노트 갱신(23~32)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 22:38:22 +09:00
ByungCheol 8cc9cbb383 fix(android): 키보드(IME)가 입력폼 가리는 문제 — WebView를 키보드 위로 리사이즈
CI / build (push) Failing after 14m59s
- MainActivity 인셋 리스너에 IME 인셋 반영: 하단 패딩 = max(시스템바, 키보드 높이)
  → 키보드가 뜨면 WebView가 키보드 위로 줄어들어 입력 모달이 재배치됨
- AndroidManifest activity에 windowSoftInputMode=adjustResize 추가
- 모달은 기존 max-height+overflow로 스크롤되어 모든 필드 확인 가능
- 네이티브 전용(웹/PC 무영향) → APK 재빌드 필요

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 21:53:22 +09:00
ByungCheol 43b01da1ff docs: 고정지출 안내 — '확인 필요'로 생성 후 확정 안내
CI / build (push) Failing after 15m14s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 17:13:26 +09:00
ByungCheol 8133963f89 feat: 이체에도 현금 지원 — ATM 출금(은행→현금) 등 현금 계좌 이체 가능
CI / build (push) Failing after 14m41s
- WALLET_KINDS에 현금 추가, 중복되던 별도 '현금' 라디오 제거
- 출금/입금 종류 모두에서 현금 선택 가능(이체 포함)
- 현금 계좌 선택 셀렉트 상시 노출, 수입/지출 현금은 '미지정'(무계좌) 허용 유지

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 15:53:56 +09:00
ByungCheol a4a4aec314 feat: 가계부·계좌관리에 현금 계좌 추가
CI / build (push) Failing after 14m41s
- 계좌 관리: '현금' 탭 + 폼(이름·초기 잔액, 발급사/계좌번호 등 미노출)
- 가계부 입력: 현금 선택 시 등록된 현금 계좌를 고를 수 있음(없으면 종전처럼 미지정)
- 고정 지출: 현금 종류 추가

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 15:43:45 +09:00
ByungCheol 9aa5f5d690 feat: 상환/납부 연회비 입력(카드 대상 시) + 원금/이자 안내
CI / build (push) Failing after 15m31s
- 대상이 카드일 때만 연회비 입력란 노출(repayTargetIsCard)
- 원금=이체·이자/연회비=지출 안내 placeholder, 검증 '원금·이자·연회비 중 하나'

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 22:52:34 +09:00
ByungCheol 9f079fcead docs: 릴리스 노트 갱신 — 투자 단순화·알림 입출금 분류·광고차단 강화·분류 학습·상환 수정
CI / build (push) Failing after 15m13s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 22:33:01 +09:00
ByungCheol d88854d11b fix: 상환/납부를 수정(편집) 시에도 선택 가능하게
CI / build (push) Failing after 11m45s
- 구분 드롭다운의 '상환/납부'가 신규 등록에서만 보이던 제약(v-if="!editId") 제거
- 수정 중 상환/납부로 전환 시: 상환 2건(원금=이체, 이자=지출) 생성 후
  원본 1건 삭제 — 생성 성공 후 삭제 순서로 중간 실패 시 원본 보존
- openEdit에서 principal/interest 초기화(이전 값 잔존 방지)
- 잘못 입력한 단순 이체/지출을 원금·이자 분리 상환으로 정정 가능

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 22:06:16 +09:00
ByungCheol dba0741cca feat: 투자 계좌를 투자금·평가액 입력형으로 단순화 (종목 관리 제거)
CI / build (push) Successful in 34s
- 종목(매수/매도/현재가) 관리 UI(InvestPortfolio) 제거 — 퇴직연금·연금처럼
  투자금(투입원금)과 현재 평가액만 입력하면 손익·수익률 자동 계산
- 계좌 펼침: 종목 포트폴리오 → 투자금/평가액/손익 요약 카드
- 폼: '현재 평가액'을 기본 입력 필드로, 안내 문구 정리
- 투자 탭 진입 시 자동 시세갱신 로직 제거(불필요)
- 백엔드 변경 없음(평가액 직접입력 경로 그대로 사용)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 23:12:22 +09:00
ByungCheol 9807472474 feat: 알림 입금 인식 + 미확인 수입 기본 은행계좌
CI / build (push) Successful in 34s
- 네이티브 알림 필터에 입금/이체/송금 키워드 추가(입금 알림도 수집)
- 미확인(pending) 내역: 수입(입금)이면 기본 계좌종류 은행, 지출이면 카드

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 22:50:23 +09:00
ByungCheol 2cde893d55 docs: 릴리스 노트 갱신 — 데스크톱 클라이언트·브랜드 아이콘·캘린더 팝업·월별 내역·카드 매칭·이미지 업로드·에디터 팝업
CI / build (push) Successful in 34s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 21:05:47 +09:00
ByungCheol c67c2ba7ed fix: 모바일 에디터 팝업 좌측 잘림 — Toast UI margin-left:-150px 취소
CI / build (push) Failing after 13m37s
- Toast UI 가 max-width:480px 에서 popup 에 margin-left:-150px 를 줘 좌측으로 밀려 잘렸음
- 중앙 모달 규칙에 margin:0 !important 추가 → 표/링크 팝업도 화면 중앙에 온전히 표시

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 21:00:00 +09:00
ByungCheol 7276d878dd fix: 모바일에서 에디터 팝업(표/링크 등) 화면 중앙 모달로 — 좌측 잘림 해결
CI / build (push) Failing after 14m9s
- 좁은 화면(댓글창 등)에서 Toast UI 팝업이 좌측으로 넘쳐 OK/입력칸이 잘리던 문제
- @media(max-width:768px)에서 .toastui-editor-popup 을 fixed 중앙 모달로(항상 보임)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 20:49:28 +09:00
ByungCheol 2e2c784f4c fix: 에디터 이미지 버튼 = 바로 업로드(팝업 제거) — 댓글창 OK 잘림 해결
CI / build (push) Failing after 12m20s
- Toast UI 기본 이미지 팝업(File/URL/Description/OK)이 작은 댓글창/하단 위치에서 잘려
  OK 를 못 누르던 문제 → 커스텀 툴바 이미지 버튼으로 교체(클릭 시 바로 파일선택→업로드→삽입)
- 서버 업로드(URL) 그대로

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 20:16:14 +09:00
ByungCheol f7f75b7fb1 revert: 게시판 에디터를 Toast UI 위지윅으로 통일(PC 포함)
CI / build (push) Failing after 14m53s
- PC 전용 textarea/썸네일 방식 제거 — 글 흐름(이미지 아래 설명 등)이 불편하다는 피드백 반영
- 모든 플랫폼 위지윅(이미지 인라인). PC 한글 첫 자음 중복은 감수(tui.editor Windows IME 업스트림 버그)
- 서버 이미지 업로드(addImageBlobHook)는 유지 — 화면 변화 없는 개선(base64 미사용)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 20:03:44 +09:00
ByungCheol f45014f827 feat: PC 에디터 이미지를 첨부(썸네일)로 분리 — 본문 텍스트에 URL 미노출 + 썸네일 확대
CI / build (push) Failing after 11m37s
- 이미지 마크다운(![](url))을 본문 textarea 에서 분리해 별도 첨부 목록으로 관리
  · 저장 시 본문 끝에 합쳐 emit, 편집 로드 시 본문/이미지 분리
  · 썸네일 120px 확대 + 제거(×) 버튼
- 텍스트는 깨끗하게(긴 URL 미노출), 이미지는 썸네일로 확인

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 19:57:00 +09:00
ByungCheol cbc6245cc7 feat: PC 에디터 이미지 썸네일 — 편집창 안에서 올린 이미지 확인
CI / build (push) Successful in 35s
- 본문의 ![](url) 이미지를 파싱해 툴바 아래 썸네일 줄로 표시(서버URL·데이터URI 모두)
- 미리보기 탭/패널 제거(한글 IME 위해 textarea 유지), 썸네일로 업로드 확인

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 19:47:19 +09:00
ByungCheol bfba296b91 feat: 에디터 이미지 = 서버 업로드(URL) + 업로드 안내 메시지
CI / build (push) Successful in 35s
- PC 에디터: 🖼 → 압축 → 서버 업로드 → 본문에 ![](/api/images/{id}) 삽입(base64 제거)
- Toast UI(웹/APK): addImageBlobHook 으로 동일하게 서버 업로드(base64 대체)
- 업로드 중/실패 안내 메시지 표시

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 19:17:44 +09:00
ByungCheol 0238e0b22f feat: PC 마크다운 에디터에 이미지 추가(파일 선택 → 압축 → base64 임베드)
CI / build (push) Failing after 13m52s
- 이미지 버튼: 파일 선택 → imageToBlob(1280px·JPEG0.85)로 압축 → ![alt](data:...) 삽입
- 웹 에디터처럼 본문에 임베드(별도 서버 저장 없음), 단 압축으로 용량 절감

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 18:14:40 +09:00
ByungCheol b4aa5c2ad0 feat: PC용 툴바 마크다운 에디터 (한글 IME 정상)
CI / build (push) Successful in 34s
- Toast UI 는 Windows IME 와 충돌(업스트림 버그)하므로 PC(Electron)에선 textarea 기반
  마크다운 에디터 사용: 툴바(제목·굵게·기울임·취소선·인용·목록·체크·링크·코드·구분선) + Write/Preview 탭
- textarea(v-model)라 한글 IME 정상. 웹/APK 는 Toast UI 위지윅 유지

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 18:08:23 +09:00
ByungCheol 9c61f888a5 fix: PC(Electron) 본문 입력을 일반 textarea로 — 한글 IME 중복 완전 해결
CI / build (push) Failing after 12m11s
- Toast UI 위지윅·마크다운(CodeMirror) 둘 다 Electron 한글 IME 첫 자음 중복 발생
  (제목 등 일반 input 은 정상) → PC 에선 본문을 일반 textarea(v-model, 네이티브 IME)로 입력
- 웹/APK 는 기존 Toast UI 위지윅 유지

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 17:56:20 +09:00
ByungCheol 7f6a4c62e5 fix: PC(Electron) 위지윅 한글 IME 중복 → 에디터를 마크다운 모드로 전환
CI / build (push) Failing after 12m48s
- 진단: 제목(일반 입력)은 정상, 본문 위지윅(contenteditable)만 첫 자음 중복 → ProseMirror+Electron IME 버그
- MarkdownEditor: Electron 감지 시 initialEditType='markdown'(텍스트 기반 입력) → IME 정상. 웹/APK는 위지윅 유지
- 앞서의 불필요한 조합(composition) 처리 코드 제거(원인이 아니었음)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 17:50:43 +09:00
ByungCheol 561c56a8e0 fix: PC(Electron) 한글 IME 첫 글자 중복 입력 수정
CI / build (push) Failing after 15m13s
- webPreferences spellcheck:false — Chromium 맞춤법 검사기가 한글 조합을 방해해
  첫 자음이 중복('ㅅ사')되던 Electron 알려진 버그 회피 (APK/모바일은 정상이라 데스크톱 전용 이슈)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 17:43:17 +09:00
ByungCheol f86f8343ef fix: 게시판 에디터 한글 IME 첫 자음 중복 입력 수정
CI / build (push) Failing after 13m5s
- MarkdownEditor: IME 조합(compositionstart~end) 중에는 getMarkdown/emit 보류,
  조합 완료 시 한 번만 반영 → 조합 중 직렬화로 자음이 중복되던('ㅅ사') 문제 해소
- 조합 중에는 watch 의 setMarkdown 도 건너뜀

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 17:30:26 +09:00
ByungCheol dc31cf4bfa fix: 데스크톱 캐시로 인한 최신 화면 미반영 해결 + HTML no-cache
CI / build (push) Failing after 13m13s
- electron/main.cjs: 시작 시 HTTP 캐시 클리어 → 라이브 사이트 최신 프론트 항상 로드
  (루트 '/' HTML 이 캐시돼 옛 번들이 뜨던 문제 — '로그인 전 사이드바' 미반영 원인)
- nginx: location / 에 Cache-Control no-cache 추가(웹/PWA 진입 HTML 항상 최신)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 17:25:21 +09:00