Skip to content

feat: 풀이 기록 수정과 설정 개선 - #27

Merged
hyesngy merged 5 commits into
developfrom
feat/history-edit-settings
Oct 16, 2026
Merged

hyesngy merged 5 commits into
developfrom
feat/history-edit-settings

Conversation

@hyesngy

@hyesngy hyesngy commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

관련 이슈

없음

변경사항

  • 과거 풀이 상세에서 정답과 해설을 각각 수정하거나, 해설이 없는 기록에 직접 입력할 수 있습니다. 수정 내용은 로컬 기록에 저장됩니다.
  • 정답 수정 시 기존 AI 선택지 정보를 지우고, 기존 해설이 수정 정답과 다를 수 있음을 표시합니다. 늦게 도착한 AI 해설은 사용자가 직접 쓴 해설을 덮지 않습니다.
  • 설정의 계정 섹션에 Apple 로그인 버튼을 추가하고 메뉴와 동일한 인증 흐름을 사용합니다.
  • 토스트 표시 문구를 요청한 표현으로 바꾸고, 글자 크기 Picker의 상태 반영을 다음 메인 실행 주기로 미뤘습니다.

변경·영향 범위

담당 주 영역:

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

PR 분류

  • 일반 변경
  • Critical Path 변경

사전 예측

  • 예상 소요·기대 효과: 사용자가 잘못된 AI 답·해설을 기록에서 고칠 수 있습니다.
  • 예상 병목·리스크: 기존 기록 JSON 호환성, 늦게 도착하는 AI 해설과 수동 편집의 경합, macOS 글자 크기 경고 재현이 핵심 확인 사항입니다.
  • 담당 영역 밖 확인 사항: 서버 API 계약, StoreKit, 사용량 정책은 변경하지 않습니다.

실제 결과·트러블슈팅

  • 실제 소요·반영 결과: 네 커밋으로 기능을 반영했고 최종 macOS 빌드·전체 테스트·포맷 검사를 통과했습니다.
  • 실제 병목·해결 과정: 수동 해설 편집 뒤 늦게 온 AI 응답이 덮어쓸 수 있는 경합을 찾아 차단했습니다. 앱 UI 자동화 도구는 시간 초과로 실행 화면 검증에 실패했습니다.
  • 배운 점·후속 작업: 정답 수정 전에 시작한 AI 해설은 재확인 표시가 필요합니다. 설정에서 글자 크기의 모든 전환과 Apple 로그인 상태별 UI는 실기기에서 콘솔과 함께 확인해야 합니다.

검증 결과

  • 검증 내용: xcrun swift-format lint --recursive --strict Paxo PaxoTests 통과. xcodebuild -project Paxo.xcodeproj -scheme Paxo -configuration Debug -destination 'platform=macOS' -derivedDataPath /private/tmp/paxo-codex-derived CODE_SIGNING_ALLOWED=NO build -quiet 통과. 동일한 프로젝트·scheme·destination·derivedDataPath와 CODE_SIGNING_ALLOWED=NO로 test -quiet 통과. 기록 수정·빈 내용 차단·기존 기록 복원·늦은 AI 응답 경합 테스트 통과. 설정 UI 수동 확인은 자동화 도구 시간 초과로 미실행.
  • API Contract 앱·프록시 양쪽 반영 여부: 해당 없음. 요청·응답 규격을 변경하지 않았습니다.
  • 시크릿 포함 여부: 없음. 변경 파일 목록과 전체 diff를 확인했으며 시크릿·비공개 문서·기존 미추적 문서는 포함하지 않았습니다.

@github-actions

Copy link
Copy Markdown

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

검토 SHA: 20e9299087dc · 방식: 전체
상태: 미해결 2 · 해결 0 · 오탐 0 · 위험 수용 0
AI 호출: 1/20

히스토리 내 정답 및 해설 수정 기능과 Apple 로그인 버튼 컴포넌트 분리가 추가되었습니다. 과거 히스토리 항목 수정 시 AppState 및 ResultView에서 발생할 수 있는 로직 결함 2건을 확인하여 리포트합니다.

ID 심각도 확신·구분 위치 문제 상태
AX-53752e70cbfb high high · confirmed Paxo/AppState\.swift:358 히스토리 정답/해설 수정 기능이 current 객체 일치 여부를 필수 가드로 요구하여 과거 기록 수정이 동작하지 않는 문제 open
AX-468858517d3d medium high · confirmed Paxo/UI/ResultView\.swift:265 히스토리 해설 수정 버튼에서 뷰가 표시 중인 뷰 모델 대신 appState.current 참조 open

Finding 상세

  • AX-53752e70cbfb: 사용자가 히스토리 목록에서 과거 풀이 기록을 선택하여 수정할 때, appState.current는 nil이거나 최근 수행한 별개의 풀이일 수 있습니다. 이 경우 'guard var 조치: id가 current?.id와 일치하지 않거나 current가 nil인 경우에도 history 배열에서 해당 id 항목을 검색하여 내역을 업데이트하고 historyStore.sav
  • AX-468858517d3d: savedExplanation 뷰 내부에서 appState.current를 검사하고 있습니다. 히스토리 열람 시 appState.current가 nil이면 '해설 수정' 버튼이 화 조치: savedExplanation 메서드에 ResultView가 현재 표시하고 있는 SolveResult 객체를 전달하거나 매개변수로 취해 beginEdit(.explanation,

테스트 공백

  • AppState.updateHistoryAnswer 및 updateHistoryExplanation 실행 시 current가 nil이거나 다른 SolveResult일 때 history 기록 수정이 올바르게 지속되는지 검증하는 단위 테스트가 부족합니다.

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

@hyesngy
hyesngy merged commit 7809edc into develop Oct 16, 2026
7 checks passed
@hyesngy
hyesngy deleted the feat/history-edit-settings branch October 16, 2026 05:30
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.

1 participant