Skip to content

Kineto v0.9.9

Choose a tag to compare

@github-actions github-actions released this 18 Sep 15:09
· 206 commits to main since this release

Kineto v0.9.9

English

  • 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 보고서의 소스 패키지 버전 표식을 실제 게시 증거와 구분해 유지했습니다.