fix(modes): deep-linked mode scripts fail when body not yet parsed

ensureModeScript() used document.body.appendChild() to load lazy mode
scripts, but the preload for ?mode= query params runs in <head> before
<body> exists, causing all deep-linked modes to silently fail.

Also fix cross-mode handoffs (BT→BT Locate, WiFi→WiFi Locate,
Spy Stations→Waterfall) that assumed target module was already loaded.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Smittix
2026-03-12 20:49:08 +00:00
parent 7c425dbd99
commit ba631811a6
87 changed files with 9128 additions and 8368 deletions
+3 -1
View File
@@ -20,6 +20,8 @@ from typing import Any
from flask import Blueprint, Flask, Response, jsonify, request
from utils.responses import api_success, api_error
try:
from flask_sock import Sock
WEBSOCKET_AVAILABLE = True
@@ -170,7 +172,7 @@ def meteor_events_export():
"""Export events as CSV or JSON."""
detector = _detector
if not detector:
return jsonify({'error': 'No active session'}), 400
return api_error('No active session', 400)
fmt = request.args.get('format', 'json').lower()
if fmt == 'csv':