Bản phát hành Cải tiến

Product backlog cảm thấy nhanh hơn và vững vàng hơn — không còn lóe 'zero hàng', tab Incomplete thực sự là incomplete, và phòng máy yên tĩnh hơn

Bản cập nhật đã phát hành

Ngay sau bản phát hành nhập CSV, chúng tôi tiếp tục mài giũa product backlog — cả cảm giác trong tay bạn và cách phòng máy hoạt động dưới tải. Bản phát hành này kết thúc vòng đó.

⚡ Danh sách product backlog cảm thấy nhẹ hơn rõ rệt

Chúng tôi đã thêm ba composite index bao phủ các truy vấn mà danh sách product backlog phát ra, và sắp xếp mặc định của server không còn cần một lượt xử lý phụ để sắp xếp lại các hàng. Số PBI trong dự án càng lớn, bạn càng cảm nhận rõ hơn.

Trong khi ở đó, chúng tôi cũng dọn dẹp cửa sổ tải: bạn giờ thấy skeleton hàng (placeholder mờ) trong khoảnh khắc chờ ngắn khi gắn lần đầu và chuyển tab. Trước đây, overlay “không có hàng” có thể lóe qua khoảng trống đó — đặc biệt rõ dưới độ trễ mạng thực tế. Cú lóe ma đó đã biến mất.

🎯 Tab Incomplete thực sự chỉ trả về các mục chưa hoàn thành

Nếu bạn chọn tab Incomplete trên danh sách product backlog, các PBI đã hoàn thành đôi khi có thể lẻn vào. Lựa chọn tab không phải lúc nào cũng được đẩy xuống bộ lọc phía server; giờ thì luôn được đẩy xuống. Bạn có thể tập trung vào công việc chưa hoàn thành mà không phải nghi ngờ danh sách.

Widget “đề xuất refinement” trên dashboard giờ áp dụng cùng bộ lọc phía server: các ứng viên được lấy trực tiếp từ tập chưa hoàn thành, vậy nên các dự án có khối lượng lớn không âm thầm bỏ sót PBI chưa hoàn thành khỏi tầm nhìn.

🧭 Các thẻ epic đã hoàn thành ẩn trên các dự án tắt Epic

Thẻ “Epic đã hoàn thành” trên dashboard thống kê và thẻ “Epic đã đạt được” trên trang chi tiết thống kê tổng thể không còn hiển thị cho các dự án có tính năng Epic tắt.

UI đã ẩn các phần liền kề trước đây, nhưng một cửa sổ thời gian render vẫn có thể lóe thẻ, và dữ liệu nền có thể đọc được qua các đường khác. Giờ cả hiển thị và dữ liệu đều khóa cho các dự án có Epic bật.

🛡 Bỏ một hậu tố gây hiểu nhầm trên các hàng đã hoàn thành

Chúng tôi đã bỏ hậu tố “PBI-XXXXXX” xuất hiện cạnh các mục đã hoàn thành. Nó trông giống ID tuần tự, nhưng thực ra được lấy từ đuôi của một định danh nội bộ và có thể trùng với một hàng liền kề một cách tình cờ. Để ngăn hiểu nhầm, chúng tôi đã xóa hoàn toàn hiển thị này.

Timestamp tương đối “Hoàn thành N ngày trước” trên tab Hoàn thành cũng đã biến mất. Chỉnh sửa một PBI đã hoàn thành từng âm thầm viết lại giá trị đó, vậy nên nó trông có vẻ chính xác nhưng có thể trôi dạt một cách lặng lẽ. “Khi nào việc này kết thúc” giờ được giao cho cột Sprint, vốn mang ý nghĩa đó một cách trung thực.

🔒 Mục tiêu redirect công khai nghiêm ngặt hơn

Chúng tôi đã thắt chặt xử lý redirect xung quanh đăng nhập. Host công khai và scheme HTTP/HTTPS giờ được ghim phía server, vậy nên header bị giả mạo không còn có thể chuyển hướng người dùng đến một tên miền do kẻ tấn công kiểm soát. Một trường hợp hiếm khi số cổng nội bộ có thể rò rỉ vào URL redirect cũng đã được giải quyết.

🧱 Một phòng máy bình tĩnh hơn — giới hạn kết nối DB và timeout request rõ ràng

Để các đợt nặng (như nhập CSV) không ép ngân sách kết nối cơ sở dữ liệu chung, và để ngăn các request treo lâu giữ tài nguyên server, chúng tôi đã đặt các giới hạn trên rõ ràng:

  • Số kết nối DB giữ mỗi instance API giờ được đưa ra ngoài qua biến môi trường, và server fail fast khi khởi động nếu các giá trị không được đặt hoặc không hợp lệ (vậy nên lưới an toàn không thể bị vô hiệu hóa âm thầm bởi cấu hình sai).
  • Các request GraphQL có timeout 30 giây. Vượt quá nó trả về một mã lỗi chuyên dụng có thể phân biệt với lỗi xác thực. Các kết nối subscription thời gian thực được miễn và tiếp tục mở lâu cho các phiên dài, như trước đây.
  • Chúng tôi cũng ghim timeout đọc/ghi của HTTP server để gia cố chống lại cạn kiệt tài nguyên TCP kiểu Slowloris.

Thời gian phản hồi tải bình thường (nhập CSV 1.000 hàng thường hoàn thành trong 5–10 giây) không bị ảnh hưởng.

📦 Cập nhật dependency theo khuyến cáo bảo mật

Chúng tôi đã cập nhật next, mermaid, ws, protobufjs, postcss, và brace-expansion lên các phiên bản đã được vá theo khuyến cáo. Không có thay đổi chức năng người dùng nhìn thấy — chỉ theo kịp các bản sửa upstream.

📮 Liên hệ với chúng tôi

Nếu bạn có câu hỏi hoặc góp ý, đừng ngần ngại liên hệ với chúng tôi.