Skip to content

feat(evaluation): add fuzz testing infrastructure and property-based tests#416

Merged
WilliamBerryiii merged 7 commits into
mainfrom
feat/fuzz-property-test-infrastructure
Apr 8, 2026
Merged

feat(evaluation): add fuzz testing infrastructure and property-based tests#416
WilliamBerryiii merged 7 commits into
mainfrom
feat/fuzz-property-test-infrastructure

Conversation

@WilliamBerryiii
Copy link
Copy Markdown
Member

Pull Request

Description

Add comprehensive fuzz testing and property-based testing infrastructure for the dataviewer backend and frontend. This introduces Hypothesis-based property tests for Python backend services, fast-check property and adversarial fuzz tests for TypeScript frontend utilities, a Python fuzz harness with seeded corpus, and CI workflow integration with Codecov coverage reporting.

Closes #415

Type of Change

  • 🐛 Bug fix (non-breaking change fixing an issue)
  • ✨ New feature (non-breaking change adding functionality)
  • 💥 Breaking change (fix or feature causing existing functionality to change)
  • 📚 Documentation update
  • 🏗️ Infrastructure change (Terraform/IaC)
  • ♻️ Refactoring (no functional changes)

Component(s) Affected

  • infrastructure/terraform/prerequisites/ - Azure subscription setup
  • infrastructure/terraform/ - Terraform infrastructure
  • infrastructure/setup/ - OSMO control plane / Helm
  • workflows/ - Training and evaluation workflows
  • training/ - Training pipelines and scripts
  • docs/ - Documentation

Changes

Backend (Python)

File Change
data-management/viewer/backend/tests/test_property_based.py 68 Hypothesis property tests across 8 classes covering dataset path parsing, metadata coercion, string sanitization, nested dict flattening, input validation, camera key parsing, timestamp splitting, and date string parsing
data-management/viewer/backend/pyproject.toml Add hypothesis dev dependency
tests/fuzz_harness.py Atheris-based Python fuzz harness targeting backend service functions
tests/generate_fuzz_corpus.py Corpus seed generator script producing 48 seed files
tests/fuzz-corpus/ 48 structured seed files for deterministic fuzz regression

Frontend (TypeScript)

File Change
data-management/viewer/frontend/src/lib/__tests__/api-client.property.test.ts Property tests for snakeToCamel key transformation and response parsing
data-management/viewer/frontend/src/lib/__tests__/api-client-fuzz.test.ts Adversarial fuzz tests for API client response handling
data-management/viewer/frontend/src/lib/__tests__/edit-store-frame-utils.property.test.ts Property tests for frame index utilities (clamping, wrapping, boundary)
data-management/viewer/frontend/src/lib/__tests__/playback-utils.property.test.ts Property tests for playback speed, frame timing, direction logic
data-management/viewer/frontend/src/lib/__tests__/playback-utils-fuzz.test.ts Adversarial fuzz tests for playback utilities with extreme inputs
data-management/viewer/frontend/src/lib/__tests__/trajectory-graph-geometry.property.test.ts Property tests for SVG coordinate mapping and geometry calculations
data-management/viewer/frontend/package.json Add fast-check dev dependency
data-management/viewer/frontend/src/lib/api-client.ts Export snakeToCamel for testability
data-management/viewer/frontend/vitest.config.ts Add fuzz test patterns to coverage exclusion

CI/CD

File Change
.github/workflows/fuzz-regression-tests.yml New workflow running Python fuzz corpus regression tests
.github/workflows/main.yml Add fuzz regression job to main pipeline
.github/workflows/pr-validation.yml Add fuzz regression job to PR validation pipeline
.github/workflows/pytest-tests.yml Wire backend property tests into existing pytest workflow
.github/workflows/dataviewer-backend-pytests.yml Add hypothesis to backend test dependencies
codecov.yml Add fuzz coverage flag

Documentation

File Change
docs/contributing/fuzzing.md Contributing guide for fuzz and property-based testing
docs/contributing/README.md Link to fuzzing guide
.cspell/general-technical.txt Add fuzz/property-test terminology

