|
|
|
|
@@ -175,7 +175,7 @@ window.addEventListener('unhandledrejection', function(e) {
|
|
|
|
|
</button>
|
|
|
|
|
<button id="menuDebug" class="flyout-item" style="display:none;">
|
|
|
|
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z"/><path d="M12 6V12L16 14"/></svg>
|
|
|
|
|
<span>Debug Console</span>
|
|
|
|
|
<span>Debug Log</span>
|
|
|
|
|
</button>
|
|
|
|
|
<hr class="flyout-divider">
|
|
|
|
|
<button id="menuSignout" class="flyout-item flyout-danger">
|
|
|
|
|
@@ -643,44 +643,7 @@ window.addEventListener('unhandledrejection', function(e) {
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{{/* ── Debug Modal ─────────────────────────── */}}
|
|
|
|
|
<div id="debugModal" class="modal-overlay">
|
|
|
|
|
<div class="modal-content modal-lg">
|
|
|
|
|
<div class="modal-header">
|
|
|
|
|
<h2>Debug Console</h2>
|
|
|
|
|
<button class="modal-close" onclick="closeModal('debugModal')">✕</button>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="modal-tabs">
|
|
|
|
|
<button class="debug-tab active" data-dtab="console" onclick="switchDebugTab('console')">Console</button>
|
|
|
|
|
<button class="debug-tab" data-dtab="network" onclick="switchDebugTab('network')">Network</button>
|
|
|
|
|
<button class="debug-tab" data-dtab="state" onclick="switchDebugTab('state')">State</button>
|
|
|
|
|
<button class="debug-tab" data-dtab="repl" onclick="switchDebugTab('repl')">REPL</button>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="modal-body" style="padding:0;height:400px;overflow:hidden;">
|
|
|
|
|
<div id="debugConsoleTab" class="debug-tab-content" style="display:block;height:100%;overflow-y:auto;">
|
|
|
|
|
<div style="padding:8px;display:flex;gap:8px;align-items:center;">
|
|
|
|
|
<label><input type="checkbox" id="debugAutoScroll" checked> Auto-scroll</label>
|
|
|
|
|
<label><input type="checkbox" id="debugFilterErrors"> Errors only</label>
|
|
|
|
|
<span id="debugConsoleCount" class="badge">0</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="debugConsoleContent" class="debug-content" style="font-family:monospace;font-size:12px;padding:8px;"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="debugNetworkTab" class="debug-tab-content" style="display:none;height:100%;overflow-y:auto;">
|
|
|
|
|
<div style="padding:8px;"><span id="debugNetworkCount" class="badge">0</span> requests</div>
|
|
|
|
|
<div id="debugNetworkContent" class="debug-content" style="font-family:monospace;font-size:12px;padding:8px;"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="debugStateTab" class="debug-tab-content" style="display:none;height:100%;overflow-y:auto;">
|
|
|
|
|
<div id="debugStateContent" class="debug-content" style="font-family:monospace;font-size:12px;padding:8px;white-space:pre-wrap;"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="debugReplTab" class="debug-tab-content" style="display:none;height:100%;display:flex;flex-direction:column;">
|
|
|
|
|
<div id="replOutput" style="flex:1;overflow-y:auto;font-family:monospace;font-size:12px;padding:8px;"></div>
|
|
|
|
|
<div style="border-top:1px solid var(--border);padding:8px;">
|
|
|
|
|
<input type="text" id="replInput" placeholder="Type expression…" style="width:100%;font-family:monospace;font-size:12px;">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
{{/* ── Debug Modal moved to base.html (available on all surfaces) ── */}}
|
|
|
|
|
|
|
|
|
|
{{/* ── Notification bell is now inside .chat-header ── */}}
|
|
|
|
|
|
|
|
|
|
@@ -726,8 +689,7 @@ window.addEventListener('unhandledrejection', function(e) {
|
|
|
|
|
<script nonce="{{$.CSPNonce}}" src="{{$.BasePath}}/vendor/purify.min.js" onerror="this.onerror=null;this.src='https://cdnjs.cloudflare.com/ajax/libs/dompurify/3.2.4/purify.min.js'"></script>
|
|
|
|
|
<script nonce="{{$.CSPNonce}}" src="{{$.BasePath}}/vendor/codemirror/codemirror.bundle.js?v={{$.Version}}" onerror="console.warn('[CM6] Bundle not available — falling back to textarea')"></script>
|
|
|
|
|
{{/* App JS — order matches index.html (minus api/events/ui-primitives already in base) */}}
|
|
|
|
|
<script nonce="{{$.CSPNonce}}" src="{{$.BasePath}}/js/debug.js?v={{$.Version}}"></script>
|
|
|
|
|
<script nonce="{{$.CSPNonce}}" src="{{$.BasePath}}/js/repl.js?v={{$.Version}}"></script>
|
|
|
|
|
{{/* debug.js and repl.js now loaded in base.html for all surfaces */}}
|
|
|
|
|
<script nonce="{{$.CSPNonce}}" src="{{$.BasePath}}/js/extensions.js?v={{$.Version}}"></script>
|
|
|
|
|
<script nonce="{{$.CSPNonce}}" src="{{$.BasePath}}/js/panels.js?v={{$.Version}}"></script>
|
|
|
|
|
<script nonce="{{$.CSPNonce}}" src="{{$.BasePath}}/js/ui-format.js?v={{$.Version}}"></script>
|
|
|
|
|
|