Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

gcp-cloud-run image pins Chrome 148, which drops `background-clip: text` glyphs inside layered children; the CLI's Chrome 152 paints them

Đang mở Phù hợp với người mới
#5,117 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@user-github-me đang làm issue này rồi.

Từ ngày 9/10/2026.

  • #5207 của @user-github-me — đang mở
  • #5338 của @user-github-me — đang mở
  • #5342 của @user-github-me — đang mở

Đánh giá

Độ khó
1/5
Thời gian dự kiến
Dưới một giờ
Mức phù hợp với người mới
84/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
docker, typescript
Lĩnh vực
build-system

Hướng nghiên cứu

Bắt đầu tại packages/gcp-cloud-run/Dockerfile và Dockerfile.test, nơi chrome-headless-shell được ghim ở 148.0.7778.167; cập nhật cả hai lên 152.0.7977.30, phiên bản mà packages/cli/src/browser/manager.ts đã quản lý. Xác nhận phiên bản nhất quán với CLI bằng cách đọc manager.ts, rồi chạy build hình ảnh để probe BeginFrame của nó kiểm tra ghim mới. Xong khi build của Dockerfile vượt qua probe đó và một render hình ảnh trên Cloud Run khớp với render cục bộ của repro được liên kết.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug difficulty/medium triage/ready

Describe the bug

packages/gcp-cloud-run/Dockerfile (and Dockerfile.test) pin [email protected]. That Chromium build leaves descendants with their own paint layer (transform, opacity, filter, position, will-change) out of a background-clip: text mask, so gradient text whose glyphs live in such a child is painted with its transparent fill and nothing else: the line is invisible in the render.

The CLI's managed Chrome (152.0.7977.30, packages/cli/src/browser/manager.ts) paints it, as does hyperframes preview in any current browser. So the same project renders differently on a workstation and on Cloud Run, and only the Cloud Run output is wrong.

This hits any split-text entrance (lines or words wrapped in divs that a GSAP tween translates, fades or blurs) applied to gradient text. The tween leaves a transform on each wrapper, which is enough.

Related: #2810 resolved the BeginFrame question for this exact pin, so I don't think BeginFrame is a reason to stay on 148. check flags the pattern as text_not_painted (transparent fill) on every Chrome, which matches the 148 output rather than what 150+ and browsers paint; that may be worth a look too.

Minimal reproduction

https://github.com/ArcadeHQ/hyperframes-repros/tree/patch/bg-clip-text-layered-child

One index.html, no scripts, no animation: two gradient lines, the second inside a child with transform: translateY(0).

Steps to reproduce

git clone -b patch/bg-clip-text-layered-child https://github.com/ArcadeHQ/hyperframes-repros
cd hyperframes-repros
npm run render -- --quality draft --output out/chrome-152.mp4            # CLI's managed Chrome: both lines

npx --yes @puppeteer/browsers install [email protected]
HYPERFRAMES_BROWSER_PATH=<path printed above> npm run render -- --quality draft --output out/chrome-148.mp4   # second line missing

ffmpeg -ss 0.5 -i out/chrome-152.mp4 -frames:v 1 out/chrome-152.png
ffmpeg -ss 0.5 -i out/chrome-148.mp4 -frames:v 1 out/chrome-148.png

The 148 render is what the @hyperframes/gcp-cloud-run image produces.

Expected behavior

Both lines render with the gradient, matching preview and a local render.

Actual behavior

On Chrome 148 only "Direct text" renders. The second line's box is still laid out, but nothing paints in it.

Frame at 0.5 s, CLI Chrome 152 (expected):

chrome-152

Same frame on Chrome 148 (the Cloud Run image):

chrome-148

Environment

  • hyperframes 0.8.134
  • Node v24.21.0, macOS arm64 (Apple M1 Pro)
  • Chrome: chrome-headless-shell 152.0.7977.30 (CLI managed) vs 148.0.7778.97 via HYPERFRAMES_BROWSER_PATH; Linux 148.0.7778.167 in the Cloud Run image shows the same
  • ffmpeg 9.0.2

npx hyperframes doctor from the repro checkout:

  ✓ Version          0.8.134 (latest)
  ✓ Node.js          v24.21.0 (darwin arm64)
  ✓ CPU              10 cores · Apple M1 Pro @ 2400MHz
  ✓ Memory           16.0 GB total
  ✓ FFmpeg           ffmpeg 9.0.2 at /opt/homebrew/bin/ffmpeg
  ✓ FFprobe          ffprobe 9.0.2 at /opt/homebrew/bin/ffprobe
  ✓ Chrome           cache: ~/.cache/puppeteer/chrome-headless-shell/mac_arm-154.0.8037.92/...
  ✗ Docker           Not found

Additional context

Requested fix: pin the gcp-cloud-run image (and Dockerfile.test) to the same build the CLI manages, 152.0.7977.30, so Cloud Run and workstation renders use one Chrome. The image build's BeginFrame probe gates that, and our render corpus passes on 152. Happy to send the one-line PR if useful.

Note for completeness: Chromium 150+ paints the layered child's glyphs but still in the clipping box's own space (no transform, opacity or filter applied to the mask), which Firefox does apply. That is a Chromium limitation, not a HyperFrames one, and is not what this issue asks to change.

Ngôn ngữ chính
TypeScript
Star
54.1k
Fork
4.9k
Merge trung bình
8 giờ 49 phút
Pull request đã merge (30 ngày)
667

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của heygen-com/hyperframes

Tất cả issue của heygen-com/hyperframes

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.