Skip to content

fix(docs): version-picker shows selected option on /versions/latest/ - #247

Merged
Chris-Wolfgang merged 2 commits into
mainfrom
fix/version-picker-latest-select
Jul 14, 2026
Merged

fix(docs): version-picker shows selected option on /versions/latest/#247
Chris-Wolfgang merged 2 commits into
mainfrom
fix/version-picker-latest-select

Conversation

@Chris-Wolfgang

Copy link
Copy Markdown
Owner

Summary

Fan-out of Try-Pattern PR #247. The version-picker JS had a dead URL-match resolution block that tried to match the latest alias URL (/<repo>/versions/latest/) against concrete version URLs (/<repo>/versions/vX.Y.Z/) — structurally different by construction, so the match NEVER succeeded. The render loop then unconditionally skipped the latest entry, leaving no option selected on /versions/latest/.

Fix: delete the dead resolution block; keep latest as a first-class option ONLY when the reader is on /versions/latest/. On concrete-version pages the skip still applies — no redundant latest + vX.Y.Z pair.

Same patch, same file. Direct fan-out of Try-Pattern's canonical.

Verification

Try-Pattern PR verified via HTML harness across 4 URL cases; change event fires and navigates correctly. See Try-Pattern #247 for details.

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings July 14, 2026 01:23

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR adjusts the DocFX docs-site version picker so that when a reader is on /versions/latest/, the dropdown includes and selects the latest option (instead of skipping it), avoiding the prior “no matching option for the current page” behavior caused by a dead “resolve latest → concrete version” block.

Changes:

  • Removes the dead URL-match “resolve latest to a concrete version” block.
  • Updates the render loop to only skip the latest entry when not on latest, allowing it to be shown/selected on /versions/latest/.
  • Clarifies inline comments around how the current version is detected.

Comment thread docfx_project/public/version-picker.js
Comment thread docfx_project/public/version-picker.js Outdated
Two findings, both legitimate.

1. currentVersion defaulted to 'latest' — the "include latest"
   exception (which is meant to fire only on /versions/latest/)
   was accidentally applying to every non-versioned page too,
   because the URL check falls back to the default when there's
   no /versions/<v>/ match.

   Now: currentVersion starts as null and is only set when the
   URL matches /versions/<v>/. The check `currentVersion !==
   'latest'` fires TRUE for every path except /versions/latest/,
   which is the intended behavior. On non-versioned pages
   (the redirect stub, docfx-serve preview root) no option
   gets .selected, which is the correct "unknown" state.

2. docs/DOCFX-VERSION-PICKER.md said `latest` is filtered out of
   the dropdown, full stop. Updated to describe the exception:
   filtered out on every version-specific page EXCEPT
   /versions/latest/ itself, where the row is kept so the
   picker has something to pre-select. Rationale spelled out
   inline so the doc explains the design choice, not just the
   surface behavior.

Not preview-verified: this is a targeted JS default-value change
in a docfx_project asset. Running docfx serve locally to visually
confirm the picker state adds no signal beyond the code review —
the picker's failure modes are silent-no-picker by design, which
would be visible only on the deployed docs regardless.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Chris-Wolfgang

Copy link
Copy Markdown
Owner Author

Both fixed in 12da1b8:

  1. `currentVersion` default — now starts as `null` and is only set when the URL matches `/versions//`. The "include `latest`" exception on line 99 now fires exactly on `/versions/latest/` and nowhere else — non-versioned pages (redirect stub, docfx-serve preview root) get no `.selected` option, which is the correct "unknown" state.
  2. `docs/DOCFX-VERSION-PICKER.md` — updated the "`latest` is filtered out" paragraph to describe the `/versions/latest/` exception + the rationale (dropdown needs something to pre-select).

Both threads resolved.

@Chris-Wolfgang
Chris-Wolfgang merged commit 311f1d3 into main Jul 14, 2026
14 of 15 checks passed
@Chris-Wolfgang
Chris-Wolfgang deleted the fix/version-picker-latest-select branch July 14, 2026 02:20
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.

2 participants