Skip to content

Windows install support + user-only public website - #478

Merged
jeduden merged 6 commits into
mainfrom
claude/windows-install-notes-kism6
Jun 4, 2026
Merged

Windows install support + user-only public website#478
jeduden merged 6 commits into
mainfrom
claude/windows-install-notes-kism6

Conversation

@jeduden

@jeduden jeduden commented Jun 4, 2026

Copy link
Copy Markdown
Owner

Scope

This PR started as a fix for unhelpful Windows install notes and grew
into a broader install/website cleanup. Three related changes:

1. Windows install instructions

  • Add a Windows (PowerShell) path to the GitHub-release section of
    the install guide: download via Invoke-WebRequest, programmatic
    Get-FileHash checksum verification against the
    mdsmith-windows-amd64.exe asset, and adding the binary to the user
    PATH. Notes that gh attestation verify / cosign verify-blob
    work unchanged on Windows.

2. OS-aware install picker

  • Tag the cross-platform CLI channels (Go, npm, npx, PyPI, uvx, pipx)
    with the OSes they actually run on, in addition to their ecosystem
    tag, and regenerate website/data/channels.yaml. The homepage
    "Windows" filter now surfaces 7 runnable channels instead of one
    curl placeholder.
  • Drop maintainer "channel" vocabulary from the user-facing frontpage
    copy (filter aria-label, verification note).

3. Public website is user-only

  • SyncDocs now prunes the maintainer-only docs/ subtrees
    (development, research, security, brand) from the published
    site; they stay in the repo for maintainers.
  • Links from a published page into a pruned tree are rewritten to the
    file's GitHub source at sync time (repoPrunedDocLink), so they
    resolve on the site while staying valid relative links in-repo.
  • Two consumers of the pruned pages are repointed to survive: the
    homepage logos strip reads channels.yaml, and the footer links
    contributors to the GitHub docs/development tree. The sidebar
    order drops development.

Docs for maintainers/agents

  • release-tooling.md documents the channel source-of-truth flow and
    what the platforms tags mean.
  • website-config.md documents the maintainer-doc prune and the link
    routing.

Verification

  • go test ./... green; new TDD coverage for the prune and the
    pruned-doc link rewrite (100% patch coverage per Codecov).
  • mdsmith check . -> 413 files, 0 failures.
  • golangci-lint -> 0 issues.
  • End-to-end sync-docs docs/ run confirms the four dirs are pruned,
    the four user dirs are kept, and all cross-links route to GitHub.

Note: Hugo isn't available in the dev environment, so the repointed
logos-strip.html is verified by mirroring the proven install-picker
template; CI's website build is the real confirmation.

https://claude.ai/code/session_01RGBUkRscaPiT5ZfohXWUgL

The GitHub-release direct-download section only documented the
POSIX flow (curl, sha256sum, install -m 0755). Windows users —
who have no Homebrew or Flatpak channel — had no actionable
path. Add a Windows (PowerShell) subsection covering download
via Invoke-WebRequest, Get-FileHash checksum verification
against the mdsmith-windows-amd64.exe asset, and adding the
binary to the user PATH.
@codecov

codecov Bot commented Jun 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.42%. Comparing base (82583fc) to head (9e6f349).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
Components Coverage Δ
Go 97.40% <100.00%> (+<0.01%) ⬆️
TypeScript 99.51% <ø> (ø)

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

claude added 3 commits June 4, 2026 17:14
…ument channel SSOT

A Windows user filtering the homepage install picker by platform saw
only the GitHub Releases curl row, because the cross-platform CLI
channels (Go, npm, npx, PyPI, uvx, pipx) were tagged by ecosystem
alone. Tag each with the OSes it actually runs on, so the Windows,
macOS, and Linux filters surface every channel a visitor can use.

Also document the channel source-of-truth data flow and the meaning
of the platforms tags in release-tooling.md, so the install/channel
architecture is discoverable instead of needing a code trace.
… picker

"Channel" is the maintainer/agent term for a distribution source. On
the public frontpage a visitor just wants the install line for their
platform, so the two user-visible mentions (the filter aria-label and
the verification note) now read in install-method terms instead.
The public Hugo site is for users, but SyncDocs copied the whole docs/
tree — so the maintainer trees (development, research, security, brand)
rendered at mdsmith.dev and showed up in the sidebar nav.

SyncDocs now prunes those four subtrees at the docs root. Links from a
published page into a pruned tree are rewritten to the file's GitHub
source at sync time (repoPrunedDocLink), so they resolve instead of
404-ing while staying valid relative links in the repo. Two consumers
of the pruned pages are repointed to survive: the homepage logos strip
reads the generated channels.yaml data file, and the footer links
contributors to the GitHub docs/development tree. The sidebar order
drops the development entry.

