Trạng thái

Mọi hệ thống hoạt động bình thườngCập nhật 31 tháng 10, 2026
console.logHoạt động bình thường
90 ngày trướcMột lệnh gọi cho mỗi frame thay đổi, không gọi khi nhàn rỗi.Hôm nay
console.clearHiếm khi dùng
90 ngày trướcFrame đầu tiên, sau invalidate(), khi nhàn rỗi sau khi xếp chồng 100 frame, và ở frame thứ 300.Hôm nay
YogaHoạt động bình thường
90 ngày trướcLayout flexbox WebAssembly, pointScaleFactor 1.Hôm nay
Turbolog encoderHoạt động bình thường
90 ngày trướcBộ lọc hàm băm dòng và mã hóa %c theo độ dài chuỗi lặp.Hôm nay
DevTools ThrottlerTuân thủ
90 ngày trướcGiới hạn cập nhật viewport mỗi 50 ms. Các frame cách nhau ít nhất 66 ms.Hôm nay
textjs.orgHoạt động bình thường
90 ngày trướcTài liệu, Học, Playground, blog và cửa hàng.Hôm nay

Đo hiệu năng trực tiếp

Pipeline @textjs/core chạy trong thẻ này trên bảng tổng quan 100×32 và ghi frame vào console trong bộ nhớ.

Toàn bộ frame
—
layout + vẽ + mã hóa
Gõ phím
—
sửa một dòng
Frame nhàn rỗi
—
không có thay đổi
span %c
—
3.200 ô

Tự khởi chạy khi trang rảnh.

Lịch sử hiệu năng

packages/core/test/perf.test.ts tại mỗi mốc, trên cùng máy (Apple M5 Pro · Bun 1.4.4). Trung bình của 1.000 frame.

Bản phát hànhToàn bộ frameGõ phímRảnhspan %c
0.1.0thg 3 2025 · @textjs/core · 7c91cea0.194ms0.065ms0.043ms205
0.2.0thg 7 2025 · textjs.org · 92437cc0.192ms0.067ms0.042ms205
0.3.0thg 11 2025 · 10× input · 8c2d1b10.205ms0.065ms0.043ms146
0.3.0thg 11 2025 · Mobile pass · e2e6e460.212ms0.067ms0.045ms146
0.4.0thg 5 2026 · Zero-flash frames · f007ade0.184ms0.046ms0.028ms146
1.0.0thg 10 2026 · Text.js 1.0 · 57968b60.163ms0.011ms0.000ms149

Frontend DevTools

bench/devtools trong Chrome for Testing: lượt vẽ trống, frame đã chuyển và độ trễ hiển thị, 5 giây mỗi lần chạy. Cách chúng tôi đo.

Trình điều khiểnFPSLượt vẽ trốngĐã vẽ / đã phátĐộ trễ p50
Nối thêm (đang phát hành)151.0%74 / 7510.4ms
Xóa mỗi frame1570.6%70 / 7560.4ms
Nối thêm, không giãn nhịp600.8%67 / 29531.2ms
Xóa mỗi frame6081.1%45 / 3009.8ms

Sự cố trước đây

Mới nhất trước. Thời gian theo UTC.

