Skip to content

feat: 풀이 기록 삭제와 개인정보 안내 개선 - #32

Merged
hyesngy merged 2 commits into
developfrom
feat/history-management-privacy
Nov 5, 2026
Merged

hyesngy merged 2 commits into
developfrom
feat/history-management-privacy

Conversation

@paxo-dev

@paxo-dev paxo-dev commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

관련 이슈

연결된 GitHub 이슈는 없습니다. 개발 문서의 GAP-01(개인정보 안내 불일치)과 GAP-03 중 기록 삭제·저장 실패 안내를 처리합니다.

변경사항

  • 이미지가 디스크에 저장되지 않는다는 개인정보 안내를 실제 Mac의 JPEG·풀이 기록 보관 방식에 맞춰 한국어·영어로 수정합니다.

  • 풀이 상세의 개별 삭제와 설정의 전체 삭제를 제공합니다. 전체 삭제는 무료 플랜의 숨겨진 기록과 필터 밖 기록도 포함하며, 저장·삭제 실패는 재시도할 수 있습니다. 이미지·캐시·과목 지정을 정리하고 늦게 도착한 해설이 삭제된 기록을 복원하지 않도록 합니다.

  • 메뉴바 팝업에서 삭제 확인 경고창을 띄울 때 창이 닫히는 문제를 피하도록, 개별·전체 삭제 확인을 현재 화면 안에 표시합니다.

변경·영향 범위

담당 주 영역: 앱 Storage / UI입니다. 프록시의 개인정보 안내 페이지, 기록 관리 회귀 테스트, 데이터 저장·도메인 문서에 영향을 줍니다.

체크박스는 저장소 PR 작성 지침에 따라 검토자가 직접 확인하도록 비워두었습니다.

  • 앱 기능 (Capture / AI / Storage / UI)
  • StoreKit·사용량 정책
  • API·프록시
  • 앱 설정·권한·릴리스
  • 테스트·CI·개발 도구
  • 규칙·문서 (AGENTS.md, docs/)
  • 기타:

PR 분류

프록시 경로인 proxy-vercel/api/privacy.js를 수정하므로 저장소 기준상 Critical Path 변경입니다. 변경 내용은 개인정보 안내 HTML이며, 머지 전 담당자 확인이 필요합니다.

  • 일반 변경
  • Critical Path 변경

사전 예측

  • 예상 소요·기대 효과: 소요 시간은 사전에 산정하지 않았습니다. 계획 단계에서 로컬 보관 안내를 실제 동작과 맞추고 개별·전체 삭제와 실패 재시도를 제공하기로 했습니다.
  • 예상 병목·리스크: 기록 파일·이미지·과목 지정의 부분 실패와 삭제 후 늦게 도착하는 해설의 기록 복원 가능성을 계획 단계에서 확인했습니다.
  • 담당 영역 밖 확인 사항: 개인정보 안내의 한·영 정합성과 로그아웃·계정 삭제의 로컬 기록 유지 범위를 함께 확인하기로 했습니다.

실제 결과·트러블슈팅

  • 실제 소요·반영 결과: 작업 시간은 별도로 계측하지 않았습니다. 14개 파일에 기록 관리·개인정보 안내와 회귀 테스트 9개를 반영했습니다.
  • 실제 병목·해결 과정: 샌드박스의 아이콘 컴파일 도구 실행 제한은 정상 권한의 로컬 Xcode 빌드로 검증했습니다. 삭제 파일 저장 실패와 후속 이미지·과목 정리 실패를 구분하고, 재시도·재실행 시 남은 작업을 처리하도록 했습니다.
  • 배운 점·후속 작업: 기록을 읽지 못하면 기존 파일 보호를 위해 저장·삭제·이미지 정리를 멈춥니다. 메뉴바 팝업의 초점 이동을 피하도록 삭제 확인을 같은 화면에 표시합니다. VoiceOver 사용 흐름과 개인정보 안내 배포는 후속 확인이 필요합니다.