Documented in website-config.md, with TDD coverage for the prune and
the link rewrite.
@jeduden
jeduden marked this pull request as ready for review June 4, 2026 21:30
Copilot AI review requested due to automatic review settings June 4, 2026 21:30

Copilot AI 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.

Pull request overview

Updates mdsmith’s install and website-docs pipeline to better support Windows users and to keep the published site functional after pruning maintainer-only documentation trees.

Changes:

  • Add Windows (PowerShell) direct-download install instructions, including checksum verification and PATH setup.
  • Expand release-channel platforms tags (and regenerated website/data/channels.yaml) so OS filters (including Windows) surface applicable channels.
  • Prune maintainer-only docs (docs/development|research|security|brand) from the published site while rewriting links into those trees to GitHub, and update Hugo templates to avoid relying on pruned pages.

Reviewed changes

Copilot reviewed 21 out of 21 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
website/layouts/partials/logos-strip.html Switch logos strip data source from content pages to hugo.Data.channels so it survives docs pruning.
website/layouts/partials/install-picker.html Improve accessibility copy and clarify the verification note text.
website/layouts/partials/footer.html Point “Development” link to GitHub source tree instead of a (now pruned) site section.
website/layouts/partials/docs-sidebar.html Remove the “development” docs section from the sidebar order to reflect pruning.
website/data/channels.yaml Regenerate channel metadata to include OS tags for better platform filtering.
internal/release/website.go Add rewrite support for links into pruned maintainer-doc trees so published docs don’t break.
internal/release/website_test.go Add tests covering the new pruned-doc link rewrite behavior.
internal/release/syncdocs.go Prune maintainer-only docs directories at the docs root during site sync.
internal/release/syncdocs_test.go Update/add tests for pruning behavior and related sync expectations.
docs/guides/install.md Add Windows PowerShell direct-download path and verification guidance.
docs/development/website-config.md Document the maintainer-doc pruning model and how links are routed to GitHub.
docs/development/release-tooling.md Document release-channels/ as the source of truth and clarify platforms semantics.
docs/development/release-channels/uvx.md Add OS tags to platforms to ensure visibility under OS filters.
docs/development/release-channels/pypi.md Add OS tags to platforms to ensure visibility under OS filters.
docs/development/release-channels/pipx.md Add OS tags to platforms to ensure visibility under OS filters.
docs/development/release-channels/npx.md Add OS tags to platforms to ensure visibility under OS filters.
docs/development/release-channels/npm.md Add OS tags to platforms to ensure visibility under OS filters.
docs/development/release-channels/go.md Add OS tags to platforms to ensure visibility under OS filters.
CLAUDE.md Refresh the generated docs catalog entry for the expanded release-tooling summary.
AGENTS.md Refresh the generated docs catalog entry for the expanded release-tooling summary.
.github/copilot-instructions.md Refresh the generated docs catalog entry for the expanded release-tooling summary.

Comment thread internal/release/syncdocs.go
Comment thread docs/guides/install.md Outdated
The prior snippet printed the computed hash on one line and the full
checksums.txt line (hash + filename) on the next, so 'the two strings
must be equal' was misleading. Extract the expected SHA-256 from
checksums.txt and compare programmatically, emitting checksum OK or
throwing on mismatch.
@jeduden
jeduden requested a review from Copilot June 4, 2026 21:36
@jeduden jeduden changed the title docs(install): add Windows direct-download instructions Windows install support + user-only public website Jun 4, 2026

Copilot AI 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.

Pull request overview

Copilot reviewed 21 out of 21 changed files in this pull request and generated 2 comments.

Comment thread docs/guides/install.md Outdated
Comment thread docs/development/website-config.md Outdated
- install.md: match the checksums.txt line with -SimpleMatch (literal
  filename, not a regex) and lowercase the expected hash.
- website-config.md: point repoPrunedDocLink at internal/release/
  website.go (package release) instead of a vague 'website package'.

Copilot AI 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.

Pull request overview

Copilot reviewed 21 out of 21 changed files in this pull request and generated no new comments.

@jeduden

jeduden commented Jun 4, 2026

Copy link
Copy Markdown
Owner Author

🔍 Merge Queue — bisecting

A larger batch failed CI. Bisection is isolating the culprit: this run tests up to 1 of 1 candidate PRs on merge-queue/batch-bisect-478-1780609936. View current bisect CI run.

Next: No action needed — you'll be notified when the culprit is isolated or this PR merges.

@jeduden

jeduden commented Jun 4, 2026

Copy link
Copy Markdown
Owner Author

Merge Queue — merged

This PR landed on main via commit 3ed6c86. CI run that validated the merge.

Next: Done — nothing more to do here.

@jeduden
jeduden merged commit 3ed6c86 into main Jun 4, 2026
31 checks passed
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.

3 participants