← back to Fix Live Board
board: default to light (black-on-white) day theme; add creds-in-URL fetch guard (fixes empty board when opened with user:pass@host)
7bb00cf364a71e09b3267d19f7972ccc2e292bc0 · 2026-09-02 14:53:13 -0700 · Steve
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KkjHuJKiariXaTtFujZxWC
Files touched
Diff
commit 7bb00cf364a71e09b3267d19f7972ccc2e292bc0
Author: Steve <steve@designerwallcoverings.com>
Date: Wed Sep 2 14:53:13 2026 -0700
board: default to light (black-on-white) day theme; add creds-in-URL fetch guard (fixes empty board when opened with user:pass@host)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KkjHuJKiariXaTtFujZxWC
---
public/board.html | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/public/board.html b/public/board.html
index d9ebee2..ad7da21 100644
--- a/public/board.html
+++ b/public/board.html
@@ -99,6 +99,10 @@ button.tg{cursor:pointer}button.tg.on{border-color:var(--accent);color:var(--acc
<div class="scrim" id="scrim"></div>
<aside class="drawer" id="drawer" aria-hidden="true"></aside>
<script>
+// creds-in-URL fetch guard: relative fetch() breaks when the page is opened with user:pass@host
+// (poisoned baseURI). Resolve relative URLs against a credential-free base instead.
+(function(){var _f=window.fetch,BASE=location.origin+location.pathname;
+ window.fetch=function(u,o){try{if(typeof u==='string'&&!/^[a-z]+:\/\//i.test(u))u=new URL(u,BASE).href;}catch(e){}return _f.call(this,u,o);};})();
let META={fields:[],fixers:[],name:'Fix Live Board'}, DATA=[], SEL=null;
const KEY='flb_'+location.port;
const $=id=>document.getElementById(id);
@@ -182,7 +186,7 @@ function renderFixers(){$('fixers').innerHTML=(META.fixers||[]).map(f=>'<button
document.querySelectorAll('.fx:not(.gated)').forEach(b=>b.addEventListener('click',async e=>{e.stopPropagation();b.disabled=true;b.textContent='running…';try{const r=await fetch('api/fix?id='+encodeURIComponent(b.dataset.id),{method:'POST'});const j=await r.json();b.textContent=(j.ok?'✓ ':'✗ ')+b.dataset.id;}catch(x){b.textContent='error';}setTimeout(poll,1200);setTimeout(renderFixers,4000);}));}
// init persisted state
(function(){
- applyTheme(get('theme', (window.matchMedia&&matchMedia('(prefers-color-scheme: dark)').matches)?'dark':'light'));
+ applyTheme(get('theme','light')); // default = day (black text on white); toggle to Night persists
const c=get('cols','3');$('dens').value=c;setCols(c);
$('sort').value=get('sort','broken');$('group').value=get('group','none');
setView(get('view','grid'));
← edfc58b board UX upgrade: day/night toggle, click-to-drill detail dr
·
back to Fix Live Board
·
board: movable/dockable nav — drag grip (float/move up-down- e6f437b →