Testing Performed

  • Backend: 68 Hypothesis property tests pass (pytest tests/test_property_based.py)
  • Frontend: 566 tests pass across 58 test suites (npm run test)
  • Fuzz corpus: 48 seed files validated against harness
  • Terraform plan reviewed (no unexpected changes)
  • Terraform apply tested in dev environment
  • Training scripts tested locally with Isaac Sim
  • OSMO workflow submitted successfully
  • Smoke tests passed (smoke_test_azure.py)

Documentation Impact

  • Documentation updated in this PR

Checklist

…tests

- add Hypothesis property tests for backend services (68 tests in 8 classes)
- add fast-check property and fuzz tests for frontend utilities (566 tests)
- add Python fuzz harness with 48 corpus seed files for continuous fuzzing
- add CI fuzz regression workflow integrated with main and PR pipelines
- add Codecov fuzz flag and contributing guide for fuzzing

Closes #415
🧪 - Generated by Copilot
@WilliamBerryiii WilliamBerryiii requested a review from a team as a code owner April 8, 2026 04:11
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 8, 2026

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Snapshot Warnings

⚠️: No snapshots were found for the head SHA c0611ab.
Ensure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice.

OpenSSF Scorecard

PackageVersionScoreDetails
actions/actions/checkout de0fac2e4500dabe0009e67214ff5f5447ce83dd 🟢 6
Details
CheckScoreReason
Maintained⚠️ 23 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 2
Code-Review🟢 10all changesets reviewed
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Packaging⚠️ -1packaging workflow not detected
Signed-Releases⚠️ -1no releases found
Pinned-Dependencies🟢 3dependency not pinned by hash detected -- score normalized to 3
Security-Policy🟢 9security policy file detected
Branch-Protection🟢 6branch protection is not maximal on development and all release branches
SAST🟢 8SAST tool detected but not run on all commits
actions/actions/setup-python a309ff8b426b58ec0e2a45f0f869d46889d02405 🟢 5.2
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Maintained⚠️ 23 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 2
Binary-Artifacts🟢 10no binaries found in the repo
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Packaging⚠️ -1packaging workflow not detected
Fuzzing⚠️ 0project is not fuzzed
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 9security policy file detected
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST🟢 9SAST tool is not run on all commits -- score normalized to 9
actions/actions/upload-artifact bbbca2ddaa5d8feaa63e36b76fdaad77386f024f 🟢 5.7
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Maintained🟢 54 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 5
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Packaging⚠️ -1packaging workflow not detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies⚠️ 1dependency not pinned by hash detected -- score normalized to 1
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 9security policy file detected
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST🟢 10SAST tool is run on all commits
actions/astral-sh/setup-uv cec208311dfd045dd5311c1add060b2062131d57 UnknownUnknown
actions/codecov/codecov-action 57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 🟢 7.2
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Maintained🟢 56 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 5
Binary-Artifacts🟢 10no binaries found in the repo
Dependency-Update-Tool🟢 10update tool detected
Packaging⚠️ -1packaging workflow not detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies⚠️ 2dependency not pinned by hash detected -- score normalized to 2
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Vulnerabilities🟢 100 existing vulnerabilities detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration
License🟢 10license file detected
Security-Policy🟢 10security policy file detected
Fuzzing⚠️ 0project is not fuzzed
SAST🟢 9SAST tool detected but not run on all commits
CI-Tests🟢 929 out of 30 merged PRs checked by a CI test -- score normalized to 9
Contributors🟢 10project has 13 contributing companies or organizations
npm/fast-check 4.6.0 🟢 7.8
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 23 issue activity found in the last 90 days -- score normalized to 10
Code-Review⚠️ 1Found 1/7 approved changesets -- score normalized to 1
Security-Policy🟢 10security policy file detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Dependency-Update-Tool🟢 10update tool detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Pinned-Dependencies🟢 9dependency not pinned by hash detected -- score normalized to 9
CII-Best-Practices🟢 5badge detected: Passing
SAST🟢 9SAST tool detected but not run on all commits
License🟢 10license file detected
Fuzzing🟢 10project is fuzzed
Packaging🟢 10packaging workflow detected
Signed-Releases⚠️ -1no releases found
Branch-Protection🟢 3branch protection is not maximal on development and all release branches
Vulnerabilities⚠️ 19 existing vulnerabilities detected
CI-Tests🟢 1030 out of 30 merged PRs checked by a CI test -- score normalized to 10
Contributors🟢 10project has 4 contributing companies or organizations
npm/pure-rand 8.4.0 🟢 6
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10
Code-Review⚠️ 0Found 0/10 approved changesets -- score normalized to 0
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Pinned-Dependencies🟢 9dependency not pinned by hash detected -- score normalized to 9
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Security-Policy⚠️ 0security policy file not detected
Fuzzing🟢 10project is fuzzed
Signed-Releases⚠️ -1no releases found
License🟢 10license file detected
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
Packaging🟢 10packaging workflow detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
pip/atheris 3.0.0 🟢 5.9
Details
CheckScoreReason
Maintained⚠️ 00 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Code-Review🟢 7Found 23/30 approved changesets -- score normalized to 7
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Packaging⚠️ -1packaging workflow not detected
SAST⚠️ 0no SAST tool detected
Binary-Artifacts🟢 10no binaries found in the repo
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing🟢 10project is fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
Security-Policy🟢 10security policy file detected

