Skip to content

Releases: w1th0ut/GravityDesk

GravityDesk v1.0.2 — Cross-Platform CLI, State Synchronization & Session Persistence

Choose a tag to compare

@w1th0ut w1th0ut released this 07 Sep 09:01

v1.0.2

Major feature and architecture release for GravityDesk — introducing Universal Cross-Platform Host Support (Windows, macOS, Linux), global gravitydesk CLI entrypoint & self-updater (gravitydesk update), bidirectional session state synchronization, and human-readable chat titles in the Desktop GUI!


🌟 What's New in v1.0.2

🌐 1. Universal Cross-Platform Host Engine (Windows, macOS, Linux)

  • Dual-Engine Pseudo-Terminal (PTY):
    • Windows: High-performance Windows ConPTY powered by pywinpty.
    • macOS & Linux: Native Unix POSIX PTY implementation using pty, termios, fcntl, and select.
    • Terminal I/O streaming, ANSI escape rendering, and Ctrl+C interrupt signals work seamlessly across all three major operating systems.
  • Cross-Platform Sleep Inhibition:
    • Windows: Win32 Power Availability Requests (ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_AWAYMODE_REQUIRED).
    • macOS: Native background caffeinate daemon subprocess.
    • Linux: D-Bus systemd-inhibit integration with fallback dummy process.
  • Universal Path Sanitization:
    • Validates and resolves directory browsing against detected host root drives (C:\, D:\ on Windows, / and /Volumes on macOS/Linux).

📦 2. Global CLI Entrypoint & Automated Self-Updater

  • Global gravitydesk Terminal Command:
    • Packaged via standard pyproject.toml.
    • Launch from any terminal window in any folder:
      • gravitydesk -> Desktop GUI Control Center
      • gravitydesk --headless -> Headless daemon mode (ideal for SSH, Linux VPS, or headless servers)
      • gravitydesk --version -> Displays installed package version
      • gravitydesk --help -> Comprehensive usage instructions
  • Smart Self-Updater (gravitydesk update):
    • Built-in updater command that automatically detects the runtime environment:
      • Local Git Clone: Executes git pull followed by pip install -e . to refresh dependencies.
      • Global Pip / Pipx Install: Automatically runs python -m pip install --upgrade --no-cache-dir git+https://github.com/w1th0ut/GravityDesk.git.
    • CP1252 / UTF-8 safe encoding safeguards prevent terminal crashes on legacy Windows consoles.
  • Centralized User Configuration (~/.gravitydesk/):
    • Moves .env, devices.json, and runtime state files to ~/.gravitydesk/ across all platforms.
    • Automatic migration from legacy project-root configuration files.

🔄 3. Bidirectional Workspace & Conversation Synchronization

  • Host Session State Persistence (session_state.json):
    • Active workspace directory and resumed conversation target are automatically persisted to ~/.gravitydesk/session_state.json.
    • Restarting the host server daemon or rebooting your laptop no longer resets the active session to the default user home root.
  • Client-Side Auto-Sync Handshake:
    • When the mobile app connects or re-pairs, it automatically performs an intelligent reconciliation:
      • If the host started unconfigured on default workspace, mobile pushes its saved preferences to immediately configure the host.
      • If the host already has an active workspace or the user changed directories via the Desktop GUI, mobile instantly reflects the host's authoritative state in real time.
    • Eliminates state mismatch between mobile UI chips and host execution runtime.

💬 4. Human-Readable Chat Titles in Desktop GUI

  • Title Resolution Module (server/conversations.py):
    • Desktop GUI Control Center now queries Antigravity SQLite (conversation_summaries.db) and transcript logs to resolve the actual human-readable chat name (e.g. LABEL or first prompt preview).
    • Replaced ambiguous UUID hash strings (e.g. Chat: 6bbc0d...) with clear, informative titles.

🛡️ 5. Hardened Device Access & Clean Architecture

  • Strict Device State Lifecycle:
    • Revoked devices are permanently expunged from devices.json while maintaining an in-memory blocklist (403 Forbidden). Only genuinely authorized devices remain in registered device records.
  • Legacy Favorites Cleanup:
    • Completely purged obsolete favorites feature across endpoints, models, and UI for streamlined codebase health.

📦 Downloads & Assets

File Description Target OS
gravitydesk-v1.0.2.apk Standalone Android APK build Android 8.0+
Source code (zip / tar.gz) Complete host daemon & GUI source code Windows, macOS, Linux

🚀 Quick Setup

Host Workstation (Windows, macOS, Linux)

# Install directly via pip:
pip install git+https://github.com/w1th0ut/GravityDesk.git

# Launch Desktop GUI:
gravitydesk

# Or launch Headless CLI:
gravitydesk --headless

# Update anytime:
gravitydesk update

Android Mobile App

  1. Install gravitydesk-v1.0.2.apk on your Android device.
  2. Ensure both your workstation and Android phone are connected to your Tailscale mesh network.
  3. Open GravityDesk on mobile, tap Scan QR, and scan the pairing code shown on your host screen.

