Commit Graph

21 Commits

Author SHA1 Message Date
ruslan 3eff94fbb2 ui: remove credentials badge from WEB sessions, remove Back button from RDP
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-21 11:07:21 +00:00
ruslan f1449460d0 nav: hide title text when green Enter button appears on overlay 2026-07-20 19:27:09 +00:00
ruslan 706c647ba6 nav: replace hint text with green Enter button on overlay 2026-07-20 19:24:12 +00:00
ruslan b185049a60 nav: show click-to-continue hint on overlay, fullscreen on that click 2026-07-20 19:21:02 +00:00
ruslan f00d51cd76 nav: fullscreen on first user interaction with screen (browser policy fix) 2026-07-20 19:16:02 +00:00
ruslan e079723922 nav: add labels to buttons, auto-fullscreen on session open 2026-07-20 19:12:47 +00:00
ruslan 09833cd298 Replace spinner with mont-emoji(3).gif animation in RDP and WEB overlays 2026-07-20 16:41:58 +00:00
ruslan f61953f32a rdp-proxy: rename overlay text to Подготовка рабочего стола... 2026-07-20 15:31:42 +00:00
ruslan 283f4f93c9 rdp-proxy: show overlay only after connect, remove waiting phase 2026-07-20 15:16:43 +00:00
ruslan 6f40e9dc72 rdp-proxy: replace corner status with centered fullscreen overlay
- Remove Ожидайте corner badge
- Phase 1 (connecting): centered spinner + Подключение к рабочему столу... + elapsed timer
- Phase 2 (desktop ready): progress bar fills over 5.8s then fades out
- Errors (reconnect) shown in small top-left box only
2026-07-20 15:05:27 +00:00
ruslan 52cb1fd3d6 feat: fullscreen button in nav panel for web and rdp services 2026-05-08 12:00:39 +00:00
ruslan 0b37d5245c feat: draggable nav panel with position saved to localStorage 2026-05-04 13:28:10 +00:00
ruslan 58cb8b1035 feat: on-demand RDP - connect xfreerdp only when session opens
Replaces always-on xfreerdp with on-demand model (load 12 to under 1 at idle).
- rdp-proxy/manager.py: HTTP server port 7001 managing xfreerdp lifecycle
- rdp-proxy/entrypoint.sh: starts Xvfb+x11vnc+websockify+manager, no auto-connect
- rdp-proxy/Dockerfile: adds python3, copies manager.py, exposes 7001
- runtime.py: connect_rdp_slot and disconnect_rdp_slot via manager HTTP API
- terminate_session_record: disconnect instead of container restart
- main.py: calls connect_rdp_slot in background thread on session create
- maintenance.py: cleanup_loop disconnects on expire, run_maintenance_service
  includes RDP slot init, maintenance_runner fixed to import maintenance
2026-05-01 10:12:52 +00:00
ruslan be65be8fdb Fix Chromium autofill timing bug + RDP anti-idle to prevent lock screen
- universal-runtime: set _state[profile_dir] AFTER _start_process so
  _stop_current does not delete the freshly-created profile before
  Chromium reads it. Without this, Login Data was being wiped.
- rdp-proxy: add xdotool dependency and background anti_idle_loop that
  sends Shift to the xfreerdp window every 30s, forwarded over RDP to
  reset the remote idle timer and keep the lock screen from kicking in.
2026-04-30 14:05:04 +00:00
ruslan d7c956e10b rdp-proxy: monitor xfreerdp, auto-restart container on disconnect 2026-04-30 06:53:27 +00:00
ruslan d0ff949828 fix: remove stale Xvfb lock file on container restart
On restart, /tmp/.X1-lock remains from previous run causing Xvfb to fail
with 'Server is already active for display 1', which then breaks xfreerdp
and x11vnc. Clean up lock and socket before starting Xvfb.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 06:50:56 +00:00
ruslan 6f17193312 feat: loading overlay on dashboard, RDP pooled session routing fix
- dashboard.html: overlay div moved before <script> so getElementById works;
  double rAF ensures browser paints spinner before navigation
- main.py: pooled_rdp route fix — session_status now returns /svc/<slug>/
  route and redirect_url for POOL: RDP sessions (was always ready instantly)
- docker-compose.yml: parametrise env vars via .env for easier tuning

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 19:07:55 +00:00
ruslan 419b495020 feat: RDP ACL exclusivity, mobile wall, nav buttons, resolution xrandr
- RDP сервис может быть назначен только одному пользователю в ACL
- Мобильная заглушка на dashboard при ширине < 1024px
- rdp-proxy: кнопки навигации, спиннер Ожидайте, реконнект
- session_wait_page: тёмная тема, CSS спиннер
- kiosk/universal-runtime manager.py: xrandr + cvt --newmode для resolution
- Dockerfiles: x11-xserver-utils, x11-utils
2026-04-27 18:49:06 +00:00
ruslan 6f9bc32440 UI/runtime polish, session rotation limit, login errors, docs update 2026-04-21 16:05:15 +00:00
ruslan c97cf5308d Tune idle timeout, heartbeat redirect, and update project context 2026-04-21 13:31:47 +00:00
ruslan fc46d90194 feat: redesign portal UX and stabilize web session runtime 2026-04-13 08:35:07 +00:00