swayfx-mosaic/tooling/probes/step20c-targeted/plans.py
fy59 ed9375797e test(mosaic): record targeted STEP20C partial closure
Record exact-SHA scale and extended G samples, same-source blur measurements
and retained negative saved/input results. Keep STEP20C NEXT and production
multi-output unsupported; no production integration.

Preserve immutable probe fixtures, offline regressions and compact artifact
provenance. Fourteen consumed runs / 125 output captures, independent final
audit accepted. Saved timeout/GPU lifetime, whole-H1 return, input after camera
mutation and all-frame damage remain open.
2026-10-14 07:00:33 +02:00

31 lines
2.6 KiB
Python

"""Independent EXPERIMENTAL plans; old 18-run ledger remains read only."""
from pathlib import Path
HIST=Path('/home/fy59/swayfx-mosaic-overnight-mcolx0gq')
DEFAULT_LAB=Path('/home/fy59/swayfx-mosaic-targeted-7gge6h8b')
ROOT=Path(__file__).resolve().parents[3]
BASE=ROOT/'tooling/probes/step20c-static-e2-completion'
MATRIX=ROOT/'tooling/probes/step20c-overnight/matrix'
PRISTINE=Path('/home/fy59/swayfx-mosaic-optimized-edge-a55yjb8n/pristine-build/sway/sway')
SCENE=Path('/home/fy59/swayfx-mosaic-optimized-edge-a55yjb8n/scene0-build/libscenefx-0.5.so').resolve()
BINARIES={
'A':(HIST/'stage-static/usr/bin/swayfx-mosaic','979dcd95ab43fa1e465d6e9d262485b73d186cedacd0f957059dd24f482ce6f4'),
'G':(HIST/'release-shape/stage-static/usr/bin/swayfx-mosaic','8063478b2d5948da3eb8b1a329978882dc1d045cf36932cc2145a78af20ba76a'),
'pristine':(PRISTINE,'8ac865481bc0487344210cd0e16d8e6c7655b29db887cd58ddc11b0ca22fe494')}
WLROOTS=Path('/usr/lib/libwlroots-0.20.so').resolve()
WLROOTS_SHA='7edca9a7d65855addda68e29ba5db94d57c803eb5fa7d0f86db3136b90ca9837'
CAPS={'scale':24,'saved':30,'FX':48,'input':36,'G':36}
RUN_CAPS={'scale':2,'saved':3,'FX':3,'input':3,'G':3}
NORMAL=[dict(name='HEADLESS-1',logical=[-800,0,800,600],mode=[800,600],scale=1,transform='normal'),dict(name='HEADLESS-2',logical=[0,0,800,600],mode=[800,600],scale=1,transform='normal')]
SCALE=[{**NORMAL[0],'mode':[1000,750],'scale':1.25},NORMAL[1]]
ROTATE=[{**NORMAL[0],'mode':[750,1000],'scale':1.25,'transform':'90'},NORMAL[1]]
RUNS={}
def plan(campaign,variant,case,outputs=NORMAL,marker=False,capture=12):
rid=f'{campaign}-{variant}' if case==campaign else f'{campaign}-{case}-{variant}'
RUNS[rid]=dict(id=rid,campaign=campaign,case=case,variant=variant,mode='pristine' if variant=='pristine' else 'mosaic',outputs=outputs,marker=marker,client='nested-client',placement='static_cross',axis=0,boundary=0,
limits=dict(capture=capture,click=14,move=20,grab=2,chain=1,camera=4,mutation=28,configuration=64,spawn=12),duration_s=150,active_watchdog_s=143,
status='PLANNED',ceilings=['atomic generation NOT PROVEN','native saved identity NOT OBSERVABLE','complete damage/lifetime NOT PROVEN','STEP20C NEXT; production multi-output NOT YET SUPPORTED'])
for v in ('A','G'):plan('scale',v,'scale',SCALE,True,12);plan('saved',v,'saved',capture=10)
for v in ('pristine','A','G'):plan('input',v,'input',capture=12);plan('FX',v,'FX',capture=16)
for c in ('dynamic','hidden','R90'):plan('G','G',c,ROTATE if c=='R90' else NORMAL,c=='R90',{'dynamic':14,'hidden':12,'R90':10}[c])
# Diagnostic is a separate reserved run, disabled until the parent records a decision.
DIAGNOSTIC_ID='saved-diagnostic-A'