tháng 10 năm 2026

  • Trang bị kẹt dưới đầu trang trên iOS Safari27 thg 10 – 28 thg 10, 2026 · Đã giải quyết
    1. Đã giải quyết

      Đã giải quyết sự cố này.

    2. Đang theo dõi

      Đã triển khai bản sửa lỗi. Đã tắt neo cuộn (overflow-anchor: none). Chúng tôi đang theo dõi.

    3. Đã xác định

      Tiêu đề chính vẫn có thể bị ghim dưới đầu trang cố định sau khi cuộn xuống rồi cuộn lên. Tính năng neo cuộn của Safari đang điều chỉnh vị trí cuộn.

    4. Đang theo dõi

      Đã triển khai bản sửa lỗi. Các phần tử đó giờ chỉ cuộn ngang, và scrollbar-gutter: stable chỉ áp dụng cho thiết bị dùng chuột.

    5. Đã xác định

      Các thẻ tệp, khối mã và bảng văn bản tràn dọc 1 px do gạch chân của thẻ đang chọn, nên chúng cuộn theo cả hai trục và iOS chuyển cho chúng thao tác vuốt dọc dành cho trang. scrollbar-gutter: stable cũng khiến lần cuộn đầu bị nhảy trên iOS.

    6. Đang điều tra

      Chúng tôi đang điều tra báo cáo rằng các trang textjs.org không thể cuộn về đầu trên iOS Safari.

    Sự cố này ảnh hưởng đến: textjs.org.

    Phân tích sau sự cố

    Các trang textjs.org không dịch chuyển khi tải, nên tính năng neo cuộn không có gì để chỉnh. Trên iOS Safari, tính năng này ghim phần đầu trang dưới thanh đầu trang cố định và chặn cuộn về đầu. ?debug=scroll trên textjs.org giờ hiển thị trực tiếp sự kiện cuộn, chạm và đổi kích thước, đồng thời nêu tên bên gọi mỗi lệnh focus hoặc cuộn bằng mã.

    Các bản sửa: 297c5d7, 55da525, 8424fcd · Nhật ký thay đổi: 1.0.0

  • Kiểm thử quy tắc lint thất bại trong CI23 thg 10, 2026 · Đã giải quyết
    1. Đã giải quyết

      Trình kiểm thử giờ chỉ đọc it.only khi một kiểm thử gọi RuleTester.itOnly. CI đang chạy thành công.

    2. Đã xác định

      Bun báo lỗi khi đọc it.only lúc biến môi trường CI có giá trị. Trình kiểm thử quy tắc gán RuleTester.itOnly = it.only khi import, nên tải thất bại.

    3. Đang điều tra

      Bộ kiểm thử eslint-plugin-textjs thất bại trong CI trước khi chạy bất kỳ kiểm thử quy tắc nào. Chạy cục bộ thì đạt.

    Phân tích sau sự cố

    @typescript-eslint/rule-tester nhận các hàm kiểm thử qua thuộc tính tĩnh của RuleTester. Bản sửa lỗi bọc it.only trong một hàm. Không có gói hay trang nào bị ảnh hưởng.

    Bản sửa: eca3f78

  • Dịch chuyển layout trên /playground và /opencode21 thg 10 – 22 thg 10, 2026 · Đã giải quyết
    1. Đã giải quyết

      Độ dịch chuyển layout tích lũy là 0 trên mọi route.

    2. Đang theo dõi

      Đã triển khai bản sửa lỗi. Cả hai trang dùng chung một layout pad và kích thước được nối thêm mà không di chuyển “Vừa console”. Chúng tôi đang theo dõi.

    3. Đã xác định

      Bộ điều khiển kích thước console nối thêm kích thước đo được vào nhãn sau hydration (Fit console · 120×36), làm dịch chuyển nút văn bản “Vừa console”. Hàng trên và dưới của vùng focus cũng có chiều cao khác nhau giữa hai trang, nên vùng focus căn giữa lại khi chuyển trang.

    4. Đang điều tra

      Kiểm tra dịch chuyển layout của chúng tôi ghi nhận mức dịch chuyển layout tích lũy là 0,0001 trên /playground và /opencode. Mọi route khác trong phạm vi kiểm tra đều ghi nhận 0. Vùng focus cũng di chuyển khi chuyển giữa hai trang.

    Sự cố này ảnh hưởng đến: textjs.org.

    Phân tích sau sự cố

    Pad hiện có vùng trên và dưới với chiều cao cố định, và mọi bản demo đều dành sẵn cùng số dòng, nên đổi trang hay bản demo không làm gì dịch chuyển. Bảng kết nối OpenCode hiển thị một dòng trạng thái trong mọi trạng thái, với khung chờ cho đến khi hydrate xong. apps/web/scripts/e2e-layout.mjs kiểm tra các hộp giống hệt nhau giữa các route, bản demo, kích thước viewport và trạng thái kết nối.

    Bản sửa: 8f22b9b · Nhật ký thay đổi: 1.0.0

  • Thanh bên Tài liệu cuộn khỏi tầm nhìn ở cuối trang dài16 thg 10 – 17 thg 10, 2026 · Đã giải quyết
    1. Đã giải quyết

      Đã giải quyết sự cố này.

    2. Đang theo dõi

      Đã triển khai bản sửa lỗi. Các chương trong mục Học cũng render chân trang bên trong cột nội dung. Chúng tôi đang theo dõi.

    3. Đã xác định

      Thanh bên chương trong mục Học gặp cùng vấn đề.

    4. Đang theo dõi

      Đã triển khai bản sửa lỗi. Trang Tài liệu render chân trang bên trong cột nội dung, nên layout kéo dài đến cuối trang.

    5. Đã xác định

      Thanh bên dùng position: sticky trong layout Tài liệu, và chân trang render sau layout đó. Phần tử sticky chỉ ghim khi khối chứa nó còn trên màn hình, nên khi chân trang cuộn vào, thanh bên cũng cuộn theo.

    6. Đang điều tra

      Chúng tôi đang điều tra báo cáo về thanh bên Tài liệu cuộn khỏi tầm nhìn ở cuối trang dài.

    Sự cố này ảnh hưởng đến: textjs.org.

    Phân tích sau sự cố

    Trang có thanh bên sticky (Tài liệu và các chương trong mục Học) render chân trang trong cột nội dung. Các trang khác giữ chân trang dùng chung.

    Bản sửa: 131ac96 · Nhật ký thay đổi: 1.0.0

  • Tên gói textjs không khả dụng trên npm14 thg 10 – 15 thg 10, 2026 · Đã giải quyết
    1. Đã giải quyết

      Đã giải quyết sự cố này.

    2. Đang theo dõi

      Gói framework và CLI hiện là @textjs/next, cùng scope với @textjs/core và @textjs/react. Các lệnh import đổi từ textjs sang @textjs/next.

    3. Đã xác định

      Tên textjs đã thuộc về một gói npm khác từ ngày 25 tháng 3 năm 2016.

    4. Đang điều tra

      Xuất bản gói framework textjs lên npm thất bại với lỗi 403 Forbidden.

    Phân tích sau sự cố

    Từ Text.js 1.0, ứng dụng import từ @textjs/next thay vì textjs, và cầu nối OpenCode là bunx @textjs/app proxy, chạy từ bất kỳ thư mục nào.

    Text.js 1.0: Một lần đổi tên · Nhật ký thay đổi: 1.0.0