검증 결과

  • 검증 내용:
    • xcodebuild -project Paxo.xcodeproj -scheme Paxo -configuration Debug -destination 'platform=macOS' -derivedDataPath /tmp/paxo-history-build CODE_SIGNING_ALLOWED=NO build test: 빌드 성공, Swift 테스트 92개 통과했습니다.
    • xcrun swift-format lint --recursive --strict Paxo PaxoTests: 통과했습니다.
    • npm run check && npm test (proxy-vercel/): 문법 검사와 프록시 테스트 47개가 통과했습니다.
    • 개인정보 안내 핸들러 직접 호출로 GET 200·HTML 응답, POST 405, 로컬 보관·삭제 안내 및 기존 이미지 미저장 문구 제거를 확인했습니다.
    • git diff --cached --check와 커밋 대상 경로·시크릿 형식 검사를 통과했습니다.
    • 기록·이미지·과목 지정 삭제, 무료 플랜 숨겨진 기록 전체 삭제, 캐시 제거, 늦은 해설 무시, 저장·삭제·정리 실패 후 재시도, 읽기 실패 중 수정 내용 보존을 검증했습니다.
    • 2026-11-05 실제 Mac에서 메뉴바 기록 상세 → 삭제 확인 → 취소, 다시 확인 → Esc 취소, 설정 → 풀이 기록 → 전체 삭제 확인 → 취소를 직접 조작했습니다. 각 단계에서 창 유지와 취소 후 기록 보존을 확인했습니다. 사용자 동의로 기록 한 개를 실제 삭제하여 해당 날짜의 목록이 2개에서 1개로 줄고 다른 기록이 유지됨을 확인했습니다. 앱을 완전히 종료한 뒤 재실행해도 삭제 상태가 유지됨을 확인했습니다. VoiceOver 조작은 수행하지 않았습니다.
  • API Contract 앱·프록시 양쪽 반영 여부: 해당 없음입니다. 인증·생성 API 요청/응답 계약은 변경하지 않았으며 프록시는 개인정보 안내 HTML만 수정했습니다.
  • 시크릿 포함 여부: 커밋한 14개 파일에서 알려진 API 키·개인 키·GitHub 토큰 형식과 금지 경로를 검사했습니다. Paxo/Secrets.swift, 비공개 문서, node_modules/는 포함하지 않았습니다.

- 개별·전체 기록 삭제와 이미지·과목 연결 정리 추가
- 저장·삭제 실패 안내 및 재시도와 늦은 해설 복원 방지
- 실제 로컬 보관 동작에 맞춰 한영 개인정보 안내와 문서 정비
- 기록 삭제·저장 실패·복구 회귀 테스트 추가
@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

AI 사전 코드 리뷰 (파일럿)

검토 SHA: e6fe0ffc01a0 · 방식: 증분
상태: 미해결 0 · 해결 0 · 오탐 0 · 위험 수용 0
AI 호출: 2/20

메뉴바 팝업 패널에서 시스템 경고창(.alert) 호출 시 포커스를 잃고 패널이 닫히는 현상을 해결하기 위해, 인라인 삭제 확인 컴포넌트(HistoryDeletionConfirmation)를 추가하고 HistoryArchiveView 및 ResultView에 적용했습니다.

ID 심각도 확신·구분 위치 문제 상태
— — — — 수정할 가치가 높은 문제를 찾지 못했습니다. —

테스트 공백

  • 인라인 삭제 확인 컴포넌트(HistoryDeletionConfirmation)의 취소 및 삭제 동작, 단일/전체 삭제 실행 시 화면 전환 및 상태 변경 동작에 대한 UI/뷰 단위 테스트

사람의 판정: /ai-review false-positive AX-... 이유(10자 이상), /ai-review accepted-risk AX-... 이유(10자 이상), /ai-review reopen AX-...
AI 결과는 승인이나 머지 조건을 대체하지 않습니다.

@hyesngy
hyesngy requested review from hyesngy and removed request for hyesngy November 4, 2026 01:37
@hyesngy hyesngy self-assigned this Nov 4, 2026
- 삭제 확인을 현재 화면 안에 표시하고 공통 뷰로 통합
- 실제 Mac에서 개별·전체 삭제 확인과 취소 및 Esc 동작 확인
@hyesngy
hyesngy merged commit bf1ecb4 into develop Nov 5, 2026
7 checks passed
@hyesngy
hyesngy deleted the feat/history-management-privacy branch November 5, 2026 06:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants