Releases: fbezita/castla
Releases · fbezita/castla
Release list
Multiwindow Placement Update
What's new
This release reorganizes Castla's multiwindow system around a unified secondary placement model and improves overall stability for split, popup, touch, and OTT fallback behavior.
Multiwindow improvements
- Unified the secondary placement model across
left,right,top,bottom, andpopup - Added drag-and-drop placement targets so apps can be dropped directly into the desired secondary position
- Added a placement picker flow for changing the current secondary placement
- Expanded app-pair presets to store not only two apps, but also their placement layout
Split / Popup behavior fixes
- Improved splitbar interaction to use preview-first dragging and apply the resize only when released
- Separated horizontal and vertical split ratio handling to prevent wrong splitbar positions after switching layout directions
- Reduced splitbar touch interference by limiting drag hit areas to the thumb position
- Improved pane boundaries and splitbar visibility without making app UI harder to touch
- Fixed popup minimize / restore / close behavior
- Fixed cases where minimized popup bubbles disappeared
- Fixed popup transitions that could relaunch the background app or leave stale barriers behind
Streaming / layout stability
- Relaxed unnecessary pane-size relaunch rules on the WebCodecs path
- Kept stricter sizing rules where needed for JMuxer stability
- Fixed a JMuxer issue where returning from split mode to single mode could leave the app centered with black side margins instead of restoring fullscreen
- Improved layout transition consistency, touch mapping, and resize recovery behavior
OTT browser fallback
- Improved OTT web fallback behavior for apps that do not render properly through direct mirroring
- Forced Netflix fallback to use the embedded browser path with a desktop-style user agent and desktop viewport behavior
- Reduced cases where mobile browser app-handoff pages interrupted playback access
Internal quality
- Added regression coverage for placement routing, launch reuse decisions, split ratio persistence, resizer axis handling, and OTT browser policy behavior
- Continued stability work across layout transitions, popup state handling, and launch recovery flow
v2.4.7 - Secure certificate handling and backend auth token split
What's new
This release focuses on strengthening application security by isolating backend authentication tokens, loading certificates securely, and optimizing TLS certificate caching.
Secure certificate handling and build secrets
- Removed the hardcoded Castla certificate password from the Android app and configured it to load from env/local build properties
- Loaded CASTLA_CERT_TOKEN and CASTLA_RELAY_TOKEN from build-time secrets instead of embedding them in the app source code
- Added a fail-fast mechanism to immediately halt execution when certificate or relay secrets are missing at runtime
Optimized certificate caching and verification
- Cached downloaded TLS certificates and configured them to refresh only when missing, invalid, expired, or near expiry
- Restricted proactive remote certificate refresh checks to once per day, maximizing the reuse of healthy local certificates
- Added PKCS12 certificate expiry inspection and introduced dedicated unit tests for the refresh policy
Backend authentication separation
- Split Castla backend authentication so that /api/castla/cert uses CASTLA_CERT_TOKEN and /api/castla/relay uses CASTLA_RELAY_TOKEN
- Retained device IP lookup during certificate-token authentication and aligned backend configuration with the new token structure
Notes
- This is a security and optimization release focusing on credential isolation and certificate caching logic
- Please ensure that CASTLA_CERT_TOKEN and CASTLA_RELAY_TOKEN are properly configured in your build environment before deploying
v2.4.6 - Launch and split mirroring stability improvements
What's new
This release focuses on mirroring startup stability, split layout transitions, and secure relay recovery.
Improved launch and stream recovery
- Improved startup reliability when the first frame is delayed or missing
- Reduced false ready/reuse decisions caused by stale stream metadata
- Improved automatic recovery flow when a stream does not recommit correctly
- Added deeper diagnostics for launch, barrier, stream bootstrap, and first-frame timing
Better split and layout transition behavior
- Fixed cases where split mode could briefly show an incorrect temporary layout before settling
- Improved split target handling so the correct pane sizes are applied from the beginning of launch
- Improved relaunch behavior across single, split, and popup transitions
- Refined same-target no-op logic so relaunch is skipped only when the current state is truly reusable
Certificate and relay reliability
- Added automatic recovery for corrupted dynamic PKCS12 certificates
- Improved HTTPS relay startup reliability when local certificate state is invalid
Notes
- This update mainly targets stability, recovery behavior, and internal diagnostics
- No major user-facing workflow changes were introduced, but mirroring startup and recovery should feel more reliable
v2.4.3 - UI Layout Modes, Native IME Support & Stability Watchdog
이번 버전에서는 아키텍처 개편, 다중 가상 디스플레이 대칭 제어, 블랙스크린 자가치유 와치독, 그리고 WebCodecs 가속을 위한 HTTPS 관련 안내가 반영되었습니다.
🌟 주요 업데이트 사항 (Key Updates)
- WebCodecs 하드웨어 가속을 위한 HTTPS(Secure Context) 필수 안내
- 테슬라 브라우저에서 초저지연 H.264 하드웨어 디코딩(WebCodecs API)을 활성화하려면 브라우저 보안 정책상 HTTPS 연결이 필수적입니다.
- HTTPS 접속이 유효한 환경에서만 WebCodecs 디코더가 기동하며, 일반 HTTP 연결 시에는 자원을 덜 소모하는 JMuxer (MSE) 폴백 모드로 디코더가 자동 전환되어 동작합니다.
- 가상 디스플레이 내 네이티브 IME(키보드) 지원
- 신뢰할 수 있는 가상 디스플레이(Trusted VD) 내부에서 삼성 키보드, Gboard 등 디바이스 본래의 키보드를 직접 띄워 타이핑할 수 있도록 우선 지원합니다. (자체 Castla IME 프록시는 폴백으로 동작)
- 다중 가상 디스플레이(VD) 및 대칭 제어
- 다중 가상 디스플레이 동시 구동 및 백그라운드 태스크의 디스플레이 매핑을 정확하게 보정하는 대칭 제어가 가능해졌습니다.
- 자가치유 와치독(Self-Healing Watchdog) 탑재
- 웜 스타트 시 발생하는 블랙스크린 문제를 해결하기 위해, 1초간의 서피스 바인딩 검증 및 프레임 정체(Stagnation) 감지 시 자동으로 기존 태스크를 정리하고 새로 띄우는 Clean Launch Fallback 안전장치를 추가하였습니다.
- 다양한 화면 레이아웃 모드 지원
- 런처 사이드바를 통해 싱글(Single), 분할(Split)(듀얼 패널 멀티태스킹), 팝업(Popup)(크기 조절 가능한 플로팅 창) 레이아웃 모드 간 전환을 완벽히 지원합니다.
- 앱 내 자동 업데이트 체크 주소 교체
- 최신 버전 업데이트 및 APK 다운로드 링크를 새 레포지토리(
fbezita/castla)로 이전하였습니다.
- 최신 버전 업데이트 및 APK 다운로드 링크를 새 레포지토리(