6 điểm bởi GN⁺ 2025-11-01 | 1 bình luận | Chia sẻ qua WhatsApp
  • Công cụ trực quan hóa mức độ cần xem xét của từng dòng và token trong phần thay đổi mã (diff) bằng màu sắc
  • Được thiết kế để nhấn mạnh "những phần đáng để xem lại" thay vì chỉ phát hiện lỗi đơn thuần
  • Có thể dùng ngay bằng cách thay github.com thành 0github.com trong URL GitHub Pull Request
  • Ở bên trong, hệ thống clone kho lưu trữ vào VM và chạy gpt-5-codex để tạo kết quả phân tích ở dạng cấu trúc JSON

Tổng quan

  • Công cụ này hiển thị dưới dạng heatmap mức độ mỗi phần của đoạn mã đã thay đổi cần được rà soát kỹ đến đâu trong quá trình code review
  • Màu sắc được gán dựa trên mức độ cần chú ý của con người, theo một cách tiếp cận khác với việc phát hiện lỗi đơn thuần

Cách hoạt động

  • Người dùng truy cập bằng cách đổi tên miền trong URL GitHub Pull Request từ github.com sang 0github.com
  • Hệ thống sẽ clone kho lưu trữ tương ứng vào máy ảo (VM) và chạy mô hình gpt-5-codex trên từng diff
  • Sau đó phân tích cấu trúc dữ liệu JSON do mô hình tạo ra và chuyển thành heatmap màu sắc

Tiêu chí phân tích

  • Thay vì chỉ xem có “lỗi hay không”, công cụ nhấn mạnh các phần mà con người cần kiểm tra lại như giá trị bí mật hard-code, chế độ mã hóa bất thường, logic phức tạp

