Skip to content

feat: 입력창 inset 테두리와 상태 전환 애니메이션 - #38

Merged
safethecode merged 5 commits into
mainfrom
feat/animated-inset-inputs
Oct 20, 2026
Merged

safethecode merged 5 commits into
mainfrom
feat/animated-inset-inputs

Conversation

@safethecode

@safethecode safethecode commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

경로·파일 검색·칸 이름 입력창을 누를 때 기존 경계가 딱딱하게 바뀌던 동작을, 안쪽으로 번지는 중립색 inset 경계와 부드러운 hover/focus 전환으로 바꿉니다.

  • native NSTextField/NSSearchField 편집기·IME·검색/지우기·접근성을 유지하고 경계 opacity만 0.18초 전환합니다. 동작 줄이기에서는 즉시 적용합니다.
  • 기존 경로/검색 높이 28pt를 유지하고 이름 변경 입력도 28pt로 맞춥니다. 파란 외곽 focus ring은 계속 생략합니다.
  • 검증: ./scripts/check.sh 전체 40개 테스트 통과, 최종 native hover 이벤트 검사 뒤 해당 2개 재실행 통과. 실제 별도 앱의 라이트/다크 기본·포커스, 한글 붙여넣기, 검색 취소/Tab, 경로 Enter 이동과 이름 저장 확인. 디자인 게이트 PASS.
  • 셀프 리뷰: 상태 변경 중 편집기·조합·프레임 유지, overlay hitTest 통과, 비활성 창/동작 줄이기/리사이즈를 확인했습니다. CUA 도구 제약으로 실제 포인터만 이동한 hover 캡처는 확보하지 못했고 native mouseEntered→CAAnimation 검사를 실행했습니다. 물리적인 동작 줄이기 설정 변경/VoiceOver 전체 검증은 주장하지 않습니다.

관찰: 입력창 검증 기록. 원래 사용 중인 Chop 셸은 종료하지 않았습니다.

CodeRabbit은 무료 OSS 리뷰 사용량 제한으로 이번 코드 리뷰를 실행하지 못했습니다. 자동 상태의 성공 표시는 독립 리뷰/승인으로 해석하지 않으며, 위 검증과 셀프 리뷰 범위로 기록합니다.

CI 후속: 입력창 변경 전 main도 빌드 완료 뒤 테스트가 응답하지 않아30분 제한으로 종료됐고, 이번 동일 커밋 두 실행도 테스트 단계에서 멈췄습니다. 첫 실행은 재검사를 위해 취소했고 두 번째는 새 커밋의 concurrency 정책으로 취소됩니다. 정확한 deadlock 위치는 확인되지 않았습니다. 공유 AppKit/field editor/엔진 상태의 겹침을 줄이도록 check.sh에 swift test --no-parallel을 명시했습니다. 삭제·skip·기대값 완화 없이 같은40개 테스트가 순차 실행되고 최종 로컬 check.sh가 통과했습니다(11.835초). 최종 원격 실행39344689412는 최신 c7afc94 커밋에서 전체 검사 성공으로 완료됐습니다(2분21초).

추가 셀프 리뷰: window.didUpdate가 같은 target opacity에 불필요한 레이어 commit을 반복하던 코드를 고쳤습니다. 같은 상태에서 동작 줄이기를 켜면 진행 중 모션 제거가 유지되는 회귀 검사와 전체40개 check.sh(12.321초), 최종 실제 두 모드 입력/caret/Tab을 확인했습니다. CI 정확한 정체 위치를 확인할 수 있도록60초마다 테스트 프로세스 호출 스택을 기록합니다. 기존 check.sh 실행/종료 코드는 그대로 유지합니다.

최종 셀프 리뷰: native 편집기·조합과 액션 연결, 같은 opacity의 반복 commit 방지, 동작 줄이기와 빠른 상태 전환, 모드/배율별 캐시, CI monitor의 실패 종료 코드 전달을 확인했습니다. 최신 커밋의 macOS CI와 로컬 전체40개 검사 및 디자인 게이트 PASS. 정확한 과거 CI 멈춤 원인은 확정하지 않습니다.

@coderabbitai

coderabbitai Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 2 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 94aad8a6-834e-4558-afae-87c3f168df1f
📥 Commits

Reviewing files that changed from the base of the PR and between 5098ed4 and c7afc94.

📒 Files selected for processing: 13
  • .github/workflows/ci.yml
  • CONTRIBUTING.md
  • DESIGN.md
  • Sources/Chop/FileBrowserView.swift
  • Sources/Chop/InsetInput.swift
  • Sources/Chop/WorkspaceView.swift
  • Tests/ChopTests/InsetInputTests.swift
  • design/evidence/inset-input-motion.md
  • design/failure-events.jsonl
  • design/gate-contract.json
  • design/gate-report.json
  • design/review.md
  • scripts/check.sh
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@safethecode
safethecode merged commit 534c412 into main Oct 20, 2026
2 checks passed
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