Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 52 additions & 6 deletions dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,23 @@
.board-nav-card:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.board-nav-count{font-size:1.8rem;font-weight:700;line-height:1.15;color:var(--accent)}
.board-nav-label{font-weight:650}.board-nav-context{font-size:.8rem;color:var(--muted)}

/* Shared major-section disclosures; owner-provided summaries stay visible. */
details.board-section{margin:1rem 0;border:1px solid var(--line);border-radius:10px;padding:0}
.board-section>summary{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;padding:1rem;cursor:pointer;list-style:none;min-height:48px}
.board-section>summary::-webkit-details-marker{display:none}
.board-section>summary::before{content:"▸";color:var(--accent);flex:none}
.board-section[open]>summary::before{content:"▾"}
.board-section>summary>h2{display:inline;margin:0;padding:0;border:0;flex:1;min-width:0;font-size:1.15rem}
.board-section>summary>h2::after{display:none}
.board-section>summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.board-section-body{padding:0 1rem 1rem;min-width:0}
.section-badge{font-size:.8rem;border:1px solid currentColor;border-radius:999px;padding:.15rem .55rem;white-space:normal}
.section-status-red{color:#b42318}.section-status-yellow{color:#8a5700}.section-status-green{color:#18733c}
.section-status-stale,.section-status-unknown{color:var(--muted)}
@media(prefers-color-scheme:dark){.section-status-red{color:#ff9188}.section-status-yellow{color:#eac15c}.section-status-green{color:#7bd49c}}
@media print{.board-section-body{display:block!important}.board-section>summary{break-after:avoid}}

/* --- sections ---------------------------------------------------------- */
h2{font-size:1.1rem;margin:2.1rem 0 .3rem;padding:0 0 .35rem;font-weight:650;
position:relative;color:var(--accent);border-bottom:2px solid var(--edge)}
Expand Down Expand Up @@ -282,8 +299,7 @@
.fresh{padding:.1rem .9rem;margin:1.2rem 0;background:var(--tint)}.fresh p{margin:.5rem 0}table.map{width:100%;border-collapse:collapse;font-size:.95em}table.map th{text-align:left;color:var(--muted);font-weight:600}table.map td,table.map th{border-bottom:1px solid var(--line);padding:.4rem .5rem .4rem 0;vertical-align:top}.checkin{display:flex;gap:.9rem;align-items:center;padding:.9rem 1.2rem;border:2px solid var(--line);border-radius:.6rem;margin:.2rem 0 1.4rem}.checkin .mark{font-size:2rem;line-height:1}.checkin .label{display:block;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.checkin time{font-size:1.6rem;font-weight:700;font-variant-numeric:tabular-nums;display:block}.checkin .note{font-size:.85rem;color:var(--muted)}.checkin.fresh-ok{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,transparent)}.checkin.fresh-ok .mark{color:var(--ok)}.checkin.fresh-bad{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 12%,transparent)}.checkin.fresh-bad .mark{color:var(--bad)}.project h3{font-size:1.35rem;font-weight:700;padding-bottom:.2rem;border-bottom:2px solid var(--accent);letter-spacing:.01em;margin-top:1.6rem}.pathchip{display:inline-block;background:var(--accent);color:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;padding:.12em .5em;border-radius:.3rem;overflow-wrap:anywhere}@media(prefers-color-scheme:dark){.pathchip{background:color-mix(in srgb,var(--accent) 55%,#000)}}.stale{color:var(--bad);font-weight:600}</style>
</head>
<body>
<header class="hero"><span class="orb"><svg class="mark" viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="24" cy="24" r="20.4"/><path d="M11.8,18.6 C14.4,14.8 17.8,14.4 20.1,17.1 C22.4,19.8 25.8,20.2 28.5,17.9 C31.2,15.6 34.4,16.2 36.1,19.1"/><path d="M11.6,24.6 C14.2,20.8 17.6,20.4 19.9,23.1 C22.2,25.8 25.6,26.2 28.3,23.9 C31.0,21.6 34.2,22.2 35.9,25.1"/><path d="M12.8,30.6 C15.3,27.2 18.4,26.8 20.5,29.4 C22.6,32.0 25.7,32.4 28.2,30.2"/><circle cx="32.6" cy="33.0" r="3.8"/><g fill="currentColor" stroke="none"><circle cx="32.6" cy="33.0" r="1.5"/><circle cx="11.7" cy="18.6" r="1.2"/><circle cx="11.5" cy="24.6" r="1.2"/></g></svg></span><h1>PyAuto<b>Cortex</b><span class="kind">Dashboard</span></h1><div class="rule"></div><p class="tag">Question. Run. Rule.</p></header><nav class="board-nav" aria-label="Board sections"><a class="board-nav-card" href="#summary"><span class="board-nav-count">21</span><span class="board-nav-label">Running</span></a><a class="board-nav-card" href="#summary"><span class="board-nav-count">38</span><span class="board-nav-label">Open</span></a><a class="board-nav-card" href="#projects"><span class="board-nav-count">7</span><span class="board-nav-label">Projects</span></a><a class="board-nav-card" href="#checkin-box"><span class="board-nav-label">Check in</span></a></nav>
<section class="orchestration-panel" id="orchestration-cortex" aria-labelledby="orchestration-cortex-heading" data-orchestration-panel><div class="orchestration-head"><div><h2 class="prompt-heading" id="orchestration-cortex-heading">Explore science with your <strong>Cortex</strong></h2></div><nav class="orchestration-links" aria-label="Work on GitHub"><a href="https://github.com/PyAutoLabs/PyAutoCortex">Open Cortex repository</a><a href="https://github.com/PyAutoLabs/subhalo_validation">Open subhalo_validation</a><a href="https://github.com/PyAutoLabs/ep_toy_gaussian">Open ep_toy_gaussian</a><a href="https://github.com/PyAutoLabs/slope_hierarchy_scale">Open slope_hierarchy_scale</a><a href="https://github.com/Jammy2211/ic50_workspace">Open ic50_workspace</a><a href="https://github.com/PyAutoLabs/autolens_inference">Open autolens_inference</a></nav></div><div class="orchestration-controls"><div class="orchestration-direction"><label for="orchestration-cortex-direction">Optional direction</label><textarea id="orchestration-cortex-direction" rows="2" data-orchestration-direction placeholder="Focus on a task, project or question"></textarea></div><button type="button" class="orchestration-copy" data-orchestration-copy>check in since last time</button></div><div class="orchestration-footer"><details data-orchestration-preview><summary>Read the prompt</summary><label class="sr-only" for="orchestration-cortex-prompt">Exact prompt to copy</label><textarea id="orchestration-cortex-prompt" data-orchestration-prompt readonly rows="8">Use the cortex skill and treat this chat as an ongoing place to review scientific projects, discuss results and decide what to investigate next. Read PyAutoCortex/AGENTS.md, its project registry and the relevant project ledgers. Follow project-specific instructions when working within a project.
<header class="hero"><span class="orb"><svg class="mark" viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="24" cy="24" r="20.4"/><path d="M11.8,18.6 C14.4,14.8 17.8,14.4 20.1,17.1 C22.4,19.8 25.8,20.2 28.5,17.9 C31.2,15.6 34.4,16.2 36.1,19.1"/><path d="M11.6,24.6 C14.2,20.8 17.6,20.4 19.9,23.1 C22.2,25.8 25.6,26.2 28.3,23.9 C31.0,21.6 34.2,22.2 35.9,25.1"/><path d="M12.8,30.6 C15.3,27.2 18.4,26.8 20.5,29.4 C22.6,32.0 25.7,32.4 28.2,30.2"/><circle cx="32.6" cy="33.0" r="3.8"/><g fill="currentColor" stroke="none"><circle cx="32.6" cy="33.0" r="1.5"/><circle cx="11.7" cy="18.6" r="1.2"/><circle cx="11.5" cy="24.6" r="1.2"/></g></svg></span><h1>PyAuto<b>Cortex</b><span class="kind">Dashboard</span></h1><div class="rule"></div><p class="tag">Question. Run. Rule.</p></header><section class="orchestration-panel" id="orchestration-cortex" aria-labelledby="orchestration-cortex-heading" data-orchestration-panel><div class="orchestration-head"><div><h2 class="prompt-heading" id="orchestration-cortex-heading">Explore science with your <strong>Cortex</strong></h2></div><nav class="orchestration-links" aria-label="Work on GitHub"><a href="https://github.com/PyAutoLabs/PyAutoCortex">Open Cortex repository</a><a href="https://github.com/PyAutoLabs/subhalo_validation">Open subhalo_validation</a><a href="https://github.com/PyAutoLabs/ep_toy_gaussian">Open ep_toy_gaussian</a><a href="https://github.com/PyAutoLabs/slope_hierarchy_scale">Open slope_hierarchy_scale</a><a href="https://github.com/Jammy2211/ic50_workspace">Open ic50_workspace</a><a href="https://github.com/PyAutoLabs/autolens_inference">Open autolens_inference</a></nav></div><div class="orchestration-controls"><div class="orchestration-direction"><label for="orchestration-cortex-direction">Optional direction</label><textarea id="orchestration-cortex-direction" rows="2" data-orchestration-direction placeholder="Focus on a task, project or question"></textarea></div><button type="button" class="orchestration-copy" data-orchestration-copy>check in since last time</button></div><div class="orchestration-footer"><details data-orchestration-preview><summary>Read the prompt</summary><label class="sr-only" for="orchestration-cortex-prompt">Exact prompt to copy</label><textarea id="orchestration-cortex-prompt" data-orchestration-prompt readonly rows="8">Use the cortex skill and treat this chat as an ongoing place to review scientific projects, discuss results and decide what to investigate next. Read PyAutoCortex/AGENTS.md, its project registry and the relevant project ledgers. Follow project-specific instructions when working within a project.

When I give no particular direction, check in across active projects. On the laptop, use the Cortex pull procedure to retrieve updates through each project’s own sync CLI and report run status. Where that access is unavailable, use the available evidence and state what could not be checked. Follow the Cortex check-in procedure to refresh the board and read back each project’s current position, recent activity, outstanding questions and recorded next steps.

Expand All @@ -305,10 +321,12 @@
- Open ep_toy_gaussian: https://github.com/PyAutoLabs/ep_toy_gaussian
- Open slope_hierarchy_scale: https://github.com/PyAutoLabs/slope_hierarchy_scale
- Open ic50_workspace: https://github.com/Jammy2211/ic50_workspace
- Open autolens_inference: https://github.com/PyAutoLabs/autolens_inference</textarea></details><div class="orchestration-freshness" data-freshness="grey"><details data-freshness-stamp data-refreshed-at="2026-10-07T08:09:28Z"><summary><span data-freshness-label>Last updated 2026-10-07 08:09:28 UTC</span></summary><time datetime="2026-10-07T08:09:28Z">2026-10-07 08:09:28 UTC</time></details><a data-refresh-link href="https://github.com/PyAutoLabs/PyAutoCortex/actions/workflows/dashboard_refresh.yml" title="Open the dashboard refresh controls">↻ Update</a></div></div><p class="orchestration-status" role="status" aria-live="polite"></p></section>
- Open autolens_inference: https://github.com/PyAutoLabs/autolens_inference</textarea></details><div class="orchestration-freshness" data-freshness="grey"><details data-freshness-stamp data-refreshed-at="2026-10-07T10:59:43Z"><summary><span data-freshness-label>Last updated 2026-10-07 10:59:43 UTC</span></summary><time datetime="2026-10-07T10:59:43Z">2026-10-07 10:59:43 UTC</time></details><a data-refresh-link href="https://github.com/PyAutoLabs/PyAutoCortex/actions/workflows/dashboard_refresh.yml" title="Open the dashboard refresh controls">↻ Update</a></div></div><p class="orchestration-status" role="status" aria-live="polite"></p></section>
<nav class="board-nav" aria-label="Board sections"><a class="board-nav-card" href="#summary"><span class="board-nav-count">21</span><span class="board-nav-label">Running</span></a><a class="board-nav-card" href="#summary"><span class="board-nav-count">38</span><span class="board-nav-label">Open</span></a><a class="board-nav-card" href="#projects"><span class="board-nav-count">7</span><span class="board-nav-label">Projects</span></a><a class="board-nav-card" href="#checkin-box"><span class="board-nav-label">Check in</span></a></nav>

<p class="muted mdsrc"><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/dashboard.md">markdown version</a> · <a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/README.md">GitHub Page</a></p>
<div class="checkin" id="checkin-box"><span class="mark" id="checkin-mark"></span><div><span class="label">Last check-in</span><time id="checkin" datetime="2026-09-30T09:51Z">2026-09-30T09:51Z</time><span class="note" id="checkin-note"></span></div></div>
<a id="summary"></a><h2>Summary</h2>
<details class="board-section"><summary><h2>Summary</h2><span class="section-badge">21 Running · 38 Open</span></summary><div class="board-section-body"><a id="summary"></a>
<table class="map">
<tr><th>Project</th><th>Running</th><th>Open</th><th>Last update</th></tr>
<tr><td><b>subhalo_validation</b></td><td>0</td><td>5</td><td>2026-09-07</td></tr>
Expand All @@ -319,7 +337,7 @@
<tr><td><b>ic50_workspace</b></td><td>0</td><td>0</td><td>2026-09-30</td></tr>
<tr><td><b>autolens_inference</b></td><td>6</td><td>0</td><td>2026-09-24</td></tr>
</table>
<a id="projects"></a><h2>Projects</h2>
</div></details><details class="board-section"><summary><h2>Projects</h2><span class="section-badge">7</span></summary><div class="board-section-body"><a id="projects"></a>
<section class="project">
<h3>subhalo_validation — Do the SLaM subhalo pipelines false-detect on lenses with no subhalo</h3>
<p class="muted">active · ral · <a href="https://github.com/PyAutoLabs/subhalo_validation/issues/2">subhalo_validation#2</a> · <a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/subhalo_validation.md">projects/subhalo_validation.md</a> · local <span class="pathchip">/mnt/c/Users/Jammy/Science/subhalo_validation</span> · RAL <span class="pathchip">/mnt/ral/jnightin/subhalo_validation</span></p>
Expand Down Expand Up @@ -538,7 +556,7 @@ <h4>No ledger</h4>
<tr><td>pj011646</td><td>dormant</td><td>personal remote, recorded as a fact — not a PyAutoLabs repo; ral_root planned, sync_verbs unverified</td></tr>
<tr><td>concr</td><td>dormant</td><td>personal remote Jammy2211/cosmology_and_cancer, recorded as a fact; ral_root planned, sync_verbs unverified</td></tr>
</table>
<ul class="boards"><li class="muted" style="padding:.3rem 0">Boards:</li><li><a data-organ="brain" href="https://pyautolabs.github.io/PyAutoBrain/">Brain</a></li><li><a data-organ="mind" href="https://pyautolabs.github.io/PyAutoMind/">Mind</a></li><li><a data-organ="memory" href="https://pyautolabs.github.io/PyAutoMemory/">Memory</a></li><li><a data-organ="eyes" href="https://pyautolabs.github.io/PyAutoEyes/">Eyes</a></li><li><a data-organ="ears" href="https://pyautolabs.github.io/PyAutoEars/">Ears</a></li><li><a data-organ="heart" href="https://pyautolabs.github.io/PyAutoHeart/">Heart</a></li><li><a data-organ="hands" href="https://pyautolabs.github.io/PyAutoHands/">Hands</a></li><li><a data-organ="pulse" href="https://pyautolabs.github.io/PyAutoPulse/">Pulse</a></li><li><a data-organ="insight" href="https://pyautolabs.github.io/PyAutoInsight/">Insight</a></li><li><a data-organ="nerves" href="https://pyautolabs.github.io/PyAutoNerves/">Nerves</a></li><li><a data-organ="gut" href="https://pyautolabs.github.io/PyAutoGut/">Gut</a></li><li><a data-organ="organism" href="https://pyautolabs.github.io/PyAutoScientist/">Scientist</a></li></ul>
</div></details><ul class="boards"><li class="muted" style="padding:.3rem 0">Boards:</li><li><a data-organ="brain" href="https://pyautolabs.github.io/PyAutoBrain/">Brain</a></li><li><a data-organ="mind" href="https://pyautolabs.github.io/PyAutoMind/">Mind</a></li><li><a data-organ="memory" href="https://pyautolabs.github.io/PyAutoMemory/">Memory</a></li><li><a data-organ="eyes" href="https://pyautolabs.github.io/PyAutoEyes/">Eyes</a></li><li><a data-organ="ears" href="https://pyautolabs.github.io/PyAutoEars/">Ears</a></li><li><a data-organ="heart" href="https://pyautolabs.github.io/PyAutoHeart/">Heart</a></li><li><a data-organ="hands" href="https://pyautolabs.github.io/PyAutoHands/">Hands</a></li><li><a data-organ="pulse" href="https://pyautolabs.github.io/PyAutoPulse/">Pulse</a></li><li><a data-organ="insight" href="https://pyautolabs.github.io/PyAutoInsight/">Insight</a></li><li><a data-organ="nerves" href="https://pyautolabs.github.io/PyAutoNerves/">Nerves</a></li><li><a data-organ="gut" href="https://pyautolabs.github.io/PyAutoGut/">Gut</a></li><li><a data-organ="organism" href="https://pyautolabs.github.io/PyAutoScientist/">Scientist</a></li></ul>
<script>const MAX_PROMPT_CHARS = 50000;
function promptFits(text){
let count=0;for(const character of text){if(++count>MAX_PROMPT_CHARS)return false;}
Expand Down Expand Up @@ -641,6 +659,34 @@ <h4>No ledger</h4>
if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',startDashboardFreshness,{once:true});
else startDashboardFreshness();
document.addEventListener('visibilitychange',()=>{if(!document.hidden)updateDashboardFreshness();});

(function(){
if(typeof window==='undefined') return;
function reveal(){
var id;
try { id=decodeURIComponent(location.hash.slice(1)); } catch(e) { return; }
var target=id && document.getElementById(id);
if(!target) return;
for(var p=target;p;p=p.parentElement) if(p.tagName==='DETAILS') p.open=true;
requestAnimationFrame(function(){target.scrollIntoView({block:'start'});});
}
window.addEventListener('hashchange',reveal);
document.addEventListener('click',function(event){
var link=event.target.closest('a[href]');
if(link && link.hash && link.origin===location.origin && link.pathname===location.pathname)
setTimeout(reveal,0);
});
if(document.readyState==='loading') document.addEventListener('DOMContentLoaded',reveal);
else reveal();
var printed=[];
window.addEventListener('beforeprint',function(){
printed=Array.from(document.querySelectorAll('details:not([open])'));
printed.forEach(function(node){node.open=true;});
});
window.addEventListener('afterprint',function(){
printed.forEach(function(node){node.open=false;}); printed=[];
});
})();
</script>
<script>(function(){var e=document.getElementById('checkin'),b=document.getElementById('checkin-box'),m=document.getElementById('checkin-mark'),n=document.getElementById('checkin-note');if(!e||!b)return;var t=e.getAttribute('datetime'),d=t?new Date(t):null;if(!d||isNaN(d.getTime())||(Date.now()-d.getTime())/60000>180){b.classList.add('fresh-bad');e.classList.add('stale');if(m)m.textContent='✗';if(n)n.textContent=t?'stale, paste the check-in':'never checked in';}else{b.classList.add('fresh-ok');if(m)m.textContent='✓';var a=Math.round((Date.now()-d.getTime())/60000);if(n)n.textContent='fresh · '+(a<60?a+' min':Math.round(a/60)+' h')+' ago';}})();</script>
</body>
Expand Down
2 changes: 1 addition & 1 deletion state.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"repo": "PyAutoCortex",
"status": "yellow",
"headline": "YELLOW \u2014 7 active \u00b7 21 running",
"updated": "2026-10-07T08:09:28Z",
"updated": "2026-10-07T10:59:43Z",
"pages_url": "https://pyautolabs.github.io/PyAutoCortex/",
"items": [
{
Expand Down
Loading