tháng 9 năm 2026

  • Lớp vẽ trống tại chỗ ngắt dòng15 thg 9 – 16 thg 9, 2026 · Đã giải quyết
    1. Đã giải quyết

      Đã giải quyết sự cố này.

    2. Đang theo dõi

      Đã triển khai bản sửa lỗi. Chỗ ngắt dòng không tiếp tục một đoạn giờ đặt lại %c về kiểu trống trước, nên DevTools tạo ký tự xuống dòng thuần. Mỗi frame mang một màn che.

    3. Đã xác định

      Khi một đoạn có định dạng kết thúc tại chỗ ngắt dòng, \n nằm trong span %c của đoạn đó. DevTools tách span tại chỗ xuống dòng, và phần dư trống trở thành span display: inline-block với contain: paint, có lớp vẽ riêng.

    4. Đang điều tra

      Chúng tôi đang điều tra các phần tử <span> trống ở hầu hết chỗ ngắt dòng trong frame DevTools, và span màn che bị nhân đôi ở một số frame.

    Sự cố này ảnh hưởng đến: Turbolog encoder.

    Phân tích sau sự cố

    Các span cùng kiểu vẫn gộp qua chỗ ngắt dòng. Màn che cũng chuyển sang dòng riêng: DevTools đẩy liên kết nguồn (VM12:1) sang bên phải dòng đầu của thông điệp, và màn che nội tuyến để liên kết đó cạnh dòng 0, khiến dòng này hẹp lại.

    Nhật ký thay đổi: 1.0.0

tháng 8 năm 2026

  • Độ trễ hiển thị tăng sau console.clear27 thg 8 – 31 thg 8, 2026 · Đã giải quyết
    1. Đã giải quyết

      Độ trễ hiển thị trung vị trong bench/devtools là 10,4 ms. Bản sửa lỗi có trong Text.js 1.0.

    2. Đang theo dõi

      Đã triển khai bản sửa lỗi. Sau mỗi frame có xóa console, bộ render đợi 110 ms một lần, nên các frame sau đến sau lần làm mới trước của DevTools hơn 50 ms và đi theo luồng xử lý ngay.

    3. Đã xác định

      Sau khi xóa, DevTools chèn một dòng “Đã xóa bảng điều khiển”. Dòng này chiếm lượt xử lý ngay của bộ giới hạn tần suất và đẩy frame tiếp theo sang bộ hẹn giờ 50 ms. Với các frame cách nhau 66 ms, mọi frame sau đều nằm trên bộ hẹn giờ đó.

    4. Đang điều tra

      bench/devtools ghi nhận độ trễ hiển thị trung vị là 63 ms sau khi xóa console. Độ trễ giữ nguyên mức đó ở mọi frame sau.

    Sự cố này ảnh hưởng đến: DevTools Throttler, console.clear.

    Phân tích sau sự cố

    Đầu vào rời rạc vẫn render đồng bộ khi khoảng cách frame cho phép.

    Phá khóa pha · Nhật ký thay đổi: 1.0.0

  • Spinner làm lệch dòng trong console DevTools11 thg 8 – 12 thg 8, 2026 · Đã giải quyết
    1. Đã giải quyết

      Đã giải quyết sự cố này. Bản sửa lỗi có trong Text.js 1.0.

    2. Đang theo dõi

      Đã triển khai bản sửa lỗi. Spinner dots mặc định giờ vẽ khối phần tư (▘ ▝ ▗ ▖), mỗi khối chiếm một ô trong Menlo. Các frame braille có sẵn qua variant="braille" cho terminal.

    3. Đã xác định

      Spinner mặc định vẽ mẫu braille (U+2800 đến U+28FF). Text.js đo mỗi mẫu là một ô, nhưng Menlo, phông chữ console DevTools trên macOS, không có ký tự braille. Ký tự thay thế rộng hơn một ô và đẩy phần còn lại của dòng sang phải.

    4. Đang điều tra

      Trên macOS, dòng chứa <Spinner> bị lệch trong DevTools. Các ô bên phải spinner nằm lệch khỏi lưới.

    Sự cố này ảnh hưởng đến: console.log.

    Phân tích sau sự cố

    LineChart mặc định vẽ chấm phần tư vì cùng lý do. Braille có sẵn qua marker="braille".

    Nhật ký thay đổi: 1.0.0

