Skip to content

fix(docs): recognize native changelog routes in link validation - #6979

Merged
cv merged 3 commits into
mainfrom
docs/fix-release-notes-link
Jul 16, 2026
Merged

cv merged 3 commits into
mainfrom
docs/fix-release-notes-link

Conversation

@prekshivyas

@prekshivyas prekshivyas commented Jul 15, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Keep the canonical variant-aware ../release-notes link used by Fern
  • Teach the lightweight docs link checker to index native changelog navigation nodes by their published slug
  • Add regression coverage for resolving a native changelog root

Root cause

#6900 migrated release notes to Fern native changelog navigation. The published route remains /user-guide/<variant>/release-notes, but the lightweight parser in check-docs.sh indexed only pages and sections. It therefore rejected the valid ../release-notes route. Pointing the link at ../changelog/overview resolves on disk but does not correspond to a published Fern route.

Test plan

  • Focused docs link-checker and route tests (57 tests)
  • npm run docs:check-routes
  • Full local docs link inventory (150 files)
  • npm run check:diff
  • Fresh PR CI and E2E gate

Signed-off-by: Prekshi Vyas prekshiv@nvidia.com

Summary by CodeRabbit

  • Bug Fixes

    • Improved documentation link checking for changelog pages.
    • Changelog links now resolve correctly using their published routes, reducing false-positive broken-link reports.
  • Tests

    • Added coverage to verify changelog links are recognized and validated successfully.

prekshivyas and others added 2 commits July 15, 2026 09:58
When the Hermes gateway restarts after a SIGUSR1, it can commit the
apply-state hash advance to .config-hash concurrently with the
transaction helper's own verify step. The race detector in
_atomic_replace_preserving_flags then throws UnsafePathError, causing
apply_transaction_and_reload to enter the rollback path. The rollback
immediately fails with "rollback requires a pending desired
configuration" because the hash is already current/current, leaving the
sandbox with a mismatched config/hash and blocking future MCP mutations.

Before starting the rollback, check whether the gateway already
committed the apply: if the config still matches the intended text and
inspect_mcp_integrity reports "current", the operation succeeded and
rolling back would undo a live gateway configuration. Return success
instead.

Adds a test that simulates the race by mocking _refresh_and_verify_hashes
to advance the hash to current/current then raise the race error, and
asserts that apply_transaction_and_reload returns ok=True without
attempting a rollback.

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
#6900 moved docs/release-notes.mdx to docs/changelog/ but left the
link in platform-support.mdx pointing to the old path. Update to
../changelog/overview so the local link checker resolves the file.

Signed-off-by: Prekshu Vyas <prekshiv@nvidia.com>

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 15, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The docs link checker now indexes Fern changelog entries as canonical overview routes and includes a test confirming links resolve through the changelog’s published slug.

Changes

Changelog route resolution

Layer / File(s) Summary
Index Fern changelog routes
test/e2e/e2e-cloud-experimental/check-docs.sh
The navigation parser recognizes changelog items, captures their payload paths, and emits overview.mdx routes under the published slug.
Validate changelog link resolution
test/check-docs-links.test.ts
A temporary MDX page and Fern navigation fixture verify successful resolution of ../release-notes through the changelog slug.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested labels: area: docs

Suggested reviewers: miyoungc

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: docs link validation now recognizes native changelog routes.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/fix-release-notes-link

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@agents/hermes/mcp-config-transaction.py`:
- Around line 698-699: Update the recovery-probe exception handling around the
broad except block to retain a non-sensitive diagnostic for the eventual error
instead of silently discarding the failure. Preserve the existing
fallback-to-rollback behavior, and add an inline comment documenting why this
deliberately catches broadly; ensure the eventual error includes the captured
diagnostic without exposing sensitive details.
- Around line 689-697: Update the success condition in the transaction flow
around guard._read_text and inspect_mcp_integrity to verify every path returned
by _managed_hash_paths(privileged) is "current", rather than checking only
integrity_path. Preserve the existing committed-text comparison and
deny-by-default fail-closed behavior, and add a regression case covering a
strict-anchor advance without the compatibility-anchor advance.

In `@test/hermes-mcp-apply-race.test.ts`:
- Line 17: Update the suite title in the “Hermes MCP apply-state race recovery”
describe block to append the local issue reference as the final “(`#1234`)”
suffix, leaving child test titles unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 563c0352-52d9-4820-b3a0-d8252dc01d73

