fix: preserve OpenVINO companions in HF streaming#1642
Conversation
|
@codex review |
Performance BenchmarksCompared
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 51ad6e285f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…t07-openvino-streaming-companions-20260610
|
@codex address that feedback. Address all four currently unresolved threads on the exact current head, including staged companion hashing, scanner-selection-aware sidecar suppression, fail-closed oversize OpenVINO weights, and the Code Quality logging fix. Add focused end-to-end regressions, preserve bounded behavior, push a new head, and report tests. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 545c3f3162
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 19eeffb04c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Summary
Testing
|
|
@codex review the exact current head after the OpenVINO companion fixes. Recheck scanner selection, sidecar hashing, oversize fail-closed behavior, and Code Quality scope. |
…o-streaming-companions-20260610' into mdangelo/codex/hf-fp-t07-openvino-streaming-companions-20260610 # Conflicts: # modelaudit/core.py # modelaudit/scanners/openvino_scanner.py # tests/scanners/test_openvino_scanner.py # tests/test_streaming_scan.py
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8f686eaba6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…o-streaming-companions-20260610' into mdangelo/codex/hf-fp-t07-openvino-streaming-companions-20260610
|
Codex Review: Didn't find any major issues. Another round soon, please! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Codex Review: Didn't find any major issues. Swish! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
…o-streaming-companions-20260610' into mdangelo/codex/hf-fp-t07-openvino-streaming-companions-20260610 # Conflicts: # modelaudit/core.py # tests/test_streaming_scan.py
1 similar comment
|
Codex Review: Didn't find any major issues. Hooray! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Pinned QA input from the HF sweep: |
|
Additional HF sweep validation on current head
Command was the same local-vs-streaming OpenVINO-only reproducer used in the PR body, limited to |
|
Auto-merge is temporarily disabled for one additional pinned OpenVINO QA case. |
Summary
Testing
|
|
Selected-file current-head QA is clean on
Exact-head Codex review remains no-issues and CI is green, so squash auto-merge is re-enabled; the remaining gate is the requested |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 307c6b3c6b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Codex Review: Didn't find any major issues. More of your lovely PRs please. ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Summary
Fixes Hugging Face OpenVINO XML/BIN companion handling so streaming and delete-after-scan workflows preserve the logical model pair. Selected OpenVINO XML files now pull in exact same-stem
.bincompanions before size checks, stream the XML as the logical scan unit, and keep the companion staged until the XML scan consumes it.Root cause: HF streaming could select or yield OpenVINO XML/BIN files independently, so delete-after-scan could remove the
.binbefore the XML scanner checked it, producing false S701 missing-sidecar findings. Local scans could also route a declared OpenVINO weights.binas generic PyTorch/binary/protobuf content, producing false S901 failures.Security tradeoffs
Standalone
.binrouting is suppressed only for a same-stem.xmlthat is locally accepted byOpenVinoScanner.can_handle()and when OpenVINO is selected/allowed. Remote companion inclusion is likewise gated by bounded content routing of the XML as OpenVINO (or inconclusive XML model routing). Non-OpenVINO XML near-matches still yield and scan their.binindependently.Fail-closed behavior is preserved: missing companions still report S701, symlink/path traversal companions remain critical, unconsumed deferred sidecars fall back to standalone scanning, and sidecars changed while preserved for XML scan produce an operationally incomplete exit 2 result. OpenVINO scanner-side max file size enforcement now also covers associated
.binweights.Validation
uv run ruff format modelaudit/ packages/modelaudit-picklescan/src packages/modelaudit-picklescan/tests tests/-> cleanuv run ruff check --fix modelaudit/ packages/modelaudit-picklescan/src packages/modelaudit-picklescan/tests tests/-> all checks passeduv run mypy modelaudit/ packages/modelaudit-picklescan/src packages/modelaudit-picklescan/tests tests/-> success, no issues in 474 files6 passedtests/scanners/test_openvino_scanner.py tests/test_streaming_scan.py tests/utils/sources/test_huggingface.py tests/test_scanner_selection.py tests/cache/test_cache_correctness.py->569 passed, 5 skippedPROMPTFOO_DISABLE_TELEMETRY=1 NO_ANALYTICS=1 uv run pytest -n auto -m "not slow and not integration" --maxfail=1->17388 passed, 1292 skipped, 39 warnings in 809.04sgit diff --check origin/main...HEAD-> cleancb375ae849cfec011a6154c5724faf29b249706f-> green, including Python 3.10, Quick Feedback Python 3.12, Python 3.13, Windows Python 3.11, lint, type check, CodeQL, docs, Docker CI, dependency audit, benchmarks, andCI SuccessPinned real-model QA command:
Pinned real-model outcomes:
sentence-transformers/all-MiniLM-L6-v2 @ 1110a243fdf4706b3f48f1d95db1a4f5529b4d41: local exit 0, streaming exit 0, bothscanners=["openvino"], no S701/S901/missing-sidecar records.sentence-transformers/all-mpnet-base-v2 @ e8c3b32edf5434bc2275fc9bab85f82640a19130: local exit 0, streaming exit 0, bothscanners=["openvino"], no S701/S901/missing-sidecar records.Additional HF sweep QA on current head:
sentence-transformers/all-MiniLM-L12-v2 @ a50ef00143b4d5391434df20ae11632588ac25be: local exit 0, streaming exit 0,scanners=["openvino"], no S701/S901/missing-sidecar records.intfloat/multilingual-e5-base @ d128750597153bb5987e10b1c3493a34e5a4502a: local exit 0, streaming exit 0,scanners=["openvino"], no S701/S901/missing-sidecar records. This model's selected OpenVINO files total1,110,184,232bytes, so the bounded validation usedMAX_BYTES=1_200_000_000after confirming the 900 MB cap fails closed.