@@ -1461,6 +1461,20 @@ fn run_scoped(args: &[String], lint_only: bool) -> ExitCode {
14611461 "status" : if observed { "observed_unverified" } else if npm_selected || python_lint_selected || rust_lint_selected || rust_comments_selected || rust_build_selected || rust_cve_selected || go_lint_selected || java_lint_selected || java_comments_selected || ( language == "java" && category == "dependencies" && dependency_configured) || ( cve_scope_configured) { "native_incomplete" } else if language == "java" && category == "comments" { if javadoc_configuration_unresolved { "configuration_unresolved" } else { "not_configured" } } else if let Some ( candidate) = java_checker. as_ref( ) { candidate. status } else { "not_integrated" } ,
14621462 "reason" : if rust_cve_selected { if observed { "rust_cve_database_freshness_unverified" } else { "rust_cve_native_incomplete" } } else if npm_selected { "npm_advisory_coverage_and_freshness_unverified" } else if planned_language { "planned_language_adapter_gap" } else if observed { "trusted_policy_and_coverage_unavailable" } else if java_lint_selected && java_p3c[ "local_observation_complete" ] == true { "p3c_declared_rulesets_unverified_coverage" } else if java_comments_selected && java_javadoc[ "maven_multifile_probes" ] . as_array( ) . is_some_and( |probes| probes. iter( ) . any( |probe| matches!( probe[ "observation" ] [ "native_status" ] . as_str( ) , Some ( "findings_observed_untrusted" | "clean_log_unverified" ) ) ) ) { "javadoc_multifile_probe_unverified_project_coverage" } else if java_comments_selected && java_javadoc[ "local_probe_complete" ] == true { "javadoc_single_file_probe_unverified_coverage" } else if language == "java" && category == "dependencies" && java_dependencies[ "observed_graph_count" ] . as_u64( ) . is_some_and( |count| count > 0 ) { "dependency_graph_observed_unverified_coverage" } else if cve_scope_configured && java_cve[ "observed_report_count" ] . as_u64( ) . is_some_and( |count| count > 0 ) { "cve_report_observed_database_unverified" } else if ( language == "java" && category == "dependencies" && dependency_configured) || cve_scope_configured || python_lint_selected || rust_lint_selected || rust_comments_selected || rust_build_selected || go_lint_selected || java_lint_selected || java_comments_selected { "native_scan_incomplete" } else if language == "java" && category == "comments" { if javadoc_configuration_unresolved { "javadoc_configuration_unresolved" } else { "not_configured" } } else if let Some ( candidate) = java_checker. as_ref( ) { candidate. reason } else { "native_adapter_not_integrated" }
14631463 } ) ;
1464+ // 原生Maven局部结果继续保留,但不能覆盖同一源码范围的Gradle未解析义务。
1465+ if let Some ( scope) = java_checker. as_ref ( ) . filter ( |scope| {
1466+ language == "java"
1467+ && matches ! ( category, "dependencies" | "cve" | "security" )
1468+ && matches ! (
1469+ scope. reason,
1470+ "checker_build_systems_mixed" | "gradle_model_not_resolved"
1471+ )
1472+ } ) {
1473+ candidate[ "checker_id" ] = json ! ( scope. checker_id) ;
1474+ candidate[ "status" ] = json ! ( scope. status) ;
1475+ candidate[ "reason" ] = json ! ( scope. reason) ;
1476+ candidate[ "next_action" ] = json ! ( scope. next_action) ;
1477+ }
14641478 if language == "kotlin" && category == "lint" && kotlin_lint. is_object ( ) {
14651479 candidate[ "checker_id" ] = json ! ( "kotlin.jvm.compiler" ) ;
14661480 candidate[ "status" ] = json ! ( "native_incomplete" ) ;
@@ -2108,8 +2122,12 @@ fn run_scoped(args: &[String], lint_only: bool) -> ExitCode {
21082122 if shell_lint. is_object ( ) {
21092123 crate :: check_shell_scan:: refresh ( & root, & mut shell_lint, deadline) ;
21102124 }
2125+ let gradle_model_unresolved = discovery
2126+ . checker_configurations
2127+ . iter ( )
2128+ . any ( |entry| entry. checker_id . starts_with ( "java.gradle." ) ) ;
21112129 let mut report = json ! ( {
2112- "schema_version" : if next[ "schema_version" ] == "0.21.0" || syntax_candidates[ "observations" ] . as_array( ) . is_some_and( |rows| rows. iter( ) . any( |row|row. get( "javascript_mode_observation" ) . is_some( ) ) ) { "0.60.0" } else if lint_only { "0.59.0" } else if next[ "repair_brief" ] [ "checker_id" ] == "java.maven.p3c" && next[ "repair_brief" ] [ "reason_code" ] == "p3c_configuration_not_confirmed" { "0.58.0" } else if next[ "repair_brief" ] [ "checker_id" ] == "java.maven.javadoc" { "0.57.0" } else if next[ "repair_brief" ] [ "checker_id" ] == "rust.cargo_clippy" { "0.56.0" } else if syntax_candidates[ "observations" ] . as_array( ) . is_some_and( |rows| rows. iter( ) . any( |row| row[ "language" ] =="erlang" && row. get( "structural_observations" ) . is_some( ) ) ) { "0.55.0" } else if next[ "schema_version" ] == "0.20.0" || syntax_candidates[ "observations" ] . as_array( ) . is_some_and( |rows| rows. iter( ) . any( |row| row[ "language" ] =="javascript" && row. get( "structural_observations" ) . is_some( ) ) ) { "0.54.0" } else if syntax_candidates[ "observations" ] . as_array( ) . is_some_and( |rows|rows. iter( ) . any( |row|row[ "language" ] =="cfquery" ) ) { "0.53.0" } else if shell_lint. is_object( ) || next[ "schema_version" ] =="0.17.0" { "0.52.0" } else if ruby_lint. is_object( ) || next[ "schema_version" ] == "0.15.0" { "0.51.0" } else if next[ "schema_version" ] == "0.14.0" { "0.50.0" } else if next[ "schema_version" ] == "0.13.0" || syntax_candidates[ "observations" ] . as_array( ) . is_some_and( |rows| rows. iter( ) . any( |row| row[ "language" ] == "go" && row. get( "structural_observations" ) . is_some( ) ) ) { "0.49.0" } else if syntax_candidates[ "observations" ] . as_array( ) . is_some_and( |rows| rows. iter( ) . any( |row| row. get( "structural_observations" ) . is_some( ) ) ) { "0.48.0" } else if zig_lint[ "schema_version" ] == "0.2.0" || next[ "schema_version" ] == "0.12.0" { "0.47.0" } else if zig_lint. is_object( ) { "0.46.0" } else if matches!( parsed. selection, Selection :: Language ( _) ) { "0.45.0" } else if swift_lint[ "schema_version" ] == "0.2.0" || next[ "schema_version" ] == "0.11.0" { "0.44.0" } else if swift_lint. is_object( ) { "0.43.0" } else if kotlin_lint. is_object( ) || next[ "schema_version" ] == "0.10.0" { "0.42.0" } else if matches!( next[ "schema_version" ] . as_str( ) , Some ( "0.8.0" | "0.9.0" ) ) { "0.41.0" } else if next[ "schema_version" ] == "0.7.0" { "0.40.0" } else if next[ "schema_version" ] == "0.6.0" { "0.39.0" } else { "0.38.0" } , "report_type" : "check_feedback" ,
2130+ "schema_version" : if gradle_model_unresolved { "0.61.0" } else if next[ "schema_version" ] == "0.21.0" || syntax_candidates[ "observations" ] . as_array( ) . is_some_and( |rows| rows. iter( ) . any( |row|row. get( "javascript_mode_observation" ) . is_some( ) ) ) { "0.60.0" } else if lint_only { "0.59.0" } else if next[ "repair_brief" ] [ "checker_id" ] == "java.maven.p3c" && next[ "repair_brief" ] [ "reason_code" ] == "p3c_configuration_not_confirmed" { "0.58.0" } else if next[ "repair_brief" ] [ "checker_id" ] == "java.maven.javadoc" { "0.57.0" } else if next[ "repair_brief" ] [ "checker_id" ] == "rust.cargo_clippy" { "0.56.0" } else if syntax_candidates[ "observations" ] . as_array( ) . is_some_and( |rows| rows. iter( ) . any( |row| row[ "language" ] =="erlang" && row. get( "structural_observations" ) . is_some( ) ) ) { "0.55.0" } else if next[ "schema_version" ] == "0.20.0" || syntax_candidates[ "observations" ] . as_array( ) . is_some_and( |rows| rows. iter( ) . any( |row| row[ "language" ] =="javascript" && row. get( "structural_observations" ) . is_some( ) ) ) { "0.54.0" } else if syntax_candidates[ "observations" ] . as_array( ) . is_some_and( |rows|rows. iter( ) . any( |row|row[ "language" ] =="cfquery" ) ) { "0.53.0" } else if shell_lint. is_object( ) || next[ "schema_version" ] =="0.17.0" { "0.52.0" } else if ruby_lint. is_object( ) || next[ "schema_version" ] == "0.15.0" { "0.51.0" } else if next[ "schema_version" ] == "0.14.0" { "0.50.0" } else if next[ "schema_version" ] == "0.13.0" || syntax_candidates[ "observations" ] . as_array( ) . is_some_and( |rows| rows. iter( ) . any( |row| row[ "language" ] == "go" && row. get( "structural_observations" ) . is_some( ) ) ) { "0.49.0" } else if syntax_candidates[ "observations" ] . as_array( ) . is_some_and( |rows| rows. iter( ) . any( |row| row. get( "structural_observations" ) . is_some( ) ) ) { "0.48.0" } else if zig_lint[ "schema_version" ] == "0.2.0" || next[ "schema_version" ] == "0.12.0" { "0.47.0" } else if zig_lint. is_object( ) { "0.46.0" } else if matches!( parsed. selection, Selection :: Language ( _) ) { "0.45.0" } else if swift_lint[ "schema_version" ] == "0.2.0" || next[ "schema_version" ] == "0.11.0" { "0.44.0" } else if swift_lint. is_object( ) { "0.43.0" } else if kotlin_lint. is_object( ) || next[ "schema_version" ] == "0.10.0" { "0.42.0" } else if matches!( next[ "schema_version" ] . as_str( ) , Some ( "0.8.0" | "0.9.0" ) ) { "0.41.0" } else if next[ "schema_version" ] == "0.7.0" { "0.40.0" } else if next[ "schema_version" ] == "0.6.0" { "0.39.0" } else { "0.38.0" } , "report_type" : "check_feedback" ,
21132131 "operation" : "check" , "selection" : parsed. selection. as_str( ) , "command_status" : if request_cancelled { "cancelled" } else { "incomplete" } ,
21142132 "exit_code" : if request_cancelled { 130 } else { 3 } , "delivery_decision" : if parsed. selection == Selection :: All { "incomplete" } else { "not_evaluated" } , "authority" : "local_unverified" ,
21152133 "reason" : if request_cancelled { "request_cancelled" } else if parsed. selection == Selection :: All { "full_project_obligations_and_trusted_policy_unavailable" } else if parsed. selection == Selection :: Java { "java_selection_obligations_and_trusted_policy_unavailable" } else { "language_selection_obligations_and_trusted_policy_unavailable" } ,
@@ -2144,6 +2162,7 @@ fn run_scoped(args: &[String], lint_only: bool) -> ExitCode {
21442162 | "0.58.0"
21452163 | "0.59.0"
21462164 | "0.60.0"
2165+ | "0.61.0"
21472166 )
21482167 )
21492168 {
@@ -2172,6 +2191,7 @@ fn run_scoped(args: &[String], lint_only: bool) -> ExitCode {
21722191 | "0.58.0"
21732192 | "0.59.0"
21742193 | "0.60.0"
2194+ | "0.61.0"
21752195 )
21762196 ) {
21772197 if let Some ( native) = report[ "native_results" ] . as_object_mut ( ) {
@@ -2199,6 +2219,7 @@ fn run_scoped(args: &[String], lint_only: bool) -> ExitCode {
21992219 | "0.58.0"
22002220 | "0.59.0"
22012221 | "0.60.0"
2222+ | "0.61.0"
22022223 )
22032224 ) {
22042225 if let Some ( native) = report[ "native_results" ] . as_object_mut ( ) {
@@ -2218,6 +2239,7 @@ fn run_scoped(args: &[String], lint_only: bool) -> ExitCode {
22182239 | "0.58.0"
22192240 | "0.59.0"
22202241 | "0.60.0"
2242+ | "0.61.0"
22212243 )
22222244 ) {
22232245 report[ "native_results" ] [ "ruby_lint" ] = ruby_lint. clone ( ) ;
@@ -2234,6 +2256,7 @@ fn run_scoped(args: &[String], lint_only: bool) -> ExitCode {
22342256 | "0.58.0"
22352257 | "0.59.0"
22362258 | "0.60.0"
2259+ | "0.61.0"
22372260 )
22382261 ) {
22392262 report[ "native_results" ] [ "shell_lint" ] = shell_lint. clone ( ) ;
0 commit comments