📥 Commits

Reviewing files that changed from the base of the PR and between acbe904 and 2f5b436.

📒 Files selected for processing (3)
  • agents/hermes/mcp-config-transaction.py
  • docs/reference/platform-support.mdx
  • test/hermes-mcp-apply-race.test.ts

Comment thread agents/hermes/mcp-config-transaction.py Resolved
Comment thread agents/hermes/mcp-config-transaction.py Resolved
Comment thread test/hermes-mcp-apply-race.test.ts Resolved
@github-actions

github-actions Bot commented Jul 16, 2026 •

Copy link
Copy Markdown
Contributor

PR Review Advisor — Informational

Advisor assessment: Informational / high confidence
Next action: No advisor follow-up needed.
Findings: 0 blockers · 0 warnings · 0 suggestions
Status: No actionable findings remain in the canonical review ledger.

Model lanes

  • GPT-5.6 Terra (primary): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Model comparison: normalized findings match; normalized E2E selections differ; severity counts match.

Nemotron output stays in workflow artifacts and does not change the assessment above.

E2E guidance

Advisory only. E2E / PR Gate selects and runs jobs independently.

Recommended E2E: cloud-onboard, credential-sanitization, security-posture

1 optional E2E recommendation
  • docs-validation

Workflow run details

This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge.

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
@prekshivyas prekshivyas self-assigned this Jul 16, 2026
@prekshivyas prekshivyas changed the title docs: fix broken release-notes link after changelog migration fix(docs): recognize native changelog routes in link validation Jul 16, 2026
@github-code-quality

github-code-quality Bot commented Jul 16, 2026 •

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage remains at 96%, unchanged from the main branch.

TypeScript / code-coverage/cli

The overall coverage in the docs/fix-release-not... branch remains at 80%, unchanged from the main branch.

Show a code coverage summary of the most impacted files.
File main 4a2354f docs/fix-release-not... f561bf1 +/-
src/lib/securit...ntial-filter.ts 99% 98% -1%
src/lib/inferen...ollama/proxy.ts 35% 35% 0%
src/lib/actions...all/run-plan.ts 83% 83% 0%
src/lib/inferen...er-lifecycle.ts 69% 71% +2%
src/lib/state/gateway.ts 91% 93% +2%
src/lib/shields/audit.ts 92% 97% +5%
src/lib/inferen...lama/process.ts 0% 100% +100%

Updated July 16, 2026 00:26 UTC
Code Coverage is in Public Preview. Learn more and provide us with your feedback.

@prekshivyas
prekshivyas requested a review from miyoungc July 16, 2026 00:27
@prekshivyas

Copy link
Copy Markdown
Collaborator Author

@miyoungc This PR is ready for maintainer review and exact-diff E2E authorization.

  • Head: f561bf17ac45149fb1958693dbfc0ea93482eb3c
  • Base: acbe90486660a9bbfc953bc7fe7ef5600a18d675
  • Diff: native Fern changelog route indexing plus focused regression coverage
  • CI: green
  • CodeRabbit: green; all threads resolved
  • PR Advisor: 0 blockers, 0 warnings, 0 suggestions
  • Selected credentialed E2E: cloud-onboard, credential-sanitization, security-posture

After reviewing this exact revision, please dispatch E2E / PR Gate Controller from main with:

operation: run-control-plane
pr_number: 6979
expected_head_sha: f561bf17ac45149fb1958693dbfc0ea93482eb3c
expected_base_sha: acbe90486660a9bbfc953bc7fe7ef5600a18d675
review_reason: Reviewed the focused native changelog route-indexing fix and regression on the exact PR revision; CI and automated reviews are clean.

@cv
cv merged commit d03e9d7 into main Jul 16, 2026
93 of 114 checks passed
@cv
cv deleted the docs/fix-release-notes-link branch July 16, 2026 00:54
@wscurran wscurran added area: docs Documentation, examples, guides, or docs build chore Build, CI, dependency, or tooling maintenance labels Jul 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: docs Documentation, examples, guides, or docs build chore Build, CI, dependency, or tooling maintenance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants