feat: add browser_session_sync plugin#396
Open
Omni-NexusAI wants to merge 2 commits into
Open
Conversation
* feat: add Tailscale integration for remote device discovery and connection Auto-discover Android devices on Tailscale tailnet, one-click connect over VPN mesh. New files: - helpers/tailscale_discovery.py: Core discovery module - api/tailscale_status.py: API endpoint (status, connect, refresh, start_daemon) Modified files: - helpers/adb_backend.py: Merge Tailscale peers in canonical_devices() - api/device_status.py: Add tailscale_status to response - webui/device-panel.html: Tailscale status badge - webui/config.html: Full Tailscale config section with peer list - webui/pairing.html: Tailscale quick-connect section - default_config.yaml: 7 new config fields * feat: redesign pairing page with connection mode selector Adds Wireless ADB | Tailscale mode selector. All sections adapt to selected mode. - Wireless ADB: Original QR pairing and manual flow preserved unchanged - Tailscale: TS QR with connection JSON, manual adb connect link with copy button, peer dropdown, hostname fallback - Nothing deactivated — mode selector switches which paths are shown * fix: move Tailscale imports to lazy loading to fix bridge detection bug Module-level Tailscale imports were crashing the status endpoint, causing refreshBridgeStatus() to fail and disabling the Wireless ADB QR button. All Tailscale imports now deferred to try/except blocks. * fix: skip Tailscale diagnostics when tailscale_enabled=false Blocking subprocess calls in tailscale_diagnostics() were slowing down bridge_capabilities() even when Tailscale was disabled. Added config guard. * feat: post-pairing Tailscale upgrade flow with auth QR + auto-bootstrap Adds 'Connect with Tailscale?' section that takes an already-connected device and upgrades it to Tailscale connectivity. Backend: - generate_auth_url(): Tailscale login URL via tailscale up --qr - push_auth_to_device(): Push URL to phone via ADB intent - enable_tcp_mode(): adb tcpip 5555 - wait_for_tailnet_join(): Poll for new Android peer - bootstrap_tailscale(): Full orchestrator UI: - Removed mode selector (was wrong approach) - Clean flow: QR → Manual → Connect → Tailscale Upgrade → Devices * fix: replace module-level imports with lazy _get_adb_backend() helper Module-level imports caused entire module to fail loading in A0 runtime, preventing bootstrap_tailscale from being importable. All imports now deferred to function-level via _get_adb_backend(). * fix: lazy imports + daemon start + dual-path bootstrap 1. Module-level imports → lazy _get_adb_backend() helper 2. generate_auth_url() calls ensure_daemon_running() first 3. bootstrap_tailscale() checks existing tailnet peers before auth 4. Login URL approach - no API key needed * fix: use non-blocking tailscale status for auth URL generation tailscale up --qr is a BLOCKING command that hangs. tailscale status returns the login URL immediately when logged out. Confirmed working by manual test: daemon + status → URL in <3s. * fix: publish android control marketplace entry --------- Co-authored-by: Codex <codex@local>
Plugin submission validation failedERROR: Only files under plugins/ are allowed in plugin PRs: README.md |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Plugin: Browser Session Sync
Persists native Browser tabs, cookies, and localStorage across container restarts with one-shot startup restore and debounced live-state tracking.
Submitted via fork Omni-NexusAI/a0-plugins-android-control branch add-browser-session-sync.