tháng 5 năm 2026

  • Tỷ lệ lần vẽ trống tăng trong console DevTools5 thg 5 – 19 thg 5, 2026 · Đã giải quyết
    1. Đã giải quyết

      Bản sửa lỗi đã phát hành trong Text.js 0.4.0. Tỷ lệ lần vẽ trống là 1,0%, tất cả đều ở frame đầu tiên.

    2. Đang theo dõi

      textjs.org giờ nối thêm frame thay vì xóa. Một span màn che có chiều rộng bằng không giữ các frame trước ngoài tầm nhìn, và các frame cách nhau ít nhất 66 ms.

    3. Đã xác định

      DevTools áp dụng console.clear() đồng bộ nhưng giới hạn tần suất vẽ thông điệp mới ở 50 ms. Mỗi frame xóa frame trước ngay lập tức và vẽ sau tối đa 50 ms. Trong bench/devtools, bảng tổng quan 100×32 bị trống ở 70,6% số lần vẽ của DevTools tại 15 fps và 81,1% tại 60 fps.

    4. Đang điều tra

      Chúng tôi đang điều tra báo cáo về console DevTools chớp trống giữa các frame khi chịu tải.

    Sự cố này ảnh hưởng đến: console.clear, DevTools Throttler.

    Phân tích sau sự cố

    Từ 0.1.0, Turbolog đã gửi một console.clear() và một console.log() cho mỗi frame thay đổi. bench/devtools, công cụ điều khiển frontend DevTools thật trong Chrome for Testing, được xây dựng để đo sự cố này và tạo ra các số liệu trong bảng frontend DevTools ở trên.

    Bản sửa: f007ade · Turbolog: loại bỏ nhấp nháy · Nhật ký thay đổi: 0.4.0

tháng 4 năm 2026

  • Đường dẫn tệp trong frame console đổi sang kiểu liên kết14 thg 4 – 15 thg 4, 2026 · Đã giải quyết
    1. Đã giải quyết

      Đã giải quyết sự cố này.

    2. Đang theo dõi

      Đã triển khai bản sửa lỗi. Bộ mã hóa chèn word joiner (U+2060) vào văn bản path:line, //host:port và data:, trừ khi ô cho phép liên kết.

    3. Đã xác định

      DevTools biến URL, văn bản path:line và //host:port trong thông điệp console thành liên kết và buộc chúng dùng màu theme của nó. Bộ mã hóa đã ngắt :// và www., nhưng path:line và //host:port sau giao thức vẫn khớp.

    4. Đang điều tra

      Văn bản như src/app.tsx:12 và http://localhost:3000 render bằng màu liên kết của DevTools thay vì kiểu %c.

    Sự cố này ảnh hưởng đến: Turbolog encoder.

    Phân tích sau sự cố

    :// và www. đã mang word joiner từ 0.1.0. Các ô cần giữ khả năng nhấp đặt thuộc tính allow-link và được ghi nguyên trạng.

    Nhật ký thay đổi: 0.4.0

tháng 11 năm 2025

  • Phím gõ bị trễ trong ứng dụng console4 thg 11 – 18 thg 11, 2025 · Đã giải quyết
    1. Đã giải quyết

      Bản sửa lỗi đã phát hành trong Text.js 0.3.0.

    2. Đang theo dõi

      Đã triển khai bản sửa lỗi. Đầu vào rời rạc, như nhấn phím hay dán, giờ render đồng bộ trong cùng tác vụ. Các cập nhật khác vẫn commit trên requestAnimationFrame.

    3. Đã xác định

      Mọi cập nhật, kể cả lần nhấn phím, đều đợi requestAnimationFrame tiếp theo trước khi React commit và ghi frame vào nhật ký.

    4. Đang điều tra

      Nội dung gõ trong ứng dụng console hiển thị chậm hơn bàn phím, rõ nhất trong OpenCode trên textjs.org.

    Sự cố này ảnh hưởng đến: textjs.org.

    Phân tích sau sự cố

    Thao tác nhấn phím không còn chờ frame hoạt ảnh tiếp theo. Các commit không đến từ đầu vào, như bộ hẹn giờ và dữ liệu truyền liên tục, vẫn được gom theo từng frame hoạt ảnh.

    Bản sửa: 8c2d1b1 · Nhật ký thay đổi: 0.3.0