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.