perf(template): drop backdrop-blur and filter transitions so viewer stays smooth - #382
iqiiidi-sudo wants to merge 1 commit into
Conversation
|
Important Review skippedWe couldn't safely recover the incremental review. No full review was started, and the last reviewed checkpoint was preserved. Retry later, or explicitly request a full review by commenting You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (34)
💤 Files with no reviewable changes (5)
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 SummarySummaryThis change improves viewer performance by removing UI It also regenerates examples, gallery artifacts, manifests, proof metadata, receipts, and the archive. Export cleanup and story-stop centering are refactored. Source evidence rendering now uses explicit optional links. Compatibility impactPanels no longer use blur. Filter-based hover effects no longer transition. Source entries without Validation and evidenceThe author reports 1,049 passing tests, 33 skipped Node-version gates, no failures, passing release identity and archive reproducibility checks, and delivery and visual checks for a 17-node diagram. The current head contains commit The residual-declaration search produced truncated output and included generated inline data, so it does not establish whether any blur declarations remain. Static checks do not prove perceptual or cross-browser acceptance. WalkthroughThe change removes blur and filter effects from the diagram UI, adds transform containment hints, centralizes SVG export cleanup, corrects story-stop centering, adds resize-based recentering, updates source-evidence links, and refreshes generated artifact metadata. ChangesViewer rendering and behavior
Priority: ⬇️ Low Estimated code review effort: 4 (Complex) | ~45 minutes Merge Risk: ⚪ Minimal · up to The viewer performance and generated-artifact updates are ready to merge with no identified current-head risk. 🚥 Pre-merge checks | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
Full details: Contribution ScopeExplanation The PR explains the user problem, intended performance behavior, compatibility impact, rollback, and validation. The implementation is a focused shared Viewer change with regenerated artifacts. However, it introduces broad product behavior: the shared template changes all delivered viewers and the PR explicitly calls this a global Viewer visual change. CONTRIBUTING.md requires a linked issue or recorded maintainer scope decision for broad product behavior. The PR states that no issue exists and defers the scope decision to review; no recorded decision appears in the commit metadata or tracked review files. This is a contribution-scope gap, not a confirmed runtime defect. Resolution Before merge, link an agreed issue or record an explicit maintainer scope decision in the PR or an issue. The decision should state the value, compatibility impact, and non-goals for the global Viewer visual change. Then retain or update the PR description to reference that decision. Full details: Validation EvidenceExplanation The changed generated artifacts are internally consistent, but required final-head validation is not complete. Byte-preserving Viewer assembly matches Resolution A maintainer must inspect the unchanged workflow and approve or rerun the fork Comment |
|
@coderabbitai run pre-merge checks |
✅ Actions performedRunning Pre-merge checks. Results will be posted in the summary comment once complete. |
|
@coderabbitai run pre-merge checks |
✅ Actions performedRunning Pre-merge checks. Results will be posted in the summary comment once complete. |
|
@coderabbitai run pre-merge checks |
✅ Actions performedRunning Pre-merge checks. Results will be posted in the summary comment once complete. |
- backdrop-filter: blur на панелях и модалках заменён на none — дорогой композитинг поверх большого SVG при прокрутке и открытии окон - filter убран из всех transition-списков: анимация drop-shadow перерисовывала фильтр каждый кадр - канва svg вынесена в композитный слой (will-change, contain), чтобы pan/zoom не перерисовывал сцену - постоянный drop-shadow на рамке вьюпорта радара удалён - перерисованы примеры, delta-артефакт, галерея, README proof, archify.zip
|
@tt-a1i Rebased onto current If removing the blur entirely is too large a visual change, an opacity-only transition on a pre-rendered glow layer keeps the easing without repainting a filter per frame. Happy to iterate. |
Problem
Delivered HTML artifacts (~840 KB for a 17-node architecture diagram) stutter badly during pan/zoom and when opening modal panels (radar, guide, export menu). Four costs in the viewer repaint the huge SVG every frame:
backdrop-filter: blur(10–18px)on 10 panels/modals — the browser re-samples and re-blurs the entire SVG underneath on every frame; the main cause of freezes when opening modals.filterin 6transitionlists (e.g.transition: opacity 0.18s ease, filter 0.18s ease) — animatingdrop-shadowis not composited and repaints the filter per frame on hover/focus/lens.svgwas not a compositing layer — the pan/zoomtransformtriggered full repaints.drop-shadowon the radar viewport frame — recomputed on every camera sync.Change
Applied in
viewer/template.source.html(the source of truth since #381), regenerated intoarchify/assets/template.htmlvianpm run generate:viewer:backdrop-filter: blur(...)→nonein all 10 places; panel backgrounds are already semi-opaque over their own base color, so the visual delta is negligible.filterfrom alltransitionlists; hover glow now applies instantly instead of animating a filter per frame.will-change: transform; contain: layout style;— pan/zoom moves a ready raster, no scene repaint.drop-shadowon the radar viewport frame.Scope
examples/archify-repo.html,examples/archify-repo-grid.html,examples/maka-architecture.html,examples/rag-pipeline.html,docs/cases/mco-runtime.architecture.html,experiments/mco-showcase/mco-runtime.html,generated/maka-regenerated.workflow.html(+ itsvisual-checkreceipt and screenshots). These were stale against the current renderer (last built before fix(viewer): embed the viewer font so delivered pages stay self-contained #256/refactor(viewer): modularize source while preserving standalone HTML #381 and this PR), so rebuilding them from the final template picks up accumulated upstream template behavior (export cleanup, source-evidence links) in addition to the CSS delta. That is required, not unrelated: with a shared template, any stale tracked render contradicts the golden/freshness tests and the claim that no tracked artifact retains blur.generated/maka-regenerated.workflow.visual-check.jsonwas regenerated withvisual-checkso the receipt sha256 matches the rebuilt artifact (ok=true, containment + readability pass).Validation evidence (final head
e277148)Base is
8c3af8a(upstreammain). All local runs below executed on the exact final-head tree; the last amend only added the two regenerated artifacts whose rebuild was verified before the amend.cd archify && npm test— 1337 tests: 1290 pass, 0 fail, 47 skipped (Node-version gates; skipped classification visible in the TAP output). Coverscheck:viewerfreshness, golden byte-identity,check:release-identity, validators, brand marks, and the checked-in Checkout delta reproducibility test.ARCHIFY_CHROME=<chrome> node --test test/desktop-reader-browser.test.mjs(real Chrome 152) — 2 tests: 2 pass, 0 fail, 0 skipped.node bin/archify.mjs compare architecture ... --quality showcase --json— 28/28 checks, completenesscomplete; receipt sha256 matchesexamples/checkout-platform-delta.receipt.json.scripts/build-zip.sh archify.zipon Node 22 — reproduces committed archive bytes (release-package-gates insidenpm test).node bin/archify.mjs visual-check generated/maka-regenerated.workflow.html --json— ok=true, containment + readability pass on 1440x900/1600x1000/1920x1080/2048x1320, both themes; receipt and screenshots committed.deliver9/9 checks;visual-checkcontainment + readability pass at all four viewports in both themes..github/workflows/ci.ymlhas apull_requesttrigger, so the matrix (Node 18/20/22/24) and webm-artifact jobs run on this head — see the Checks tab of this PR fore277148.Automated browser evidence: items 2, 5, 6 (receipts). Perceptual review, reported separately: the author visually compared panels in both themes at 1440x900/2048x1320 before and after — no readability regression observed; the maintainer's perceptual call is welcome.
Trade-offs
opacity-only transition on a pre-rendered glow layer would be the compositable alternative; happy to iterate.