- resources/logic_analytics.js: computeAnalytics(items) in ONE pass over the items: per-axis rows
(model, lora, sampler, scheduler, steps, cfg, denoise, resolution, attention, upscale, pass,
prompt, and every wf_params key) with count, favorites %, rejects %, mean duration, mean of
every builtin metric and the pairwise rating; sortAnalyticsRows, analyticsToMarkdown
- resources/logic_analytics_panel.js: docked non-modal panel (header button + cog entry), scope
"current filter (favs/rejects counted)" or "whole session", sortable columns, dim rows under
n=3, Copy Markdown, re-renders (throttled) on every data change, Escape closes; builds DOM
with textContent only
- logic_pipeline.js: pipelineFilterCtx/pipelineMatches extracted (behaviour identical)
- sobel: mean Sobel gradient magnitude of luma (kernels /4; a full step edge = 1), numpy and
torch parity; Dashboard sort/filter/labels, Builder metric list; backfill gains fill_missing
(adds keys missing from older items, never changes stored values); the distributed metrics
pass fills metrics a worker on an older USCG omitted
- tests: 15 python, 12 node, 5 Playwright (incl. an XSS-shaped manifest value rendered as text)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>