No reviewers
Labels
No labels
auth
autorelease: pending
autorelease: tagged
bug
dependencies
devops
docker
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
javascript
maintenance
question
refactor
ui
wontfix
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
gitchegumi/GitchAlerts!125
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/browser-source-scaling-and-image-none-animation-122-124"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Resolves #122 and #124.
#122 —
noneoption for image asset animationsAdds a
noneentrance-animation mode so image assets can render without any editor-applied animation layer. Already-animated assets (GIF/APNG/animated WebP) now play exactly as provided instead of being overridden by an editor entrance animation.noneto theanimation.inunion and to the inspector's In animation dropdown.buildAnimationStylereturnsnullfornone, so the editor stage and browser-source runtime render the element statically and let the source file animate on its own.fade— so existing saved alerts without an animation are unaffected.#124 — browser-source scaling & test-alert reliability
1(unchanged).EventSourceno longer force-closes on transient errors so it can auto-reconnect. Redis pub/sub already broadcasts to every subscriber; these changes keep each client subscribed so a test alert reaches all overlays (OBS + regular windows), and avoid the reconnect churn that could trip the per-IP stream rate limit when several overlays are open.Testing
pnpm --filter @multi-stream-alerts/web typecheck✅pnpm --filter @multi-stream-alerts/web test— 197 passing (added coverage forbuildAnimationStylereturningnullonnone) ✅🤖 Generated with Claude Code
Approving. Resolves #122 and #124.
#122 (none animation): Clean addition.
animation.inunion gets'none',buildAnimationStylereturnsnullfor it, inspector dropdown includes it as the first option. Already-animated assets (GIF/WebP) now play untouched instead of being overridden by an editor entrance animation. Round-trips as a saved value, distinct from unset which still defaults tofade.#124 (scaling + reliability):
OverlayClientcomputesscale = min(window.innerWidth/canvasWidth, window.innerHeight/canvasHeight)on resize. Stage wrapped in.overlay-viewport(fixed, full-viewport) withtransform: scale(). OBS at exact canvas size gets scale=1. Correct approach.: pingcomments keep idle connections alive. Properly cleaned up on disconnect. Good fix for proxies/load balancers that drop idle SSE.readyState === CLOSED. Prevents the silent disconnection + reconnect churn that could trip rate limits.Dead code removal:
AlertCatalogManager.tsx(778 lines),ManualAlertForm.tsx,CanvasWorkspace.tsx, and ~350 lines of dead CSS from retired overlay editor. No remaining references. Clean.196/196 tests pass, all 11 CI checks green.