Scanned Files

  • .github/workflows/fuzz-regression-tests.yml
  • data-management/viewer/frontend/package-lock.json
  • uv.lock

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Apr 8, 2026

Codecov Report

❌ Patch coverage is 66.66667% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 64.04%. Comparing base (cc2222d) to head (c0611ab).

Files with missing lines Patch % Lines
scripts/tests/pester.config.ps1 0.00% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##             main     #416       +/-   ##
===========================================
+ Coverage   50.48%   64.04%   +13.56%     
===========================================
  Files         267      250       -17     
  Lines       18188    15319     -2869     
  Branches     1903     2060      +157     
===========================================
+ Hits         9182     9811      +629     
+ Misses       8716     5220     -3496     
+ Partials      290      288        -2     
Flag Coverage Δ
pester 81.21% <0.00%> (ø)
pytest 92.40% <ø> (+85.51%) ⬆️
pytest-dataviewer 63.87% <ø> (+1.90%) ⬆️
pytest-fuzz 1.59% <ø> (?)
vitest 50.80% <100.00%> (+0.07%) ⬆️
Files with missing lines Coverage Δ
...a-management/viewer/frontend/src/lib/api-client.ts 84.00% <100.00%> (ø)
scripts/tests/pester.config.ps1 0.00% <0.00%> (ø)

... and 44 files with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Comment thread data-management/viewer/backend/tests/test_property_based.py Fixed
Comment thread data-management/viewer/backend/tests/test_property_based.py Fixed
Comment thread data-management/viewer/backend/tests/test_property_based.py Fixed
Comment thread data-management/viewer/backend/tests/test_property_based.py Fixed
Bill Berry added 4 commits April 8, 2026 07:43
- remove unused imports and strategy globals in test_property_based.py
- replace timezone.utc with datetime.UTC across test files
- replace assert False with raise AssertionError
- add NDArray import from numpy.typing
- fix list concatenation to use unpacking
- add interp to cspell dictionary and inline ignores for test strings

🔧 - Generated by Copilot
- auto-format test_property_based.py for ruff format compliance
- add cspell ignore for nums variable in api-client-fuzz.test.ts

🔧 - Generated by Copilot
- pin hypothesis to ==6.151.11 in backend pyproject.toml
- pin fast-check to 4.6.0 in frontend package.json

🔒 - Generated by Copilot
Copy link
Copy Markdown
Contributor

@nguyena2 nguyena2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The fuzzing docs and Codecov config look slightly inconsistent: docs/contributing/fuzzing.md says fuzz coverage is merged without a separate flag, but codecov.yml introduces a dedicated pytest-fuzz flag. Could we align the docs with the current behavior?

…verage path conflicts

- correct fuzzing docs to reference pytest-fuzz flag instead of pytest
- update coverage file path from logs/coverage.xml to logs/coverage-fuzz.xml in docs
- add missing pytest-fuzz patch coverage entry in codecov.yml
- fix codecov.yml header comment to list all flags accurately
- add terraform project and patch status entries to codecov.yml
- rename Pester coverage output from coverage.xml to coverage-pester.xml to avoid overwriting pytest coverage

📝 - Generated by Copilot
@WilliamBerryiii
Copy link
Copy Markdown
Member Author

The fuzzing docs and Codecov config look slightly inconsistent: docs/contributing/fuzzing.md says fuzz coverage is merged without a separate flag, but codecov.yml introduces a dedicated pytest-fuzz flag. Could we align the docs with the current behavior?

