Repository navigation
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, andselect. - Terminal I/O streaming, ANSI escape rendering, and Ctrl+C interrupt signals work seamlessly across all three major operating systems.
- Windows: High-performance Windows ConPTY powered by
- Cross-Platform Sleep Inhibition:
- Windows: Win32 Power Availability Requests (
ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_AWAYMODE_REQUIRED). - macOS: Native background
caffeinatedaemon subprocess. - Linux: D-Bus
systemd-inhibitintegration with fallback dummy process.
- Windows: Win32 Power Availability Requests (
- Universal Path Sanitization:
- Validates and resolves directory browsing against detected host root drives (
C:\,D:\on Windows,/and/Volumeson macOS/Linux).
- Validates and resolves directory browsing against detected host root drives (
📦 2. Global CLI Entrypoint & Automated Self-Updater
- Global
gravitydeskTerminal Command:- Packaged via standard
pyproject.toml. - Launch from any terminal window in any folder:
gravitydesk-> Desktop GUI Control Centergravitydesk --headless-> Headless daemon mode (ideal for SSH, Linux VPS, or headless servers)gravitydesk --version-> Displays installed package versiongravitydesk --help-> Comprehensive usage instructions
- Packaged via standard
- Smart Self-Updater (
gravitydesk update):- Built-in updater command that automatically detects the runtime environment:
- Local Git Clone: Executes
git pullfollowed bypip 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.
- Local Git Clone: Executes
- CP1252 / UTF-8 safe encoding safeguards prevent terminal crashes on legacy Windows consoles.
- Built-in updater command that automatically detects the runtime environment:
- 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.
- Moves
🔄 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.
- Active workspace directory and resumed conversation target are automatically persisted to
- 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.
- When the mobile app connects or re-pairs, it automatically performs an intelligent reconciliation:
💬 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.LABELor first prompt preview). - Replaced ambiguous UUID hash strings (e.g.
Chat: 6bbc0d...) with clear, informative titles.
- Desktop GUI Control Center now queries Antigravity SQLite (
🛡️ 5. Hardened Device Access & Clean Architecture
- Strict Device State Lifecycle:
- Revoked devices are permanently expunged from
devices.jsonwhile maintaining an in-memory blocklist (403 Forbidden). Only genuinely authorized devices remain in registered device records.
- Revoked devices are permanently expunged from
- 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 updateAndroid Mobile App
- Install
gravitydesk-v1.0.2.apkon your Android device. - Ensure both your workstation and Android phone are connected to your Tailscale mesh network.
- Open GravityDesk on mobile, tap Scan QR, and scan the pairing code shown on your host screen.