Skip to content

0.5.2: 녹음 중 장치 전환 크래시 수정(#57) + 릴리스 준비 - #59

Merged
sjoon21 merged 2 commits into
mainfrom
fix/mic-config-change-crash
Oct 30, 2026
Merged

sjoon21 merged 2 commits into
mainfrom
fix/mic-config-change-crash

Conversation

@sjoon21

@sjoon21 sjoon21 commented Oct 30, 2026

Copy link
Copy Markdown
Owner

Fixes #57

변경

  • tractus-rec: 녹음 중 입력 장치가 바뀔 때 MicSource.open의 installTap이 던지는 NSException으로 프로세스가 abort되던 것 수정
    • tap 전에 입력 포맷 검사(RecorderKit.micFormatProblem: 채널·표본 속도 0, 하드웨어 포맷 불일치 → Swift 오류로 던져 기존 재시도로 넘김. 에코 제거 중에는 표본 속도 일치를 보지 않음)
    • stop()마다 새 AVAudioEngine으로 교체
    • 새 SwiftPM 타깃 ObjCCatch로 installTap을 감싸 NSException을 오류로 변환(최후 방어선)
  • duration: null로 남은 녹음도 변환 전 노트로 저장되는 것을 테스트로 고정(tests/test_deferred.py)
  • 0.5.2 릴리스 준비: 버전, docs/releases/v0.5.2.md, 로드맵, ARCHITECTURE v3.76·v3.77

테스트

  • swift test 31개, uv run pytest 911, vitest 675, tsc, 금지어·라이선스·플러그인 검사
  • 이 Mac의 실제 마이크로 일반·에코 제거 녹음 각 4초 정상
  • 실제 입력 장치 전환(블루투스 연결·해제)은 재현하지 못했다 — 릴리스 노트에 그대로 적음

🤖 Generated with Claude Code

sjoon21 and others added 2 commits October 30, 2026 16:04
- installTap 전에 입력 포맷(채널·표본 속도·하드웨어 포맷)을 검사해 오류로 던지고, 기존 재시도(watchdog)로 넘김
- 마이크 소스를 멈출 때마다 새 AVAudioEngine으로 바꿈
- Objective-C 예외를 Swift 오류로 바꾸는 ObjCCatch 타깃으로 installTap을 감쌈
- 비정상 종료로 duration이 null인 녹음도 변환 전 노트로 저장되는지 테스트 추가

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@sjoon21
sjoon21 merged commit e5a8d4c into main Oct 30, 2026
9 checks passed
@sjoon21
sjoon21 deleted the fix/mic-config-change-crash branch October 30, 2026 07:14
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.

녹음 중 장치 전환 시 tractus-rec 크래시: MicSource.open의 installTap NSException (SIGABRT)

1 participant