Thank you for catching this, @nguyena2. We aligned the docs and Codecov config in 7fdc1bd with the following changes:

  • docs/contributing/fuzzing.md — corrected all flag references from pytest to pytest-fuzz and updated the coverage file path from logs/coverage.xml to logs/coverage-fuzz.xml to match the actual fuzz-regression-tests.yml workflow
  • codecov.yml — added the missing pytest-fuzz patch coverage entry, added terraform project and patch status entries (previously defined as a flag but missing status checks), and updated the header comment to accurately list all six flags
  • Pester coverage path conflict — renamed Pester coverage output from logs/coverage.xml to logs/coverage-pester.xml in both pester.config.ps1 and pester-tests.yml to prevent overwriting the pytest coverage file

@WilliamBerryiii WilliamBerryiii merged commit d97d42c into main Apr 8, 2026
31 checks passed
@WilliamBerryiii WilliamBerryiii deleted the feat/fuzz-property-test-infrastructure branch April 8, 2026 20:25
jjottar pushed a commit to jjottar/physical-ai-toolchain that referenced this pull request Apr 9, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.5.0](microsoft/physical-ai-toolchain@v0.4.0...v0.5.0)
(2026-03-26)


### ✨ Features

* add dataviewer web application for dataset analysis and annotation
([microsoft#375](microsoft#375))
([c44d7bb](microsoft@c44d7bb))
* add return type annotations to cli_args functions
([microsoft#476](microsoft#476))
([35523ee](microsoft@35523ee))
* add YAML config schema with pydantic validation for ROS 2 recording
([microsoft#376](microsoft#376))
([1fa5243](microsoft@1fa5243))
* **agents:** Copilot agents and skills for dataviewer and OSMO training
workflows.
([microsoft#444](microsoft#444))
([8b72daf](microsoft@8b72daf))
* **build:** add automated ms.date freshness checking
([microsoft#448](microsoft#448))
([f92ddbc](microsoft@f92ddbc))
* **build:** add CLA section, Dependabot security prefix, and OWASP ZAP
DAST scan
([microsoft#241](microsoft#241))
([083a8af](microsoft@083a8af))
* **build:** add coverage.py configuration to pyproject.toml
([microsoft#428](microsoft#428))
([eac7426](microsoft@eac7426))
* **build:** add Go CI pipeline with golangci-lint and go test
([microsoft#351](microsoft#351))
([b27e4fb](microsoft@b27e4fb))
* **build:** add OpenSSF Scorecard workflow and badge
([microsoft#431](microsoft#431))
([98a62e7](microsoft@98a62e7))
* **build:** add release artifact signing and SBOM attestation
([microsoft#480](microsoft#480))
([b226e96](microsoft@b226e96))
* **build:** add TFLint reusable GitHub Actions workflow
([microsoft#229](microsoft#229))
([34d5575](microsoft@34d5575))
* **build:** split Go CI into separate lint and test pipelines
([microsoft#354](microsoft#354))
([2dec155](microsoft@2dec155))
* **dataviewer:** add authentication middleware and CSRF protection for
mutation endpoints
([microsoft#432](microsoft#432))
([77c8a01](microsoft@77c8a01))
* **docs:** create training documentation hub with guides and migration
([microsoft#380](microsoft#380))
([0fdccc5](microsoft@0fdccc5))
* **docs:** port Docusaurus documentation site with full build
validation
([microsoft#182](microsoft#182))
([29dd640](microsoft@29dd640))
* fix and deploy dataviewer
([microsoft#498](microsoft#498))
([c922d49](microsoft@c922d49))
* **inference:** add AzureML and local LeRobot inference workflows
([microsoft#438](microsoft#438))
([f7d786a](microsoft@f7d786a))
* **inference:** add MLflow trajectory plots and multi-source support to
OSMO inference workflow
([microsoft#421](microsoft#421))
([8637458](microsoft@8637458))
* **infra:** add blob storage lifecycle policies and folder structure
([microsoft#179](microsoft#179))
([101a6e8](microsoft@101a6e8))
* **infrastructure:** add optional observability and compute feature
flags
([microsoft#437](microsoft#437))
([9eba0da](microsoft@9eba0da))
* **infrastructure:** add private Linux Isaac Sim VM deployment option
([microsoft#348](microsoft#348))
([3748c2d](microsoft@3748c2d))
* **infrastructure:** add terraform-docs auto-generation pipeline
([microsoft#358](microsoft#358))
([6565caa](microsoft@6565caa))
* **infrastructure:** harden Isaac Sim VM deployment with encryption and
spot options
([microsoft#355](microsoft#355))
([6ebc1f2](microsoft@6ebc1f2))
* **repo:** migrate to domain-driven architecture
([microsoft#270](microsoft#270))
([a339e70](microsoft@a339e70))
* **scripts:** add --config-preview and deployment summary to submission
scripts
([microsoft#499](microsoft#499))
([4069806](microsoft@4069806))
* **scripts:** add Copilot attribution footer validation to frontmatter
linting
([microsoft#378](microsoft#378))
([4d595f2](microsoft@4d595f2))
* **src:** add dataviewer web application with storage adapter layer
([microsoft#404](microsoft#404))
([8a9fb70](microsoft@8a9fb70))


### 🐛 Bug Fixes

* **build:** add GHSA to cspell custom dictionary
([microsoft#315](microsoft#315))
([67db81a](microsoft@67db81a))
* **build:** correct codecov report_type input for terraform test
uploads
([microsoft#324](microsoft#324))
([d90d66d](microsoft@d90d66d))
* **build:** expand CODEOWNERS coverage to critical paths
([microsoft#505](microsoft#505))
([bafade1](microsoft@bafade1))
* **build:** pin Docker base image and pip dependencies with Dependabot
coverage
([microsoft#497](microsoft#497))
([d3d7ea4](microsoft@d3d7ea4))
* **build:** pin pydantic version and use uv in config schema validation
workflow
([microsoft#493](microsoft#493))
([28d823f](microsoft@28d823f))
* **build:** pin uv installer to versioned URL
([microsoft#495](microsoft#495))
([8d8541b](microsoft@8d8541b))
* **build:** remediate GHSA vulnerabilities flagged by OSSF Scorecard
([microsoft#271](microsoft#271))
([49b6e58](microsoft@49b6e58))
* **build:** remove README frontmatter, add FrontmatterExcludePaths,
enforce Pester 5
([microsoft#443](microsoft#443))
([641d0f3](microsoft@641d0f3))
* **build:** resolve CI failures for release 0.5.0 PR
([microsoft#174](microsoft#174))
([62c9900](microsoft@62c9900))
* **build:** resolve codecov PR comment suppression
([microsoft#523](microsoft#523))
([5603bd7](microsoft@5603bd7))
* **build:** use npm ci for deterministic frontend dependency install
([microsoft#491](microsoft#491))
([ee8b5d3](microsoft@ee8b5d3)),
closes
[microsoft#490](microsoft#490)
* **ci:** add `wait_for_ci` to Codecov configuration
([microsoft#183](microsoft#183))
([370cf44](microsoft@370cf44))
* **CI:** Issue 116 clean up dataviewer tests
([microsoft#184](microsoft#184))
([f466c23](microsoft@f466c23))
* **ci:** pin pydantic to ==2.12.5 across all references
([microsoft#230](microsoft#230))
([9d841d5](microsoft@9d841d5))
* **dataviewer:** add HTTP Range support for blob video streaming
([microsoft#165](microsoft#165))
([8adde50](microsoft@8adde50))
* **dataviewer:** remediate CodeQL alerts and align ruff config
([microsoft#419](microsoft#419))
([eb6fac9](microsoft@eb6fac9))
* **dataviewer:** remediate path traversal and input validation
vulnerabilities
([microsoft#413](microsoft#413))
([0a1d2ca](microsoft@0a1d2ca))
* **docs:** remove trailingSlash: false for GitHub Pages compatibility
([microsoft#228](microsoft#228))
([a78cb97](microsoft@a78cb97))
* **gpu:** add GPU Operator validation dependencies to GRID driver
installer
([microsoft#441](microsoft#441))
([eec42da](microsoft@eec42da))
* **infrastructure:** add zone-redundant config to VPN gateway public IP
([microsoft#352](microsoft#352))
([2d734f4](microsoft@2d734f4))
* **infrastructure:** improve stdout handling for helm commands in GPU…
([microsoft#311](microsoft#311))
([153f467](microsoft@153f467))
* **infrastructure:** resolve remaining TFLint violations in SIL module
and example configs
([microsoft#298](microsoft#298))
([c0ce3e5](microsoft@c0ce3e5))
* **infrastructure:** resolve TFLint violations in root and automation
modules
([microsoft#287](microsoft#287))
([b6a4604](microsoft@b6a4604)),
closes
[microsoft#203](microsoft#203)
* **infrastructure:** update deprecated bgp vng variable name
([microsoft#307](microsoft#307))
([f530734](microsoft@f530734))
* **scripts:** pin uv version in OSMO workflow templates
([microsoft#500](microsoft#500))
([7edf13a](microsoft@7edf13a))
* **scripts:** replace lambda with def in lerobot_handler to satisfy R…
([microsoft#176](microsoft#176))
([baf9e58](microsoft@baf9e58))
* **scripts:** support OSMO control-plane deploys with in-cluster Redis
([microsoft#317](microsoft#317))
([d4b70de](microsoft@d4b70de))
* **scripts:** update compute target name derivation logic
([microsoft#319](microsoft#319))
([bb20431](microsoft@bb20431))
* **settings:** update devcontainer name to match project context
([microsoft#177](microsoft#177))
([745321e](microsoft@745321e))
* **terraform:** create PostgreSQL Key Vault secret via ARM control
plane
([microsoft#304](microsoft#304))
([5d73b81](microsoft@5d73b81))
* **terraform:** gate observability with feature flags
([microsoft#303](microsoft#303))
([ea5e056](microsoft@ea5e056))
* **terraform:** switch VPN gateway defaults to AZ SKUs
([microsoft#309](microsoft#309))
([74989c5](microsoft@74989c5))
* **training:** correct learning rate mapping and pin LeRobot version
([microsoft#439](microsoft#439))
([5cf9943](microsoft@5cf9943))
* **workflows:** enable SARIF upload for dependency-pinning scans
([microsoft#502](microsoft#502))
([124cad6](microsoft@124cad6)),
closes
[microsoft#501](microsoft#501)
* **workflows:** remove redundant top-level permissions from
codeql-analysis
([microsoft#489](microsoft#489))
([1490fda](microsoft@1490fda))
* **workflows:** use bash shell for uv.lock regeneration and add SARIF
to dictionary
([microsoft#225](microsoft#225))
([e6fa6ea](microsoft@e6fa6ea))


### 📚 Documentation

* add chunking and compression configuration guide for Jetson edge
recording
([microsoft#408](microsoft#408))
([787a322](microsoft@787a322))
* add OpenSSF Best Practices badge to README
([microsoft#282](microsoft#282))
([01ea384](microsoft@01ea384))
* add threat model cross-reference to SECURITY.md
([microsoft#235](microsoft#235))
([88a461e](microsoft@88a461e))
* add vulnerability remediation timeline to SECURITY.md
([microsoft#233](microsoft#233))
([5ead3ee](microsoft@5ead3ee))
* **contributing:** remove version-specific planning language from
ownership tip
([microsoft#407](microsoft#407))
([3191f9b](microsoft@3191f9b))
* **deploy:** replace deploy/ READMEs with pointer files
([microsoft#379](microsoft#379))
([b3c3abb](microsoft@b3c3abb))
* **docs:** add bug report response timeline for OSSF report_responses
criterion
([microsoft#485](microsoft#485))
([9b26212](microsoft@9b26212))
* **docs:** add component update process for OpenSSF Silver badge
([microsoft#446](microsoft#446))
([6adc8a2](microsoft@6adc8a2))
* **docs:** Add data collection and training recipes
([microsoft#343](microsoft#343))
([9c34f86](microsoft@9c34f86))
* **docs:** add deprecation policy for external interfaces
([microsoft#445](microsoft#445))
([229d5db](microsoft@229d5db))
* **docs:** add structure for recipes in repo
([microsoft#322](microsoft#322))
([098757b](microsoft@098757b))
* **docs:** add YAML frontmatter to SUPPORT.md
([microsoft#478](microsoft#478))
([d94c15d](microsoft@d94c15d)),
closes
[microsoft#347](microsoft#347)
* **docs:** clarify issue assignment requirement before starting work
([microsoft#299](microsoft#299))
([1534462](microsoft@1534462))
* **docs:** create inference and training docs hubs
([microsoft#402](microsoft#402))
([7a20a2e](microsoft@7a20a2e))
* **docs:** create reference hub and migrate script documentation
([microsoft#503](microsoft#503))
([03a31c6](microsoft@03a31c6))
* **docs:** create training and inference documentation hubs
([microsoft#403](microsoft#403))
([7be003b](microsoft@7be003b))
* **operations:** create operations hub and troubleshooting guide
([microsoft#525](microsoft#525))
([31c7aaa](microsoft@31c7aaa))
* **reference:** add copilot artifacts documentation hub
([microsoft#170](microsoft#170))
([9a45ca4](microsoft@9a45ca4))
* simplify root README and update prerequisites
([microsoft#440](microsoft#440))
([c0c7710](microsoft@c0c7710))


### ♻️ Code Refactoring

* **build:** align Python dependency workflows with uv
([microsoft#447](microsoft#447))
([3102e03](microsoft@3102e03))
* **docs:** rename Docusaurus site to Physical AI Toolchain
([microsoft#224](microsoft#224))
([cfdf47a](microsoft@cfdf47a))
* **infrastructure:** rename boolean variables to `should_` prefix and
add missing core variables
([microsoft#292](microsoft#292))
([4496593](microsoft@4496593))
* **python:** move runtime deps to workflow pyproject manifests
([microsoft#405](microsoft#405))
([6c5fbeb](microsoft@6c5fbeb))


### 📦 Build System

* **build:** add Codecov upload to pytest workflow
([microsoft#434](microsoft#434))
([0110c17](microsoft@0110c17))
* **deps-dev:** bump the npm_and_yarn group across 2 directories with 1
update
([microsoft#325](microsoft#325))
([59cf9e6](microsoft@59cf9e6))
* **workflows:** enable coverage parameters and fix Pester test
infrastructure
([microsoft#435](microsoft#435))
([528bbde](microsoft@528bbde))


### 🔧 Miscellaneous

* add gomod to cspell general-technical wordlist
([microsoft#362](microsoft#362))
([1f93f47](microsoft@1f93f47))
* **build:** add codecov.yml for unified coverage reporting
([microsoft#430](microsoft#430))
([b0faf70](microsoft@b0faf70))
* **build:** add Go toolchain devcontainer feature and Dependabot gomod
([microsoft#337](microsoft#337))
([8a36620](microsoft@8a36620))
* **deps:** bump cryptography from 45.0.7 to 46.0.5 in /src/training
([microsoft#506](microsoft#506))
([a06434e](microsoft@a06434e))
* **deps:** bump minimatch in /src/dataviewer/frontend
([microsoft#416](microsoft#416))
([38a7607](microsoft@38a7607))
* **deps:** bump pyasn1 from 0.6.2 to 0.6.3 in /training/rl
([microsoft#296](microsoft#296))
([7b42cf5](microsoft@7b42cf5))
* **deps:** bump rollup in /src/dataviewer/frontend
([microsoft#417](microsoft#417))
([6302ce4](microsoft@6302ce4))
* **deps:** bump the common-dependencies group in /src/common with 3
updates
([microsoft#507](microsoft#507))
([db05074](microsoft@db05074))
* **deps:** bump the github-actions group across 1 directory with 6
updates
([microsoft#284](microsoft#284))
([c40eff6](microsoft@c40eff6))
* **deps:** bump the github-actions group across 1 directory with 6
updates
([microsoft#433](microsoft#433))
([2d9dd4f](microsoft@2d9dd4f))
* **deps:** bump the github-actions group across 1 directory with 6
updates
([microsoft#510](microsoft#510))
([c334a64](microsoft@c334a64))
* **deps:** bump the github-actions group with 2 updates
([microsoft#163](microsoft#163))
([f25713e](microsoft@f25713e))
* **deps:** bump the inference-dependencies group in /evaluation with 3
updates
([microsoft#279](microsoft#279))
([1d2d3dc](microsoft@1d2d3dc))
* **deps:** bump the inference-dependencies group in /src/inference with
5 updates
([microsoft#508](microsoft#508))
([2852ffb](microsoft@2852ffb))
* **deps:** bump the lerobot-inference-dependencies group in
/workflows/azureml with 4 updates
([microsoft#511](microsoft#511))
([b7c5773](microsoft@b7c5773))
* **deps:** bump the npm_and_yarn group across 2 directories with 1
update
([microsoft#223](microsoft#223))
([6a261ab](microsoft@6a261ab))
* **deps:** bump the training-dependencies group
([microsoft#429](microsoft#429))
([66e43f4](microsoft@66e43f4))
* **deps:** bump tornado from 6.5.4 to 6.5.5 in the uv group across 1
directory
([microsoft#172](microsoft#172))
([d6caf29](microsoft@d6caf29))
* **docs:** correct ms.date tooling and refresh stale documentation
([microsoft#349](microsoft#349))
([ccaa1e8](microsoft@ccaa1e8))
* **infrastructure:** add Go module and golangci-lint config for e2e
tests
([microsoft#347](microsoft#347))
([e0e6bbf](microsoft@e0e6bbf))
* **infrastructure:** add root .terraform-docs.yml configuration
([microsoft#312](microsoft#312))
([bb73bbb](microsoft@bb73bbb))
* migrate references from Azure-Samples to
microsoft/physical-ai-toolchain
([f58f0ef](microsoft@f58f0ef))
* **workflows:** update Dependabot, CodeQL, CODEOWNERS, and cspell for
dataviewer coverage
([microsoft#231](microsoft#231))
([6d8c2e8](microsoft@6d8c2e8))


### 🔒 Security

* **deps:** bump mlflow from 3.5.0 to 3.8.0rc0 in /training/rl
([microsoft#297](microsoft#297))
([e9929df](microsoft@e9929df))
* **deps:** bump the github-actions group across 1 directory with 4
updates
([microsoft#344](microsoft#344))
([6826929](microsoft@6826929))
* **deps:** bump the inference-dependencies group in /evaluation with 2
updates
([microsoft#339](microsoft#339))
([6804630](microsoft@6804630))
* **deps:** bump the npm_and_yarn group across 3 directories with 1
update
([microsoft#361](microsoft#361))
([6760857](microsoft@6760857))
* **deps:** bump the training-dependencies group across 1 directory with
54 updates
([microsoft#286](microsoft#286))
([d9ae04f](microsoft@d9ae04f))
* **deps:** bump the uv group across 3 directories with 1 update
([microsoft#360](microsoft#360))
([dfbda06](microsoft@dfbda06))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: physical-ai-toolchain-release[bot] <267194360+physical-ai-toolchain-release[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Bill Berry <wbery@microsoft.com>
WilliamBerryiii pushed a commit that referenced this pull request Apr 9, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.7.0](v0.6.1...v0.7.0)
(2026-04-09)


### ✨ Features

* **build:** add hve-core release pipeline with dependency SBOM and
signing artifacts
([#420](#420))
([2ff839a](2ff839a))
* **build:** enforce strict warnings across all linters
([#392](#392))
([b75e217](b75e217))
* **evaluation:** add fuzz testing infrastructure and property-based
tests
([#416](#416))
([d97d42c](d97d42c))
* **infrastructure:** add optional ADLS Gen2 data lake storage account
([#398](#398))
([3bb9012](3bb9012))
* **settings:** add HVE Core extension to workspace and devcontainer
recommendations
([#226](#226))
([f0735d8](f0735d8))


### 🐛 Bug Fixes

* **docs:** fix broken links, harden Docusaurus config, and integrate CI
workflow
([#430](#430))
([ea99997](ea99997))
* **scripts:** join shellcheck version output before -match to populate
$Matches
([#432](#432))
([8768e76](8768e76))
* **scripts:** map unmapped ShellCheck severity levels and harden
version parsing
([#434](#434))
([1e95a17](1e95a17))
* **scripts:** resolve ShellCheck SC2034 and enable source-path
resolution
([#443](#443))
([04438ea](04438ea))


### 🔧 Miscellaneous

* **deps-dev:** bump basic-ftp from 5.2.0 to 5.2.1
([#429](#429))
([438660a](438660a))
* **deps:** bump cryptography from 46.0.6 to 46.0.7
([#425](#425))
([2366647](2366647))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: physical-ai-toolchain-release[bot] <267194360+physical-ai-toolchain-release[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add fuzz testing infrastructure and property-based tests for dataviewer

4 participants