feat: add Rust kernel release gates#40
Conversation
|
Thank you for raising your pull request and contributing to VoScript. |
|
Claude encountered an error after 0s —— View job I'll analyze this and get back to you. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #40 +/- ##
==========================================
- Coverage 90.97% 90.90% -0.07%
==========================================
Files 83 84 +1
Lines 3644 3696 +52
==========================================
+ Hits 3315 3360 +45
- Misses 329 336 +7
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. |
There was a problem hiding this comment.
Pull request overview
This PR introduces explicit release governance for the Rust-backed kernel surface by adding (1) a typed “release gate” matrix describing selected Rust-backed paths and required evidence, and (2) a repository-owned public-release scanner enforced in CI to prevent accidental publication of private paths, real IDs, validation artifacts, or secret-like strings. It also bumps the internal voscript_core crate version to 0.8.4 and extends unit coverage for the new policy/code paths.
Changes:
- Added a Rust-kernel release-gate matrix (
release_gates.py) and unit coverage to validate “fail-closed”, rollback, CI gate, and regression/perf evidence expectations. - Added
public_release_scan.pyplus unit tests and a new CI job to block privacy/secret leakage in tracked files. - Bumped
voscript_coreversion from0.8.3to0.8.4(Rust crate + related tests/docs).
Reviewed changes
Copilot reviewed 12 out of 13 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
voscript-api/scripts/public_release_scan.py |
New repository-owned scanner for secret-like values, private paths, real IDs, and local-only artifacts in tracked files. |
tests/unit/test_public_release_scan.py |
Unit tests for placeholder allowances and leak detection in the public release scanner. |
tests/unit/test_kernel_release_gates.py |
Unit tests ensuring the release-gate matrix and required CI/workflow commands are present. |
tests/unit/test_kernel_bridge.py |
Updates expected voscript_core version to 0.8.4. |
doc/changelog.zh.md |
Changelog entry documenting the 0.8.4 gates and public release scan (Chinese). |
doc/changelog.en.md |
Changelog entry documenting the 0.8.4 gates and public release scan (English). |
crates/voscript_core/src/lib.rs |
Updates version assertion for PACKAGE_VERSION to 0.8.4. |
crates/voscript_core/Cargo.toml |
Bumps crate version to 0.8.4. |
Cargo.lock |
Updates lockfile to reflect voscript_core 0.8.4. |
app/providers/kernel_bridge/release_gates.py |
New typed release-gate matrix + policy validation helper for selected Rust-backed bridge paths. |
app/providers/kernel_bridge/__init__.py |
Exposes release-gate API from providers.kernel_bridge. |
.github/workflows/ci.yml |
Adds a CI job to run the public release scan. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| for rule in LINE_RULES: | ||
| if not rule.pattern.search(line): | ||
| continue | ||
| if rule.name == "machine-local path" and any( | ||
| path in line for path in PUBLIC_CONTAINER_PATHS | ||
| ): | ||
| continue | ||
| findings.append( | ||
| Finding(rule.name, rel_str, line_no, _excerpt(line), rule.advice) | ||
| ) |
| if gate.public_api_change: | ||
| gaps.append(f"{gate.name}: public API change is not allowed in 0.8.4") |
|
❤️ Great PR @MapleEve ❤️ The growth of the project is inseparable from user feedback and contribution. Thanks for your contribution! |
Summary
voscript_corecrate version to0.8.4and extend unit coverage for the gate matrix and scanner.Validation
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 python -m pytest tests/unit/ tests/test_security.py tests/test_voiceprint_db.py tests/test_job_service.py -q --tb=short-> 233 passedpython voscript-api/scripts/public_release_scan.py --root .-> passed, 195 tracked filesruff check app/ tests/unit/test_kernel_release_gates.py tests/unit/test_public_release_scan.py voscript-api/scripts/public_release_scan.py --ignore E501ruff format --check app/ tests/unit/test_kernel_release_gates.py tests/unit/test_public_release_scan.py voscript-api/scripts/public_release_scan.pycargo fmt --manifest-path crates/voscript_core/Cargo.toml -- --checkcargo test --manifest-path crates/voscript_core/Cargo.tomlcargo clippy --manifest-path crates/voscript_core/Cargo.toml --features python-bindings --all-targets -- -D warningsNotes