GravityDesk v1.0.1 — UI/UX Polish & Mobile Stability Patch

Choose a tag to compare

@w1th0ut w1th0ut released this 07 Sep 07:06

v1.0.1

Mobile UI/UX polish and stability update for GravityDesk featuring responsive ASCII art formatting, improved workspace label handling, persistent session restoration, and keyboard transition smoothing.


🌟 What's New in v1.0.1

📱 Mobile UI/UX & Terminal Refinements

  • Compact 36-Char Responsive ASCII Banner:

    • Redesigned the terminal welcome banner into a compact 2-line layout (Gravity / Desk, max 36 characters wide).
    • Eliminates line-wrapping, overflow, and broken ASCII glyphs across standard mobile viewports (360px–392px).
    • Synchronized identically across host daemon (server/terminal.py), mobile hook (useTerminalSocket.ts), and native terminal view (TerminalView.tsx).
  • Workspace Selection Persistence & Intuitive Default Label:

    • Fixed an issue where the folder chip prematurely displayed the host user directory upon initial connection.
    • The chip now strictly maintains the clean default label "Select Folder" until the user explicitly selects a folder via "Select This Folder" or resumes a chat with an attached workspace.
    • Added persistent ACTIVE_WORKSPACE_EXPLICIT state in local secure storage, ensuring selected directories persist across screen navigation and app restarts without unexpected resets.
  • Zero-Flicker Tab & Chat Navigation:

    • In-memory cache initialization for active conversation and workspace titles, eliminating the brief text-swap animation ("Resume Chat" flickering) when switching between Home and Terminal screens.
  • Keyboard Transition Smoothing:

    • Eliminated white background flash on dark theme when the Android soft keyboard appears or dismisses (backgroundColor: "#0c0c0c").
    • Smoothed multiline input resizing behavior during text prompting.

🖥️ Desktop Host Daemon & Tooling

  • Simplified Command Entrypoint:
    • Standardized the desktop launcher commands to python app.py (Desktop GUI) and python app.py --headless (CLI mode).

📦 Downloads & Assets

File Description Target OS
gravitydesk-v1.0.1.apk Standalone Android APK build Android 8.0+
Source code (zip / tar.gz) Complete host daemon & GUI source code Windows 10 / 11

🚀 Quick Setup

  1. Host PC: Run pip install -r requirements.txt then python app.py.
  2. Android: Install the APK, connect to your Tailscale mesh, and scan the pairing QR code displayed in the Desktop GUI.

GravityDesk v1.0.0 — Official Initial Release

Choose a tag to compare

@w1th0ut w1th0ut released this 06 Sep 15:16

v1.0.0

Self-hosted remote control and live telemetry bridge for Google Antigravity (agy) CLI and Windows developer workstations over encrypted Tailscale WireGuard mesh.


🌟 What's New in v1.0.0

🖥️ Desktop Control Center (Windows 10 / 11)

  • Zero-Config Pairing: High-contrast QR code display with 1-click token copy and automatic Tailscale IPv4 detection.
  • Instant Revocation: "Reset Pairing Token" immediately cycles the 256-bit cryptographic key and terminates active sessions.
  • Windows Taskbar & Titlebar Branding: Native multi-resolution Astro-Orb icon (logo.ico) with dedicated AppUserModelID.
  • Sleep Inhibit: Prevents laptop sleep or suspend during active remote coding sessions via Win32 Power API.

🧠 Antigravity Engine & Live Quota Telemetry

  • Active Model Detection: Automatically reads currently active AI model from settings.json (e.g., Gemini 3.8 Flash (High)).
  • Live Quota Monitoring: Background-cached tracking of 5-hour session limits and weekly quotas with exact reset countdowns (Resets in Xh Ym).
  • Zero-Flicker Headless Execution: All background subprocesses run with CREATE_NO_WINDOW, eliminating command prompt flicker on the host workstation.

📱 Android Mobile Companion App

  • ConPTY Terminal Streaming: Native ANSI terminal emulation over WebSocket with ring buffer catch-up.
  • WhatsApp-Style Input: Auto-expanding multi-line textarea with quick control buttons (Ctrl+C, Enter).
  • Voice-to-Text Dictation (Optional): Hands-free audio prompt recording with server-side FFmpeg normalization and speech recognition.
  • Multi-Drive Workspace Navigator: Explore and switch project directories across physical drive roots (C:\, D:\).
  • Session Resume: Browse and resume historical Antigravity conversations directly from local SQLite storage.

📦 Downloads & Assets

File Description Target OS
gravitydesk-v1.0.0.apk Standalone Android APK build Android 8.0+
Source code (zip / tar.gz) Complete host daemon & GUI source code Windows 10 / 11

🚀 Quick Setup

  1. Host PC: Run pip install -r requirements.txt then python gui.py.
  2. Android: Install the APK below, connect to your Tailscale mesh, and scan the pairing QR code displayed in the Desktop GUI.