Repository navigation
Expand file tree
/
Copy pathdashboard.html
More file actions
911 lines (898 loc) · 145 KB
/
Copy pathdashboard.html
File metadata and controls
911 lines (898 loc) · 145 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>PyAutoCortex Dashboard</title>
<!-- generated by `pyauto-brain cortex dashboard --apply` on 2026-10-19 — regenerate, do not hand-edit -->
<style>:root{color-scheme:light dark;--bg:#fff;--fg:#1f2328;--muted:#59636e;
--board-max:77.5rem;--board-gutter:1rem;--board-measure:65ch;
--line:#d8dee4;--btn:#f6f8fa;--ok:#1a7f37;--warn:#9a6700;--bad:#d1242f;
--accent:#a5177d;--tint:#a5177d14;--edge:#a5177d3d;
/* the ink that READS on a solid --accent fill: the accent is a dark ink on
the light scheme, so white sits on it; on the dark scheme the accent is
the bright end of the pair and the page's own ground is what reads. */
--accent-ink:#fff;
--hero-lift:#340a2a;--hero-base:#000000;--glow:#ff4fc3;
--glow2:#ff4fc3}
@media(prefers-color-scheme:dark){:root{--bg:#0d1117;--fg:#f0f6fc;
--muted:#9198a1;--line:#2c333c;--btn:#151b23;--ok:#3fb950;--warn:#d29922;
--bad:#f85149;--accent:#ff7ad9;--tint:#ff7ad91f;
--edge:#ff7ad947;--accent-ink:#0d1117}}
*{box-sizing:border-box}
/* Wrapping is the page DEFAULT, not a per-component opt-in. These boards are
read on phones, and every one of them prints run URLs, dotted test ids and
long file paths — a single unbreakable token in any element a renderer adds
itself (a reasons list, a footer, a details block) spills past the right
edge and gives the WHOLE page a horizontal scroll. `overflow-wrap` is
inherited, so setting it here covers markup this module has never seen.
The three max-width/overflow rules do the same job for the things that
cannot be wrapped: an image, a table, a code block. */
body{margin:0 auto;max-width:var(--board-max);padding:0 var(--board-gutter) 4rem;background:var(--bg);
color:var(--fg);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",
Helvetica,Arial,sans-serif;-webkit-text-size-adjust:100%;
overflow-wrap:anywhere}
/* The outer maximum includes gutters (border-box); it never sets a minimum
viewport width. Data uses the available space, prose has its own measure.
Match the existing inset-hero breakpoint rather than adding another step.
See docs/board-sizing.md for consumer responsibilities and adoption. */
@media(min-width:46rem){:root{--board-gutter:1.5rem}}
:where(p,.board-prose){max-width:var(--board-measure)}
/* Masthead text and status panels occupy their full component width. */
.hero p,.verdict{max-width:none}
img,svg,table{max-width:100%}
pre{overflow-x:auto}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
/* The accent is the page's *type* colour, not just its link colour: the
things that give a page its shape — headings, disclosure summaries, code
spans, the emphasised head of a row — are all set in the organ's hue, so
the page reads as its organ instead of as grey GitHub chrome. Semantics
are untouched: anything carrying a class (ok/warn/bad, the pills, muted)
keeps the colour that class means. */
b:not([class]),strong:not([class]){color:var(--accent)}
.muted{color:var(--muted)}
.ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}
/* A bare list is page text, not a quotation. The UA's 40px indent steps it in
from every other block on the page — measured on the Heart board, the
evidence-gap bullets started at x=56 against a 16px body margin, which
reads as a stray inset column on a phone. The lists that are layout rather
than prose (.stats, .boards, ul.det) set their own padding and win on
specificity. */
ul,ol{padding-left:1.15rem}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;
color:var(--accent);background:var(--tint);border:1px solid var(--edge);
padding:.05em .35em;border-radius:5px}
/* --- hero: the logo, rendered as type ---------------------------------- */
.hero{margin:0 calc(-1 * var(--board-gutter)) 1.4rem;padding:2.1rem 1.4rem 1.7rem;position:relative;
overflow:hidden;text-align:center;color:#fff;background:var(--hero-base);
background-image:radial-gradient(78% 104% at 50% 14%,
var(--hero-lift) 0%,var(--hero-base) 72%)}
@media(min-width:46rem){.hero{margin:1rem 0 1.6rem;border-radius:16px}}
.hero::after{content:"";position:absolute;left:12%;right:12%;bottom:0;
height:2px;background:linear-gradient(90deg,transparent,var(--glow),
transparent);opacity:.75}
/* The mark carries its own ring, so the frame is light and glow only —
the logos set their glyph on black with a halo, not in a chip. */
.orb{display:block;width:5.6rem;height:5.6rem;margin:0 auto .75rem;
color:var(--glow);filter:drop-shadow(0 0 9px #ff4fc37a)}
.orb svg{display:block;width:100%;height:100%}
.hero h1{margin:0;font-size:1.85rem;line-height:1.1;font-weight:700;
letter-spacing:-.022em;color:#fff}
/* Two wordmarks run their organ name as a gradient; for the rest --glow2
repeats --glow, so the same rule paints a flat colour. */
.hero h1 b{font-weight:700;color:var(--glow);
background:linear-gradient(96deg,var(--glow),var(--glow2));
-webkit-background-clip:text;background-clip:text}
@supports(-webkit-background-clip:text){
.hero h1 b{-webkit-text-fill-color:transparent}}
.hero .kind{display:block;margin-top:.5rem;font-size:.66rem;font-weight:600;
letter-spacing:.26em;text-transform:uppercase;color:#ffffffa6}
/* The hairline with a lit dot at its centre: every logo separates wordmark
from tagline with one, and it is the detail that reads as "same mark". */
.hero .rule{position:relative;width:11.5rem;height:1px;margin:1rem auto .75rem;
background:linear-gradient(90deg,transparent,var(--glow),transparent);
opacity:.7}
.hero .rule::after{content:"";position:absolute;left:50%;top:50%;
width:.4rem;height:.4rem;margin:-.2rem 0 0 -.2rem;border-radius:50%;
background:var(--glow);box-shadow:0 0 7px 1px var(--glow)}
.hero .tag{margin:0;font-size:.63rem;font-weight:600;
letter-spacing:.3em;text-transform:uppercase;color:var(--glow);opacity:.9}
.lede{margin:0 0 .9rem}
/* Section links share a shape whether or not the owner has a useful count. */
.board-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));
gap:.75rem;margin:1.5rem 0;min-width:0}
@media(min-width:64rem){
.board-nav[style]{grid-template-columns:repeat(var(--nav-columns),minmax(0,1fr))}}
.board-nav-card{display:flex;flex-direction:column;justify-content:center;gap:.25rem;
min-width:0;min-height:5.5rem;padding:1rem;border:1px solid var(--line);
border-top:3px solid var(--accent);border-radius:12px;background:var(--btn);
color:var(--fg);text-decoration:none}
.board-nav-card:hover{background:var(--tint);text-decoration:none;border-color:var(--accent)}
.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)}
/* The hero's lit rule, quieted and reused: the hairline under a section
starts at full accent and fades into the edge tone. Purely the ::after,
so a browser that skips it still gets the plain hairline. */
h2::after{content:"";position:absolute;left:0;bottom:-2px;width:44%;height:2px;
background:linear-gradient(90deg,var(--accent),var(--accent) 15%,transparent)}
h2 a{color:inherit}
/* The heading is the accent; its parenthetical stays a quiet aside rather
than competing at the same weight. */
h2 .muted{font-weight:400}
h3{font-size:.98rem;margin:1.3rem 0 .2rem;font-weight:650;color:var(--accent)}
/* --- rows -------------------------------------------------------------- */
.task{display:flex;gap:.6rem;align-items:flex-start;padding:.45rem .35rem;
margin:0 -.35rem;border-bottom:1px solid var(--line);border-radius:7px}
.task:hover{background:var(--tint);box-shadow:inset 2px 0 0 var(--accent)}
.task p{margin:.25rem 0 0;flex:1;min-width:0}
button.copy{flex:0 0 auto;width:2.6rem;height:2.6rem;font-size:1.1rem;
border:1px solid var(--edge);border-radius:9px;background:var(--tint);
cursor:pointer;color:var(--accent);transition:border-color .12s,color .12s}
button.copy:hover{border-color:var(--accent);color:var(--accent)}
button.copy.ok{color:var(--ok);border-color:var(--ok);background:transparent}
button.copy.term{font-size:.95rem}
/* The owner supplies meaning and destinations; the family owns the controls. */
.orchestration-panel{border:1px solid var(--line);border-radius:16px;padding:1.5rem;
margin:1.5rem 0;background:linear-gradient(120deg,var(--tint),var(--bg));min-width:0}
.orchestration-head{display:flex;flex-wrap:wrap;gap:1.25rem;justify-content:space-between;align-items:start}
.orchestration-panel h2{margin:0;border:0;padding:0;font-size:1.45rem}
.orchestration-panel h2:after{display:none}
h2.prompt-heading.prompt-heading{font-size:clamp(.875rem,3.2vw,1.45rem);font-weight:400;
line-height:1.35;white-space:nowrap;letter-spacing:normal;border:0;padding:0;margin:1rem 0}
h2.prompt-heading strong{font-weight:700}
h2.prompt-heading:after{display:none}
.orchestration-panel h2.prompt-heading{margin:0}
.orchestration-head p{margin:.5rem 0 1rem}
.orchestration-links{display:flex;flex-wrap:wrap;gap:.5rem;max-width:100%}
.orchestration-links a{display:inline-block;padding:.5rem .75rem;border:1px solid var(--line);
border-radius:8px;background:var(--bg);font-weight:600}
.orchestration-controls{display:flex;gap:1rem;align-items:end;flex-wrap:wrap;margin:.75rem 0}
.orchestration-direction{flex:1;min-width:min(100%,15rem)}
.orchestration-panel label{display:block;font-weight:600;margin-bottom:.35rem}
.orchestration-panel textarea{display:block;width:100%;max-width:100%;resize:vertical;
box-sizing:border-box;font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line);
border-radius:8px;padding:.75rem;white-space:pre-wrap}
.orchestration-panel [data-orchestration-prompt]{margin-top:.75rem;font-size:.9rem}
.orchestration-copy{font:inherit;font-weight:650;background:var(--accent);color:var(--bg);
border:0;border-radius:8px;padding:.85rem 1rem;cursor:pointer;min-height:44px;max-width:100%}
.orchestration-panel :focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.orchestration-status{margin:.5rem 0 0;color:var(--muted)}
.orchestration-status:empty{display:none}
.orchestration-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem 1rem;font-size:.8rem}
.orchestration-footer>[data-orchestration-preview]{grid-column:1/-1;grid-row:1;margin:0}
.orchestration-footer>[data-orchestration-preview]>summary{width:max-content;max-width:100%}
.orchestration-freshness{grid-column:2;grid-row:1;align-self:start;display:flex;flex-wrap:wrap;gap:.35rem .75rem;align-items:baseline}
.orchestration-freshness details{margin:0;padding:0;border:0;background:none}
.orchestration-freshness summary{font:inherit;color:inherit;cursor:pointer}
.orchestration-freshness time{display:block;font-size:.75rem}
.orchestration-freshness[data-freshness="green"]{color:var(--ok)}
.orchestration-freshness[data-freshness="yellow"]{color:var(--warn)}
.orchestration-freshness[data-freshness="red"]{color:var(--bad)}
.orchestration-freshness[data-freshness="grey"]{color:var(--muted)}
.orchestration-freshness a{font:inherit}
@media(max-width:46rem){.orchestration-panel{padding:1rem}.orchestration-head{display:block}
.orchestration-copy{width:100%}.orchestration-links{margin-bottom:1rem}
.orchestration-footer{display:block}.orchestration-freshness{margin-top:.5rem}}
/* A copy button with a WORDED face is a chip, not an icon. The rule above is
a fixed 2.6rem square — right for a bare clipboard glyph, a trap for a
label: the text wraps inside 42px into a one-word-per-line column and
spills out of its own box (observed on the health board's "clear them all"
line). Size to the label instead, and hold it on one line the way `.pill`
does — a chip that will not fit is elided, never allowed to push the page
sideways. `vertical-align:bottom` because `overflow:hidden` moves an
inline-block's baseline to its bottom edge. */
button.copy.text{width:auto;height:auto;max-width:100%;padding:.34rem .62rem;
font-size:.85rem;font-weight:600;white-space:nowrap;overflow:hidden;
text-overflow:ellipsis;vertical-align:bottom}
button.more{display:block;width:100%;margin:.7rem 0;padding:.55rem;
border:1px dashed var(--edge);border-radius:9px;background:transparent;
color:var(--muted);cursor:pointer;font:inherit;font-size:.9em}
button.more:hover{color:var(--accent);border-style:solid}
details{margin:.5rem 0}
summary{cursor:pointer;font-weight:600;padding:.4rem 0;color:var(--accent)}
summary::marker{color:var(--accent)}
/* --- facet pills: the backlog, scannable by colour --------------------- */
.facets{color:var(--muted);font-size:.85em}
.tags{display:block;margin-top:.32rem;line-height:1.9}
/* A pill is a LABEL, and a label that will not fit is elided, never allowed
to push the page sideways. `nowrap` is what makes a chip read as a chip, so
it is also the one thing the page-wide wrap guard above cannot reach: an
over-long value (a board handing a whole log sentence to a facet) used to
run a chip a thousand pixels wide. The row's prose carries the meaning; the
chip carries the word. `vertical-align:bottom` because `overflow:hidden`
moves an inline-block's baseline to its bottom edge. */
.pill{display:inline-block;max-width:100%;padding:.06em .5em;border-radius:999px;
font-size:.74em;font-weight:650;letter-spacing:.015em;white-space:nowrap;
overflow:hidden;text-overflow:ellipsis;
vertical-align:bottom;border:1px solid var(--edge);background:var(--tint);
color:var(--accent)}
.pill+.pill{margin-left:.28rem}
.pill.n{border-color:var(--line);background:var(--btn);color:var(--muted)}
.pill.w{border-color:transparent;background:var(--btn);color:var(--muted);
font-size:.7em;letter-spacing:.09em;text-transform:uppercase}
.pill.w.y{color:var(--warn);border-color:var(--warn);background:transparent}
.pill.g{border-color:var(--ok);background:transparent;color:var(--ok)}
.pill.y{border-color:var(--warn);background:transparent;color:var(--warn)}
.pill.r{border-color:var(--bad);background:transparent;color:var(--bad)}
/* --- stat strip -------------------------------------------------------- */
.stats{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1rem;padding:0;
list-style:none}
.stats li{flex:1 1 auto;min-width:5.2rem;padding:.5rem .6rem;text-align:center;
border:1px solid var(--line);border-radius:10px;background:var(--btn)}
.stats b{display:block;font-size:1.15rem;line-height:1.2;color:var(--accent);
font-variant-numeric:tabular-nums}
.stats span{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
color:var(--accent);opacity:.75}
/* --- verdict banner ---------------------------------------------------- */
.verdict{margin:0 0 1rem;padding:.7rem .85rem;border-radius:10px;
border:1px solid var(--line);border-left:4px solid var(--muted);
background:var(--btn)}
.verdict.ok{border-left-color:var(--ok)}
.verdict.warn{border-left-color:var(--warn)}
.verdict.bad{border-left-color:var(--bad)}
.verdict b{display:block;font-size:1.02rem}
.verdict.ok b{color:var(--ok)}
.verdict.warn b{color:var(--warn)}
.verdict.bad b{color:var(--bad)}
/* --- tables ------------------------------------------------------------ */
table.recent{width:100%;border-collapse:collapse;font-size:.95em}
table.recent td{border-bottom:1px solid var(--line);
padding:.45rem .4rem .45rem 0;vertical-align:top}
table.recent tr:hover td{background:var(--tint)}
table.recent td.when{white-space:nowrap;color:var(--muted);
font-variant-numeric:tabular-nums}
table.recent td.what{white-space:nowrap;color:var(--accent);font-size:.85em;
padding-top:.58rem;opacity:.8}
table.recent td.pick{width:2.6rem;padding-right:0}
table.recent button.copy{width:2.2rem;height:2.2rem;font-size:.95rem}
/* On a phone a four-column row is not a row, it is a ribbon. Measured at a
375px viewport: the meta columns took 156px and the text was left 187 — half
the screen — so every entry wrapped into a tall thin column down the right
while the meta cells sat beside it as empty height. Below 34rem the row
stacks: the meta reads as one small header line with the button at its end,
and the text takes the full width underneath. */
@media(max-width:34rem){
/* `:not([hidden])` is load-bearing: `display:flex` here outranks the UA
sheet's `[hidden]{display:none}`, which would reveal the whole paged
Recent feed at once. */
table.recent tr:not([hidden]){display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .5rem;
padding:.5rem 0;border-bottom:1px solid var(--line)}
table.recent td{display:block;width:auto;border-bottom:0;padding:0}
table.recent td.what{padding-top:0}
table.recent td.pick{width:auto;margin-left:auto}
table.recent td:not([class]){flex:1 0 100%;margin-top:.15rem}
}
/* --- the family footer: one chip per sibling board, in its own colour --- */
.boards{display:flex;flex-wrap:wrap;gap:.4rem;margin:2.4rem 0 0;padding:0;
list-style:none;border-top:1px solid var(--line);padding-top:1rem}
.boards a{display:inline-block;padding:.3rem .7rem;border-radius:999px;
font-size:.82em;font-weight:600;border:1px solid currentColor;opacity:.85}
.boards a:hover{opacity:1;text-decoration:none}
/* --- the review button: the batch-status box's `_status.render_html` ---- */
a.go{display:inline-block;margin-top:.15rem;padding:.35rem .8rem;
border-radius:999px;font-size:.85em;font-weight:600;color:#fff;
background:var(--warn)}
a.go:hover{opacity:.9;text-decoration:none}
.mdsrc{font-size:.85em}
.board-source-link{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;border-radius:6px;color:var(--muted);text-decoration:none}
.board-source-link:hover{color:var(--accent);background:var(--btn)}
.board-source-link:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.board-source-link svg{width:18px;height:18px;pointer-events:none}
p:has(>.board-source-link){display:flex;align-items:center;gap:.5rem;max-width:none}
p>.board-source-link{order:1;margin-left:auto}
.board-section>summary>.board-source-link{margin-left:auto}
.boards a[data-organ="broca"]{color:#8b3e68}@media(prefers-color-scheme:dark){.boards a[data-organ="broca"]{color:#f4a5ce}}.boards a[data-organ="brain"]{color:#2159c9}@media(prefers-color-scheme:dark){.boards a[data-organ="brain"]{color:#6f9dff}}.boards a[data-organ="mind"]{color:#0a7d72}@media(prefers-color-scheme:dark){.boards a[data-organ="mind"]{color:#2ee6cf}}.boards a[data-organ="cortex"]{color:#a5177d}@media(prefers-color-scheme:dark){.boards a[data-organ="cortex"]{color:#ff7ad9}}.boards a[data-organ="memory"]{color:#6b34d6}@media(prefers-color-scheme:dark){.boards a[data-organ="memory"]{color:#b37eff}}.boards a[data-organ="eyes"]{color:#7d6300}@media(prefers-color-scheme:dark){.boards a[data-organ="eyes"]{color:#f5c518}}.boards a[data-organ="ears"]{color:#96520b}@media(prefers-color-scheme:dark){.boards a[data-organ="ears"]{color:#ffc078}}.boards a[data-organ="heart"]{color:#b50f1a}@media(prefers-color-scheme:dark){.boards a[data-organ="heart"]{color:#ff6b73}}.boards a[data-organ="hands"]{color:#9a5400}@media(prefers-color-scheme:dark){.boards a[data-organ="hands"]{color:#ffa733}}.boards a[data-organ="pulse"]{color:#0b7a4b}@media(prefers-color-scheme:dark){.boards a[data-organ="pulse"]{color:#34d399}}.boards a[data-organ="insight"]{color:#995500}@media(prefers-color-scheme:dark){.boards a[data-organ="insight"]{color:#ffc163}}.boards a[data-organ="dna"]{color:#087b88}@media(prefers-color-scheme:dark){.boards a[data-organ="dna"]{color:#67e8f9}}.boards a[data-organ="nerves"]{color:#6420e0}@media(prefers-color-scheme:dark){.boards a[data-organ="nerves"]{color:#a27aff}}.boards a[data-organ="gut"]{color:#3f7a00}@media(prefers-color-scheme:dark){.boards a[data-organ="gut"]{color:#8fe01a}}.boards a[data-organ="organism"]{color:#0b6fa4}@media(prefers-color-scheme:dark){.boards a[data-organ="organism"]{color:#5ec7f5}}
.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}details.project{margin:.6rem 0;border:1px solid var(--line);border-radius:10px;padding:0}details.project>summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .7rem;padding:.75rem 1rem;min-height:48px;list-style:none;color:var(--fg);font-weight:400}details.project>summary::-webkit-details-marker{display:none}details.project>summary::before{content:"▸";color:var(--accent);flex:none}details.project[open]>summary::before{content:"▾"}details.project>summary:focus-visible,details.full>summary:focus-visible,details.sub>summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}details.project>summary h3{display:inline;margin:0;padding:0;border:0;font-size:1.1rem;font-weight:700}details.project .purpose{flex:1 1 18rem;min-width:0}details.project .meta{color:var(--muted);font-size:.88em;font-variant-numeric:tabular-nums}.project-body{padding:0 1rem .8rem;border-top:1px solid var(--line)}.project-body h4{margin:1rem 0 .4rem;font-size:1rem}table.runs{width:100%;border-collapse:collapse;font-size:.92em}table.runs th{text-align:left;color:var(--muted);font-weight:600;white-space:nowrap;overflow-wrap:normal}table.runs td,table.runs th{border-bottom:1px solid var(--line);padding:.35rem .7rem .35rem 0;vertical-align:top}table.runs td.job,table.runs td.date,table.runs td.part,table.runs td.state{white-space:nowrap;font-variant-numeric:tabular-nums}table.runs td.what{width:100%}details.full,details.sub{margin:0}details.full>summary{font-weight:400;color:inherit;padding:0}details.full>summary .less{display:none;color:var(--muted)}details.full[open]>summary .clip{display:none}details.full[open]>summary .less{display:inline}details.full>p{margin:.2rem 0 0}details.sub{margin:.6rem 0}ul.log{margin:.3rem 0;padding-left:1.2rem}dl.where{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.3rem .8rem;margin:1rem 0;color:var(--accent)}dl.where dd{margin:0;min-width:0}.position{display:flex;align-items:flex-start;gap:.8rem}.position-text{flex:1;min-width:0}.position-text h4{margin-top:.3rem}.position .resume{flex:none;min-width:44px;min-height:44px;margin-top:.2rem}table.runs td.what{line-height:1.6}@media(max-width:34rem){table.runs,table.runs tbody{display:block}table.runs thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}table.runs tr{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .6rem;padding:.5rem 0;border-bottom:1px solid var(--line)}table.runs td{display:block;border:0;padding:0}table.runs td[data-label]::before{content:attr(data-label) ": ";color:var(--muted);font-size:.85em}table.runs td.what{flex:1 0 100%;margin-top:.15rem}}.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">Science</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">PyAutoCortex</a><a href="https://github.com/PyAutoLabs/subhalo_validation">subhalo_validation</a><a href="https://github.com/PyAutoLabs/ep_toy_gaussian">ep_toy_gaussian</a><a href="https://github.com/PyAutoLabs/slope_hierarchy_scale">slope_hierarchy_scale</a><a href="https://github.com/Jammy2211/ic50_workspace">ic50_workspace</a><a href="https://github.com/PyAutoLabs/autolens_inference">autolens_inference</a><a href="https://github.com/PyAutoLabs/autofit_inference">autofit_inference</a><a href="https://github.com/PyAutoLabs/euclid_detailed">euclid_detailed</a><a href="https://github.com/PyAutoLabs/cowls">cowls</a><a href="https://github.com/PyAutoLabs/cowls_ansofi">cowls_ansofi</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>Copy check-in prompt</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.
When I name a project, result, question or idea, make that the main focus. Help me recall where we left off, inspect available results, compare measured outputs and retrieve relevant records. Help develop scientific questions or explore explanations only when I ask. Bring in other projects where relevant; do not repeat the full project review on every follow-up.
Present factual results, run status and my previously recorded conclusions. Do not offer scientific interpretations, explanations or hypotheses unless I explicitly ask. When I request interpretation, distinguish evidence from speculation and keep proposed interpretations separate from my accepted conclusions. Record scientific conclusions only when I tell you what to preserve.
Record the observations, conclusions and decisions I ask you to preserve using the Cortex ledger procedures. Keep run records, dated discussion notes and next steps consistent, with links to supporting evidence. Keep scientific records in Cortex and bounded development tasks in Mind.
Help plan follow-up analyses or runs when requested, using the project’s own execution workflow. Submit compute only when I explicitly ask, and preserve the applicable resource and approval requirements. Route implementation changes through the development workflow.
Continue from decisions and authorizations already established in this conversation. After taking action, report what changed, what was recorded and what remains unresolved.
Last check-in: 2026-10-17T11:18Z.
Work on GitHub:
- Open Cortex repository: https://github.com/PyAutoLabs/PyAutoCortex
- Open subhalo_validation: https://github.com/PyAutoLabs/subhalo_validation
- 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
- Open autofit_inference: https://github.com/PyAutoLabs/autofit_inference
- Open euclid_detailed: https://github.com/PyAutoLabs/euclid_detailed
- Open cowls: https://github.com/PyAutoLabs/cowls
- Open cowls_ansofi: https://github.com/PyAutoLabs/cowls_ansofi</textarea></details><div class="orchestration-freshness" data-freshness="grey"><details data-freshness-stamp data-refreshed-at="2026-10-19T19:05:59Z"><summary><span data-freshness-label>Last updated 2026-10-19 19:05:59 UTC</span></summary><time datetime="2026-10-19T19:05:59Z">2026-10-19 19:05:59 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">16</span><span class="board-nav-label">Running</span></a><a class="board-nav-card" href="#summary"><span class="board-nav-count">47</span><span class="board-nav-label">Open</span></a><a class="board-nav-card" href="#projects"><span class="board-nav-count">12</span><span class="board-nav-label">Projects</span></a><a class="board-nav-card" href="#orchestration-cortex"><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" class="board-source-link" title="Markdown version" aria-label="Markdown version"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M14 3H6a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V8Z"/><path d="M14 3v5h5M8 12h8M8 16h6"/></svg></a></p>
<details class="board-section"><summary><h2>Summary</h2><span class="section-badge">16 Running · 47 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>
<tr><td><b>subhalo</b></td><td>0</td><td>0</td><td>2026-10-15</td></tr>
<tr><td><b>euclid_dr1</b></td><td>16</td><td>42</td><td>2026-10-10</td></tr>
<tr><td><b>analytic_gaussian</b></td><td>0</td><td>0</td><td>2026-10-14</td></tr>
<tr><td><b>ep_toy_gaussian</b></td><td>0</td><td>0</td><td>2026-10-14</td></tr>
<tr><td><b>slope_hierarchy_scale</b></td><td>0</td><td>0</td><td>2026-10-14</td></tr>
<tr><td><b>ic50_workspace</b></td><td>0</td><td>0</td><td>2026-10-14</td></tr>
<tr><td><b>autolens_inference</b></td><td>0</td><td>0</td><td>2026-10-19</td></tr>
<tr><td><b>autofit_inference</b></td><td>0</td><td>0</td><td>2026-10-16</td></tr>
<tr><td><b>euclid_detailed</b></td><td>0</td><td>0</td><td>2026-10-15</td></tr>
<tr><td><b>cowls</b></td><td>0</td><td>0</td><td>2026-10-15</td></tr>
<tr><td><b>cowls_ansofi</b></td><td>0</td><td>0</td><td>2026-10-19</td></tr>
</table>
</div></details><details class="board-section"><summary><h2>Projects</h2><span class="section-badge">12</span></summary><div class="board-section-body"><a id="projects"></a>
<details class="project" id="project-subhalo_validation">
<summary><h3>subhalo_validation</h3><span class="purpose">Do the SLaM subhalo pipelines false-detect on lenses with no subhalo</span><span class="meta">0 running · 5 open · updated 2026-09-07</span></summary>
<div class="project-body">
<dl class="where">
<dt>Registered:</dt><dd>not recorded</dd>
<dt>Local:</dt><dd>/mnt/c/Users/Jammy/Science/active/subhalo_validation</dd>
<dt>RAL:</dt><dd>/mnt/ral/jnightin/active/subhalo_validation</dd>
</dl><div class="position"><div class="position-text">
<h4>Current position</h4>
<p>Five chains on RAL under the corrected adapt settings: rectangular_adapt on pl_eff_0 / pl_eff_1_outer (job A done, job B 342311 submitted) and the delaunay_adapt_split reruns plus rectangular_adapt on pl_sersic_0. pl_sersic_0 on delaunay_adapt_split is accepted (no false detection, +2.557).<br>Next: pull when the numba chains land and read the evidence_increase of each; no more 1000-pixel runs.</p></div>
<button class="copy resume" aria-label="Copy resume prompt for subhalo_validation" title="Copy resume prompt for subhalo_validation" data-cmd="Use the cortex skill. — resume subhalo_validation: read PyAutoCortex projects/subhalo_validation.md (Now, Runs, Log) and then /mnt/c/Users/Jammy/Science/active/subhalo_validation/wiki/project/state.md and the assistant autolens_assistant's AGENTS.md; tell me where I left off and what I said I would do next. Submit nothing and log nothing until I say.">📋</button>
</div>
<h4>Runs (5)</h4>
<table class="runs" aria-label="Runs recorded for subhalo_validation">
<thead><tr><th scope="col">Job</th><th scope="col">State</th><th scope="col">Partition</th><th scope="col">Date</th><th scope="col">Description</th></tr></thead>
<tbody>
<tr><td class="job"><code>342299_1</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-07</td><td class="what"><details class="full"><summary><span class="clip">delaunay_adapt_split_pl_eff_0: job B, numba chain at the standard 1250-pixel Delaunay mesh (8c / 96gb / 48 h);<br> reloads job A 342231_1;<br> the 09-07 ruling: run al…</span><span class="less">show less</span></summary><p>delaunay_adapt_split_pl_eff_0: job B, numba chain at the standard 1250-pixel Delaunay mesh (8c / 96gb / 48 h);<br> reloads job A 342231_1;<br> the 09-07 ruling: run all datasets at 1250, no more pix1000</p></details></td></tr>
<tr><td class="job"><code>342299_2</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-07</td><td class="what"><details class="full"><summary><span class="clip">delaunay_adapt_split_pl_eff_1_outer: job B, numba chain at the standard 1250-pixel Delaunay mesh (8c / 96gb / 48 h);<br> reloads job A 342231_2;<br> the 09-07 ruling:…</span><span class="less">show less</span></summary><p>delaunay_adapt_split_pl_eff_1_outer: job B, numba chain at the standard 1250-pixel Delaunay mesh (8c / 96gb / 48 h);<br> reloads job A 342231_2;<br> the 09-07 ruling: run all datasets at 1250, no more pix1000</p></details></td></tr>
<tr><td class="job"><code>342311_1</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-07</td><td class="what"><details class="full"><summary><span class="clip">rectangular_adapt_pl_eff_0: job B, numba chain (8c / 96gb / 48 h) at the standard 1250-pixel mesh under PIPELINE=rectangular_adapt;<br> reloads job A 342237_1;<br> the…</span><span class="less">show less</span></summary><p>rectangular_adapt_pl_eff_0: job B, numba chain (8c / 96gb / 48 h) at the standard 1250-pixel mesh under PIPELINE=rectangular_adapt;<br> reloads job A 342237_1;<br> the 09-07 ask: submit the rectangular runs too</p></details></td></tr>
<tr><td class="job"><code>342311_2</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-07</td><td class="what"><details class="full"><summary><span class="clip">rectangular_adapt_pl_eff_1_outer: job B, numba chain (8c / 96gb / 48 h) at the standard 1250-pixel mesh under PIPELINE=rectangular_adapt;<br> reloads job A 342237_…</span><span class="less">show less</span></summary><p>rectangular_adapt_pl_eff_1_outer: job B, numba chain (8c / 96gb / 48 h) at the standard 1250-pixel mesh under PIPELINE=rectangular_adapt;<br> reloads job A 342237_2;<br> the 09-07 ask: submit the rectangular runs too</p></details></td></tr>
<tr><td class="job"><code>342311_0</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-07</td><td class="what"><details class="full"><summary><span class="clip">rectangular_adapt_pl_sersic_0: job B, numba chain (8c / 96gb / 48 h) at the standard 1250-pixel mesh under PIPELINE=rectangular_adapt;<br> reloads job A 342237_0;…</span><span class="less">show less</span></summary><p>rectangular_adapt_pl_sersic_0: job B, numba chain (8c / 96gb / 48 h) at the standard 1250-pixel mesh under PIPELINE=rectangular_adapt;<br> reloads job A 342237_0;<br> the 09-07 ask: submit the rectangular runs too</p></details></td></tr>
</tbody>
</table>
<details class="sub"><summary>Recent log — 5 of 40 entries</summary>
<ul class="log">
<li>2026-09-07 — <i>result</i> — <details class="full"><summary><span class="clip">accepted delaunay_adapt_split_pl_sersic_0 (R-20260907-01): Accepted. The numba delaunay_adapt_split chain on pl_sersic_0 (job 342273_0, 22 h 08 m, 1250 Hilbert / 1310 Delaunay pixels) lands evidence_increase +2.557 (< 5): no false detectio…</span><span class="less">show less</span></summary><p>accepted delaunay_adapt_split_pl_sersic_0 (R-20260907-01): Accepted. The numba delaunay_adapt_split chain on pl_sersic_0 (job 342273_0, 22 h 08 m, 1250 Hilbert / 1310 Delaunay pixels) lands evidence_increase +2.557 (< 5): no false detection. The best cell parks a 1.6e6 Msun nuisance subhalo at (-1.43, -2.36)", outside the ring. The shift from the legacy -0.30 comes with the S/N-3 adapt cap, adaptive over-sampling and the numba pool, not a code fault. Results are good; run the remaining datasets at 1250 pixels; no more 1000-pixel runs.</p></details></li>
<li>2026-09-07 — <i>run</i> — 342311_0 submitted: rectangular_adapt_pl_sersic_0 — job B, numba chain (8c / 96gb / 48 h) at the standard 1250-pixel mesh under PIPELINE=rectangular_adapt; reloads job A 342237_0; the 09-07 ask: submit the rectangular runs too</li>
<li>2026-09-07 — <i>run</i> — 342311_2 submitted: rectangular_adapt_pl_eff_1_outer — job B, numba chain (8c / 96gb / 48 h) at the standard 1250-pixel mesh under PIPELINE=rectangular_adapt; reloads job A 342237_2; the 09-07 ask: submit the rectangular runs too</li>
<li>2026-09-07 — <i>run</i> — 342311_1 submitted: rectangular_adapt_pl_eff_0 — job B, numba chain (8c / 96gb / 48 h) at the standard 1250-pixel mesh under PIPELINE=rectangular_adapt; reloads job A 342237_1; the 09-07 ask: submit the rectangular runs too</li>
<li>2026-09-07 — <i>run</i> — 342299_2 submitted: delaunay_adapt_split_pl_eff_1_outer — job B, numba chain at the standard 1250-pixel Delaunay mesh (8c / 96gb / 48 h); reloads job A 342231_2; the 09-07 ruling: run all datasets at 1250, no more pix1000</li>
</ul>
<p class="muted"><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/subhalo_validation.md">full log</a></p>
<p class="muted">active · ral · <a href="https://github.com/PyAutoLabs/subhalo_validation/issues/2">subhalo_validation#2</a></p>
</details>
</div>
</details>
<details class="project" id="project-subhalo">
<summary><h3>subhalo</h3><span class="purpose">SLaM subhalo modelling of the SLACS lens sample</span><span class="meta">no runs recorded · updated 2026-10-15</span></summary>
<div class="project-body">
<dl class="where">
<dt>Registered:</dt><dd>2026-10-15</dd>
<dt>Local:</dt><dd>/mnt/c/Users/Jammy/Science/active/subhalo</dd>
<dt>RAL:</dt><dd>/mnt/ral/jnightin/active/subhalo</dd>
</dl><div class="position"><div class="position-text">
<h4>Current position</h4>
<p>SLACS sample under dataset/, output/ empty, no runs yet; ral_root not yet created on RAL — the first hpc/sync push creates it.</p></div>
<button class="copy resume" aria-label="Copy resume prompt for subhalo" title="Copy resume prompt for subhalo" data-cmd="Use the cortex skill. — resume subhalo: read PyAutoCortex projects/subhalo.md (Now, Runs, Log) and then /mnt/c/Users/Jammy/Science/active/subhalo/README.md and the assistant autolens_assistant's AGENTS.md; tell me where I left off and what I said I would do next. Submit nothing and log nothing until I say.">📋</button>
</div>
<h4>Runs (0)</h4>
<p class="muted">nothing on the cluster</p>
<details class="sub"><summary>Recent log — 1 of 1 entry</summary>
<ul class="log">
<li>2026-10-15 — <i>note</i> — ledger opened</li>
</ul>
<p class="muted"><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/subhalo.md">full log</a></p>
<p class="muted">active · both · no issue yet</p>
</details>
</div>
</details>
<details class="project" id="project-euclid_dr1">
<summary><h3>euclid_dr1</h3><span class="purpose">Does the sep1 DR1 delivery reproduce the ten prelim lenses by eye</span><span class="meta">16 running · 42 open · updated 2026-10-10</span></summary>
<div class="project-body">
<dl class="where">
<dt>Registered:</dt><dd>2026-09-11</dd>
<dt>Local:</dt><dd>/mnt/c/Users/Jammy/Science/euclid_dr1</dd>
<dt>RAL:</dt><dd>/mnt/ral/jnightin/euclid_dr1</dd>
</dl><div class="position"><div class="position-text">
<h4>Current position</h4>
<p>The top-1000 DR1 sep1 vis_lp array finished 971 of 1000; 29 hit the 18-hour walltime. Array 344645 is now running vis_pix with the Numba CPU sparse route for those 971 completed lenses only.</p></div>
<button class="copy resume" aria-label="Copy resume prompt for euclid_dr1" title="Copy resume prompt for euclid_dr1" data-cmd="Use the cortex skill. — resume euclid_dr1: read PyAutoCortex projects/euclid_dr1.md (Now, Runs, Log) and then /mnt/c/Users/Jammy/Science/euclid_dr1/wiki/project/state.md and the assistant autolens_assistant's AGENTS.md; tell me where I left off and what I said I would do next. Submit nothing and log nothing until I say.">📋</button>
</div>
<h4>Runs (58)</h4>
<table class="runs" aria-label="Runs recorded for euclid_dr1">
<thead><tr><th scope="col">Job</th><th scope="col">State</th><th scope="col">Partition</th><th scope="col">Date</th><th scope="col">Description</th></tr></thead>
<tbody>
<tr><td class="job"><code>342650</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-11</td><td class="what"><details class="full"><summary><span class="clip">euclid_dr1 sep1 reproduction: the ten euclid_dr1_prelim lenses refitted from the sep1 delivery through prelim's route (hpc/batch_cpu/submit_initial_lens_model_…</span><span class="less">show less</span></summary><p>euclid_dr1 sep1 reproduction: the ten euclid_dr1_prelim lenses refitted from the sep1 delivery through prelim's route (hpc/batch_cpu/submit_initial_lens_model_two_stage: vis_lp then vis_pix), array 0-9, wall budget 36:00;<br> the by-eye reference is prelim run 342629</p></details></td></tr>
<tr><td class="job"><code>345279</code></td><td class="state" data-label="State"><span class="pill y">running</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-20</td><td class="what">VIS-LP JAX CPU pilot for the nine remainder tiles completing the first ten sorted DR1 lenses;<br> single RGB thumbnails uploaded</td></tr>
<tr><td class="job"><code>345305</code></td><td class="state" data-label="State"><span class="pill y">running</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-20</td><td class="what">DR1 full vis_lp production batch 1/5: rest_01, 1000 lenses, output root dr1_full</td></tr>
<tr><td class="job"><code>345669</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-20</td><td class="what">DR1 full vis_lp production batch 2/5: rest_02, 1000 lenses, output root dr1_full</td></tr>
<tr><td class="job"><code>345670</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-20</td><td class="what">DR1 full vis_lp production batch 3/5: rest_03, 1000 lenses, output root dr1_full</td></tr>
<tr><td class="job"><code>345671</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-20</td><td class="what">DR1 full vis_lp production batch 4/5: rest_04, 1000 lenses, output root dr1_full</td></tr>
<tr><td class="job"><code>345672</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-20</td><td class="what">DR1 full vis_lp production batch 5/5: rest_05, 1000 lenses, output root dr1_full</td></tr>
<tr><td class="job"><code>349353</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-21</td><td class="what">100-tile dr1_sep1_rest SED array: Sersic VIS with lens-light n~Uniform(0.5,10.0), then NIR Y/J/H and EXT DECam g/r/i/z;<br> output_sed;<br> max 20 concurrent</td></tr>
<tr><td class="job"><code>350581</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-23</td><td class="what">vis_lp-only inspection bundle over 4,912 completed dr1_sep1_rest tiles (vislp_full_20260923, OUTPUT_DIR=dr1_full, single 24 h CPU job)</td></tr>
<tr><td class="job"><code>350804</code></td><td class="state" data-label="State"><span class="pill y">running</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-25</td><td class="what"><details class="full"><summary><span class="clip">DR1 dr1_sep1_rest priority-250 vis_lp array (euclid_dr1_vis_lp_prio250), 0-249, manifest hpc/run_manifests/positions_priority_250.txt, positions finder 2.1 pos…</span><span class="less">show less</span></summary><p>DR1 dr1_sep1_rest priority-250 vis_lp array (euclid_dr1_vis_lp_prio250), 0-249, manifest hpc/run_manifests/positions_priority_250.txt, positions finder 2.1 positions</p></details></td></tr>
<tr><td class="job"><code>351085</code></td><td class="state" data-label="State"><span class="pill y">running</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-25</td><td class="what">DR1 dr1_sep1_rest next-5000 vis_lp batch 1/5 (euclid_dr1_vis_lp_n5k_p01), 1000 lenses, manifest hpc/run_manifests/vis_lp_next5000_20260925_part01.txt</td></tr>
<tr><td class="job"><code>351086</code></td><td class="state" data-label="State"><span class="pill y">running</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-25</td><td class="what">DR1 dr1_sep1_rest next-5000 vis_lp batch 2/5 (euclid_dr1_vis_lp_n5k_p02), 1000 lenses, manifest hpc/run_manifests/vis_lp_next5000_20260925_part02.txt</td></tr>
<tr><td class="job"><code>351087</code></td><td class="state" data-label="State"><span class="pill y">running</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-25</td><td class="what">DR1 dr1_sep1_rest next-5000 vis_lp batch 3/5 (euclid_dr1_vis_lp_n5k_p03), 1000 lenses, manifest hpc/run_manifests/vis_lp_next5000_20260925_part03.txt</td></tr>
<tr><td class="job"><code>351088</code></td><td class="state" data-label="State"><span class="pill y">running</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-25</td><td class="what">DR1 dr1_sep1_rest next-5000 vis_lp batch 4/5 (euclid_dr1_vis_lp_n5k_p04), 1000 lenses, manifest hpc/run_manifests/vis_lp_next5000_20260925_part04.txt</td></tr>
<tr><td class="job"><code>351089</code></td><td class="state" data-label="State"><span class="pill y">running</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-25</td><td class="what">DR1 dr1_sep1_rest next-5000 vis_lp batch 5/5 (euclid_dr1_vis_lp_n5k_p05), 1000 lenses, manifest hpc/run_manifests/vis_lp_next5000_20260925_part05.txt</td></tr>
<tr><td class="job"><code>351090</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-25</td><td class="what">DR1 priority-250 vis_pix array (euclid_dr1_vis_pix_prio250), 0-249, dependency afterany:350804</td></tr>
<tr><td class="job"><code>351091</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-25</td><td class="what">DR1 priority-250 SED array (euclid_dr1_sed_prio250), 0-249 max 60 concurrent, output_sed, dependency afterany:351090</td></tr>
<tr><td class="job"><code>356227</code></td><td class="state" data-label="State"><span class="pill y">running</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-26</td><td class="what"><details class="full"><summary><span class="clip">DR1 priority-250 vis_pix by-eye test: tasks 0-9 of submit_initial_lens_model_vis_pix_priority250 (euclid_dr1_vis_pix_prio250_test10), no dependency;<br> full array…</span><span class="less">show less</span></summary><p>DR1 priority-250 vis_pix by-eye test: tasks 0-9 of submit_initial_lens_model_vis_pix_priority250 (euclid_dr1_vis_pix_prio250_test10), no dependency;<br> full array 351090 put on scontrol hold until the human has looked</p></details></td></tr>
<tr><td class="job"><code>356319</code></td><td class="state" data-label="State"><span class="pill y">running</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-26</td><td class="what"><details class="full"><summary><span class="clip">DR1 priority-250 SED rerun, tasks 0-9: the ten tiles with no EXT/DECam imaging, VIS + NIR Y/J/H only (euclid_dr1_sed_prio250_nironly);<br> SED scripts no longer re…</span><span class="less">show less</span></summary><p>DR1 priority-250 SED rerun, tasks 0-9: the ten tiles with no EXT/DECam imaging, VIS + NIR Y/J/H only (euclid_dr1_sed_prio250_nironly);<br> SED scripts no longer refuse no-EXT tiles</p></details></td></tr>
<tr><td class="job"><code>356390</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-26</td><td class="what"><details class="full"><summary><span class="clip">DR1 next-5000 vis_pix part 01/05 (euclid_dr1_vis_pix_n5k, PART=01): 992 lenses whose 351085 vis_lp log ended Finished vis_lp, manifest hpc/run_manifests/vis_pi…</span><span class="less">show less</span></summary><p>DR1 next-5000 vis_pix part 01/05 (euclid_dr1_vis_pix_n5k, PART=01): 992 lenses whose 351085 vis_lp log ended Finished vis_lp, manifest hpc/run_manifests/vis_pix_sed_next5000_20260926_part01.txt, array 0-991%100, 8 CPU/64 GB/18 h, no dependency</p></details></td></tr>
<tr><td class="job"><code>356447</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-26</td><td class="what"><details class="full"><summary><span class="clip">DR1 next-5000 vis_pix part 02/05 (euclid_dr1_vis_pix_n5k, PART=02): 996 lenses whose 351086 vis_lp log ended Finished vis_lp, manifest hpc/run_manifests/vis_pi…</span><span class="less">show less</span></summary><p>DR1 next-5000 vis_pix part 02/05 (euclid_dr1_vis_pix_n5k, PART=02): 996 lenses whose 351086 vis_lp log ended Finished vis_lp, manifest hpc/run_manifests/vis_pix_sed_next5000_20260926_part02.txt, array 0-995%100, 8 CPU/64 GB/18 h, no dependency</p></details></td></tr>
<tr><td class="job"><code>356448</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-26</td><td class="what"><details class="full"><summary><span class="clip">DR1 next-5000 vis_pix part 03/05 (euclid_dr1_vis_pix_n5k, PART=03): 997 lenses whose 351087 vis_lp log ended Finished vis_lp, manifest hpc/run_manifests/vis_pi…</span><span class="less">show less</span></summary><p>DR1 next-5000 vis_pix part 03/05 (euclid_dr1_vis_pix_n5k, PART=03): 997 lenses whose 351087 vis_lp log ended Finished vis_lp, manifest hpc/run_manifests/vis_pix_sed_next5000_20260926_part03.txt, array 0-996%100, 8 CPU/64 GB/18 h, no dependency</p></details></td></tr>
<tr><td class="job"><code>356449</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-26</td><td class="what"><details class="full"><summary><span class="clip">DR1 next-5000 vis_pix part 04/05 (euclid_dr1_vis_pix_n5k, PART=04): 996 lenses whose 351088 vis_lp log ended Finished vis_lp, manifest hpc/run_manifests/vis_pi…</span><span class="less">show less</span></summary><p>DR1 next-5000 vis_pix part 04/05 (euclid_dr1_vis_pix_n5k, PART=04): 996 lenses whose 351088 vis_lp log ended Finished vis_lp, manifest hpc/run_manifests/vis_pix_sed_next5000_20260926_part04.txt, array 0-995%100, 8 CPU/64 GB/18 h, no dependency</p></details></td></tr>
<tr><td class="job"><code>356450</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-26</td><td class="what"><details class="full"><summary><span class="clip">DR1 next-5000 vis_pix part 05/05 (euclid_dr1_vis_pix_n5k, PART=05): 994 lenses whose 351089 vis_lp log ended Finished vis_lp, manifest hpc/run_manifests/vis_pi…</span><span class="less">show less</span></summary><p>DR1 next-5000 vis_pix part 05/05 (euclid_dr1_vis_pix_n5k, PART=05): 994 lenses whose 351089 vis_lp log ended Finished vis_lp, manifest hpc/run_manifests/vis_pix_sed_next5000_20260926_part05.txt, array 0-993%100, 8 CPU/64 GB/18 h, no dependency</p></details></td></tr>
<tr><td class="job"><code>356451</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-26</td><td class="what"><details class="full"><summary><span class="clip">DR1 next-5000 SED part 01/05 (euclid_dr1_sed_n5k, PART=01): same 992-lens manifest vis_pix_sed_next5000_20260926_part01.txt, vis_lp seed from output/, output_s…</span><span class="less">show less</span></summary><p>DR1 next-5000 SED part 01/05 (euclid_dr1_sed_n5k, PART=01): same 992-lens manifest vis_pix_sed_next5000_20260926_part01.txt, vis_lp seed from output/, output_sed, array 0-991%60, 6 h, independent of vis_pix;<br> no-EXT tiles fit VIS + NIR only</p></details></td></tr>
<tr><td class="job"><code>356452</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-26</td><td class="what"><details class="full"><summary><span class="clip">DR1 next-5000 SED part 02/05 (euclid_dr1_sed_n5k, PART=02): same 996-lens manifest vis_pix_sed_next5000_20260926_part02.txt, vis_lp seed from output/, output_s…</span><span class="less">show less</span></summary><p>DR1 next-5000 SED part 02/05 (euclid_dr1_sed_n5k, PART=02): same 996-lens manifest vis_pix_sed_next5000_20260926_part02.txt, vis_lp seed from output/, output_sed, array 0-995%60, 6 h, independent of vis_pix;<br> no-EXT tiles fit VIS + NIR only</p></details></td></tr>
<tr><td class="job"><code>356453</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-26</td><td class="what"><details class="full"><summary><span class="clip">DR1 next-5000 SED part 03/05 (euclid_dr1_sed_n5k, PART=03): same 997-lens manifest vis_pix_sed_next5000_20260926_part03.txt, vis_lp seed from output/, output_s…</span><span class="less">show less</span></summary><p>DR1 next-5000 SED part 03/05 (euclid_dr1_sed_n5k, PART=03): same 997-lens manifest vis_pix_sed_next5000_20260926_part03.txt, vis_lp seed from output/, output_sed, array 0-996%60, 6 h, independent of vis_pix;<br> no-EXT tiles fit VIS + NIR only</p></details></td></tr>
<tr><td class="job"><code>356555</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-26</td><td class="what"><details class="full"><summary><span class="clip">DR1 next-5000 SED part 04/05 (euclid_dr1_sed_n5k, PART=04): same 996-lens manifest vis_pix_sed_next5000_20260926_part04.txt, vis_lp seed from output/, output_s…</span><span class="less">show less</span></summary><p>DR1 next-5000 SED part 04/05 (euclid_dr1_sed_n5k, PART=04): same 996-lens manifest vis_pix_sed_next5000_20260926_part04.txt, vis_lp seed from output/, output_sed, array 0-995%60, 6 h, independent of vis_pix;<br> no-EXT tiles fit VIS + NIR only</p></details></td></tr>
<tr><td class="job"><code>356556</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-26</td><td class="what"><details class="full"><summary><span class="clip">DR1 next-5000 SED part 05/05 (euclid_dr1_sed_n5k, PART=05): same 994-lens manifest vis_pix_sed_next5000_20260926_part05.txt, vis_lp seed from output/, output_s…</span><span class="less">show less</span></summary><p>DR1 next-5000 SED part 05/05 (euclid_dr1_sed_n5k, PART=05): same 994-lens manifest vis_pix_sed_next5000_20260926_part05.txt, vis_lp seed from output/, output_sed, array 0-993%60, 6 h, independent of vis_pix;<br> no-EXT tiles fit VIS + NIR only</p></details></td></tr>
<tr><td class="job"><code>374848</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-30</td><td class="what"><details class="full"><summary><span class="clip">DR1 dr1_sep1_rest v2-grade SED chain batch 01/5 (euclid_dr1_sed_v2g), 998 tiles whose vis_lp 366938 completed, manifest hpc/run_manifests/sed_v2grade_20260930_…</span><span class="less">show less</span></summary><p>DR1 dr1_sep1_rest v2-grade SED chain batch 01/5 (euclid_dr1_sed_v2g), 998 tiles whose vis_lp 366938 completed, manifest hpc/run_manifests/sed_v2grade_20260930_part01.txt, 8 CPU/16 GB/3 h, %40, partitions ral+gpu;<br> ~18% TIMEOUT expected (Nautilus band hang)</p></details></td></tr>
<tr><td class="job"><code>374849</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-30</td><td class="what"><details class="full"><summary><span class="clip">DR1 dr1_sep1_rest v2-grade SED chain batch 02/5 (euclid_dr1_sed_v2g), 998 tiles whose vis_lp 367039 completed, manifest hpc/run_manifests/sed_v2grade_20260930_…</span><span class="less">show less</span></summary><p>DR1 dr1_sep1_rest v2-grade SED chain batch 02/5 (euclid_dr1_sed_v2g), 998 tiles whose vis_lp 367039 completed, manifest hpc/run_manifests/sed_v2grade_20260930_part02.txt, 8 CPU/16 GB/3 h, %40, partitions ral+gpu;<br> ~18% TIMEOUT expected (Nautilus band hang)</p></details></td></tr>
<tr><td class="job"><code>374850</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-30</td><td class="what"><details class="full"><summary><span class="clip">DR1 dr1_sep1_rest v2-grade SED chain batch 03/5 (euclid_dr1_sed_v2g), 995 tiles whose vis_lp 367141 completed, manifest hpc/run_manifests/sed_v2grade_20260930_…</span><span class="less">show less</span></summary><p>DR1 dr1_sep1_rest v2-grade SED chain batch 03/5 (euclid_dr1_sed_v2g), 995 tiles whose vis_lp 367141 completed, manifest hpc/run_manifests/sed_v2grade_20260930_part03.txt, 8 CPU/16 GB/3 h, %40, partitions ral+gpu;<br> ~18% TIMEOUT expected (Nautilus band hang)</p></details></td></tr>
<tr><td class="job"><code>374851</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-30</td><td class="what"><details class="full"><summary><span class="clip">DR1 dr1_sep1_rest v2-grade SED chain batch 04/5 (euclid_dr1_sed_v2g), 995 tiles whose vis_lp 367243 completed, manifest hpc/run_manifests/sed_v2grade_20260930_…</span><span class="less">show less</span></summary><p>DR1 dr1_sep1_rest v2-grade SED chain batch 04/5 (euclid_dr1_sed_v2g), 995 tiles whose vis_lp 367243 completed, manifest hpc/run_manifests/sed_v2grade_20260930_part04.txt, 8 CPU/16 GB/3 h, %40, partitions ral+gpu;<br> ~18% TIMEOUT expected (Nautilus band hang)</p></details></td></tr>
<tr><td class="job"><code>374852</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-30</td><td class="what"><details class="full"><summary><span class="clip">DR1 dr1_sep1_rest v2-grade SED chain batch 05/5 (euclid_dr1_sed_v2g), 996 tiles whose vis_lp 367244 completed, manifest hpc/run_manifests/sed_v2grade_20260930_…</span><span class="less">show less</span></summary><p>DR1 dr1_sep1_rest v2-grade SED chain batch 05/5 (euclid_dr1_sed_v2g), 996 tiles whose vis_lp 367244 completed, manifest hpc/run_manifests/sed_v2grade_20260930_part05.txt, 8 CPU/16 GB/3 h, %40, partitions ral+gpu;<br> ~18% TIMEOUT expected (Nautilus band hang)</p></details></td></tr>
<tr><td class="job"><code>377038</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-30</td><td class="what"><details class="full"><summary><span class="clip">DR1 rest-batch vis_pix part 02/4 dependent singles (euclid_dr1_vis_pix_rest_p02): 945 single-task jobs ids 377038-377987, afterok:375701_N each (indices 0-944)…</span><span class="less">show less</span></summary><p>DR1 rest-batch vis_pix part 02/4 dependent singles (euclid_dr1_vis_pix_rest_p02): 945 single-task jobs ids 377038-377987, afterok:375701_N each (indices 0-944);<br> 8 CPU/16 GB/24 h, partitions ral+gpu;<br> driver submit_vis_pix_rest_chain.sh</p></details></td></tr>
<tr><td class="job"><code>377988</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-30</td><td class="what"><details class="full"><summary><span class="clip">DR1 rest-batch vis_pix part 03/4 dependent singles (euclid_dr1_vis_pix_rest_p03): 945 single-task jobs ids 377988-378936, afterok:375702_N each (indices 0-944)…</span><span class="less">show less</span></summary><p>DR1 rest-batch vis_pix part 03/4 dependent singles (euclid_dr1_vis_pix_rest_p03): 945 single-task jobs ids 377988-378936, afterok:375702_N each (indices 0-944);<br> 8 CPU/16 GB/24 h, partitions ral+gpu;<br> driver submit_vis_pix_rest_chain.sh</p></details></td></tr>
<tr><td class="job"><code>378940</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-09-30</td><td class="what"><details class="full"><summary><span class="clip">DR1 rest-batch vis_pix part 04/4 dependent singles (euclid_dr1_vis_pix_rest_p04): 944 single-task jobs ids 378940-379889, afterok:375703_N each (indices 0-943)…</span><span class="less">show less</span></summary><p>DR1 rest-batch vis_pix part 04/4 dependent singles (euclid_dr1_vis_pix_rest_p04): 944 single-task jobs ids 378940-379889, afterok:375703_N each (indices 0-943);<br> 8 CPU/16 GB/24 h, partitions ral+gpu;<br> driver submit_vis_pix_rest_chain.sh</p></details></td></tr>
<tr><td class="job"><code>384040</code></td><td class="state" data-label="State"><span class="pill y">running</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-01</td><td class="what"><details class="full"><summary><span class="clip">DR1 dr1_v2_new sep28 eclipse new_ab vis_lp (euclid_dr1_vis_lp_sep28_p01), 987 tiles (942 dr1_v2_new_cutouts_needed + 45 re-centred cut-outs;<br> 48+21 dr1_sep1 dup…</span><span class="less">show less</span></summary><p>DR1 dr1_v2_new sep28 eclipse new_ab vis_lp (euclid_dr1_vis_lp_sep28_p01), 987 tiles (942 dr1_v2_new_cutouts_needed + 45 re-centred cut-outs;<br> 48+21 dr1_sep1 duplicates excluded), v2 A 114 / B 873, v2_score 3.000->1.500, manifest hpc/run_manifests/vis_lp_sep28_20261001.txt, 4 CPU/12 GB/18 h, finder-2.1 positions (n_lt_2 279), --array=0-986%100, partition ral only;<br> output/dr1_v2_new</p></details></td></tr>
<tr><td class="job"><code>384046</code></td><td class="state" data-label="State"><span class="pill y">running</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-01</td><td class="what"><details class="full"><summary><span class="clip">DR1 dr1_v2_new sep28 vis_pix dependent singles (euclid_dr1_vis_pix_sep28_p01): 987 single-task jobs ids 384046-385042, each --array=N --dependency=afterok:3840…</span><span class="less">show less</span></summary><p>DR1 dr1_v2_new sep28 vis_pix dependent singles (euclid_dr1_vis_pix_sep28_p01): 987 single-task jobs ids 384046-385042, each --array=N --dependency=afterok:384040_N --kill-on-invalid-dep=yes (indices 0-986);<br> Numba sparse CPU, 8 CPU/16 GB/24 h, partition ral only;<br> driver hpc/batch_cpu/submit_vis_pix_rest_chain.sh --batch=sep28 (idempotent, re-run to catch stragglers)</p></details></td></tr>
<tr><td class="job"><code>388367</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-03</td><td class="what"><details class="full"><summary><span class="clip">DR1 missing-SED sweep rest part 01/4 (euclid_dr1_sed_miss_r01): 944 dr1_sep1_rest tiles, vis_lp 375700-375703 done, no SED yet, manifest hpc/run_manifests/sed_…</span><span class="less">show less</span></summary><p>DR1 missing-SED sweep rest part 01/4 (euclid_dr1_sed_miss_r01): 944 dr1_sep1_rest tiles, vis_lp 375700-375703 done, no SED yet, manifest hpc/run_manifests/sed_missing_20261003_rest_part01.txt, %40, 8 CPU/16 GB/3 h, partition ral only, script hpc/batch_cpu/submit_sersic_waveband_missing (skips complete tiles)</p></details></td></tr>
<tr><td class="job"><code>388368</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-03</td><td class="what"><details class="full"><summary><span class="clip">DR1 missing-SED sweep rest part 02/4 (euclid_dr1_sed_miss_r02): 938 dr1_sep1_rest tiles, vis_lp 375700-375703 done, no SED yet, manifest hpc/run_manifests/sed_…</span><span class="less">show less</span></summary><p>DR1 missing-SED sweep rest part 02/4 (euclid_dr1_sed_miss_r02): 938 dr1_sep1_rest tiles, vis_lp 375700-375703 done, no SED yet, manifest hpc/run_manifests/sed_missing_20261003_rest_part02.txt, %40, 8 CPU/16 GB/3 h, partition ral only, script hpc/batch_cpu/submit_sersic_waveband_missing (skips complete tiles)</p></details></td></tr>
<tr><td class="job"><code>388369</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-03</td><td class="what"><details class="full"><summary><span class="clip">DR1 missing-SED sweep rest part 03/4 (euclid_dr1_sed_miss_r03): 943 dr1_sep1_rest tiles, vis_lp 375700-375703 done, no SED yet, manifest hpc/run_manifests/sed_…</span><span class="less">show less</span></summary><p>DR1 missing-SED sweep rest part 03/4 (euclid_dr1_sed_miss_r03): 943 dr1_sep1_rest tiles, vis_lp 375700-375703 done, no SED yet, manifest hpc/run_manifests/sed_missing_20261003_rest_part03.txt, %40, 8 CPU/16 GB/3 h, partition ral only, script hpc/batch_cpu/submit_sersic_waveband_missing (skips complete tiles)</p></details></td></tr>
<tr><td class="job"><code>388370</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-03</td><td class="what"><details class="full"><summary><span class="clip">DR1 missing-SED sweep rest part 04/4 (euclid_dr1_sed_miss_r04): 939 dr1_sep1_rest tiles, vis_lp 375700-375703 done, no SED yet, manifest hpc/run_manifests/sed_…</span><span class="less">show less</span></summary><p>DR1 missing-SED sweep rest part 04/4 (euclid_dr1_sed_miss_r04): 939 dr1_sep1_rest tiles, vis_lp 375700-375703 done, no SED yet, manifest hpc/run_manifests/sed_missing_20261003_rest_part04.txt, %40, 8 CPU/16 GB/3 h, partition ral only, script hpc/batch_cpu/submit_sersic_waveband_missing (skips complete tiles)</p></details></td></tr>
<tr><td class="job"><code>388371</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-03</td><td class="what"><details class="full"><summary><span class="clip">DR1 missing-SED sweep dr1_v2_new (euclid_dr1_sed_miss_v2new): 303 sep28 tiles with completed vis_lp 384040 — first SED on non-DECam ground bands (HSC/MegaCam/P…</span><span class="less">show less</span></summary><p>DR1 missing-SED sweep dr1_v2_new (euclid_dr1_sed_miss_v2new): 303 sep28 tiles with completed vis_lp 384040 — first SED on non-DECam ground bands (HSC/MegaCam/PS1), manifest sed_missing_20261003_v2new.txt, %10, 8 CPU/16 GB/3 h, partition ral only, script hpc/batch_cpu/submit_sersic_waveband_missing (skips complete tiles)</p></details></td></tr>
<tr><td class="job"><code>388372</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-03</td><td class="what"><details class="full"><summary><span class="clip">DR1 missing-SED retry probe (euclid_dr1_sed_miss_retry): tasks 0-49 of 1,252 earlier SED TIMEOUT/FAILED/partial tiles, manifest sed_missing_20261003_retry.txt,…</span><span class="less">show less</span></summary><p>DR1 missing-SED retry probe (euclid_dr1_sed_miss_retry): tasks 0-49 of 1,252 earlier SED TIMEOUT/FAILED/partial tiles, manifest sed_missing_20261003_retry.txt, %10;<br> send 50-1251 only if the probe does not mostly hang, 8 CPU/16 GB/3 h, partition ral only, script hpc/batch_cpu/submit_sersic_waveband_missing (skips complete tiles)</p></details></td></tr>
<tr><td class="job"><code>398270</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-08</td><td class="what"><details class="full"><summary><span class="clip">DR1 dr1_sep1 ex-top1000 vis_pix chained on vis_lp 397467 (euclid_dr1_vis_pix_ex_top1000_p01): immediate array 398270 over 256 lenses whose vis_lp had completed…</span><span class="less">show less</span></summary><p>DR1 dr1_sep1 ex-top1000 vis_pix chained on vis_lp 397467 (euclid_dr1_vis_pix_ex_top1000_p01): immediate array 398270 over 256 lenses whose vis_lp had completed (%60) + 741 single-task jobs 398271-399020 each afterok:397467_N --kill-on-invalid-dep=yes;<br> manifest vis_lp_ex_top1000_tonight_20261007.txt, Numba sparse CPU 8 CPU/16 GB/24 h, partition ral only, --exclude=euclid-ral-compute-[1-4] (left for another user's 252-CPU whole-node jobs) and --nice=500 so it never outranks pending work;<br> driver submit_vis_pix_rest_chain.sh --batch=ex_top1000 (idempotent, re-run to catch stragglers)</p></details></td></tr>
<tr><td class="job"><code>400282</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-09</td><td class="what"><details class="full"><summary><span class="clip">DR1 dr1_sep1 SED fill 3 pass 1 part 01/4 (euclid_dr1_sed_fill3_p01): submit_sersic_waveband_sed_fill_20261009 = 10-05 fill + 20-min stall watchdog (kill, move…</span><span class="less">show less</span></summary><p>DR1 dr1_sep1 SED fill 3 pass 1 part 01/4 (euclid_dr1_sed_fill3_p01): submit_sersic_waveband_sed_fill_20261009 = 10-05 fill + 20-min stall watchdog (kill, move hung band aside, restart;<br> band given up after 2 hangs via SED_SKIP_BANDS), manifest sed_fill_20261009/part01.txt (3,863 tiles over 4 parts: incomplete partial tiles fewest-missing-first, then none, then ex-top1000 with vis_lp;<br> tiles still running in 397469/70/71/74 excluded), %25, 8 CPU/16 GB/6 h, partition ral only, --nice=100</p></details></td></tr>
<tr><td class="job"><code>400308</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-09</td><td class="what"><details class="full"><summary><span class="clip">DR1 dr1_sep1 SED fill 3 pass 1 part 02/4 (euclid_dr1_sed_fill3_p02): submit_sersic_waveband_sed_fill_20261009 = 10-05 fill + 20-min stall watchdog (kill, move…</span><span class="less">show less</span></summary><p>DR1 dr1_sep1 SED fill 3 pass 1 part 02/4 (euclid_dr1_sed_fill3_p02): submit_sersic_waveband_sed_fill_20261009 = 10-05 fill + 20-min stall watchdog (kill, move hung band aside, restart;<br> band given up after 2 hangs via SED_SKIP_BANDS), manifest sed_fill_20261009/part02.txt (3,863 tiles over 4 parts: incomplete partial tiles fewest-missing-first, then none, then ex-top1000 with vis_lp;<br> tiles still running in 397469/70/71/74 excluded), %25, 8 CPU/16 GB/6 h, partition ral only, --nice=100</p></details></td></tr>
<tr><td class="job"><code>400309</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-09</td><td class="what"><details class="full"><summary><span class="clip">DR1 dr1_sep1 SED fill 3 pass 1 part 03/4 (euclid_dr1_sed_fill3_p03): submit_sersic_waveband_sed_fill_20261009 = 10-05 fill + 20-min stall watchdog (kill, move…</span><span class="less">show less</span></summary><p>DR1 dr1_sep1 SED fill 3 pass 1 part 03/4 (euclid_dr1_sed_fill3_p03): submit_sersic_waveband_sed_fill_20261009 = 10-05 fill + 20-min stall watchdog (kill, move hung band aside, restart;<br> band given up after 2 hangs via SED_SKIP_BANDS), manifest sed_fill_20261009/part03.txt (3,863 tiles over 4 parts: incomplete partial tiles fewest-missing-first, then none, then ex-top1000 with vis_lp;<br> tiles still running in 397469/70/71/74 excluded), %25, 8 CPU/16 GB/6 h, partition ral only, --nice=100</p></details></td></tr>
<tr><td class="job"><code>400310</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-09</td><td class="what"><details class="full"><summary><span class="clip">DR1 dr1_sep1 SED fill 3 pass 1 part 04/4 (euclid_dr1_sed_fill3_p04): submit_sersic_waveband_sed_fill_20261009 = 10-05 fill + 20-min stall watchdog (kill, move…</span><span class="less">show less</span></summary><p>DR1 dr1_sep1 SED fill 3 pass 1 part 04/4 (euclid_dr1_sed_fill3_p04): submit_sersic_waveband_sed_fill_20261009 = 10-05 fill + 20-min stall watchdog (kill, move hung band aside, restart;<br> band given up after 2 hangs via SED_SKIP_BANDS), manifest sed_fill_20261009/part04.txt (3,863 tiles over 4 parts: incomplete partial tiles fewest-missing-first, then none, then ex-top1000 with vis_lp;<br> tiles still running in 397469/70/71/74 excluded), %25, 8 CPU/16 GB/6 h, partition ral only, --nice=100</p></details></td></tr>
<tr><td class="job"><code>402719</code></td><td class="state" data-label="State"><span class="pill y">running</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-10</td><td class="what"><details class="full"><summary><span class="clip">DR1 dr1_sep1 SED fill 4 pass 1 part 01/4 (euclid_dr1_sed_fill4_p01): indices 697-999 of sed_fill_20261009/part01.txt, replacing 400282's cancelled pending task…</span><span class="less">show less</span></summary><p>DR1 dr1_sep1 SED fill 4 pass 1 part 01/4 (euclid_dr1_sed_fill4_p01): indices 697-999 of sed_fill_20261009/part01.txt, replacing 400282's cancelled pending tasks;<br> submit_sersic_waveband_sed_fill_20261010 = 10-09 fill + VIS given up after two hangs (exit 3, logged to sed_fill_20261009/given_up_bands.txt) and tiles already given up for vis skipped;<br> %25, 8 CPU/16 GB/6 h, partition ral only, --nice=100</p></details></td></tr>
<tr><td class="job"><code>402720</code></td><td class="state" data-label="State"><span class="pill y">running</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-10</td><td class="what"><details class="full"><summary><span class="clip">DR1 dr1_sep1 SED fill 4 pass 1 part 02/4 (euclid_dr1_sed_fill4_p02): indices 527-999 of sed_fill_20261009/part02.txt, replacing 400308's cancelled pending task…</span><span class="less">show less</span></summary><p>DR1 dr1_sep1 SED fill 4 pass 1 part 02/4 (euclid_dr1_sed_fill4_p02): indices 527-999 of sed_fill_20261009/part02.txt, replacing 400308's cancelled pending tasks;<br> submit_sersic_waveband_sed_fill_20261010 = 10-09 fill + VIS given up after two hangs (exit 3, logged to sed_fill_20261009/given_up_bands.txt) and tiles already given up for vis skipped;<br> %25, 8 CPU/16 GB/6 h, partition ral only, --nice=100</p></details></td></tr>
<tr><td class="job"><code>402721</code></td><td class="state" data-label="State"><span class="pill y">running</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-10</td><td class="what"><details class="full"><summary><span class="clip">DR1 dr1_sep1 SED fill 4 pass 1 part 03/4 (euclid_dr1_sed_fill4_p03): indices 363-999 of sed_fill_20261009/part03.txt, replacing 400309's cancelled pending task…</span><span class="less">show less</span></summary><p>DR1 dr1_sep1 SED fill 4 pass 1 part 03/4 (euclid_dr1_sed_fill4_p03): indices 363-999 of sed_fill_20261009/part03.txt, replacing 400309's cancelled pending tasks;<br> submit_sersic_waveband_sed_fill_20261010 = 10-09 fill + VIS given up after two hangs (exit 3, logged to sed_fill_20261009/given_up_bands.txt) and tiles already given up for vis skipped;<br> %25, 8 CPU/16 GB/6 h, partition ral only, --nice=100</p></details></td></tr>
<tr><td class="job"><code>402722</code></td><td class="state" data-label="State"><span class="pill y">running</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-10</td><td class="what"><details class="full"><summary><span class="clip">DR1 dr1_sep1 SED fill 4 pass 1 part 04/4 (euclid_dr1_sed_fill4_p04): indices 803-862 of sed_fill_20261009/part04.txt, replacing 400310's cancelled pending task…</span><span class="less">show less</span></summary><p>DR1 dr1_sep1 SED fill 4 pass 1 part 04/4 (euclid_dr1_sed_fill4_p04): indices 803-862 of sed_fill_20261009/part04.txt, replacing 400310's cancelled pending tasks;<br> submit_sersic_waveband_sed_fill_20261010 = 10-09 fill + VIS given up after two hangs (exit 3, logged to sed_fill_20261009/given_up_bands.txt) and tiles already given up for vis skipped;<br> %25, 8 CPU/16 GB/6 h, partition ral only, --nice=100</p></details></td></tr>
<tr><td class="job"><code>402909</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-10</td><td class="what"><details class="full"><summary><span class="clip">DR1 SED fill 4 pass 2 (retry) part 01/4 (euclid_dr1_sed_fill4_retry_p01): indices 0-999 of sed_fill_20261009/part01.txt;<br> same script submit_sersic_waveband_sed…</span><span class="less">show less</span></summary><p>DR1 SED fill 4 pass 2 (retry) part 01/4 (euclid_dr1_sed_fill4_retry_p01): indices 0-999 of sed_fill_20261009/part01.txt;<br> same script submit_sersic_waveband_sed_fill_20261010 and manifest;<br> afterany on pass 1 400282/400308/400309/400310 (old, running tasks) and 402719-402722;<br> complete tiles exit at once and tiles with vis given up are skipped, so it reruns only what is still incomplete;<br> %25, 6 h, partition ral only, --nice=100</p></details></td></tr>
<tr><td class="job"><code>402910</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-10</td><td class="what"><details class="full"><summary><span class="clip">DR1 SED fill 4 pass 2 (retry) part 02/4 (euclid_dr1_sed_fill4_retry_p02): indices 0-999 of sed_fill_20261009/part02.txt;<br> same script submit_sersic_waveband_sed…</span><span class="less">show less</span></summary><p>DR1 SED fill 4 pass 2 (retry) part 02/4 (euclid_dr1_sed_fill4_retry_p02): indices 0-999 of sed_fill_20261009/part02.txt;<br> same script submit_sersic_waveband_sed_fill_20261010 and manifest;<br> afterany on pass 1 400282/400308/400309/400310 (old, running tasks) and 402719-402722;<br> complete tiles exit at once and tiles with vis given up are skipped, so it reruns only what is still incomplete;<br> %25, 6 h, partition ral only, --nice=100</p></details></td></tr>
<tr><td class="job"><code>402911</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-10</td><td class="what"><details class="full"><summary><span class="clip">DR1 SED fill 4 pass 2 (retry) part 03/4 (euclid_dr1_sed_fill4_retry_p03): indices 0-999 of sed_fill_20261009/part03.txt;<br> same script submit_sersic_waveband_sed…</span><span class="less">show less</span></summary><p>DR1 SED fill 4 pass 2 (retry) part 03/4 (euclid_dr1_sed_fill4_retry_p03): indices 0-999 of sed_fill_20261009/part03.txt;<br> same script submit_sersic_waveband_sed_fill_20261010 and manifest;<br> afterany on pass 1 400282/400308/400309/400310 (old, running tasks) and 402719-402722;<br> complete tiles exit at once and tiles with vis given up are skipped, so it reruns only what is still incomplete;<br> %25, 6 h, partition ral only, --nice=100</p></details></td></tr>
<tr><td class="job"><code>402912</code></td><td class="state" data-label="State"><span class="pill n">open</span></td><td class="part" data-label="Partition">ral</td><td class="date">2026-10-10</td><td class="what"><details class="full"><summary><span class="clip">DR1 SED fill 4 pass 2 (retry) part 04/4 (euclid_dr1_sed_fill4_retry_p04): indices 0-862 of sed_fill_20261009/part04.txt;<br> same script submit_sersic_waveband_sed…</span><span class="less">show less</span></summary><p>DR1 SED fill 4 pass 2 (retry) part 04/4 (euclid_dr1_sed_fill4_retry_p04): indices 0-862 of sed_fill_20261009/part04.txt;<br> same script submit_sersic_waveband_sed_fill_20261010 and manifest;<br> afterany on pass 1 400282/400308/400309/400310 (old, running tasks) and 402719-402722;<br> complete tiles exit at once and tiles with vis given up are skipped, so it reruns only what is still incomplete;<br> %25, 6 h, partition ral only, --nice=100</p></details></td></tr>
</tbody>
</table>
<details class="sub"><summary>Recent log — 5 of 136 entries</summary>
<ul class="log">
<li>2026-10-10 — <i>run</i> — <details class="full"><summary><span class="clip">402912 submitted: DR1 SED fill 4 pass 2 (retry) part 04/4 (euclid_dr1_sed_fill4_retry_p04): indices 0-862 of sed_fill_20261009/part04.txt; same script submit_sersic_waveband_sed_fill_20261010 and manifest; afterany on pass 1 400282/400308/…</span><span class="less">show less</span></summary><p>402912 submitted: DR1 SED fill 4 pass 2 (retry) part 04/4 (euclid_dr1_sed_fill4_retry_p04): indices 0-862 of sed_fill_20261009/part04.txt; same script submit_sersic_waveband_sed_fill_20261010 and manifest; afterany on pass 1 400282/400308/400309/400310 (old, running tasks) and 402719-402722; complete tiles exit at once and tiles with vis given up are skipped, so it reruns only what is still incomplete; %25, 6 h, partition ral only, --nice=100</p></details></li>
<li>2026-10-10 — <i>run</i> — <details class="full"><summary><span class="clip">402911 submitted: DR1 SED fill 4 pass 2 (retry) part 03/4 (euclid_dr1_sed_fill4_retry_p03): indices 0-999 of sed_fill_20261009/part03.txt; same script submit_sersic_waveband_sed_fill_20261010 and manifest; afterany on pass 1 400282/400308/…</span><span class="less">show less</span></summary><p>402911 submitted: DR1 SED fill 4 pass 2 (retry) part 03/4 (euclid_dr1_sed_fill4_retry_p03): indices 0-999 of sed_fill_20261009/part03.txt; same script submit_sersic_waveband_sed_fill_20261010 and manifest; afterany on pass 1 400282/400308/400309/400310 (old, running tasks) and 402719-402722; complete tiles exit at once and tiles with vis given up are skipped, so it reruns only what is still incomplete; %25, 6 h, partition ral only, --nice=100</p></details></li>
<li>2026-10-10 — <i>run</i> — <details class="full"><summary><span class="clip">402910 submitted: DR1 SED fill 4 pass 2 (retry) part 02/4 (euclid_dr1_sed_fill4_retry_p02): indices 0-999 of sed_fill_20261009/part02.txt; same script submit_sersic_waveband_sed_fill_20261010 and manifest; afterany on pass 1 400282/400308/…</span><span class="less">show less</span></summary><p>402910 submitted: DR1 SED fill 4 pass 2 (retry) part 02/4 (euclid_dr1_sed_fill4_retry_p02): indices 0-999 of sed_fill_20261009/part02.txt; same script submit_sersic_waveband_sed_fill_20261010 and manifest; afterany on pass 1 400282/400308/400309/400310 (old, running tasks) and 402719-402722; complete tiles exit at once and tiles with vis given up are skipped, so it reruns only what is still incomplete; %25, 6 h, partition ral only, --nice=100</p></details></li>
<li>2026-10-10 — <i>run</i> — <details class="full"><summary><span class="clip">402909 submitted: DR1 SED fill 4 pass 2 (retry) part 01/4 (euclid_dr1_sed_fill4_retry_p01): indices 0-999 of sed_fill_20261009/part01.txt; same script submit_sersic_waveband_sed_fill_20261010 and manifest; afterany on pass 1 400282/400308/…</span><span class="less">show less</span></summary><p>402909 submitted: DR1 SED fill 4 pass 2 (retry) part 01/4 (euclid_dr1_sed_fill4_retry_p01): indices 0-999 of sed_fill_20261009/part01.txt; same script submit_sersic_waveband_sed_fill_20261010 and manifest; afterany on pass 1 400282/400308/400309/400310 (old, running tasks) and 402719-402722; complete tiles exit at once and tiles with vis given up are skipped, so it reruns only what is still incomplete; %25, 6 h, partition ral only, --nice=100</p></details></li>
<li>2026-10-10 — <i>run</i> — <details class="full"><summary><span class="clip">400314 failed: DR1 SED fill 3 pass 2 (retry) part 04/4 (euclid_dr1_sed_fill3_retry_p04): same script and manifest part04.txt, afterany on pass 1 400282/400308/400309/400310 and the old fill 397469/70/71/74; complete tiles exit at once, so…</span><span class="less">show less</span></summary><p>400314 failed: DR1 SED fill 3 pass 2 (retry) part 04/4 (euclid_dr1_sed_fill3_retry_p04): same script and manifest part04.txt, afterany on pass 1 400282/400308/400309/400310 and the old fill 397469/70/71/74; complete tiles exit at once, so it reruns only what is still incomplete; %25, 6 h, partition ral only</p></details></li>
</ul>
<p class="muted"><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/euclid_dr1.md">full log</a></p>
<p class="muted">active · ral · no issue yet</p>
</details>
</div>
</details>
<details class="project" id="project-analytic_gaussian">
<summary><h3>analytic_gaussian</h3><span class="purpose">Graphical and EP against a closed-form Gaussian posterior, at ensemble scale</span><span class="meta">no runs recorded · updated 2026-10-14</span></summary>
<div class="project-body">
<dl class="where">
<dt>Registered:</dt><dd>not recorded</dd>
<dt>Local:</dt><dd>/mnt/c/Users/Jammy/Science/active/analytic_gaussian</dd>
<dt>RAL:</dt><dd>/mnt/ral/jnightin/active/analytic_gaussian</dd>
</dl><div class="position"><div class="position-text">
<h4>Current position</h4>
<p>Wave 1 (342413, 200 seeds at N=5) is accepted as the baseline: autofit EP is exact on the Gaussian leg, leg B sigma misses as pre-registered (78/200), collapse rate 0/200. On criterion 2, astra and an independent Opus review both favour an under-calibrated mu threshold (calibrated on five unrepresentative seeds) and found no defect in the minimal-EP control; both flag the per-site sigma>0 clip (analytic_ep_minimal.py:333) as the one audit target, and astra will not clear the control without an independent reconstruction of the EP fixed point. Next: run the planned diagnostic (archive/tasks/analytic_gaussian/minimal_ep_legb_mu_threshold.md) on a passing, an edge and the worst mu seed; the N=25 rung stays written but unsubmitted until it lands.</p></div>
<button class="copy resume" aria-label="Copy resume prompt for analytic_gaussian" title="Copy resume prompt for analytic_gaussian" data-cmd="Use the cortex skill. — resume analytic_gaussian: read PyAutoCortex projects/analytic_gaussian.md (Now, Runs, Log) and then /mnt/c/Users/Jammy/Science/active/analytic_gaussian/wiki/project/state.md and the assistant autofit_assistant's AGENTS.md; tell me where I left off and what I said I would do next. Submit nothing and log nothing until I say.">📋</button>
</div>
<h4>Runs (0)</h4>
<p class="muted">nothing on the cluster</p>
<details class="sub"><summary>Recent log — 5 of 7 entries</summary>
<ul class="log">
<li>2026-10-14 — <i>note</i> — <details class="full"><summary><span class="clip">PyAutoFit#1656 (merged 2026-09-30, released 2026.10.7.1) ports the minimal-EP referee's moment matching as LaplaceOptimiser(projection="moments"); on analytic_gaussian.py leg B autofit EP sigma 6.3401 ± 2.4609 vs closed form 6.5667 ± 2.883…</span><span class="less">show less</span></summary><p>PyAutoFit#1656 (merged 2026-09-30, released 2026.10.7.1) ports the minimal-EP referee's moment matching as LaplaceOptimiser(projection="moments"); on analytic_gaussian.py leg B autofit EP sigma 6.3401 ± 2.4609 vs closed form 6.5667 ± 2.8832 (mode path 9.3722, BAD_PROJECTION=19). A wave-2 ensemble on the moments path needs a private PyAutoFit checkout on RAL: the shared mirror is 404b3e5f7 and lacks it. The criterion-2 mu-threshold diagnostic is still unrun.</p></details></li>
<li>2026-10-14 — <i>note</i> — output/ vaulted to z_vault/ on laptop and RAL (mv, nothing deleted), anticipating reruns; output/ left empty, results/ untouched; z_vault/ gitignored locally</li>
<li>2026-09-30 — <i>note</i> — <details class="full"><summary><span class="clip">astra (Codex gpt-6-astra) on criterion 2, verbatim: 'Neither is established as "wrong" by this result alone. I favour inadequate calibration of the threshold, with moderate confidence, but would not yet certify the control.' Decisive diagn…</span><span class="less">show less</span></summary><p>astra (Codex gpt-6-astra) on criterion 2, verbatim: 'Neither is established as "wrong" by this result alone. I favour inadequate calibration of the threshold, with moderate confidence, but would not yet certify the control.' Decisive diagnostic: independently reconstruct the same EP factorisation at the fixed point on a passing, an edge and the worst mu seed and compare tilted vs q moments; audit the per-site sigma>0 clip (analytic_ep_minimal.py:333). Opus reviewer concurs independently (a_mu = 0.041*(E_ref[mu]-m0)/std_ref over 200 seeds, corr 0.98; calibration seeds 0-4 had |a_mu| 0.002-0.020 vs 95th pct 0.077). Full answer: PyAutoCortex#50 comment https://github.com/PyAutoLabs/PyAutoCortex/issues/50#issuecomment-5908448194</p></details></li>
<li>2026-09-10 — <i>result</i> — accepted ensemble_parity (R-20260910-04): ok accept and intake the things to address. we can do another run down the line so also achieve the results in the analytic_gaussian project for future comparison</li>
<li>2026-09-10 — <i>note</i> — question: Is criterion 2's mu threshold or the minimal-EP control wrong — planned, never run [archive/tasks/analytic_gaussian/minimal_ep_legb_mu_threshold.md]</li>
</ul>
<p class="muted"><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/analytic_gaussian.md">full log</a></p>
<p class="muted">active · ral · <a href="https://github.com/PyAutoLabs/PyAutoCortex/issues/34">PyAutoCortex#34</a></p>
</details>
</div>
</details>
<details class="project" id="project-ep_toy_gaussian">
<summary><h3>ep_toy_gaussian</h3><span class="purpose">NUTS versus three EP fits on the #1405 collapse toy at N=50</span><span class="meta">no runs recorded · updated 2026-10-14</span></summary>
<div class="project-body">
<dl class="where">
<dt>Registered:</dt><dd>not recorded</dd>
<dt>Local:</dt><dd>/mnt/c/Users/Jammy/Science/active/ep_toy_gaussian</dd>
<dt>RAL:</dt><dd>/mnt/ral/jnightin/active/ep_toy_gaussian</dd>
</dl><div class="position"><div class="position-text">
<h4>Current position</h4>
<p>Wave 1 (n50_seed42: 342639 + 342640_[0-2]) failed on infrastructure — EP x3 on EMFILE (fixed by PyAutoFit#1632/#1634, both in the RAL mirror at 404b3e5f7), NUTS on OOM at the 8 GB cap while XLA compiled the 50-factor window-adaptation scan, which grows with N (≥5.4 GB at N=20 locally). Wave 2 is prepared but not submitted: sample n50_seed42_w2 (free locally and on RAL; still needs its toy.SAMPLES entry), submit_nuts raised to 64 GB, submit_ep unchanged at 8 GB (peak ~590 MB). The collapse question at N=50 is unanswered; only n5_smoke speaks (EP RECOVER 3/3, NUTS 49.89/11.14). Next: human go, add the sample entry, push and submit NUTS then EP with SAMPLE=n50_seed42_w2 exported.</p></div>
<button class="copy resume" aria-label="Copy resume prompt for ep_toy_gaussian" title="Copy resume prompt for ep_toy_gaussian" data-cmd="Use the cortex skill. — resume ep_toy_gaussian: read PyAutoCortex projects/ep_toy_gaussian.md (Now, Runs, Log) and then /mnt/c/Users/Jammy/Science/active/ep_toy_gaussian/wiki/project/state.md and the assistant autofit_assistant's AGENTS.md; tell me where I left off and what I said I would do next. Submit nothing and log nothing until I say.">📋</button>
</div>
<h4>Runs (0)</h4>
<p class="muted">nothing on the cluster</p>
<details class="sub"><summary>Recent log — 5 of 10 entries</summary>
<ul class="log">
<li>2026-10-14 — <i>note</i> — Wave 2 still unsubmitted. RAL shared mirror 404b3e5f7 already carries the EMFILE fixes (#1632/#1634) wave 2 needs; it lacks #1655 (ProjectionException recovery), so a private PyAutoFit checkout is optional here but advisable.</li>
<li>2026-10-14 — <i>note</i> — output/ vaulted to z_vault/ on laptop and RAL (mv, nothing deleted), anticipating reruns; output/ left empty, results/ untouched; z_vault/ gitignored locally</li>
<li>2026-09-30 — <i>note</i> — <details class="full"><summary><span class="clip">RAL mirror PyAutoFit now 404b3e5f7 (2026-09-27), contains #1632 (b82fb3f69) and #1634 (fa2d540ac); 5 commits behind origin/main, none in blackjax/graphical/dynesty; deps at floor except anesthetic 2.8.14 < 2.9.0 (plots only). Sample n50_se…</span><span class="less">show less</span></summary><p>RAL mirror PyAutoFit now 404b3e5f7 (2026-09-27), contains #1632 (b82fb3f69) and #1634 (fa2d540ac); 5 commits behind origin/main, none in blackjax/graphical/dynesty; deps at floor except anesthetic 2.8.14 < 2.9.0 (plots only). Sample n50_seed42_w2 is free locally and on RAL but must be added to toy.SAMPLES (scripts/toy.py) before submission, and SAMPLE must be exported to the job (hpc/sync submit does not forward laptop env)</p></details></li>
<li>2026-09-30 — <i>note</i> — <details class="full"><summary><span class="clip">wave-2 prep: 342639 NUTS OOM was XLA compilation of the vmapped window-adaptation scan, not sampling (sacct MaxRSS 8,180,536K at ReqMem 8G; py-spy on a local N=50 run sits in backend_compile_and_load; local probes N=10 3.2 GB peak / 132 s…</span><span class="less">show less</span></summary><p>wave-2 prep: 342639 NUTS OOM was XLA compilation of the vmapped window-adaptation scan, not sampling (sacct MaxRSS 8,180,536K at ReqMem 8G; py-spy on a local N=50 run sits in backend_compile_and_load; local probes N=10 3.2 GB peak / 132 s warmup compile, N=20 >=5.4 GB / 247 s, N=50 still compiling at 5 min) — submit_nuts --mem raised 8gb -> 64gb locally, uncommitted (est. peak 15-25 GB on RAL; ral nodes ~921 GB); EP peak ~590 MB, submit_ep stays 8gb</p></details></li>
<li>2026-09-24 — <i>note</i> — <details class="full"><summary><span class="clip">per-search overhead profile on this toy (2026-09-24, laptop, N=5, max_steps=3): 2.45 s per Dynesty factor search, ~1.47 s dynesty run_nested + ~0.98 s autofit wrapper (plots, a redundant second run_nested pass, samples writes); inside run_…</span><span class="less">show less</span></summary><p>per-search overhead profile on this toy (2026-09-24, laptop, N=5, max_steps=3): 2.45 s per Dynesty factor search, ~1.47 s dynesty run_nested + ~0.98 s autofit wrapper (plots, a redundant second run_nested pass, samples writes); inside run_nested instance_from_vector is 57 % of the likelihood callback for a 1-parameter model. Speed-up prompt filed in the Mind: draft/refactor/autofit/ep_factor_search_wrapper_overhead.md</p></details></li>
</ul>
<p class="muted"><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/ep_toy_gaussian.md">full log</a></p>
<p class="muted">active · ral · <a href="https://github.com/PyAutoLabs/ep_toy_gaussian/issues/1">ep_toy_gaussian#1</a></p>
</details>
</div>
</details>
<details class="project" id="project-slope_hierarchy_scale">
<summary><h3>slope_hierarchy_scale</h3><span class="purpose">Hierarchical slope recovery with graphical and EP at N=25 to 50</span><span class="meta">no runs recorded · updated 2026-10-14</span></summary>
<div class="project-body">
<dl class="where">
<dt>Registered:</dt><dd>not recorded</dd>
<dt>Local:</dt><dd>/mnt/c/Users/Jammy/Science/active/slope_hierarchy_scale</dd>
<dt>RAL:</dt><dd>/mnt/ral/jnightin/active/slope_hierarchy_scale</dd>
</dl><div class="position"><div class="position-text">
<h4>Current position</h4>
<p>The N=25 graphical baselines are in: per-lens fits (342348) give a naive parent of 1.999 / 0.089 (deconvolved 0.085), and the joint NUTS fit (342350_0) recovers mean 1.994 [1.976, 2.014] and sigma 0.087 [0.074, 0.104] against truth 2.0 / 0.1; its summary JSON still needs writing offline from samples.csv (now under z_vault/sample_n25_seed42). The EP arm returned the prior on the Laplace projection (343299: hierarchical factor 0/50 SUCCESS). The cure has landed: PyAutoFit#1656 (merged 2026-09-30, released 2026.10.7.1) adds af.LaplaceOptimiser(projection="moments"), which takes the tight toy from 0 to 3/3 SUCCESS. The shared RAL PyAutoFit mirror is still 404b3e5f7 (2026-09-27, kept frozen for euclid_dr1) and lacks both #1655 and #1656, so any rerun needs a private PyAutoFit checkout on RAL. All earlier output is vaulted in z_vault/ on laptop and RAL, output/ is empty for the rerun. Next: rerun the N=25 EP arm with projection="moments" on a private PyAutoFit checkout and compare its scatter against the NUTS baseline.</p></div>
<button class="copy resume" aria-label="Copy resume prompt for slope_hierarchy_scale" title="Copy resume prompt for slope_hierarchy_scale" data-cmd="Use the cortex skill. — resume slope_hierarchy_scale: read PyAutoCortex projects/slope_hierarchy_scale.md (Now, Runs, Log) and then /mnt/c/Users/Jammy/Science/active/slope_hierarchy_scale/wiki/project/state.md and the assistant autolens_assistant's AGENTS.md; tell me where I left off and what I said I would do next. Submit nothing and log nothing until I say.">📋</button>
</div>
<h4>Runs (0)</h4>
<p class="muted">nothing on the cluster</p>
<details class="sub"><summary>Recent log — 5 of 14 entries</summary>
<ul class="log">
<li>2026-10-14 — <i>note</i> — output/ vaulted to z_vault/ on laptop and RAL (mv, nothing deleted), anticipating reruns; output/ left empty, results/ untouched; z_vault/ gitignored locally</li>
<li>2026-09-30 — <i>note</i> — <details class="full"><summary><span class="clip">graphical baselines recorded late at the 2026-09-30 check-in. 342348_[0-24] per-lens (one_by_one Nautilus, A100, 25/25, 6.9-8.8 min/task, 0 float32 truncations): naive parent mean 1.9992 +/- 0.0178 (SEM), std of medians 0.0889, deconvolved…</span><span class="less">show less</span></summary><p>graphical baselines recorded late at the 2026-09-30 check-in. 342348_[0-24] per-lens (one_by_one Nautilus, A100, 25/25, 6.9-8.8 min/task, 0 float32 truncations): naive parent mean 1.9992 +/- 0.0178 (SEM), std of medians 0.0889, deconvolved scatter 0.0852 (rms 1-sigma half-width 0.0255); truth inside the 1-sigma interval for 17/25 lenses; per-lens JSONs on RAL at results/one_by_one_sample_n25_seed42/dataset_*.json (not pulled; aggregate never written by the array). 342350_0 joint hierarchical NUTS: science completed despite the post-processing OOM — 500 warm-up (8h08m) + 1000 samples (7h17m), 1 chain, 0 divergences, acceptance 0.84, rhat_max 1.012, ess_min 133/302 params; parent mean 1.9936 [1.9761, 2.0136] 68%, sigma 0.0871 [0.0744, 0.1041] 68% (95% [0.0636, 0.1190]) vs truth 2.0/0.1 and realised draws 1.9917/0.0864 — the N=5 high-scatter bias (0.143) is gone at N=25. Computed from RAL samples.csv (graphical_nuts/f16c32e17f570603a1dc061f95792798/files); results/graphical_nuts_sample_n25_seed42.json never written (killed at 64 GB in latent/arviz post-processing) — pull samples.csv and write the summary offline</p></details></li>
<li>2026-09-30 — <i>run</i> — <details class="full"><summary><span class="clip">342351_0 failed — wall 27:41: n25_scale_up: EP arm on the CPU partition, hpc/batch_cpu/submit_ep, max_steps 12; RAL PyAutoFit mirror 68ff9bd57 predates PyAutoFit#1580, so this arm runs without the stale-mask fixed-point fix — CANCELLED 202…</span><span class="less">show less</span></summary><p>342351_0 failed — wall 27:41: n25_scale_up: EP arm on the CPU partition, hpc/batch_cpu/submit_ep, max_steps 12; RAL PyAutoFit mirror 68ff9bd57 predates PyAutoFit#1580, so this arm runs without the stale-mask fixed-point fix — CANCELLED 2026-09-09 20:56:19 BST (sacct 1-03:41:06): log stops at the first Nautilus status line 2026-09-08 17:15:36, no factor finished; superseded by 342410 then 343299, output parked as ep_dead_342351; recorded late at the 2026-09-30 check-in</p></details></li>
<li>2026-09-30 — <i>run</i> — <details class="full"><summary><span class="clip">342350_0 failed — wall 16:29: n25_scale_up: joint hierarchical NUTS fit, hpc/batch_gpu/submit_graphical — OUT_OF_MEMORY 2026-09-09 13:06:31 BST (sacct 0:125, cgroup oom-kill): NUTS warm-up 500 + sampling 1000 steps completed and samples.cs…</span><span class="less">show less</span></summary><p>342350_0 failed — wall 16:29: n25_scale_up: joint hierarchical NUTS fit, hpc/batch_gpu/submit_graphical — OUT_OF_MEMORY 2026-09-09 13:06:31 BST (sacct 0:125, cgroup oom-kill): NUTS warm-up 500 + sampling 1000 steps completed and samples.csv was written 12:14 (output/sample_n25_seed42/graphical/graphical_nuts/f16c32e17f570603a1dc061f95792798/files/samples.csv), then killed during latent samples / arviz post-processing; recorded late at the 2026-09-30 check-in</p></details></li>
<li>2026-09-30 — <i>run</i> — <details class="full"><summary><span class="clip">342348_[0-24] finished — wall 3:22: n25_scale_up: one lens per array task, hpc/batch_gpu/submit_one_by_one, sample_n25_seed42 — all 25 tasks COMPLETED 2026-09-08 17:14-20:37 BST (sacct, 6:54-8:50 per task, serial on the GPU): per-lens one_…</span><span class="less">show less</span></summary><p>342348_[0-24] finished — wall 3:22: n25_scale_up: one lens per array task, hpc/batch_gpu/submit_one_by_one, sample_n25_seed42 — all 25 tasks COMPLETED 2026-09-08 17:14-20:37 BST (sacct, 6:54-8:50 per task, serial on the GPU): per-lens one_by_one slopes are the baseline, e.g. dataset_0 2.0417 [2.0130, 2.0730] (truth 2.0305), dataset_24 2.0333 [2.0205, 2.0463] (truth 2.0439); recorded late at the 2026-09-30 check-in</p></details></li>
</ul>
<p class="muted"><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/slope_hierarchy_scale.md">full log</a></p>
<p class="muted">active · both · <a href="https://github.com/PyAutoLabs/slope_hierarchy_scale/issues/2">slope_hierarchy_scale#2</a></p>
</details>
</div>
</details>
<details class="project" id="project-ic50_workspace">
<summary><h3>ic50_workspace</h3><span class="purpose">EP against the graphical joint fit on IC50 dose-response data, scaling up</span><span class="meta">no runs recorded · updated 2026-10-14</span></summary>
<div class="project-body">
<dl class="where">
<dt>Registered:</dt><dd>not recorded</dd>
<dt>Local:</dt><dd>/mnt/c/Users/Jammy/Science/active/ic50_workspace</dd>
<dt>RAL:</dt><dd>/mnt/ral/jnightin/active/ic50_workspace</dd>
</dl><div class="position"><div class="position-text">
<h4>Current position</h4>
<p>The scale ladder is in. EP passes N=5/10/25 with coef_mean within 3σ and cost growing about linearly per sweep (26/50/140 s); it died at N=50 on a projection assert. That fix has landed: PyAutoFit#1655 (merged 2026-09-30, released 2026.10.7.1) raises ProjectionException, which EP factor_step now recovers from instead of killing the run. Graphical is cheaper but overconfident beyond N=25, and EP hill_coef widths are not yet comparable because util.py reports factor-message widths. The shared RAL PyAutoFit mirror is still 404b3e5f7 (2026-09-27, kept frozen for euclid_dr1) and lacks both #1655 and #1656, so any rerun needs a private PyAutoFit checkout on RAL. All earlier output is vaulted in z_vault/ on laptop and RAL, output/ is empty for the rerun. Next: rerun the EP ladder on a private PyAutoFit checkout with output on and a fixed seed, report hill_coef from the mean field, then give ep_lbfgs_jax a witness as the scale lever.</p></div>
<button class="copy resume" aria-label="Copy resume prompt for ic50_workspace" title="Copy resume prompt for ic50_workspace" data-cmd="Use the cortex skill. — resume ic50_workspace: read PyAutoCortex projects/ic50_workspace.md (Now, Runs, Log) and then /mnt/c/Users/Jammy/Science/active/ic50_workspace/NOTES.md; tell me where I left off and what I said I would do next. Submit nothing and log nothing until I say.">📋</button>
</div>
<h4>Runs (0)</h4>
<p class="muted">nothing on the cluster</p>
<details class="sub"><summary>Recent log — 5 of 12 entries</summary>
<ul class="log">
<li>2026-10-14 — <i>note</i> — output/ vaulted to z_vault/ on laptop and RAL (mv, nothing deleted), anticipating reruns; output/ left empty, results/ untouched; z_vault/ gitignored locally</li>
<li>2026-09-30 — <i>note</i> — <details class="full"><summary><span class="clip">Ladder read: EP s/sweep 26/50/140/~300 s at N=5/10/25/50 vs graphical wall 21/42/119/281 s. EP hill_coef widths flat at ~0.8 because util.py reports factor-message (likelihood) widths and the global factor freezes hill_coef; graphical widt…</span><span class="less">show less</span></summary><p>Ladder read: EP s/sweep 26/50/140/~300 s at N=5/10/25/50 vs graphical wall 21/42/119/281 s. EP hill_coef widths flat at ~0.8 because util.py reports factor-message (likelihood) widths and the global factor freezes hill_coef; graphical widths shrink but fall to 56/75 and 65/150 within 3 sigma at N=25/50 (overconfident). coef_mean passes 3 sigma for both methods on every completed rung.</p></details></li>
<li>2026-09-30 — <i>note</i> — <details class="full"><summary><span class="clip">342411 N=50 failure diagnosed: AssertionError at autofit/messages/abstract.py:316 while projecting the global factor after EP sweep 4 (mirror 66f9f8d5d); the 4th global search had max logL -337 (vs -69 at sweep 3) and logz +/- nan. Library…</span><span class="less">show less</span></summary><p>342411 N=50 failure diagnosed: AssertionError at autofit/messages/abstract.py:316 while projecting the global factor after EP sweep 4 (mirror 66f9f8d5d); the 4th global search had max logL -337 (vs -69 at sweep 3) and logz +/- nan. Library defect: project asserts on non-finite suff_stats and factor_step (optimiser.py:150) does not catch AssertionError, so one bad projection kills the run; no later commit touches the path. A local rerun at 66f9f8d5d converged in sweep 3 without failing (unseeded Dynesty, non-deterministic). Mind bug prompt draft/bug/autofit/ep_project_nonfinite_suff_stats_ic50_n50.md</p></details></li>
<li>2026-09-09 — <i>run</i> — <details class="full"><summary><span class="clip">342411 failed — wall 0:38: ep_scale_up: EP scale ladder, sim rungs 5/10/25/50, nlive 150 max_steps 12 — finished 2026-09-09 23:19:29 BST (sacct COMPLETED 00:38:49, the ladder catches rung failures): rungs N=5/10/25 passed the global coef_m…</span><span class="less">show less</span></summary><p>342411 failed — wall 0:38: ep_scale_up: EP scale ladder, sim rungs 5/10/25/50, nlive 150 max_steps 12 — finished 2026-09-09 23:19:29 BST (sacct COMPLETED 00:38:49, the ladder catches rung failures): rungs N=5/10/25 passed the global coef_mean assertions; rung N=50 FAILED — AssertionError: assert np.isfinite(suff_stats).all() in autofit/messages/abstract.py:316 project (via mapper/prior/abstract.py:237), error.342411.err</p></details></li>
<li>2026-09-09 — <i>run</i> — <details class="full"><summary><span class="clip">342412 finished — wall 0:07: ep_scale_up: graphical scale ladder, sim rungs 5/10/25/50, nlive 150 — COMPLETED 2026-09-09 22:48:42 BST (sacct 00:07:59): all four rungs N=5/10/25/50 passed the global coef_mean assertions (within 3σ); results…</span><span class="less">show less</span></summary><p>342412 finished — wall 0:07: ep_scale_up: graphical scale ladder, sim rungs 5/10/25/50, nlive 150 — COMPLETED 2026-09-09 22:48:42 BST (sacct 00:07:59): all four rungs N=5/10/25/50 passed the global coef_mean assertions (within 3σ); results/graphical_ladder_n*_summary.json</p></details></li>
</ul>
<p class="muted"><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/ic50_workspace.md">full log</a></p>
<p class="muted">active · ral · <a href="https://github.com/PyAutoLabs/PyAutoCortex/issues/36">PyAutoCortex#36</a></p>
</details>
</div>
</details>
<details class="project" id="project-autolens_inference">
<summary><h3>autolens_inference</h3><span class="purpose">Do the PyAutoLens inference backends agree on the HST SLaM posterior</span><span class="meta">no runs recorded · updated 2026-10-19</span></summary>
<div class="project-body">
<dl class="where">
<dt>Registered:</dt><dd>not recorded</dd>
<dt>Local:</dt><dd>/home/jammy/Code/PyAutoLabs/lens/autolens_inference</dd>
<dt>RAL:</dt><dd>/mnt/ral/jnightin/inference/autolens_inference</dd>
</dl><div class="position"><div class="position-text">
<h4>Current position</h4>
<p>Clean slate on pin 2026.10.17.1, campaign hst-imaging-mass-samplers, state read 2026-10-19 15:49:05Z. Nothing is queued: on the human's decision, 412541 (jax_cpu sparse) and 412565 (numba_cpu sparse) were cancelled ~15:51Z with partial stages left on disk (no CPU fixed-light row exists). 412535 and 412537 (A100) and 412539 (jax_cpu dense) completed; numba_cpu dense dropped. The project is on the flat layout (autolens_inference#36, c3ca4de; output/autolens/..., rows at results/slam/imaging/hst/<variant>/<config>/), and the wave-1 attempt-1 material is set aside. Next, each needing the human's go: confirm keeping prepared/; a Mind bug task and laptop repro for the jax_gpu sparse fixed-light mass_total[1] divergence; rerun the cancelled sparse remainder (jax_cpu sparse seed 1 from source_pix[2], the lightfixed mass_total[1] legs); GPU wave 1 attempt 2 (nautilus+emcee); commit the clean-slate rows in a project PR. No scientific acceptance implied.</p></div>
<button class="copy resume" aria-label="Copy resume prompt for autolens_inference" title="Copy resume prompt for autolens_inference" data-cmd="Use the cortex skill. — resume autolens_inference: read PyAutoCortex projects/autolens_inference.md (Now, Runs, Log) and then /home/jammy/Code/PyAutoLabs/lens/autolens_inference/wiki/project/state.md and the assistant autolens_assistant's AGENTS.md; tell me where I left off and what I said I would do next. Submit nothing and log nothing until I say.">📋</button>
</div>
<h4>Runs (0)</h4>
<p class="muted">nothing on the cluster</p>
<details class="sub"><summary>Recent log — 5 of 45 entries</summary>
<ul class="log">
<li>2026-10-19 — <i>note</i> — <details class="full"><summary><span class="clip">412539 (jax_cpu dense) elapsed from sacct, read 2026-10-19 ~17:25Z by the session architect: 412539_0 1-05:59:53 (ended 2026-10-18T23:46:01), 412539_1 1-02:57:03 (ended 2026-10-18T20:43:11). This supplements the 2026-10-19 finished entry,…</span><span class="less">show less</span></summary><p>412539 (jax_cpu dense) elapsed from sacct, read 2026-10-19 ~17:25Z by the session architect: 412539_0 1-05:59:53 (ended 2026-10-18T23:46:01), 412539_1 1-02:57:03 (ended 2026-10-18T20:43:11). This supplements the 2026-10-19 finished entry, which carries no wall. Its rows have still not been read.</p></details></li>
<li>2026-10-19 — <i>run</i> — <details class="full"><summary><span class="clip">412543 failed — wall 0:47: hst-imaging-mass-samplers wave 1 (cleanslate_2026_10_17_wave1, submit_hst_cleanslate_mass_samplers_jax_gpu_dense): 24-arm slice nautilus/emcee/nuts/smc x sampler seeds 0-2 x both light modes on the base-seed-0 pr…</span><span class="less">show less</span></summary><p>412543 failed — wall 0:47: hst-imaging-mass-samplers wave 1 (cleanslate_2026_10_17_wave1, submit_hst_cleanslate_mass_samplers_jax_gpu_dense): 24-arm slice nautilus/emcee/nuts/smc x sampler seeds 0-2 x both light modes on the base-seed-0 prepared problems of hpc_a100_jax_gpu_dense_fp64, array 0-23%4, 6 h containment, --dependency afterok:412535_0, pin 2026.10.17.1; human-authorised 2026-10-17 — sacct read 2026-10-19 ~17:25Z by the session architect: tasks _0.._17 all FAILED on 2026-10-17 (ends 18:51:38-20:32:26Z, elapsed 00:04:15-00:47:10; wall given is the longest task); _18 CANCELLED after 00:04:00; _[19-23] CANCELLED unstarted 2026-10-17T20:01:03Z. Failure classes as in the 2026-10-17 note (NUTS/SMC A100 OOM; nautilus/emcee row-writer TypeError). Its output and the 8 failed NUTS/SMC rows were moved aside on 2026-10-19 to aside/autolens_inference_cleanslate_wave1_attempt1/ (RAL and laptop)</p></details></li>
<li>2026-10-19 — <i>note</i> — <details class="full"><summary><span class="clip">HUMAN DECISION 2026-10-19, verbatim: "I want us to check the on going inference campaign on RAL, but I am ready for us to update folder structures on RAL and locally and clean things up so cancel on going jobs and we'll work on the clean u…</span><span class="less">show less</span></summary><p>HUMAN DECISION 2026-10-19, verbatim: "I want us to check the on going inference campaign on RAL, but I am ready for us to update folder structures on RAL and locally and clean things up so cancel on going jobs and we'll work on the clean up". Scheduler read 15:49:05Z: only 412541 and 412565 running; both scancelled ~15:51Z, queue empty; 412539 had COMPLETED. On "yes, go", autolens_inference#36 (flatten, closes #35) merged 15:53:33Z as c3ca4de; the RAL checkout fast-forwarded b91ce9c -> c3ca4de and the laptop to c3ca4de, after a full hpc/sync pull. flatten_cleanslate.py --apply: RAL 28 moves, 55 rewrites; laptop mirror 28 moves, 38 rewrites; both EXIT 0. New layout: output/autolens/imaging/hst/slam/<variant>/<config>/seed_<n>/<stage>/, output/autolens/prepared/<config>/seed_<n>/<variant>/, rows at results/slam/imaging/hst/<variant>/<config>/ (no __cleanslate_2026_10_17 suffix). RAL and laptop each hold 1974 files with identical paths and sizes; hpc/sync status dry run transfers 0. Human, verbatim: "check some older chats, think we dont need prepared, experiments and experiment_sources to exist anymore? Can we archive them somewhere separate to makr things easier to follow. Then do the apply". The wave-1 attempt-1 material (output/experiments 341M, output/experiment_sources 76M, results/searches/experiments with 8 failed NUTS/SMC rows) moved to /mnt/ral/jnightin/inference/aside/autolens_inference_cleanslate_wave1_attempt1/ on RAL and /mnt/c/Users/Jammy/Science/inference/aside/autolens_inference_cleanslate_wave1_attempt1/ on the laptop. prepared/ KEPT as the agent's proposal, not yet confirmed by the human: wave.py needs its manifests, and so does the sparse fixed-light repro. Partial stage dirs of the cancelled legs remain; they are not failures. Execution completion only. No compute submitted.</p></details></li>
<li>2026-10-19 — <i>run</i> — <details class="full"><summary><span class="clip">412565 failed — wall 44:52: hst-imaging-mass-samplers clean slate: numba_cpu sparse SLaM base (64gb, 8 CPUs), --lens-light both, seeds 0-1, from autolens_inference main b91ce9c (PR #32), pin 2026.10.17.1, output root output/cleanslate_2026…</span><span class="less">show less</span></summary><p>412565 failed — wall 44:52: hst-imaging-mass-samplers clean slate: numba_cpu sparse SLaM base (64gb, 8 CPUs), --lens-light both, seeds 0-1, from autolens_inference main b91ce9c (PR #32), pin 2026.10.17.1, output root output/cleanslate_2026_10_17, results tag cleanslate_2026_10_17, prepared export; --stages-from hpc_a100_jax_cpu_dense_fp64:source_lp shares source_lp[1] from the jax_cpu dense chain with an in-job wait (hpc/wait_for_stage.sh); rows mark that stage shared and exclude its wall from the numba chain wall; submitted 2026-10-17T18:58Z by the architect; human decisions 2026-10-17 (8 CPUs, shared stage, submit now) — CANCELLED by scancel ~15:51Z on the human's decision, not a run failure (sacct CANCELLED, elapsed 1-20:52:11). Complete at cancel (.completed markers): seeds 0 and 1 slam_base light[1], source_pix[1], source_pix[2], mass_total[1] (source_lp[1] shared from jax_cpu dense via --stages-from). Incomplete: slam_base_lightfixed mass_total[1] on both seeds (running). Partial stage dirs left on disk under output/autolens/imaging/hst/slam/<variant>/hpc_a100_numba_cpu_sparse_fp64/seed_<n>/ (flat layout, autolens_inference#36)</p></details></li>
<li>2026-10-19 — <i>run</i> — <details class="full"><summary><span class="clip">412541 failed — wall 47:04: hst-imaging-mass-samplers clean slate: hpc_a100_jax_cpu_sparse_fp64 (submit_hst_cleanslate_jax_cpu_sparse), --lens-light both, seeds 0-1, pin 2026.10.17.1 (PYAUTO_LIB_BASE=/mnt/ral/jnightin/inference/pins/2026.1…</span><span class="less">show less</span></summary><p>412541 failed — wall 47:04: hst-imaging-mass-samplers clean slate: hpc_a100_jax_cpu_sparse_fp64 (submit_hst_cleanslate_jax_cpu_sparse), --lens-light both, seeds 0-1, pin 2026.10.17.1 (PYAUTO_LIB_BASE=/mnt/ral/jnightin/inference/pins/2026.10.17.1), output root output/cleanslate_2026_10_17, results tag cleanslate_2026_10_17, prepared export output/prepared/cleanslate_2026_10_17/hpc_a100_jax_cpu_sparse_fp64/seed_<n>/<variant>/; human-authorised 2026-10-17 — CANCELLED by scancel ~15:51Z on the human's decision, not a run failure (sacct CANCELLED, elapsed 1-23:04:43). Complete at cancel (.completed markers): seed 0 slam_base light[1], source_lp[1], source_pix[1], source_pix[2], mass_total[1]; seed 1 source_lp[1], source_pix[1]. Incomplete: seed 0 slam_base_lightfixed mass_total[1] (running), seed 1 source_pix[2] (running) onward and its lightfixed leg. Partial stage dirs left on disk under output/autolens/imaging/hst/slam/<variant>/hpc_a100_jax_cpu_sparse_fp64/seed_<n>/ (flat layout, autolens_inference#36)</p></details></li>
</ul>
<p class="muted"><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/autolens_inference.md">full log</a></p>
<p class="muted">active · both · <a href="https://github.com/PyAutoLabs/autolens_inference/issues/4">autolens_inference#4</a></p>
</details>
</div>
</details>
<details class="project" id="project-autofit_inference">
<summary><h3>autofit_inference</h3><span class="purpose">PyAutoFit search benchmark on gaussian_x3: which searches find the right answer fastest</span><span class="meta">no runs recorded · updated 2026-10-16</span></summary>
<div class="project-body">
<dl class="where">
<dt>Registered:</dt><dd>2026-10-08</dd>
<dt>Local:</dt><dd>/home/jammy/Code/PyAutoLabs/fit/autofit_inference</dd>
<dt>RAL:</dt><dd>/mnt/ral/jnightin/inference/autofit_inference</dd>
</dl><div class="position"><div class="position-text">
<h4>Current position</h4>
<p>B5c-2a (2026-10-16, autofit_inference#17): the correlated_nd pilot (RAL 410866) is pulled from the private copy and judged under correlated_nd@1 (1040 expected = 749 completed rows + 177 failed + 4 oom + 0 missing + 110 deferred; 307 accepted, 623 rejected; ranks nothing, nothing ranked across families), and correlated_nd@2 is frozen in autofit_inference 44c5e77f1fb0 (protocol section 11 A2) before any scored row: sigma-ratio bands per task (evidence [0.85, 1.1] on 79 rows, posterior kept at [0.5, 2.0] on 1 row), ESS/R-hat bars kept, 75 timed + 8 probe-first cells, 21 cells deferred with reasons (incl. d50 Nautilus n_live_100 by the cap rule and all d100 Nautilus by A2), memory 2x the pilot peak (d50 Nautilus n_live_400 16 G, d100 cold NUTS 17 G). Calibration: autofit_inference results/calibration/correlated_nd_wave1.json. gaussian_x3 wave 2 stays closed under gaussian_x3@2. Next: B5c-2b (draft/research/autofit_inference/search_ext_b5c2b_scored_wave_submit.md) adds realisations 2-3 and their exact references, the 12 450-run scored-wave manifest and its probe, and submits on --partition=ral from a private pinned copy; nothing is submitted until then.</p></div>
<button class="copy resume" aria-label="Copy resume prompt for autofit_inference" title="Copy resume prompt for autofit_inference" data-cmd="Use the cortex skill. — resume autofit_inference: read PyAutoCortex projects/autofit_inference.md (Now, Runs, Log) and then /home/jammy/Code/PyAutoLabs/fit/autofit_inference/wiki/project/state.md and the assistant autofit_assistant's AGENTS.md; tell me where I left off and what I said I would do next. Submit nothing and log nothing until I say.">📋</button>
</div>
<h4>Runs (0)</h4>
<p class="muted">nothing on the cluster</p>
<details class="sub"><summary>Recent log — 5 of 28 entries</summary>
<ul class="log">
<li>2026-10-16 — <i>result</i> — <details class="full"><summary><span class="clip">correlated_nd pilot RAL 410866 judged under correlated_nd@1 (B5c-2a, autofit_inference#17): results/ pulled from the private copy inference/autofit_inference_b5c (930 rows; exact references byte-identical); 1040 expected = 749 completed ro…</span><span class="less">show less</span></summary><p>correlated_nd pilot RAL 410866 judged under correlated_nd@1 (B5c-2a, autofit_inference#17): results/ pulled from the private copy inference/autofit_inference_b5c (930 rows; exact references byte-identical); 1040 expected = 749 completed rows + 177 failed + 4 oom + 0 missing + 110 deferred, reconciled with sacct; 307 accepted, 623 rejected; ranks nothing. Failures: 80 Emcee/Zeus (d20, banana) crashed in the harness's chain diagnostics after the search (relabelling by g0.centre; fixed, no verdict moves); 60 d100 Nautilus (n_live_100: needs n_live > D; n_live_200/400: nautilus HDF5 checkpoint cannot store a D = 100 bound); 10 d100 warm NUTS (provider); 27 at the 4 h cap (d50 Nautilus n_live_100, d50 warm NUTS). The 4 OUT_OF_MEMORY tasks 263/273/304/383 (MaxRSS 7.6/7.7/3.1/8.4 G at 8 G) had been given cap stubs by the exit-137 path and are now an oom attempt class. A2 ruling: the OOM cells d50 Nautilus n_live_100 and d50 warm NUTS are deferred by the cap rule (no attempt ended on its own); d50 Nautilus n_live_400 gets 16 G and d100 cold NUTS 17 G (2x the measured peak, 8 G for an OOM class); d100 Nautilus n_live_200 (and 100, 400) is deferred (fails at the pin before sampling, affordability unmeasured); an oom run is rerun once at 2x. correlated_nd@2 frozen in autofit_inference 44c5e77f1fb0 (44c5e77f1fb0779f675a8f51247d812183e93b48) before any scored row; nothing submitted.</p></details></li>
<li>2026-10-16 — <i>run</i> — <details class="full"><summary><span class="clip">410866_[0-929] finished — wall 4:16: correlated_nd@1 pilot (B5c), resubmission of 409957 from the PRIVATE copy /mnt/ral/jnightin/inference/autofit_inference_b5c (delivered files sha256-verified from 245a3ef, own copy of the pin): 930 runs,…</span><span class="less">show less</span></summary><p>410866_[0-929] finished — wall 4:16: correlated_nd@1 pilot (B5c), resubmission of 409957 from the PRIVATE copy /mnt/ral/jnightin/inference/autofit_inference_b5c (delivered files sha256-verified from 245a3ef, own copy of the pin): 930 runs, 10 seeds x realisation 1 x 93 planned cells, one run per task, 4 h process cap, %100; pin df6d218f10cd; pull results/ from the private copy in B5c-2 — 926/930 COMPLETED, 4 OUT_OF_MEMORY at 8 G, all corr_gaussian_d50: task 263 nautilus n_live_100 numpy seed 3, 273 nautilus n_live_100 jax_cpu seed 3, 304 nautilus n_live_400 numpy seed 4, 383 blackjax_nuts_warm warmup_200_samples_500 jax_cpu seed 3; not rerun in stage 1 (human decision), B5c-2 raises their memory or excludes them; results unpulled in the private copy, pulled and judged in B5c-2</p></details></li>
<li>2026-10-15 — <i>run</i> — <details class="full"><summary><span class="clip">410866_[0-929] submitted: correlated_nd@1 pilot (B5c), resubmission of 409957 from the PRIVATE copy /mnt/ral/jnightin/inference/autofit_inference_b5c (delivered files sha256-verified from 245a3ef, own copy of the pin): 930 runs, 10 seeds x…</span><span class="less">show less</span></summary><p>410866_[0-929] submitted: correlated_nd@1 pilot (B5c), resubmission of 409957 from the PRIVATE copy /mnt/ral/jnightin/inference/autofit_inference_b5c (delivered files sha256-verified from 245a3ef, own copy of the pin): 930 runs, 10 seeds x realisation 1 x 93 planned cells, one run per task, 4 h process cap, %100; pin df6d218f10cd; pull results/ from the private copy in B5c-2</p></details></li>
<li>2026-10-15 — <i>run</i> — <details class="full"><summary><span class="clip">409957_[0-929] failed — wall 0:06: correlated_nd@1 pilot (B5c, second model family; protocol first committed 9ec37795f404, A1 before any row): 930 runs, 10 seeds x realisation 1 x 93 planned cells over corr_gaussian_d20/d50/d100 + rosenbro…</span><span class="less">show less</span></summary><p>409957_[0-929] failed — wall 0:06: correlated_nd@1 pilot (B5c, second model family; protocol first committed 9ec37795f404, A1 before any row): 930 runs, 10 seeds x realisation 1 x 93 planned cells over corr_gaussian_d20/d50/d100 + rosenbrock_d20, one run per task, 4 h process cap, %100; submit_correlated_nd_pilot; pin df6d218f10cd; pulled in B5c-2 — every task failed at import (ModuleNotFoundError _autofit_inference_cli): the shared RAL clone had been switched to an old main by another session (stash pre-main-switch 19:24 UTC) and lost the CLI and config/ as the array started; 800 tasks exited, the rest scancelled; no row written; resubmitted from the private copy inference/autofit_inference_b5c as 410866</p></details></li>
<li>2026-10-15 — <i>run</i> — <details class="full"><summary><span class="clip">409957_[0-929] submitted: correlated_nd@1 pilot (B5c, second model family; protocol first committed 9ec37795f404, A1 before any row): 930 runs, 10 seeds x realisation 1 x 93 planned cells over corr_gaussian_d20/d50/d100 + rosenbrock_d20, o…</span><span class="less">show less</span></summary><p>409957_[0-929] submitted: correlated_nd@1 pilot (B5c, second model family; protocol first committed 9ec37795f404, A1 before any row): 930 runs, 10 seeds x realisation 1 x 93 planned cells over corr_gaussian_d20/d50/d100 + rosenbrock_d20, one run per task, 4 h process cap, %100; submit_correlated_nd_pilot; pin df6d218f10cd; pulled in B5c-2</p></details></li>
</ul>
<p class="muted"><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/autofit_inference.md">full log</a></p>
<p class="muted">active · ral · <a href="https://github.com/PyAutoLabs/autofit_inference/issues/8">autofit_inference#8</a></p>
</details>
</div>
</details>
<details class="project" id="project-euclid_detailed">
<summary><h3>euclid_detailed</h3><span class="purpose">Advanced SLaM remodel of 31 euclid_dr1 lenses with residuals</span><span class="meta">no runs recorded · updated 2026-10-15</span></summary>
<div class="project-body">
<dl class="where">
<dt>Registered:</dt><dd>2026-10-15</dd>
<dt>Local:</dt><dd>/mnt/c/Users/Jammy/Science/active/euclid_detailed</dd>
<dt>RAL:</dt><dd>/mnt/ral/jnightin/active/euclid_detailed</dd>
</dl><div class="position"><div class="position-text">
<h4>Current position</h4>
<p>Born 2026-10-15. Repo, 31 datasets, output_dr1 (euclid_dr1 fits) and scripts/slam.py ready; test mode passes both stages. Next: hpc/sync push, then submit_slam_chain.sh --sample=source_residuals and --sample=lens_light_residuals on RAL (partition ral).</p></div>
<button class="copy resume" aria-label="Copy resume prompt for euclid_detailed" title="Copy resume prompt for euclid_detailed" data-cmd="Use the cortex skill. — resume euclid_detailed: read PyAutoCortex projects/euclid_detailed.md (Now, Runs, Log) and then /mnt/c/Users/Jammy/Science/active/euclid_detailed/wiki/project/state.md and the assistant autolens_assistant's AGENTS.md; tell me where I left off and what I said I would do next. Submit nothing and log nothing until I say.">📋</button>
</div>
<h4>Runs (0)</h4>
<p class="muted">nothing on the cluster</p>
<details class="sub"><summary>Recent log — 1 of 1 entry</summary>
<ul class="log">
<li>2026-10-15 — <i>note</i> — ledger opened</li>
</ul>
<p class="muted"><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/euclid_detailed.md">full log</a></p>
<p class="muted">active · ral · no issue yet</p>
</details>
</div>
</details>
<details class="project" id="project-cowls">
<summary><h3>cowls</h3><span class="purpose">euclid_detailed SLaM pipeline on COWLS JWST strong lenses, from COSJ100024+015334</span><span class="meta">no runs recorded · updated 2026-10-15</span></summary>
<div class="project-body">
<dl class="where">
<dt>Registered:</dt><dd>2026-10-15</dd>
<dt>Local:</dt><dd>/mnt/c/Users/Jammy/Science/active/cowls</dd>
<dt>RAL:</dt><dd>/mnt/ral/jnightin/active/cowls</dd>
</dl><div class="position"><div class="position-text">
<h4>Current position</h4>
<p>Born 2026-10-15. Repo PyAutoLabs/cowls (private), M25 COSJ100024+015334 dataset (4 bands) and scripts/slam.py ready; test mode passes both stages on F444W. Next, after the RAL PyAuto install is updated: hpc/sync push, then submit_slam_chain.sh --sample=M25 (F444W, partition ral).</p></div>
<button class="copy resume" aria-label="Copy resume prompt for cowls" title="Copy resume prompt for cowls" data-cmd="Use the cortex skill. — resume cowls: read PyAutoCortex projects/cowls.md (Now, Runs, Log) and then /mnt/c/Users/Jammy/Science/active/cowls/wiki/project/state.md and the assistant autolens_assistant's AGENTS.md; tell me where I left off and what I said I would do next. Submit nothing and log nothing until I say.">📋</button>
</div>
<h4>Runs (0)</h4>
<p class="muted">nothing on the cluster</p>
<details class="sub"><summary>Recent log — 1 of 1 entry</summary>
<ul class="log">
<li>2026-10-15 — <i>note</i> — ledger opened</li>
</ul>
<p class="muted"><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/cowls.md">full log</a></p>
<p class="muted">active · ral · no issue yet</p>
</details>
</div>
</details>
<details class="project" id="project-cowls_ansofi">
<summary><h3>cowls_ansofi</h3><span class="purpose">autolens_inference Delaunay-1250 numba CPU SLaM on COSJ100024+015334, F444W only</span><span class="meta">no runs recorded · updated 2026-10-19</span></summary>
<div class="project-body">
<dl class="where">
<dt>Registered:</dt><dd>2026-10-19</dd>
<dt>Local:</dt><dd>/mnt/c/Users/Jammy/Science/active/cowls_ansofi</dd>
<dt>RAL:</dt><dd>/mnt/ral/jnightin/active/cowls_ansofi</dd>
</dl><div class="position"><div class="position-text">
<h4>Current position</h4>
<p>Born 2026-10-19. Repo PyAutoLabs/cowls_ansofi (private), M25 COSJ100024+015334 F444W dataset and scripts/slam.py ready; test mode passes all five searches (144 s, numba sparse on every stage). Next: hpc/sync push-submit cpu submit_slam (8 CPU, 64 GB, 5 days, partition ral).</p></div>
<button class="copy resume" aria-label="Copy resume prompt for cowls_ansofi" title="Copy resume prompt for cowls_ansofi" data-cmd="Use the cortex skill. — resume cowls_ansofi: read PyAutoCortex projects/cowls_ansofi.md (Now, Runs, Log) and then /mnt/c/Users/Jammy/Science/active/cowls_ansofi/wiki/project/state.md and the assistant autolens_assistant's AGENTS.md; tell me where I left off and what I said I would do next. Submit nothing and log nothing until I say.">📋</button>
</div>
<h4>Runs (0)</h4>
<p class="muted">nothing on the cluster</p>
<details class="sub"><summary>Recent log — 1 of 1 entry</summary>
<ul class="log">
<li>2026-10-19 — <i>note</i> — ledger opened</li>
</ul>
<p class="muted"><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/cowls_ansofi.md">full log</a></p>
<p class="muted">active · ral · no issue yet</p>
</details>
</div>
</details>
<details class="project" id="project-euclid">
<summary><h3>euclid</h3><span class="purpose">The original Euclid DR1 grade-AB catalogue project, superseded by euclid_dr1</span><span class="meta">dormant · no runs recorded · updated 2026-10-15</span></summary>
<div class="project-body">
<dl class="where">
<dt>Registered:</dt><dd>not recorded</dd>
<dt>Local:</dt><dd>/mnt/c/Users/Jammy/Science/active/euclid</dd>
<dt>RAL:</dt><dd>/mnt/ral/jnightin/active/euclid</dd>
</dl><div class="position"><div class="position-text">
<h4>Current position</h4>
<p>Dormant: superseded by euclid_dr1 (euclid_dr1_prelim is defunct). The tree is kept under Science/active and RAL `active/euclid` (category layout, 2026-10-15); no question is open.</p></div>
</div>
<h4>Runs (0)</h4>
<p class="muted">nothing on the cluster</p>
<details class="sub"><summary>Recent log — 4 of 4 entries</summary>
<ul class="log">
<li>2026-10-15 — <i>note</i> — superseded by euclid_dr1 (euclid_dr1_prelim defunct) per the human; stays dormant; folder under Science/active and RAL active/; ral_root repointed to the category layout (PyAutoCortex#67)</li>
<li>2026-08-28 — <i>note</i> — question: Do we recover Sersic indices or is prior pile-up artefact — planned, never run [archive/tasks/euclid/sersic_index_recovery.md]</li>
<li>2026-08-28 — <i>note</i> — question: Can a fitted Euclid lens be resimulated and recovered — planned, never run [archive/tasks/euclid/resimulate_fitted_lens_simulator.md]</li>
<li>2026-08-28 — <i>note</i> — question: How robust are magnification estimates under model match and mismatch — planned, never run [archive/tasks/euclid/magnification_robustness.md]</li>
</ul>
<p class="muted"><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/euclid.md">full log</a></p>
<p class="muted">dormant · both · no issue yet</p>
</details>
</div>
</details>
<details><summary>5 retired</summary><ul>
<li><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/inference_programme.md">inference_programme</a> — The first inference programme, retired and restarted as autolens_inference — retired 2026-09-07: restarting from scratch: the project setup was unsatisfactory and it informed how the Cortex manages projects; RAL outputs stashed at /mnt/ral/jnightin/inference_programme_retired_2026-09-07</li>
<li><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/euclid_dr1_prelim.md">euclid_dr1_prelim</a> — Refit the ten DR1-prelim tiles and rebuild the catalogue on RAL — retired 2026-09-25: retire euclid_dr1_prelim; tree moved to z_vault by the human</li>
<li><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/slope_hierarchy.md">slope_hierarchy</a> — Hierarchical slope recovery at N=5, wrapped up and succeeded by slope_hierarchy_scale — retired 2026-09-08: wrapped up 2026-07-22 at N=5; succeeded by slope_hierarchy_scale; tree vaulted under z_projects_complete/</li>
<li><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/euclid_sersics.md">euclid_sersics</a> — Why does the lens-light Sersic index pile up at the n=5 prior edge — retired 2026-09-25: retire euclid_sersics as well; local tree deleted 2026-10-14 (no actionable results)</li>
<li><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/pj011646_final.md">pj011646_final</a> — Final masked PJ0116-24 power-law and multipole subhalo comparison — retired 2026-10-14: complete; tree moved to z_projects_complete 2026-10-14</li>
</ul></details>
<h4>No ledger</h4>
<table class="map">
<tr><th>Project</th><th>Status</th><th>Note</th></tr>
<tr><td>profiling</td><td>retired</td><td>retired 2026-10-14: human moved the tree to z_vault 2026-10-14</td></tr>
<tr><td>cowls_diana</td><td>retired</td><td>retired 2026-10-14: human moved the tree to z_vault 2026-10-14</td></tr>
<tr><td>subhalo_simulations</td><td>retired</td><td>retired 2026-10-14: superseded by subhalo_validation; tree moved to z_vault 2026-10-14</td></tr>
<tr><td>pj011646</td><td>retired</td><td>retired 2026-10-02: Human requested both PJ011646 and aris_PJ011646 archived intact to z_vault on laptop and RAL; superseded by pj011646_final</td></tr>
<tr><td>concr</td><td>retired</td><td>retired 2026-10-14: human moved the tree to z_vault 2026-10-14</td></tr>
</table>
</div></details><ul class="boards"><li class="muted" style="padding:.3rem 0">Boards:</li><li><a data-organ="organism" href="https://pyautolabs.github.io/PyAutoScientist/">Scientist</a></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="dna" href="https://pyautolabs.github.io/PyAutoDNA/">DNA</a></li><li><a data-organ="nerves" href="https://pyautolabs.github.io/PyAutoNerves/">Nerves</a></li><li><a data-organ="broca" href="https://pyautolabs.github.io/PyAutoBroca/">Broca</a></li><li><a data-organ="gut" href="https://pyautolabs.github.io/PyAutoGut/">Gut</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;}
return true;
}
function guardPrompt(text, button){
const panel=button.closest('[data-orchestration-panel]');
const statusId=panel?panel.id+'-budget-status':'prompt-budget-status';
let status=document.getElementById(statusId);
if(promptFits(text)){
if(status){if(status.dataset.url)URL.revokeObjectURL(status.dataset.url);status.remove();}
return true;
}
if(!status){status=document.createElement('p');status.id=statusId;
status.setAttribute('role','status');status.setAttribute('aria-live','polite');
button.insertAdjacentElement('afterend',status);}
if(status.dataset.url)URL.revokeObjectURL(status.dataset.url);
status.textContent='Not copied: this request exceeds the 50,000-character budget. '+
'Download the complete request and attach the file to your coding chat. Nothing was cut off. ';
const link=document.createElement('a');
link.href=URL.createObjectURL(new Blob([text],{type:'text/plain;charset=utf-8'}));
status.dataset.url=link.href;link.download='dashboard-request.txt';
link.textContent='Download complete request';status.appendChild(link);
return false;
}
async function copyCmd(b){
const cmd=b.dataset.cmd;
if(!guardPrompt(cmd,b))return;
let copied=false;
try{await navigator.clipboard.writeText(cmd);copied=true;}
catch(e){const t=document.createElement("textarea");t.value=cmd;
document.body.appendChild(t);
try{t.select();copied=document.execCommand("copy")===true;}
catch(e){copied=false;}finally{t.remove();}}
const old=b.textContent;
b.textContent=copied?"\u2713":"Copy failed";
if(copied)b.classList.add("ok");
setTimeout(()=>{b.textContent=old;b.classList.remove("ok");},1200);}
document.addEventListener("click",e=>{
const b=e.target.closest("button.copy");
if(b && guardPrompt(b.dataset.cmd,b))copyCmd(b);});
function orchestrationSync(panel){
const preview=panel.querySelector('[data-orchestration-prompt]');
const direction=panel.querySelector('[data-orchestration-direction]').value.trim();
preview.value=preview.defaultValue+(direction?'\n\nOptional direction (user context):\n'+direction:'');
panel.querySelector('.orchestration-status').textContent='';
return preview.value;
}
document.addEventListener('input',event=>{
if(event.target.matches('[data-orchestration-direction]')){
orchestrationSync(event.target.closest('[data-orchestration-panel]'));
}
});
document.addEventListener('click',async event=>{
const button=event.target.closest('[data-orchestration-copy]');
if(!button)return;
const panel=button.closest('[data-orchestration-panel]');
const text=orchestrationSync(panel);
const status=panel.querySelector('.orchestration-status');
if(!guardPrompt(text,button))return;
let copied=false;
try{await navigator.clipboard.writeText(text);copied=true;}
catch(error){
const preview=panel.querySelector('[data-orchestration-prompt]');
panel.querySelector('[data-orchestration-preview]').open=true;
preview.focus();preview.select();
try{copied=document.execCommand('copy')===true;}catch(error){copied=false;}
}
// A slow permission response must not claim a subsequently edited prompt was copied.
if(panel.querySelector('[data-orchestration-prompt]').value!==text){
status.textContent=copied?'The previous prompt was copied. Copy again to include your latest direction.':
'Copy unavailable. Open the preview and select the current prompt to copy manually.';
}else{
status.textContent=copied?'Prompt copied. Paste it into your coding chat.':
'Copy unavailable. The full prompt is selected below; copy it manually.';
}
});
function updateDashboardFreshness(now=Date.now()){
document.querySelectorAll('.orchestration-freshness').forEach(footer=>{
const stamp=footer.querySelector('[data-refreshed-at]');
if(!stamp)return;
const age=now-Date.parse(stamp.dataset.refreshedAt);
const label=stamp.querySelector('[data-freshness-label]');
if(!Number.isFinite(age)||age<0){
footer.dataset.freshness='grey';
label.textContent='Last updated unavailable';
return;
}
const minutes=Math.floor(age/60000),hours=Math.floor(age/3600000),days=Math.floor(age/86400000);
const amount=days||hours||minutes;
const unit=days?'day':hours?'hour':'minute';
label.textContent='Last updated '+(minutes===0?'just now':amount+' '+unit+(amount===1?'':'s')+' ago');
footer.dataset.freshness=age<3600000?'green':age<86400000?'yellow':'red';
});
}
function startDashboardFreshness(){
updateDashboardFreshness();
if(document.querySelector('[data-refreshed-at]'))setInterval(updateDashboardFreshness,30000);
}
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>
</body>
</html>