Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

scan exits 1 in human output but 0 with --json when every patch query returns nothing

Đã đóng Phù hợp với người mới
#1,062 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Một pull request liên quan đã được merge.

  • #1298 của @mikolalysenko — đã merge

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
85/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
rust
Lĩnh vực
cli

Hướng nghiên cứu

Bắt đầu bằng cách kiểm tra điều kiện mã thoát fetched == 0 trong crates/socket-patch-cli/src/commands/scan/mod.rs quanh dòng 2734 và logic tương đương trong vendor_flow.rs và hosted.rs. Sau đó, chuyển điều kiện kiểm tra đó vào hàm dùng chung discover_selected và xóa các bản sao cục bộ trong từng nhánh. Thêm một bài kiểm tra tính tương đương chạy cả chế độ quét dành cho người dùng và chế độ JSON với một fixture trong đó mọi truy vấn bản vá đều không trả về kết quả, xác minh mã thoát và đầu ra xem trước khớp nhau, rồi chạy bộ kiểm thử quét hiện có để xác nhận không có hồi quy.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

agent:triaged arch-audit bug priority:p3

[agent] Filed by the October 7 architecture audit campaign (core). Register: arch-audit register.

Kind: bug. Source: audit B54 (Part 2.2 / C11 drift), register C70.

Problem: run_scan's human arm treats Ok(discovered) with fetched == 0 as a fetch failure and exits 1 (scan/mod.rs#L2734). The JSON arms (agent apply, vendored run_vendor_json_path, report-only) accept the same result and exit 0 with an empty block. discover_selected returns Err only when every query fails. The vendored --dry-run GC preview and the hosted prune argument (args.prune || args.sync vs the policy-gated prune) also differ between the arms.

Symptoms: earlier bugs from the same fork: #424 (fixed), #732 (fixed), #744 (open). Impact: a CI job using scan --json and a developer running scan against the same API state get different exit codes and different previews; every fix has to land twice.

Proposed change: move the fetched == 0 rule (and the prune flag) into discover_selected/one shared decision, so both arms read it; delete the arm-local checks.

Size and scope: commands/scan/mod.rs, vendor_flow.rs, hosted.rs; under 100 lines. The full split is #843/#844 (C11).

Acceptance criteria:

  • A parity test runs each mode × {json, human} over one fixture where every successful query returns no patches, and compares exit codes and actions.
  • Existing scan suites stay green.

Dependencies: none; eases #844.


Generated by Claude Code

Ngôn ngữ chính
Rust
Star
8
Fork
1
Merge trung bình
16 giờ 35 phút
Pull request đã merge (30 ngày)
574

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của SocketDev/socket-patch

Tất cả issue của SocketDev/socket-patch

Issue tương tự

Thêm issue về Rust

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.