Repository navigation
Releases: jiunbae/itda
Release list
Itda 0.9.2
Windows 화면 공유 속도, 다중 모니터 창, Windows 대상 파일 전송 수정
실제 Windows 11 PC(3840×2160 모니터 2대, 주 모니터가 오른쪽, AMD 내장 + RTX 3080)에서 Windows 빌드를 직접 실행해 찾은 문제들입니다.
- 이 PC 공유가 빨라졌습니다. 화면 캡처를 GDI에서 DXGI Desktop Duplication으로 바꿨습니다. 듀얼 4K에서 프레임당 55–60ms이던 캡처가 2–9ms로 줄어, 로컬 측정 기준 초당 약 9프레임에서 약 20프레임이 되었습니다. 바뀐 영역만 복사합니다. HDR·10비트 데스크톱도 8비트로 변환해 받습니다. 여러 뷰어가 캡처 하나를 함께 씁니다. Duplication을 쓸 수 없거나 끊기면(잠금 화면, 해상도 변경, 회전된 모니터) 예전처럼 GDI로 캡처하고 2초마다 다시 시도합니다.
- 화면별 창이 빈 모니터에 열립니다. 주 모니터가 맨 왼쪽이 아닌 PC에서는 "모니터 2" 창이 세션 창과 같은 모니터에 겹쳐 열렸습니다.
- 모니터 하나를 볼 때 창이 그 모니터 비율에 맞춰집니다. 이전에는 모든 모니터를 합친 가로 비율 그대로라 좌우에 큰 검은 여백이 남았습니다.
- Windows PC로 파일을 보낼 때 (Mac에서 포함)
- Windows가 허용하지 않는 이름(
CON,nul.txt,COM1, 끝의 마침표·공백,:?등)을 시작 전에 막습니다. 폴더 안의 항목까지 미리 확인하므로 반쯤 만든 폴더가 남지 않습니다. 이전에는 이런 파일이 실제로 만들어지거나 이름이 조용히 바뀌었습니다. - 업로드를 취소하면 원격의 임시
.partial파일을 지우고 "전송을 취소했습니다"로 안내합니다. - 대소문자만 바꾸는 이름 변경과 그 되돌리기가 됩니다.
- 이름 충돌과 SFTP 오류를 알기 쉬운 문구로 보여 줍니다.
\\?\C:\…,~경로를 쓸 수 있습니다.
- Windows가 허용하지 않는 이름(
- Remote Management만 켜진 Mac도 연결된다고 도움말과 오류 문구에 안내합니다(#3).
Validation: 실제 PC에서 확인한 항목입니다.
- 화면 공유: 두 모니터를 보고하는 ExtendedDesktopSize, SetDesktopSize 거절(1/1), ZRLE 전체 디코드, CU와 Fence, 뷰어 2명 동시 접속, 커서 위치, 음수 원점 데스크톱의 포인터 좌표.
- Windows 네이티브 뷰어: 화면별 창 열기·모으기·모니터 하나 보기, 창 닫기에 따른 세션 수명.
- 파일 E2E: 업로드·다운로드 해시 비교, 충돌 처리, 휴지통과 되돌리기, 취소, 대소문자 변경, 잘못된 이름 21건, 특수 경로.
- 단위 테스트: macOS 58개 통과. Windows는 57개 통과, 대화형 로그온이 필요한 자격 증명 테스트 2개는 콘솔에서만 통과.
Limits: 일반 권한으로 실행한 Itda는 관리자 권한 창이 앞에 있으면 원격 입력을 할 수 없습니다(Windows UIPI가 조용히 버립니다). RDP 브리지와 잠금 화면에서의 폴백은 이번에 실기로 확인하지 않았습니다. macOS 패키지는 ad-hoc 서명이며 공증(notarize)되지 않았습니다.
Source: 87d6375
CI: https://github.com/jiunbae/itda/actions/runs/39287706500
Itda 0.9.1
스크롤 응답 개선과 Mac 화면 동작
- 빠른 스크롤 이벤트 하나가 수십 개의 WebSocket 전송을 만들던 경로를 한 묶음으로 전송합니다. 최대 80개의 RFB 누름/해제 메시지가 80개 대신 1개 패킷에 실리는 것을 확인했습니다.
- 본창과 분리한 모니터 창의 스크롤 감도, 가로/세로 델타, 소수 움직임 처리를 통일합니다. 과도한 이벤트의 초과 클릭을 나중 입력으로 쌓아 두지 않습니다.
- 비압축(Raw) 화면은 한 줄마다 캔버스를 갱신하는 대신 수신한 최대 128줄을 묶어 그립니다. 259줄 완전 수신은 259회 대신 3회 그리기이며, 나눠 도착한 입력과 8비트/24비트 색상·불투명도를 검사했습니다.
- 여러 화면 업데이트가 한꺼번에 도착하면 프로토콜 메시지 사이에서 8ms 작업 예산 후 UI에 제어권을 돌려줍니다. 프레임·CopyRect·Fence 순서는 유지하며, 하나의 큰 사각형 디코딩은 그 예산보다 오래 걸릴 수 있습니다.
- Mac 연결의 컨트롤 바 → Mac 화면 동작: Mission Control, 앱 Exposé, 데스크탑 보기, 이전/다음 데스크탑, Spotlight. 분리 창에도 같은 메뉴가 있습니다.
- Windows 네이티브 뷰어의 Mac 특수 키 메뉴에도 앱 Exposé와 데스크탑 보기를 추가했습니다.
- 새 Raw 디코더 회귀 검사를 macOS·Windows CI에 추가했습니다.
Validation: 57 release unit tests passed (5 explicitly ignored). Actual bundled noVNC browser tests passed for owner/mirror wheel packet counts, exact cropped pointer coordinates, fractional delta reversal, one shared connection, Mac action press/release pairs without duplicates, view-only suppression, fragmented Raw pixels and a 12-frame burst at 4× CPU throttling. The classic/continuous/slow-link CU regression passed with 162/162 correct pixel samples in each mode. Native macOS WKWebView showed the Mac menu, delivered the Exposé key sequence and wheel events to the synthetic RFB server, and quit with exit code 0.
Limits: these changes reduce measured input and rendering overhead; the user's real remote Mac/network scroll latency has not been measured. RFB wheel input remains discrete clicks, rather than native macOS pixel/inertia gestures. Mac actions send the remote Mac's default keyboard shortcuts; custom/disabled shortcuts affect behavior. Windows native GUI runtime was not checked on hardware in this release. macOS packages are ad-hoc signed, not notarized.
Source: 7f038af
CI: https://github.com/jiunbae/itda/actions/runs/39248968145
Show Desktop uses the standard RFB F11 key, rather than treating the Apple Mission Control media key as ordinary F3. Its exact F11 press/release sequence is covered in the browser integration fixture.
Itda 0.9.0
다중 모니터 보기와 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.
Itda 0.8.0
파일 브라우저를 폴더 중심으로 바꿨습니다. 본문은 최근 폴더를 보여주고, 저장된 기기는 사이드바의 위치에서 선택합니다. 기기 주소를 본문에 나열하지 않습니다.
- 아이콘·목록·열·갤러리 보기, ⌘1–4 전환
- 폴더별 탭, ⌘T/⌘W 및 Control+Tab, 탭별 경로·기록·선택·보기 유지
- 미리보기 패널과 Space 훑어보기: 텍스트, 이미지, macOS의 PDF 첫 페이지, 브라우저가 지원하는 오디오/동영상
- 네이티브 WebKit 포인터 캡처와 마우스 종료 처리로 파일 드래그 중 텍스트 선택·드래그 표시가 남는 문제 수정
- 폴더·즐겨찾기·다른 폴더 탭으로 드래그 복사/이동, 전송 전 목적지 확인
Preview content is bounded (512 KiB text, 16 MiB media), with one request in flight and only the latest selection queued. HTML/SVG are not rendered as active content. macOS PDF previews are rasterized to an inert first-page image with a timeout and private temporary-file cleanup. Other platforms offer an explicit Open action for PDFs and unsupported formats.
Validation: 54 release tests passed, 5 optional tests ignored. Real private-SSH integration passed copy/move, incremental rsync/fallback, four views, independent folder tabs, tab-drop content hashes, text/image/PDF previews, inert HTML and existing transfer operations. Native macOS WKWebView file-to-folder drag copied an isolated test file with matching SHA-256; saved-account browsing and Space preview were checked. Windows/macOS CI tests and packages are linked below.
Limits: tabs are folders within a device's file window; different devices retain separate windows. Remote files are not mounted volumes. Native outbound virtual-file dragging, inline list disclosure, complete ACL/xattr support and full Finder/Explorer parity remain outside this release. Windows GUI runtime testing is not complete. macOS builds are ad-hoc signed, not notarized.
Source: c298832
CI: https://github.com/jiunbae/itda/actions/runs/39238054149
Itda 0.7.0
Files and screens can now be opened independently. Open File browser in the left sidebar to browse saved devices from Network, reuse their accounts, and copy or move files over SSH/SFTP with incremental rsync where available. SMB shares open in Finder/File Explorer. The macOS file window now has a compact Finder-style command bar, resizable sidebar and columns, bottom path bar and familiar keyboard navigation. Finder connection shortcuts open each saved device in Itda.
Screen connections also include lower latency, ZRLE and Continuous Updates improvements, bounded viewer queues, RDP redraw improvements, smoother scrolling, better device discovery and stable home previews.
한국어: 화면 공유와 파일 접근을 별도로 제공합니다. 네트워크에서 저장된 기기를 선택하고 기존 계정으로 파일에 연결할 수 있습니다. SSH/SFTP 복사·이동과 호환 환경의 rsync 증분 전송을 지원하며, 공유폴더는 Finder/탐색기로 엽니다. macOS 파일 창은 단일 도구 모음, 너비 조절 사이드바·목록 열, 하단 경로, Finder 단축키를 제공합니다. 화면 연결의 지연·인코딩·전송 큐·스크롤·기기 검색과 홈 미리보기도 개선했습니다.
Limits: Finder shortcuts do not mount a remote volume. Native File Provider, column/gallery views, Quick Look and outbound SFTP virtual-file dragging are not included. Remote files open as read-only local copies; archive uses .itda-trash rather than system Trash. Windows CI runs unit tests and builds itda.exe, but Windows GUI/remote-session runtime testing has not been completed. The macOS app is ad-hoc signed, not notarized.
Validation: macOS release tests passed (54 passed, 5 optional tests ignored). A private real SSH server integration run passed SFTP copy/move, rsync incremental transfer and failure fallback, archive/Undo, pointer drag, account reuse, Network/Finder links, resizable columns/sidebar and Finder shortcuts. A 20,000-entry list renders at most 160 rows initially. Native macOS saved-device browsing was visually checked. Windows CI test/build and macOS universal bundle results are recorded in the linked release commit.
The left File browser tab is the main file entry point; screen cards no longer show permanent file buttons. Searching a device and pressing Enter opens its file window.
Source: 824864b
CI: https://github.com/jiunbae/itda/actions/runs/39234820494
Itda 0.6.5
- Windows app → Mac: two new options under Settings → Viewer window. Mac scroll speed has Normal, Fast (the default, 2× Windows' lines per notch) and Faster (3×). Accelerate fast scrolling is on by default: rolling the wheel quickly scrolls further, up to 3×, like a Mac's own mouse.
- 한국어: 설정 → 접속 창에 Mac 스크롤 속도(보통 / 빠르게(기본, Windows 줄 수의 2배) / 아주 빠르게(3배))와 빠르게 굴리면 가속(기본 켬, 최대 3배)을 추가했습니다.
140e5a801f0878d1fe03aae5a855ac6d6cc657302b742bba239026d082dfc067 itda.exe
7017dd175d34e4a5192519709551c9fa8ec5abed56fe5858683b28651a60e184 Itda-macos-universal.zip
Assets rebuilt on 2026-10-18 with build paths removed. Same code.
Itda 0.6.4
- Windows app → Mac: the mouse wheel now scrolls as far as it does on Windows. It follows Windows' lines-per-notch setting, 3 by default. Before, a Mac scrolled only about a third as far.
- Help: on macOS 15 and later, open the app the first time with System Settings → Privacy & Security → Open Anyway.
- 한국어: Windows 앱에서 Mac에 연결했을 때 마우스 휠 스크롤이 너무 느리던 문제를 고쳤습니다. 이제 휠 한 칸에 Windows 설정의 줄 수만큼(기본 3줄) 스크롤됩니다. macOS 15 이상에서 앱을 처음 여는 방법(시스템 설정 → 개인정보 보호 및 보안 → 그래도 열기)도 도움말에 넣었습니다.
b79a541123b3fc79c77f3e70e73561476d5156b0c0bd606093134df3dd80e67b itda.exe
cd7eaf6f7b19f4fc5a09c4457db36853fc868cf4fc47a296f5f202d1a55cbe9b Itda-macos-universal.zip
Assets rebuilt on 2026-10-18 with build paths removed. Same code.
Itda 0.6.3
- Share this PC: new Don't ask my devices setting, on by default. Devices on the same network or your Tailscale tailnet get in with the share password alone. Connections from anywhere else still ask at the PC.
- 한국어: 이 PC 공유에 내 기기는 묻지 않기를 추가했습니다(기본으로 켬). 같은 Wi-Fi·유선 네트워크나 내 Tailscale 기기는 공유 암호만 맞으면 바로 연결됩니다. 그 밖에서 오는 연결은 지금처럼 PC에서 허용 여부를 묻습니다.
1fbb983ddaef0e54de2f7a492c921b2e89019cc064b83b48eab79516e1dd07f6 itda.exe
46da2939bf1e0aae289e21a6d808678be1fbc396c90c1bcca208c99647af9ece Itda-macos-universal.zip
Assets rebuilt on 2026-10-18 with build paths removed. Same code.
Itda 0.6.2
- Logging in to a Windows · Itda PC now explains that it needs the 8-character share password from that PC's Share page, not a Windows password.
- Connections to .local names try IPv4 first. The 5-second wait on Windows PCs is gone.
- 한국어: Windows · Itda PC에 로그인할 때는 Windows 암호가 아니라 그 PC의 공유 페이지에 있는 8글자 공유 암호를 넣으라고 분명히 안내합니다. .local 주소로 연결할 때 IPv4를 먼저 시도해, Windows PC에 연결하기 전 5초씩 기다리던 문제가 사라졌습니다.
ecdf39984ac46a3b56fd4d10ce9a0c08ec3b7bf9aba26f07c0184b39096cec57 itda.exe
145159edee8d7aa84bdcc2857d61f39ed6a12ac50dae2a1305d7146793276a29 Itda-macos-universal.zip
Assets rebuilt on 2026-10-18 with build paths removed. Same code.
Itda 0.6.1
- Mac: Itda for Mac now shows up in other devices' nearby lists. It also finds nearby Itda PCs and Macs when a VPN is on.
- 한국어: Mac에서 Itda가 주변 기기에 보이지 않던 문제와, VPN이 켜져 있으면 주변 기기를 찾지 못하던 문제를 고쳤습니다.
0afea7afe46ce6ccc7eb6651ce4d4ef4fed95b7ce86ca4bbef9d65af00f243d5 itda.exe
ccb95d2fa8cbb1a107ce9a3148c66c9b788aa374906563e2afdc7683b4a7447d Itda-macos-universal.zip
Assets rebuilt on 2026-10-18 with build paths removed. Same code.