You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update the pinned GitHub Actions to checkout 7.0.1, setup-node 7.0.0, upload-artifact 7.0.1, upload-pages-artifact 5.0.0, and deploy-pages 5.0.1 — the open Dependabot proposals, with every SHA verified against the upstream tags before pinning.
Minify the demo's own scripts and stylesheets into the deployed site/ (about 220 KB raw / 58 KB gzip less per visit) while demo/ stays the readable QA source; demo:cdn --check, test:site, and a new Chromium site-smoke lane prove the deployed bytes are the current deterministic build and still boot, localize, open settings, apply live options, and restore share links.
Share one priority-preserving snapshotInlineStyles() across modules: restore keeps !important, removes properties the element never set, drops an empty style attribute the element did not have, and accepts camelCase or kebab-case names including vendor prefixes; Glitch uses it instead of a module-local copy.
Add subscribe(listener) to the Presence controller and keep the React/Vue status/result in sync through it, so a child driven by a parent's propagate: true exit reports finished instead of freezing at leaving; the framework QA nested-propagation assertion now passes deterministically instead of depending on timing. Record the measured package and Vue consumer cost of these correctness/security bytes by rounding the packed/unpacked and Vue ceilings by 1 KB with the same 77 files.
Treat demo ?kt= settings links as untrusted input: fields a module renders as HTML (Tooltip content/html, Cursor templates, Toast icon, Overflow Text items) are never serialized into or restored from a link, and resource URLs (Cursor images/sprites, Ambient source) restore only when they stay on the demo origin. A crafted link could previously execute script on the public demo; tests/browser/share-link-policy.mjs proves the payloads are inert while benign fields still restore.
Reuse a pre-existing engine <script> tag only when it carries the same SHA-384 integrity Kineto would inject, so an unverified tag for the GSAP/ScrollTrigger/Lenis URL can no longer bypass subresource integrity.
Make Glitch teardown terminal across text, image, CRT/VCR, and RGB Slice Burst renderers: prevent retained instances from restarting work or overwriting later edits, and restore owned image/host styles with their original priorities, opacity, and animation play state.
Record the Glitch correctness cost (~0.2 KiB UMD gzip); adjust only exceeded package, minified ESM, UMD raw, full-consumer and React ceilings while retaining runner variance, modular/Vue budgets and the 77-file package boundary.
Complete dedicated Reveal demo coverage with Blur, Rise, Soft, and Rotate comparisons, seven-language descriptions, settings/replay/share regressions, and a gate preventing any of the 23 public presets from losing its example; preserve runtime behavior and package budgets.
Add five directional Reveal comparisons (Fade Down/Left/Right and Slide Down/Right), with seven-language descriptions of the actual starting positions, connected controls, replay/copy/share coverage, and unchanged runtime behavior.
Add five matched Reveal comparison demos for Fade, Zoom In/Out and Flip X/Y, with seven-language descriptions, connected settings and replay, unique semantic sharing, and desktop/mobile layout regressions; preserve historical share links and the runtime package.
Honor opt-in Wave palettes and background blending without changing the default distortion; share the existing clock, resolve target-scoped CSS colors, restore author blending, and expose localized demo controls with rendered-pixel regressions.
Account for the measured Wave feature cost (~0.3 KiB UMD gzip, 534.0 KiB packed/1770.3 KiB unpacked), adjusting only affected ceilings while retaining 77 files and zero required runtime dependencies.
Synchronize React/Vue lifecycle QA with bounded state assertions instead of fixed mount/update sleeps; preserve completion, DOM removal and leak checks and test timeout diagnostics without changing the runtime package.
Restore native class-only Reveal observation after pause/resume; preserve completed once-only entrances and prevent destroyed instances from restarting, with normal/low-tier browser regressions.
Preserve all Reveal presets and class-only hooks in low-performance mode without using loaded GSAP/ScrollTrigger; avoid repeated full-list scans on native animation completion, batch class tokens, and correct the external-engine bundle documentation.
Support native Reveal pause/resume through owned Web Animations, preserving entrance delay, stagger, and existing easing without stopping author animations; cancel pending playback on replay/destroy and retain the legacy CSS fallback.
Unify Mask, Wipe, and Clock Reveal playback across GSAP/native paths: reversible re-entry, ordered boundary callbacks, stagger completion, pause/resume, clipped ancestor visibility, and safe replay/destroy.
Honor Glitch Wave trigger, one-shot looping, duration, delay, and randomness; preserve playback phase and original filter priority, stop hidden-tab work, and prevent destroyed instances from restarting.
Add a localized one-shot Wave demo and restore its seed/displacement controls and copied options; retain historical shared URLs and include Wave behavior checks in all browser gates.
Record the measured lifecycle cost (~1.2 KB full consumer gzip and ~4.2 KB packed archive), adjusting only affected budgets while preserving runner variance, modular budgets, zero required dependencies, and the 77-file package boundary.
Record the verified v0.9.8 release, byte-identical npm/GitHub packages and linked provenance metadata, successful CI, and canonical/backup parity for all twelve first-party scripts/styles and four click-media assets.
Preserve the QA report's source-package version marker for automated release preparation, separately from verified publication evidence.
한국어
고정된 GitHub Actions를 checkout 7.0.1, setup-node 7.0.0, upload-artifact 7.0.1, upload-pages-artifact 5.0.0, deploy-pages 5.0.1로 갱신했습니다. 열려 있던 Dependabot 제안이며, 고정 전에 모든 SHA를 업스트림 태그와 대조했습니다.
배포용 site/에 데모 자체 스크립트·스타일시트를 minify해 담습니다(방문당 약 220KB raw / 58KB gzip 절감). demo/는 읽기 쉬운 QA 원본으로 유지하고, demo:cdn --check·test:site·새 Chromium site-smoke 레인이 배포 바이트가 최신 결정적 빌드이며 부팅·다국어·설정 열기·실시간 옵션 적용·공유 링크 복원이 동작함을 검사합니다.
우선순위를 보존하는 snapshotInlineStyles() 하나를 모듈이 공유합니다. 복원 시 !important를 유지하고, 요소가 설정하지 않았던 속성은 제거하며, 원래 없던 빈 style 속성을 남기지 않고, camelCase·kebab-case·vendor prefix 이름을 모두 받습니다. Glitch는 모듈 내부 복사본 대신 이 공용 함수를 사용합니다.
Presence 컨트롤러에 subscribe(listener)를 추가하고 React/Vue의 status·result를 이 구독으로 동기화합니다. 부모의 propagate: true exit로 끝난 자식이 leaving에 멈추지 않고 finished를 보고하며, framework QA의 중첩 전파 단언이 타이밍에 의존하지 않고 통과합니다. 이 정확성·보안 바이트의 측정된 패키지·Vue 소비자 비용을 기록해 packed/unpacked·Vue 상한만 1KB 반올림하고 77개 파일 범위는 유지합니다.
데모의 ?kt= 설정 링크를 신뢰할 수 없는 입력으로 다룹니다. 모듈이 HTML로 렌더링하는 필드(Tooltip content/html, Cursor 템플릿, Toast icon, Overflow Text items)는 링크에 담지도 복원하지도 않고, 리소스 URL(Cursor 이미지·스프라이트, Ambient 소스)은 데모와 같은 origin일 때만 복원합니다. 이전에는 조작된 링크가 공개 데모에서 스크립트를 실행할 수 있었으며, tests/browser/share-link-policy.mjs가 페이로드 무력화와 일반 필드 복원을 함께 검사합니다.
기존 엔진 <script> 태그는 Kineto가 주입할 SHA-384 integrity와 같은 값을 가진 경우에만 재사용합니다. 검증되지 않은 GSAP/ScrollTrigger/Lenis 태그로 subresource integrity를 우회할 수 없습니다.
Glitch 텍스트·이미지·CRT/VCR·RGB Slice Burst의 종료 후 재시작과 후속 편집 덮어쓰기를 막았습니다. 이미지·호스트의 소유 스타일을 원래 우선순위·투명도·애니메이션 재생 상태와 함께 복원합니다.
Glitch 수정 비용(UMD gzip 약 0.2KiB)을 기록하고 초과한 패키지·minified ESM·UMD raw·전체 소비자·React 상한만 조정했습니다. runner variance·모듈 조합/Vue 예산·77개 패키지 파일 범위는 유지합니다.
Blur·Rise·Soft·Rotate 비교 카드와 7개 언어 설명으로 Reveal 전용 데모 23개를 완성하고 설정·재생·공유 회귀 검사 및 예제 누락 방지 게이트를 추가했습니다. 런타임 동작과 패키지 예산은 유지합니다.
Fade Down/Left/Right·Slide Down/Right 방향 비교 데모 5개와 실제 시작 위치의 7개 언어 설명·설정·Replay·복사·공유 검사를 추가했습니다. 기존 런타임 동작은 변경하지 않습니다.
Fade·Zoom In/Out·Flip X/Y의 동일 조건 Reveal 비교 데모 5개와 7개 언어 설명·설정·Replay·고유 공유 링크·데스크톱/모바일 레이아웃 회귀 검사를 추가했습니다. 과거 공유 링크와 런타임 패키지는 유지합니다.
기본 왜곡을 유지하면서 Wave의 선택적 색상 배열·배경 합성을 연결했습니다. 기존 타이머 공유·대상 문맥의 CSS 색상 해석·원래 합성 스타일 복원과 다국어 데모 설정·렌더링 픽셀 회귀 검사를 추가했습니다.
Wave 기능 비용(UMD gzip 약 0.3KiB 증가, 패키지 압축 534.0KiB·해제 1770.3KiB)을 측정해 해당 상한만 조정하고 77개 파일·필수 런타임 의존성 0개를 유지했습니다.
React/Vue lifecycle QA의 고정 mount/update 대기를 제한 시간 내 상태 단언으로 교체했습니다. 완료·DOM 제거·누수 검사를 유지하고 시간 초과 진단을 검사하며, 런타임 패키지는 변경하지 않습니다.
Native class-only Reveal의 일시 정지 후 viewport 관찰을 복구하고, 완료한 1회 진입과 destroy 후 재시작 방지를 보존합니다. 일반·저성능 티어 브라우저 회귀 검사를 추가했습니다.
저성능 모드에서 로드된 GSAP·ScrollTrigger를 사용하지 않으면서 Reveal 프리셋과 class-only hook을 보존합니다. Native 애니메이션 완료 시 전체 목록 재검색을 없애고 class token을 묶어 처리하며, 외부 엔진 번들 설명을 바로잡았습니다.
Native Reveal이 소유한 Web Animation으로 대기 시간·stagger·기존 easing을 보존하는 일시 정지·재개를 지원하고, 작성자의 애니메이션은 유지합니다. replay/destroy 취소 처리를 보강하며 구형 CSS 대체 경로는 보존합니다.
Mask·Wipe·Clock Reveal의 GSAP/native 재생을 통합해 역재생·재진입, 경계 callback, stagger 완료, 일시 정지·재개, 조상 clipping 감지와 안전한 replay/destroy를 지원합니다.
Glitch Wave의 시작·1회 반복·시간·지연·변화 폭 설정을 연결하고, 진행률과 원본 filter priority 보존·숨김 탭 연산 정지·destroy 후 재시작 차단을 적용했습니다.
다국어 Wave 1회 재생 데모와 seed·왜곡량 설정 및 복사 옵션을 복구하고, 과거 공유 URL을 보존하며 모든 브라우저 gate에 Wave 동작 검사를 연결했습니다.
상태 관리 보강 비용(전체 소비자 gzip 약 1.2KB·압축 패키지 약 4.2KB 증가)을 기록하고 해당 예산만 조정했습니다. 러너 오차·모듈 조합 예산·필수 의존성 0개·77개 파일 경계는 유지합니다.
v0.9.8 릴리스의 npm/GitHub 동일 패키지와 provenance metadata 연결, CI 성공, 두 도메인의 자체 JS/CSS 12개·클릭 미디어 4개 일치 근거를 기록했습니다.
자동 릴리스 준비가 사용하는 QA 보고서의 소스 패키지 버전 표식을 실제 게시 증거와 구분해 유지했습니다.