Kiến trúc
Cách một cuộc gọi MCP được xác thực trở thành các chẩn đoán được cache và gom cụm trong khi các engine cục bộ vẫn giữ quyền nguồn sự thật.
Signalint là một MCP server chạy qua stdio cục bộ. Adapters là các module duy nhất thực thi các engine chẩn đoán; mọi tầng phía trên chúng đều hoạt động trên các đối tượng issue đã được chuẩn hóa. Luồng triển khai là tĩnh và cục bộ: không cần bất kỳ dịch vụ đám mây nào.
Luồng dữ liệu của check_files
- Server xác thực đối tượng tool thông qua các Zod schema nghiêm ngặt.
- Các đường dẫn được yêu cầu được giải quyết theo gốc dự án và kiểm tra lại sau khi chuẩn hóa symlink.
- Các mẫu glob ignore và việc loại trừ
node_modulesvô điều kiện sẽ loại bỏ các đường dẫn ngoài phạm vi. - Signalint đọc các snapshot và tính toán hash cấu hình engine.
- Các kết quả cache theo file được tái sử dụng; Oxlint và Biome (tùy chọn) chỉ nhận các trường hợp cache miss.
- tsc chỉ được bỏ qua khi các snapshot liên quan đến TypeScript được cung cấp vẫn trùng khớp với kết quả toàn bộ chương trình mới nhất.
- Các engine được bật hoạt động độc lập, do đó một thất bại không làm mất chẩn đoán của engine khác.
- Các lỗi được chuẩn hóa, lọc, gom cụm, sắp xếp với ưu tiên 1 đứng đầu và mặc định giới hạn ở 10 cụm.
- Trạng thái vòng lặp và số liệu được ghi lại trước khi trả về phản hồi JSON.
Chiến lược thực thi engine
Oxlint và Biome
Các engine này hoạt động theo từng file. Một cuộc gọi check_files sẽ hash từng file, dùng lại các mục trong SQLite khi key trùng khớp hoàn toàn và chỉ gửi các file cache miss tới adapter.
TypeScript
tsc kiểm tra toàn bộ chương trình (whole-program). Các hash file được cung cấp quyết định xem việc chạy tsc có cần thiết hay không, nhưng các file không bao giờ được truyền dưới dạng root của compiler. Cấu hình root thông thường sử dụng --project với trạng thái tăng dần (incremental state). Cấu hình root kiểu solution chứa references sẽ sử dụng --build, nhờ đó các dự án composite được tham chiếu sẽ được duyệt qua.
Giới hạn lưu trữ
Cache SQLite cập nhật mốc thời gian khi đọc và loại bỏ các hàng ít được sử dụng nhất (LRU) khi vượt quá 10.000 mục. Khi khởi động phiên, chỉ phần đuôi gần nhất có giới hạn được nạp lại; các lượt ghi xoay vòng file JSONL sang bản sao lưu .1 khi chạm giới hạn kích thước. Lệnh stats tính toán trên cả hai file được giữ lại.
Ranh giới tin cậy
Các tham số MCP được xử lý như dữ liệu không đáng tin vì một mô hình AI có thể bị prompt-inject bởi nội dung dự án. các đường dẫn tuyệt đối, thoát ra ngoài, bắt đầu bằng dấu gạch ngang và chứa ký tự NUL bị từ chối, mảng tham số bị giới hạn và các adapter thực thi các file nhị phân đã giải quyết mà không qua shell.
Đọc tổng quan chi tiết về bản triển khai hiện tại trong ARCHITECTURE.md và mô hình đe dọa trong SECURITY.md.