mirror of
https://github.com/saphid/frame-control.git
synced 2026-10-06 10:00:34 +02:00
Frame Control can now manage more than one Steam Frame, and reach each at any of several addresses (LAN IPs per network, its .local name, Tailscale). A connector in the server tries them all at once, picks the best one that answers, follows ssh -v through each stage (network, finding, SSH, identity, login) and streams that to the page. The header shows it live; a new Devices tab (key 5) manages headsets, addresses and network names. - ui/frame_devices.py: registry in devices.json, imported from the managed ~/.ssh/config blocks; per-headset host key pinning; config block updates. - ui/frame_network.py: gateway IP+MAC fingerprint, Wi-Fi name, Tailscale. - ui/frame_link.py: the connector, Test now, Tailscale/mDNS discovery, API. - server.py: ensure_master delegates to the connector; /api/connection, /api/connection/events (SSE), /api/devices. - Electron: headset switcher and Devices item in the Frame menu. - frame_connect.py --alias; FRAME_CONTROL_DATA_DIR / FRAME_CONTROL_SSH_DIR keep tests off real data. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
17 lines
637 B
Python
17 lines
637 B
Python
"""Imported first by every test module: nothing a test does reaches this person's
|
|
app data, their telemetry, or the shared compatibility database.
|
|
|
|
Must run before any ui module is imported, since those read these at import time.
|
|
"""
|
|
import atexit
|
|
import os
|
|
import shutil
|
|
import tempfile
|
|
|
|
_dir = tempfile.mkdtemp(prefix="frame-control-tests-")
|
|
atexit.register(shutil.rmtree, _dir, ignore_errors=True)
|
|
os.environ["FRAME_CONTROL_DATA_DIR"] = _dir
|
|
os.environ["FRAME_CONTROL_TELEMETRY"] = "0"
|
|
# A maintainer's machine holds the database key; send anything that slips through nowhere.
|
|
os.environ["FRAME_COMPAT_DB_URL"] = "http://127.0.0.1:9"
|