1 bình luận

 
GN⁺ 2025-11-01
Ý kiến Hacker News
  • Với một codebase quen thuộc, tôi sẽ nghĩ kiểu “cảm ơn LLM, nhưng tôi hiểu rõ hơn nên không cần”
    Ngược lại, nếu là đoạn code không quen thì ngay từ đầu tôi cũng sẽ không phê duyệt review hay merge
    Dù vậy, kiểu ứng dụng LLM sáng tạo này vẫn là một thử nghiệm thú vị

    • Tôi đã tự thử. Chọn ngẫu nhiên Laravel PR #57499, thì ở mức 60% nó chỉ nhấn mạnh code test và bỏ lỡ các thay đổi quan trọng
      Code bị xóa cũng hoàn toàn không được hiển thị, còn chỉ những dòng không thay đổi lại bị highlight
      Nỗ lực đáng ghi nhận nhưng kết quả gây thất vọng
  • Tôi thắc mắc vì sao nó lại yêu cầu cả quyền hành động thay tôi trên GitHub
    cmux-agent yêu cầu quyền truy cập toàn bộ tài khoản GitHub
    Tôi định tạo issue nhưng repository lại tắt tính năng issue. Cảm giác hơi đáng ngờ

    • Nếu là repository công khai thì lẽ ra phải truy cập được mà không cần đăng nhập
      Tôi đã thử ở chế độ ẩn danh với các PR ví dụ, stack-auth, tinygrad, datasette và thấy hoạt động tốt
      Tôi không biết issue bị tắt, còn giờ thì trang issue đã bình thường
    • Đây là vấn đề mang tính cấu trúc của GitHub. Xem thảo luận liên quan thì mô hình quyền của OAuth App và GitHub App khác nhau
      GitHub App có thể chỉ cài trên từng repo cụ thể nhưng vẫn bao gồm quyền “hành động thay mặt người dùng”
      Vì thế mới xuất hiện popup trông đáng sợ như vậy
      Ứng dụng của tôi là codeinput.com, dùng OAuth App nên chỉ yêu cầu email, nhưng sau khi đăng nhập lại phải qua thêm bước cài đặt nên phát sinh luồng xác thực phức tạp
    • Ứng dụng yêu cầu đăng nhập GitHub ngay từ lần chạy đầu tiên. Trước đó thì không xem được gì cả
  • Hướng đi thì thú vị nhưng hiệu quả so với chi phí còn khá mơ hồ
    LLM hiện vẫn khó hiểu được ngữ cảnh dự án chỉ từ diff của một PR đơn lẻ
    Có khi một heatmap dựa trên dữ liệu từ bug trước đây hoặc tần suất thay đổi lại đáng tin hơn

    • Nếu dùng key miễn phí của Gemini thì lượng request mỗi ngày là đủ, nên với đội nhỏ (10~20 PR/ngày) chi phí không lớn
      Nếu có thể chạy bằng key cá nhân thì còn tốt hơn
    • Tôi tò mò không biết đã có công cụ tương tự nào phân tích entropy của diff chưa
    • Trước đây chúng tôi cũng từng thử clone repo vào VM rồi cho Codex khám phá, nhưng đã dừng vì vấn đề độ trễ và chi phí
      Có vẻ có thể giảm chi phí bằng distillation, nhưng vẫn đang thử nghiệm
      Tôi cũng đang nghĩ xem có cách nào tính tương quan với bug trong quá khứ mà không cần LLM hay không
    • Khi review code, tôi thường xuyên nhắc đến những dòng không nằm trong diff
      Những công cụ kiểu này rốt cuộc chỉ có thể giải quyết một phần vấn đề
    • Những phần code thay đổi thường xuyên chưa chắc đã là nơi nhiều bug
      Ngược lại, đó cũng có thể là vùng mà mọi người xem kỹ hơn
      Sẽ rất thú vị nếu kiểm chứng điều này bằng dữ liệu mã nguồn mở
  • Tôi khá vui khi PR của mình được lên HN
    Sẽ hay hơn nếu có thể để ngưỡng ở 0% và điều chỉnh đa dạng gradient màu
    Tôi cũng tò mò liệu có thể dùng công cụ này để review trước đoạn code AI tạo ra trước khi mở PR hay không

    • Màu sắc và gradient dự kiến sẽ được cho phép cấu hình
      Tôi cũng muốn hỏi ý kiến xem liệu nên có dạng lệnh render diff bằng CLI hoặc HTML hay không
    • Cuối cùng có khi dùng mấy công cụ này lại tốn thời gian hơn cả tự viết code
  • Tên miền 0github.com có vẻ khó duy trì lâu dài. Nên tìm miền khác sớm thì hơn

    • Tôi tò mò vì sao lại như vậy
  • Có vẻ sẽ đặc biệt hữu ích với những PR rất lớn
    Thay vì slider, sẽ tốt hơn nếu có thể bấm theo màu để hiểu ý nghĩa ngay
    Hiện tại hơi khó nắm bắt trong một cái nhìn, nhưng có lẽ dùng thường xuyên sẽ quen

    • Hiện giờ khi di chuột lên từ được highlight thì sẽ hiện tooltip
      Tôi định cải thiện để cả trên di động cũng thấy được. Không biết có cách hiển thị nào khác tốt hơn không
  • Tôi đã áp dụng thử cho một PR Rust đơn giản và thấy hoạt động khá tốt
    Tuy vậy sẽ tốt hơn nếu có thể tinh chỉnh vị trí highlight chi tiết hơn một chút
    Việc nó bắt được một lỗi gõ gần như khó thấy trong PR của đồng nghiệp khá ấn tượng
    Link PR đã test
    Một phần code bị xóa có được hiển thị, nhưng rất nhiều phần bị bỏ qua
    Tôi cũng tò mò không biết có phải nó tính khoảng cách giữa các token hay không

    • Phần triển khai nằm ở file này
      Hiện tại chỉ là dạng prompt LLM đơn giản
      Về sau có thể phát triển theo hướng phát hiện token hallucination. Tôi định tìm các bài báo liên quan
  • Gần đây có nhiều PR lớn do AI tạo ra nên tôi cảm nhận rõ nhu cầu về kiểu công cụ này
    Sẽ hay nếu nó có thể học phong cách của reviewer để cung cấp review phù hợp hơn
    Tôi đang kiểm tra xem commit này có đúng không

    • Logic chính nằm ở file này
      Tôi đang thử nghiệm review tự động bằng hệ thống DSPy để cá nhân hóa theo sở thích của reviewer
  • Thực ra, quan trọng hơn là tạo ra những PR có kích thước hợp lý đến mức không cần công cụ kiểu này
    Dạo này tôi review các PR do AI viết, rồi thậm chí AI còn trả lời lại comment của tôi
    Có vẻ cuối cùng cũng sẽ đến thời đại reviewer bị AI thay thế

  • Tôi bấm vào PR ví dụ mà cứ loading mãi. Có vẻ cần cache

    • Lẽ ra đã phải có cache, tôi đang kiểm tra
    • Đã sửa xong. Giờ hoạt động bình thường