{"old": "/home/jenkins/agent/workspace/multiarch/src-openeuler/aarch64/witty-compat/old_rpms/", "new": "/home/jenkins/agent/workspace/multiarch/src-openeuler/aarch64/witty-compat/new_rpms/", "compare_result": "pass", "compare_details": {"same": {"same_details": {"old": ["witty-compat-0.2.1-12.oe1.noarch.rpm"], "new": ["witty-compat-0.2.1-30.oe1.noarch.rpm"]}, "same_num": 1}, "diff": {"diff_details": {"witty-compat": {"name": {"old": "witty-compat-0.2.1-12.oe1.noarch.rpm", "new": "witty-compat-0.2.1-30.oe1.noarch.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {"more": ["/usr/share/witty-compat/tools/tuning_advice.py", "/usr/share/witty-compat/knowledge/logs", "/usr/share/witty-compat/tools/stack_health.py", "/usr/share/witty-compat/tools/bench_wrap.py", "/usr/share/witty/opencode/skills/witty-compat/ascend-cann/oech_wrapper.py", "/usr/share/witty-compat/tools/kabi_check.py", "/usr/share/witty-compat/tools/freshness_check.py", "/usr/share/witty/opencode/skills/witty-compat/tuning-advice/SKILL.md", "/usr/share/witty-compat/tools/benchmark_compare.py", "/usr/share/witty/opencode/skills/witty-compat/tuning-advice", "/usr/share/witty-compat/tools/probe_ladder.py", "/usr/share/witty-compat/tools/sweep.py"]}}}, "diff_num": 0}, "less": {"less_details": {}, "less_num": 0}, "more": {"more_details": {}, "more_num": 0}}, "pr_link": "https://gitcode.com/src-openeuler/witty-compat/pull/5", "pr_changelog": "* Mon Aug 31 2026 Witty Team <intelligence@openeuler.org> - 0.2.1-30\n- sweep: add --serve-extra/--serve-env passthrough and --bench-tool benchmark mode that ingests tools/benchmark.py analysis JSON (ttft/tpot converted to ms); skip zero-total npu-smi HBM rows (26.0.rc1 table format); --report-from no longer requires --framework/--model\n- ascend-cann validate: count NPU devices via /dev/davinci[0-9]* (davinci_manager excluded) and match kernel modules by multi-pattern with WARN fallback instead of false FAIL; oech_wrapper annotates PCIe bandwidth-deviation FAILs with recheck hints; troubleshoot adds case 16\n- benchmark skill: document sweep --serve-extra/--serve-env/--bench-tool usage\n\n* Fri Aug 28 2026 Witty Team <intelligence@openeuler.org> - 0.2.1-29\n- ascend-vllm skill: add scipy to the install list (vllm_ascend attention import); troubleshoot new cases: borrowing ATB/NNAL from a running container overlay on hosts without NNAL (cxx_abi_1 and stale asdsip libmki pitfalls), vllm-ascend 0.23.0 prebuilt custom-op .so requires CANN 9.1.0 symbol (rtFunctionGetMetaInfoSize) and needs --enforce-eager fallback on 9.0.1\n- benchmark skill: document that official bench clients can deadlock against a serve process already running on the same NPU device (client import chain initializes the device backend); use the plain HTTP client or --result-file ingestion instead\n\n* Thu Aug 27 2026 Witty Team <intelligence@openeuler.org> - 0.2.1-28\n- ascend-vllm skill: align version matrix with 910B field test (vllm-ascend 0.23.0 final, torch_npu 2.10.0.post4, triton-ascend 3.2.2, CANN 9.0.1); install.sh handles the vllm/vllm-ascend torch pin conflict via --no-deps plus final torch 2.10.0 restore; add pybind11 runtime dep; record verified combination and new blocker in compat.yaml; rewrite troubleshoot case 3\n\n* Tue Aug 25 2026 Witty Team <intelligence@openeuler.org> - 0.2.1-27\n- First-round field test fixes: tuning_advice rules for mid-range TTFT/TPOT plus --throughput alias; inference_config weight estimate reads quantization_config; stack_health parses both Firmware/Software Version board fields; pypi freshness cross-checks releases list against cached info.version; env_detect rejects unknown flags and reports per-process NPU ownership via cgroup; agent/skill docs cover wait-for-card strategy\n\n* Tue Aug 25 2026 Witty Team <intelligence@openeuler.org> - 0.2.1-26\n- install.sh: fix oec-hardware detection (hwcompatible lives in /usr/share/oech/lib, not site-packages) and hint source install for the ascend suite (!332 not yet in repos)\n- oech_wrapper: correct the no-suite hint accordingly\n\n* Tue Aug 25 2026 Witty Team <intelligence@openeuler.org> - 0.2.1-25\n- README: expand usage examples to cover all major capabilities\n\n* Tue Aug 25 2026 Witty Team <intelligence@openeuler.org> - 0.2.1-24\n- README: add update instructions for existing source installs\n\n* Tue Aug 25 2026 Witty Team <intelligence@openeuler.org> - 0.2.1-23\n- README: rewrite for readability (plain-language tool descriptions, usage examples, skill section rename)\n\n* Tue Aug 25 2026 Witty Team <intelligence@openeuler.org> - 0.2.1-22\n- README: document new tools (kabi/stack_health/freshness/probe_ladder/sweep/bench_wrap/tuning_advice/benchmark_compare) and framework skills\n- install.sh: detect oec-hardware as optional dependency (oech validate)\n\n* Tue Aug 25 2026 Witty Team <intelligence@openeuler.org> - 0.2.1-21\n- ascend-cann: oech_wrapper.py drives AscendTest directly (bypass interactive TUI, same approach as metax-maca)\n\n* Tue Aug 25 2026 Witty Team <intelligence@openeuler.org> - 0.2.1-20\n- Add benchmark_compare: cross-framework decision table from bench_wrap baselines (comparability grouping + scenario recommendations)\n- ascend-cann validate.sh: --oech flag checks oech ascend suite availability (oec-hardware !332)\n\n* Mon Aug 24 2026 Witty Team <intelligence@openeuler.org> - 0.2.1-19\n- sweep: progress heartbeat during serve startup and bench; tuning-advice entry triage (quick vs experiment track)\n\n* Mon Aug 24 2026 Witty Team <intelligence@openeuler.org> - 0.2.1-18\n- Add sweep: unattended parameter-space experiment harness (serve/bench lifecycle, SQLite, sensitivity report and calibration hints)\n\n* Fri Aug 21 2026 Witty Team <intelligence@openeuler.org> - 0.2.1-17\n- Add probe_ladder: six-layer read-only probe (device/driver/CANN env/torch_npu/framework/service) for bisecting serve startup failures\n\n* Fri Aug 21 2026 Witty Team <intelligence@openeuler.org> - 0.2.1-16\n- Add kabi_check: pre-install kernel KABI compatibility check for driver RPM/ko (pure-Python ELF parsing)\n- Add stack_health: firmware/driver/CANN/framework four-layer version consistency check\n- Add freshness_check: compat.yaml claimed versions vs PyPI/GitHub upstream latest\n- Add bench_wrap: official benchmark wrapper with unified schema and environment fingerprint\n- Add tuning_advice: rule-based inference tuning suggestions (symptom -> knob -> expectation)\n- Wire all new tools into compat-Agent tool table and mode routing\n* Tue Aug 18 2026 Witty Team <intelligence@openeuler.org> - 0.2.1-15\n- Bump release to satisfy check_spec_file monotonic increment\n* Tue Aug 18 2026 Witty Team <intelligence@openeuler.org> - 0.2.1-14\n- WITTY_COMPAT_HOME: plugin injects as real shell env var (shell.env hook), commands work from any cwd\n- inference-config: support multimodal nested text_config for model field extraction\n- env-detect skill: add failure-detection hint (empty output + non-zero exit \u2260 no device)\n* Tue Aug 18 2026 Witty Team <intelligence@openeuler.org> - 0.2.1-13\n- Fix env_detect import order bug (works without editable pip install)\n- env_detect/inference-config: use available HBM instead of total for TP/KV budget\n- Framework skills: add diagnostic trigger keywords + dynamic binary path detection\n- DiagnoseAgent: framework-layer fault association mapping\n- install.sh: support opencode.jsonc config for agent registration"}