fix(docs): fix broken links, harden Docusaurus config, and integrate CI workflow#430
Merged
Conversation
- upgrade setup-node-deps composite action default from Node 20 to 24 - pin Node 24.14.1 in .nvmrc and node:24-slim in Dockerfile - bump cspell 9.4.0 to 10.0.0, lint-staged 16.2.7 to 16.4.0 - bump markdown-table-formatter 1.6.0 to 1.7.0, markdownlint-cli2 0.21.0 to 0.22.0 - update Pester test fixtures from Node 20 to 24 🔧 - Generated by Copilot
- regenerate package-lock.json with full platform-specific optional dep entries - fix npm ci failure caused by missing entries for @unrs/resolver-binding, fsevents, @napi-rs/wasm-runtime, and @emnapi packages - lockfileVersion 3 now has 19 @unrs/resolver-binding entries (was 2), plus fsevents, @napi-rs, and @emnapi entries (were 0) 🔧 - Generated by Copilot
- add GHSA-c2c7-rcm5-vvqj (ReDoS via extglob quantifiers, CVE-2026-33671) - add GHSA-3v7f-55p6-f55p (method injection in POSIX char classes, CVE-2026-33672) 🔒 - Generated by Copilot
…CI workflow - fix 15 broken markdown and hub card links across docs site - set onBrokenLinks, onBrokenMarkdownLinks, onDuplicateRoutes to throw - add slug to infrastructure.md to resolve duplicate route - integrate docusaurus-tests into pr-validation.yml workflow - add .nojekyll for GitHub Pages compatibility 🔗 - Generated by Copilot
Contributor
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Snapshot WarningsEnsure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice. Scanned FilesNone |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #430 +/- ##
=======================================
Coverage 64.40% 64.40%
=======================================
Files 251 251
Lines 15433 15433
Branches 2060 2060
=======================================
Hits 9939 9939
Misses 5206 5206
Partials 288 288
🚀 New features to boost your workflow:
|
rezatnoMsirhC
requested changes
Apr 8, 2026
Co-authored-by: Chris Montazer <17170709+rezatnoMsirhC@users.noreply.github.com>
Co-authored-by: Chris Montazer <17170709+rezatnoMsirhC@users.noreply.github.com>
rezatnoMsirhC
approved these changes
Apr 8, 2026
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixed 15 broken documentation links across 12 files, hardened the Docusaurus build configuration to fail on broken links and duplicate routes, centralized the Docusaurus CI test workflow into the main PR validation pipeline, and added a
.nojekyllfile for GitHub Pages compatibility. All 20 changed files are documentation, CI workflows, or site configuration — zero application code modified.Closes #418
Description
Config Hardening
onBrokenLinks,onBrokenMarkdownLinks, andonDuplicateRouteswere all set to'throw'in docusaurus.config.js. The build now fails on any broken link or duplicate route, preventing regressions from merging in future PRs.CI Workflow Centralization
docusaurus-tests.yml lost its standalone
pull_requesttrigger and becameworkflow_call-only. pr-validation.yml gained a newdocusaurus-testsjob calling the reusable workflow withsoft-fail: false, aligning with the single-orchestrator CI pattern used by all other linters.Broken Link Cleanup (15 links across 12 files)
/deploy/to/infrastructure/in docusaurus.config.js and hubCards.tsxDuplicate Route Resolution
infrastructure.md gained
slug: infrastructure-deploymentin frontmatter, and category.json had itsgenerated-indexlink removed — together resolving the duplicate/infrastructure/route.Out-of-Root Link Conversion
6 relative specification links in fleet-deployment/README.md and fleet-intelligence/README.md were converted to absolute GitHub URLs because these files reference specifications outside the Docusaurus content root.
Type of Change
Component(s) Affected
infrastructure/terraform/prerequisites/- Azure subscription setupinfrastructure/terraform/- Terraform infrastructureinfrastructure/setup/- OSMO control plane / Helmworkflows/- Training and evaluation workflowstraining/- Training pipelines and scriptsdocs/- DocumentationTesting Performed
Docusaurus Build
Ran
npx docusaurus buildin docs/docusaurus/ — exited clean with zero warnings. The hardened'throw'settings confirmed all link targets resolve and no duplicate routes remain.CI Workflow Validation
Both docusaurus-tests.yml and pr-validation.yml passed yaml-lint validation. The new
docusaurus-testsjob correctly references the reusable workflow withsoft-fail: false.planreviewed (no unexpected changes)applytested in dev environmentsmoke_test_azure.py)Documentation Impact
Bug Fix Checklist
onBrokenLinks: 'throw',onBrokenMarkdownLinks: 'throw',onDuplicateRoutes: 'throw') serves as the regression mechanism — future broken links will fail the build.Checklist