···8686 maximize: true,
8787 // Don't use modal - we want windows view to stay open until ESC or selection
8888 type: 'panel',
8989+ // Always close on ESC (window switcher should dismiss easily)
9090+ escapeMode: 'close',
8991 trackingSource: 'windows',
9092 trackingSourceId: 'main'
9193 };
+11-10
extensions/windows/windows.js
···240240 card.className = 'card';
241241 card.dataset.windowId = win.id;
242242243243- // Try to get favicon from URL
244244- let faviconUrl = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><text y=".9em" font-size="90">🪟</text></svg>';
243243+ // Try to get favicon from URL (only for external URLs)
244244+ let faviconUrl = null;
245245 if (win.url && !win.url.startsWith('peek://')) {
246246 try {
247247 const url = new URL(win.url);
248248 faviconUrl = `${url.origin}/favicon.ico`;
249249 } catch (e) {
250250- // Keep default favicon
250250+ // No favicon
251251 }
252252 }
253253254254- const favicon = document.createElement('img');
255255- favicon.className = 'card-favicon';
256256- favicon.src = faviconUrl;
257257- favicon.onerror = () => {
258258- favicon.src = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><text y=".9em" font-size="90">🪟</text></svg>';
259259- };
254254+ // Only add favicon if we have one
255255+ if (faviconUrl) {
256256+ const favicon = document.createElement('img');
257257+ favicon.className = 'card-favicon';
258258+ favicon.src = faviconUrl;
259259+ favicon.onerror = () => favicon.remove();
260260+ card.appendChild(favicon);
261261+ }
260262261263 const content = document.createElement('div');
262264 content.className = 'card-content';
···272274 content.appendChild(title);
273275 content.appendChild(url);
274276275275- card.appendChild(favicon);
276277 card.appendChild(content);
277278278279 // Click to focus window and close windows view