Skip to content

Itda 0.9.0

Choose a tag to compare

@jiunbae jiunbae released this 19 Oct 11:19
· 14 commits to main since this release
v0.9.0
f6a7120

다중 모니터 보기와 macOS 종료 크래시 수정

  • 기본은 기억한 모니터 하나. 모니터 메뉴에서 전체 데스크톱 또는 모니터마다 별도 창으로 전환합니다.
  • 각 창은 같은 원격 연결·디코더를 공유합니다. 새 원격 로그인이나 네트워크 스트림을 만들지 않습니다.
  • 연결 → 화면에서 시작 모드, 모니터 선택, 분리 창 전체 화면, 수동 가로/세로/격자 분할을 저장합니다.
  • Windows 이 PC 공유는 개별 모니터의 위치·크기·안정적인 ID를 전달합니다. 모니터 순서 변경·분리도 ID로 추적합니다.
  • 서버가 배치를 제공하지 않으면 하나의 데스크톱과 명시적인 수동 영역 분할을 제공합니다. RDP는 현재 가상 세션 화면 하나를 제공합니다.
  • 여러 모니터/영역을 표시할 때 해상도 따라가기를 중지해 원격 배치를 보존합니다.
  • 추가 창 닫기는 해당 보기만 닫습니다. 주 창은 다른 보기가 있으면 숨고, 마지막 보기를 닫으면 연결 소켓을 종료합니다.

Crash fix: macOS previously could drop native windows after Objective-C autorelease-pool thread-local state had already been destroyed. The quit path now explicitly releases monitor, session, file and home WebViews/windows before thread-local teardown, with WebView-before-window ordering. Detached WebKit views are told to stop rendering/decoding, and native relay sockets are explicitly closed. Panic logs now include a backtrace; debug fixture logs are isolated from the installed app's log.

Validation: portable release tests passed; synthetic two-monitor RFB/noVNC integration verified cropped pointer coordinates, sibling canvas pixels, keyboard forwarding, update propagation, view-only key release, exact manual splits, one RFB connection and no destructive resize. Native macOS sibling windows, pointer/button masks, keyboard routing, child close and three distinct quit sequences were checked; each fixed quit exited 0 without a new panic. File-browser SSH/SFTP/rsync tests and continuous-update regression results are recorded with the source commit/CI below.

Limits: actual Windows multi-monitor GUI and DPI behavior still need hardware runtime validation; CI tests/build are not a substitute for that check. Apple Screen Sharing physical-monitor topology is not confirmed; explicit manual regions remain available when a server omits it. RDP currently has one virtual display; it does not expose the host's physical monitors. Cross-window drag continuation, per-window Windows cursor scaling and independent reconnect-card hit areas are not included. macOS packages are ad-hoc signed, not notarized.

Source: f6a7120
CI: https://github.com/jiunbae/itda/actions/runs/39242799018
Local verification: 57 release tests passed (5 explicitly ignored); real SSH/SFTP/rsync file integration passed; two-monitor integration passed; continuous-update regression passed with zero incorrect samples in classic, continuous and slow-link scenarios. Four native quit checks exited 0.