mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2026-09-03 05:10:16 +03:00
## Summary Follow-up polish to the home **PDF Processor** flow visualiser (base landed in #7014). Tunes the particle animation to react to real volume and adds a Storybook playground to tune it live. ## Changes ### Particle emission — `useFlowParticles.ts`, `flowTypes.ts` - Emission rate now scales ~linearly with a source's 24h volume (**2× volume ≈ 2× dots**) instead of the flat `rate / 86400 × SPEED`, capped at **one dot / 250ms** (`MAX_EMIT_PER_SEC`) for busy sources (~≥ 800/24h). - Bounded the spread so the busiest source emits at most **5×** the quietest (`EMIT_SPREAD_CAP`) — a dominant source can't starve the others. - Wider departure jitter (`[0.4×–1.7×]` the mean, still floored at the per-source min-gap) and ~**2× faster travel** so the flow reads livelier. - Replaced the single `SPEED` constant with `EMIT_DIVISOR` / `MAX_EMIT_PER_SEC` / `EMIT_SPREAD_CAP`. Weighted round-robin outcome split is unchanged (e.g. 3 failed / 30 delivered → ~1 red dot in 11). ### Storybook Playground — `ProcessorFlow.stories.tsx`, `ProcessorFlow.tsx` - New **Playground** story with live controls: per-input rate sliders, the delivered/failed split (drives the red-dot ratio), and a Classification-active toggle. - Added an optional `dataOverride` prop (prod-inert testing seam) so the story renders a supplied flow model instead of fetching — changes apply instantly. ### Housekeeping - Condensed authored comments across the feature to ≤ 2 lines. ## Testing - `task frontend:check` green — lint, typecheck, 1353 tests. - Verified emission numerically (proportionality, 250ms ceiling, 5× spread cap) and confirmed live animation in a focused Storybook tab.