Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package skillspector for openSUSE:Factory checked in at 2026-11-03 17:58:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/skillspector (Old) and /work/SRC/openSUSE:Factory/.skillspector.new.1257 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "skillspector" Tue Nov 3 17:58:24 2026 rev:13 rq:1394609 version:2.13.3 Changes: -------- --- /work/SRC/openSUSE:Factory/skillspector/skillspector.changes 2026-10-31 23:11:40.121119571 +0100 +++ /work/SRC/openSUSE:Factory/.skillspector.new.1257/skillspector.changes 2026-11-03 17:59:47.533932164 +0100 @@ -1,0 +2,21 @@ +Mon Nov 2 13:22:36 UTC 2026 - Martin Pluskal <[email protected]> + +- Update to version 2.13.3: + * Scan integrity: baseline and recursive reports can no longer + overwrite the primary input or a child skill input, missing + custom YARA rule directories report incomplete inspection, + and artifact inspection continues after a matcher timeout + * Detection coverage: npx commands in JSON MCP configs, Pipenv + dependencies and locked versions, urllib-header credential + flows, agent-memory writes from test carriers, CRLF-shebang + launchers, and restored PowerShell SC3/P2 checks + * Deselect two retry-after deadline tests: the Factory SDK names + the rate-limit failure OpenAIRateLimitError, not RateLimitError + (deterministic mismatch; deadline behavior itself still passes + and stays covered by the build_context deadline tests) + * Fewer false incomplete scans: bounded shell syntax, generated + browser-template text, and Markdown code-fence line handling + * Large scans: configurable tool-description batch limit and a + longer default workflow deadline + +------------------------------------------------------------------- Old: ---- skillspector-2.13.1.tar.gz skillspector-2.13.2.tar.gz New: ---- skillspector-2.13.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ skillspector.spec ++++++ --- /var/tmp/diff_new_pack.KcJRDD/_old 2026-11-03 17:59:48.461971024 +0100 +++ /var/tmp/diff_new_pack.KcJRDD/_new 2026-11-03 17:59:48.466971233 +0100 @@ -21,7 +21,7 @@ # %%{primary_python} so it stays correct as the primary interpreter moves. %define pythons %{primary_python} Name: skillspector -Version: 2.13.2 +Version: 2.13.3 Release: 0 Summary: Security scanner for AI agent skills License: Apache-2.0 @@ -217,13 +217,22 @@ # the spawned cone import overruns the 1 s bound on aarch64 (cold # "import skillspector" alone measures 9.8 s here). # +# 2.13.3 deselects two retry-after deadline tests of a different family: +# test_formatting_retry_after_cannot_exceed_shared_deadline[True/False] +# expects the preserved provider failure to be named "RateLimitError", +# but the Factory SDK names it "OpenAIRateLimitError", so both +# parametrizations fail deterministically. The deadline behavior itself +# is fine (RUNTIME_LIMIT is reported); only the class-name assertion +# mismatches. Deadline behavior stays covered by the build_context +# deadline tests, which do run. +# # Deselecting keeps the build gate meaningful without hiding a detection # failure: the same resource bounds are asserted deterministically by the # tests that monkeypatch the budget rather than racing it (e.g. # test_static_runtime_limit_is_reported_as_partial, # test_static_output_limit_is_reported_as_partial, and the build_context # deadline tests), and those do run. -%pytest --deselect tests/unit/test_mcp_server.py::test_mcp_stdio_initialize_registers_scan_skill --deselect tests/unit/test_baseline_mcp.py::test_stdio_mcp_preserves_compact_verdicts_and_ignores_shipped_baseline --deselect tests/unit/test_input_handler_ssrf.py::TestGitCloneSSRF::test_github_url_allowed --deselect tests/unit/test_input_handler_ssrf.py::TestGitCloneSSRF::test_gitlab_url_allowed --deselect tests/unit/test_input_handler_ssrf.py::TestDownloadSSRF::test_raw_githubusercontent_allowed --deselect tests/unit/test_input_handler_ssrf.py::TestDownloadSSRF::test_download_does_not_follow_redirects --deselect tests/unit/test_input_handler.py::test_validate_url_host_scp_extracts_github --deselect tests/unit/test_input_handler.py::test_scp_valid_host_clones --deselect tests/unit/test_input_handler.py::test_https_url_unchanged --deselect "tests/nodes/analyzers/test_bundled_execution_surface.py::test_discovery_parser_bounds_and_ledger_table[malformed_schema]" --deselect tests/test_bund led_execution_surface_acceptance.py::test_public_cli_exit_contract --deselect tests/test_bundled_execution_surface_acceptance.py::test_recursive_single_child_routes_execution_surfaces_from_child_root --deselect tests/test_bundled_execution_surface_acceptance.py::test_cli_fail_on_incomplete_is_opt_in --deselect tests/nodes/test_security_end_to_end.py::test_rd04_large_file_pair_detects_start_boundary_and_end --deselect tests/nodes/test_security_end_to_end.py::test_nine_case_contract_across_public_surfaces --deselect tests/nodes/test_security_remediation.py::test_five_megabyte_normalized_static_scan_stays_below_memory_ceiling --deselect tests/nodes/test_security_end_to_end.py::test_cross_window_separator_pair_across_public_surfaces --deselect tests/unit/test_patterns.py::TestPrivilegeEscalation::test_pe3_repeated_nouns_have_bounded_qualifier_cost --deselect tests/unit/test_cli_subprocess.py::test_registry_unsupported_options_stop_before_input_or_output_access --deselect tests/unit/test _cli_subprocess.py::test_registry_default_options_still_scan --deselect tests/unit/test_cli_subprocess.py::test_recursive_medium_recommendation_matches_direct_scan --deselect tests/nodes/test_nested_artifacts.py::test_typescript_declaration_near_misses_are_bounded_and_stay_executable --deselect tests/test_batch_scan_security.py::test_worker_startup_has_a_separate_bound +%pytest --deselect tests/unit/test_mcp_server.py::test_mcp_stdio_initialize_registers_scan_skill --deselect tests/unit/test_baseline_mcp.py::test_stdio_mcp_preserves_compact_verdicts_and_ignores_shipped_baseline --deselect tests/unit/test_input_handler_ssrf.py::TestGitCloneSSRF::test_github_url_allowed --deselect tests/unit/test_input_handler_ssrf.py::TestGitCloneSSRF::test_gitlab_url_allowed --deselect tests/unit/test_input_handler_ssrf.py::TestDownloadSSRF::test_raw_githubusercontent_allowed --deselect tests/unit/test_input_handler_ssrf.py::TestDownloadSSRF::test_download_does_not_follow_redirects --deselect tests/unit/test_input_handler.py::test_validate_url_host_scp_extracts_github --deselect tests/unit/test_input_handler.py::test_scp_valid_host_clones --deselect tests/unit/test_input_handler.py::test_https_url_unchanged --deselect "tests/nodes/analyzers/test_bundled_execution_surface.py::test_discovery_parser_bounds_and_ledger_table[malformed_schema]" --deselect tests/test_bund led_execution_surface_acceptance.py::test_public_cli_exit_contract --deselect tests/test_bundled_execution_surface_acceptance.py::test_recursive_single_child_routes_execution_surfaces_from_child_root --deselect tests/test_bundled_execution_surface_acceptance.py::test_cli_fail_on_incomplete_is_opt_in --deselect tests/nodes/test_security_end_to_end.py::test_rd04_large_file_pair_detects_start_boundary_and_end --deselect tests/nodes/test_security_end_to_end.py::test_nine_case_contract_across_public_surfaces --deselect tests/nodes/test_security_remediation.py::test_five_megabyte_normalized_static_scan_stays_below_memory_ceiling --deselect tests/nodes/test_security_end_to_end.py::test_cross_window_separator_pair_across_public_surfaces --deselect tests/unit/test_patterns.py::TestPrivilegeEscalation::test_pe3_repeated_nouns_have_bounded_qualifier_cost --deselect tests/unit/test_cli_subprocess.py::test_registry_unsupported_options_stop_before_input_or_output_access --deselect tests/unit/test _cli_subprocess.py::test_registry_default_options_still_scan --deselect tests/unit/test_cli_subprocess.py::test_recursive_medium_recommendation_matches_direct_scan --deselect tests/nodes/test_nested_artifacts.py::test_typescript_declaration_near_misses_are_bounded_and_stay_executable --deselect tests/test_batch_scan_security.py::test_worker_startup_has_a_separate_bound --deselect "tests/unit/test_structured_response.py::test_formatting_retry_after_cannot_exceed_shared_deadline[False]" --deselect "tests/unit/test_structured_response.py::test_formatting_retry_after_cannot_exceed_shared_deadline[True]" %files %license LICENSE ++++++ skillspector-2.13.1.tar.gz -> skillspector-2.13.3.tar.gz ++++++ ++++ 14678 lines of diff (skipped)
