Skip to content

Build the port examples against the 0.1.0 releases - #212

Merged
tony merged 9 commits into
mainfrom
pin-examples-0.1.0
Oct 27, 2026
Merged

tony merged 9 commits into
mainfrom
pin-examples-0.1.0

Conversation

@tony

@tony tony commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

Closes: no issue; this finishes the docs half of the 0.1.0 releases after #200, which merged through train #207.

What changed, and why:

The ports published 0.1.0 to their registries, but after #207 the landing-page examples and several hand-written port pages still showed readers alpha pins, -SNAPSHOT versions, -Prerelease, and source checkouts standing in for the published package. Each example below now installs 0.1.0 from its registry, its receipt matches the new files, and it passed a native re-run in a fresh home directory. One commit per port.

Elixir (docs(ports[elixir])): the homepage example and ports/elixir/guides/attaching-to-tmux use Mix.install([{:libtmux, "~> 0.1"}]) instead of == 0.0.1-alpha.1. Ran on Elixir 1.20.4 and OTP 29 under tmux 3.3a and 3.8a.

Ruby (docs(ports[ruby])): the homepage Gemfile reads gem "libtmux", "~> 0.1" from https://rubygems.org, the lockfile comes from a real resolve (libtmux 0.1.0), and the git clone steps are gone. All four views passed on Ruby 4.0.7 and Bundler 4.0.20 under tmux 3.3a and 3.8a.

C# and F# (docs(ports[csharp])):

  • The homepage projects reference LibTmux and LibTmux.FSharp [0.1.0] from NuGet. The source clone, dotnet pack and the local NuGet.config are gone.
  • global.json pins SDK 10.0.303. F# pins FSharp.Core [10.1.303].
  • The F# prerequisites now say tmux 3.4 or newer, because the F# quickstart runs a command in a pane, which LibTmux 0.1.0 refuses below tmux 3.4. The floor has an OTHER_FLOORS entry in tmux-minimum.test.ts.
  • The C# MCP pages install LibTmux.Mcp 0.1.0, and run-command states its tmux 3.4 requirement.
  • Ran on .NET SDK 10.0.303 under tmux 3.3a, 3.4 and 3.7c with an empty NUGET_PACKAGES. The MCP examples and the connect-client steps were run by hand: initialize reported 0.1.0 and tools/list returned the server's tools.

PowerShell (docs(ports[powershell])): the homepage saves Save-PSResource -Name LibTmux -Version 0.1.0 -Path ./modules -TrustRepository, without -Prerelease. All four views passed on PowerShell 7.4.20 under tmux 3.8.

Go (docs(ports[go])):

  • The MCP inspect-sessions and run-command examples install libtmux-mcp@v0.1.0 and require libtmux-go v0.1.0. connect-client reports libtmux-mcp v0.1.0.
  • The workspace internals example resolves libtmux-go and libtmux-go/workspace v0.1.0 from the Go proxy, with no checkout or replace lines.
  • Ran on Go 1.26.5 under tmux 3.3a, 3.7c and 3.8a.

Rust (docs(ports[rs])):

  • The homepage Cargo.toml reads libtmux = "0.1.0", and its Cargo.lock comes from cargo generate-lockfile against crates.io.
  • The MCP connect-client guide installs cargo install --locked tmux-mcp@0.1.0 and shows tmux-mcp 0.1.0.
  • inspect-sessions depends on libtmux and tmux-mcp 0.1.0 instead of git revisions.
  • Ran on Rust 1.97.1 under tmux 3.3a and 3.7c.

Java, Kotlin and Scala (docs(ports[java]), docs(ports[kotlin]), docs(ports[scala])):

  • 0.0.1-alpha.* and -SNAPSHOT pins become 0.1.0 for libtmux, libtmux-kotlin, libtmux-scala_3, libtmux-mcp, libtmux-workspace and libtmux-bom.
  • includeBuild("libtmux-source") is gone from every displayed settings.gradle.kts, so Gradle resolves from Maven Central. The clone of the v0.1.0 release commit stays only as the Gradle wrapper source, and the prose says so.
  • The Kotlin and Scala transports pages now say managed control needs tmux 3.7 or newer, because libtmux 0.1.0 refuses it below that (ControlAcquisition.supports). Their receipts list 3.7c only, and the floor has an OTHER_FLOORS entry.
  • Ran on JDK 25.0.3 and Gradle 9.7.0 under tmux 3.3a and 3.7c: the homepage examples (four views each), the Kotlin and Scala concept, capture and attach pages, and by hand the Java MCP and workspace examples and the workspace guide.

Receipts: the sourceRevision and sourceTree fields point at each port's 0.1.0 release commit. Go and Rust also drop tmux 3.2a from their receipts, because libtmux 0.1.0 refuses 3.2a on those ports. Java, Kotlin and Scala drop it for the same reason, and their capture check records move from positive-3.2a to positive-3.3a.

Not in this pull request:

  • About 60 port pages, for example the capture and attach examples on most ports, still build from a source clone at a pinned commit rather than the registry. Four Rust pages among them clone the 0.1.0-alpha.15 tree, and ports/rs/concepts/transports names that revision with a pinned link.
  • The verificationScope prose in api-examples.json still names alphas for several ports. Readers don't see that prose.
  • Python, C++ and Julia pages are unchanged.

Checks run:

  • pnpm -C site exec vitest run: 204 files and 6450 tests pass, 351 skipped.
  • pnpm run lint and pnpm run type-check pass.
  • Every pnpm test:medium step passes when run on its own: packages/api-model (1221 tests), packages/theme (36), check-api-links, check-nav, check-example-blocks and its negative check, the gen-* --check freshness checks, oxlint scripts and lint:python. The loop as a whole exceeds its 10-second budget on this host.
  • An alpha and prerelease-flag scan of home-examples.json and the six receipt fixtures finds nothing, against 19 matches on ab9f3cee9.
  • Native runs used scripts/check-example-prose.py with the tmux builds named above.

Tool use: Claude Code planned the change and split it across four Sonnet sub-agents. The sub-agents rewrote the examples and receipts and ran them natively. Claude Code reviewed each commit, corrected the Kotlin and Scala control-floor wording and its test exemption, ran the checks, and opened this pull request. The maintainer reviews it before merge.

tony added 9 commits October 26, 2026 23:49
why: The homepage example and the attaching guide told readers to install
the published alpha with Mix.install([{:libtmux, "== 0.0.1-alpha.1"}]).
Hex now carries libtmux 0.1.0, and the libtmux-elixir README documents the
"~> 0.1" form.

what:
- Change the Mix.install requirement to "~> 0.1" in the homepage program
  and its concise, errors and cleanup views, and in connect.exs on the
  attaching-to-tmux guide; reword the "published alpha" sentence.
- Point sourceRevision and sourceTree at release commit cac4252b and its
  tree; refresh the file, clipboard and excerpt hashes and the attach hash.
- Record the tmux versions that ran as 3.3a and 3.8a.
- Native runs with fresh MIX_HOME, HEX_HOME and MIX_INSTALL_DIR resolved
  libtmux 0.1.0 from Hex: all four homepage views on both tmux versions and the attach guide
  passed (Elixir 1.20.4, OTP 29, tmux 3.3a and 3.8a).
why: The homepage example cloned libtmux-ruby at a pinned commit and
bundled it as a path gem, so its Gemfile.lock showed
libtmux (0.1.0.alpha.1) from a local path. libtmux 0.1.0 is on RubyGems,
so the example installs it from there with no clone.

what:
- Gemfile now reads gem "libtmux", "~> 0.1" from rubygems.org; drop the
  git init, fetch and checkout setup lines and Git from the prerequisites.
- Replace Gemfile.lock with the one bundle install wrote against
  rubygems.org (libtmux 0.1.0 with its checksum, no PATH block).
- Point sourceRevision and sourceTree at release commit c8b83959 and its
  tree; refresh the Gemfile and Gemfile.lock hashes in every view and the
  shellRecipe.
- Record tmuxVersions 3.3a and 3.8a.
- Native runs with a fresh GEM_HOME and BUNDLE_PATH: all four homepage views
  passed on tmux 3.3a and on 3.8a (Ruby 4.0.7, Bundler 4.0.20).
….1.0 from NuGet

why: The C# and F# homepage examples cloned libtmux-dotnet and packed an
alpha.18 package from source, and the MCP pages pinned 0.0.0-alpha.20.
LibTmux, LibTmux.FSharp and LibTmux.Mcp 0.1.0 are on nuget.org, so readers
can restore them directly.

what:
- Pin LibTmux and LibTmux.FSharp [0.1.0] in the homepage projects, drop the
  source clone, pack step and NuGet.config, and move global.json and
  FSharp.Core to the SDK 10.0.303 and 10.1.303 the 0.1.0 tag uses
- Point the homepage receipts and the MCP receipts at libtmux-dotnet v0.1.0
  (472c2bcf, tree 4ef96f46) and record the new recipes, hashes and toolchain
- Install LibTmux.Mcp --version 0.1.0 and reference LibTmux 0.1.0 on the
  list-sessions and run-command examples and the connect-client guide, and
  move their source links to the tag
- State that run_shell_command needs tmux 3.4 on the run-command example
- Record tmux 3.3a and 3.7c for C# and 3.4 and 3.7c for F# (0.1.0 refuses
  3.2a; F# pane runs need 3.4); the MCP examples ran on 3.3a and 3.7c
  (list sessions) and 3.4 and 3.7c (run command)
- Ran scripts/check-example-prose.py natively on every homepage view with an
  empty NUGET_PACKAGES (.NET SDK 10.0.303, tmux 3.3a, 3.4 and 3.7c): all
  passed; ran both MCP examples and the connect-client commands by hand
…rerelease

why: LibTmux 0.1.0 is on the PowerShell Gallery, so the homepage recipe no
longer needs -Prerelease or the 0.1.0-alpha2 pin.

what:
- Run Save-PSResource -Version 0.1.0 without -Prerelease; the program still
  imports modules/LibTmux/0.1.0/LibTmux.psd1, which the save creates
- Point the homepage receipt at libtmux-powershell v0.1.0 (2c30121b, tree
  3752a58d) with the new recipe, and record tmux 3.8 as the version that ran
- Ran scripts/check-example-prose.py natively on all four views (PowerShell
  7.4.20, tmux 3.8, scratch HOME): all passed, saving LibTmux 0.1.0 from the
  Gallery
why: The Go examples still installed the v0.0.1-alpha modules and a git
checkout of an unreleased revision, so readers copied pins that are no longer
the published release.

what:
- Install libtmux-mcp v0.1.0 and require libtmux-go v0.1.0 in the MCP
  inspect-sessions and run-command examples; the connect-client guide now
  reports libtmux-mcp v0.1.0.
- Resolve the workspace example from the registry (libtmux-go and
  libtmux-go/workspace v0.1.0) instead of a fetched checkout with replace
  directives.
- Point source links and the receipts at c21afc69 (core) and 59aed98c
  (mcp, workspace); receipts record tmux 3.3a and 3.7c.
- Native runs: Go 1.26.5, tmux 3.3a, 3.7c and 3.8a, all passed; tmux 3.2a
  is below the 0.1.0 floor and is refused by the library.
why: The homepage example built a git checkout whose Cargo.lock named
libtmux 0.1.0-alpha.15, and the MCP pages installed an alpha-era git
revision and printed an alpha version, so readers copied pins that are not
the published release.

what:
- Homepage rs example depends on `libtmux = "0.1.0"`; Cargo.lock comes from
  a real `cargo generate-lockfile` against crates.io (libtmux 0.1.0), and
  the git clone step and Git prerequisite are gone.
- Point sourceRevision and sourceTree at ce7610a3 / its tree and refresh
  the Cargo.toml and Cargo.lock hashes in every view of the receipt.
- tmux-mcp connect-client installs `tmux-mcp@0.1.0` from crates.io and
  shows `tmux-mcp 0.1.0` (verified by installing it).
- The MCP inspect-sessions example uses libtmux and tmux-mcp 0.1.0 from
  crates.io instead of git revisions.
- Receipts record tmux 3.3a and 3.7c; 3.2a is below the 0.1.0 floor and the
  library refuses it.
- Native runs: Rust 1.97.1, tmux 3.3a and 3.7c (homepage full, concise,
  errors, cleanup; inspect-sessions), all passed.
why: libtmux-java 0.1.0 is on Maven Central, but the Java homepage example,
the MCP example and the workspace internals pages still showed an alpha or
SNAPSHOT pin and included the library from a source checkout, so a reader
could not build them from the registry.

what:
- Pin `libtmux` 0.1.0, `libtmux-mcp` 0.1.0, `libtmux-workspace` 0.1.0 and
  `libtmux-bom` 0.1.0, and drop `includeBuild` from the displayed settings.
- Keep the clone of the v0.1.0 release commit only as the Gradle wrapper
  source, and say so on each page.
- Point the home and product receipts at the release commit and tree, rehash
  the displayed files, and record tmux 3.3a and 3.7c, the 0.1.0 floor and the
  newest supported release (3.2a is below the 0.1.0 floor and is dropped).
- Native runs: `check-example-prose.py --example home --port java` for all
  four views on tmux 3.3a and 3.7c, JDK 25.0.3, Gradle 9.7.0, all passed. The
  MCP and workspace examples have no checker; their displayed steps were run
  by hand in fresh directories on both tmux versions and printed the
  documented output, as did the workspace guide against the 0.1.0 BOM.
why: libtmux-kotlin 0.1.0 is on Maven Central, but the Kotlin homepage
example and pages still pinned `0.0.1-alpha.17-SNAPSHOT` and substituted the
library from a source checkout with `includeBuild`, so a reader could not
build them from the registry.

what:
- Pin `libtmux-kotlin` 0.1.0 and drop `includeBuild` from every displayed
  `settings.gradle.kts`; the clone of the v0.1.0 release commit remains only
  as the Gradle wrapper source, and the prose says so.
- Point the home, concept, capture and attach receipts at the release commit
  and tree, rehash the displayed files and recipes, and record tmux 3.3a and
  3.7c (3.2a is below the 0.1.0 floor and is dropped).
- Note on the transports page that managed control needs tmux 3.7 or newer,
  with a tmux-minimum exemption for that per-feature floor;
  its receipt lists 3.7c only, because the control program fails on 3.3a.
- Native runs: `check-example-prose.py` for the home example (four views),
  the four concept pages, the capture example and the attach guide, on tmux
  3.3a and 3.7c, JDK 25.0.3, Gradle 9.7.0, all passed except the transports
  control program on 3.3a, which is refused as documented.
why: libtmux-scala_3 0.1.0 is on Maven Central, but the Scala homepage
example and pages still pinned `0.0.1-alpha.17-SNAPSHOT` and substituted the
library from a source checkout with `includeBuild`, so a reader could not
build them from the registry.

what:
- Pin `libtmux-scala_3` 0.1.0 and drop the `includeBuild` substitution block
  from every displayed `settings.gradle.kts`; the clone of the v0.1.0 release
  commit remains only as the Gradle wrapper source, and the prose says so.
- Point the home, concept, capture and attach receipts at the release commit
  and tree, rehash the displayed files and recipes, and record tmux 3.3a and
  3.7c (3.2a is below the 0.1.0 floor and is dropped).
- Note on the transports page that managed control needs tmux 3.7 or newer,
  with a tmux-minimum exemption for that per-feature floor;
  its receipt lists 3.7c only, because the control program fails on 3.3a.
- Native runs: `check-example-prose.py` for the home example (four views),
  the four concept pages, the capture example and the attach guide, on tmux
  3.3a and 3.7c, JDK 25.0.3, Gradle 9.7.0, all passed except the transports
  control program on 3.3a, which is refused as documented.
@tony
tony merged commit 8c87cd9 into main Oct 27, 2026
3 checks passed
tony added a commit that referenced this pull request Oct 27, 2026
why: The publisher-pin wave at ab9f3ce stopped because Python's native
pages failed the docs build on an undeclared CSS variable. This train
carries that fix, the reference and sidebar fixes reported since, and
the port examples moved from alpha pins to the 0.1.0 releases, so one
CI run gates them and one wave publishes them.

what:
- Native Python pages declare --native-class-row-height, so
  inject-shell's check passes; a test covers every --native-* variable
- Mixed-mark sidebars such as MCP draw the guide line under the parent
  label instead of through the row's own text
- "API reference", the tmux and MCP section titles and "Symbol index"
  render in the sans face
- Glossary links in page content wait 1 s before their preview card
  opens, and Escape cancels a card that has not opened yet
- Tab from the footer's inventory help link reaches its tooltip link
- The root API probe expects only objects-full.inv, matching the
  footer since #166
- #212: Elixir, Ruby, C# and F#, PowerShell, Rust, Java, Kotlin and
  Scala examples, and the Go MCP and workspace examples, install 0.1.0
  from their registries; the Go homepage example still builds from a
  source checkout, and a follow-up converts it
@tony
tony temporarily deployed to docs-preview-cleanup October 27, 2026 22:07 — with GitHub Actions Inactive
tony added a commit to libtmux/libtmux-rs that referenced this pull request Oct 28, 2026
why: The site still presented libtmux as an alpha: badges, notices,
install commands and examples carried alpha pins and prerelease flags,
and a docs channel stood for a release state that no libtmux release
has. A Sphinx project had no inventory to link to, tmux commands and
cross-port links sat in small rows under each declaration, TypeScript
aliases showed no declaration, and native Python documentation pages
listed every page in one flat sidebar column.

what:
- Publish `objects.inv` and `targets.json` at the root of each port
  version, naming the pages, headings, workspace table rows, MCP schema
  fields, command options and API declarations the build rendered, and
  stop the build when an API declaration has no rendered target
  (`inventory.ts`, `inventory-publisher.ts`, `inventory-targets.ts`,
  `targets.ts`; libtmux/docs#166)
- Link the footer of a port page to the inventory of its port version,
  to the full inventory and to a guide on linking from Sphinx, and list
  the same inventory and target files in the `docs.json` manifest
  (`SiteFooter.astro`, `inventory-links.ts`, `docs.json.ts`;
  libtmux/docs#166)
- Export the rows of the shared workspace command and configuration
  tables as Sphinx option, setting and environment variable targets, and
  keep a page's identity across a move through `inventoryId` and
  `inventoryAliases` in its frontmatter (`rehype-row-anchors.ts`,
  `load.md`, `panes.md`, `environment.md`, `content.config.ts`;
  libtmux/docs#166)
- Link the AI policy, which the root site publishes at
  `/meta/ai-policy/`, from the footer (`SiteFooter.astro`,
  `ai-policy.md`; libtmux/docs#194)
- Show a final release on its badge as its series, 0.x for 0.1.0, with
  the line "Released; the API may change.", and replace the alpha notice
  with an early-release notice that returns once for a reader who
  dismissed it (`ports.ts`, `registry.json`, `PrereleaseNotice.astro`;
  libtmux/docs#200)
- Remove the stable docs channel: a release tag publishes at its own
  version, a prerelease also as `next`, and the newest final release tag
  is the default and indexed version, or `latest` while the port has
  none; an older tag pushed later does not take the default
  (`port-docs-identity.sh`, `publish-plan.mjs`, `gen-versions.mjs`,
  `versions.ts`; libtmux/docs#201)
- Leave a release-numbering label such as 0.1.N plain in prose instead
  of resolving it as an API name (`resolver.ts`; libtmux/docs#204)
- Give a symbol's tmux commands, tmux C declarations, hooks, options and
  formats, Guides and equivalents in other ports their own sections on
  its API reference page and in its Markdown export, ahead of Related
  types (`api-tmux-sections.ts`, `ApiTmuxSections.astro`,
  `ApiReference.astro`; libtmux/docs#202)
- Draw the nested guide line in every sidebar layout, set Grouped's
  group headings bold as Outline's are, and make the API glossary the
  last row of the reference sidebar and the last search result
  (`api-tree.css`, `ApiTree.astro`, `api-tree.ts`; libtmux/docs#208)
- Open the preview card of a glossary link only after the pointer rests
  on it for a second, and let Escape cancel a card that has not opened
  (`link-preview-browser.ts`; libtmux/docs#211)
- Let Tab move from the footer's inventory help link to the link in its
  tooltip at once (`SiteFooter.astro`; libtmux/docs#211)
- Set the title of an index-style reference page, such as API reference,
  in the sans face (`ApiReference.astro`; libtmux/docs#211)
- Show the typed fields of a Rust struct or payload variant in a Name,
  Type and Description table, beside the member list when the struct has
  methods (`api-sections.ts`, `ApiScalarMembers.astro`,
  `ApiReference.astro`; libtmux/docs#197)
- Add the crates of each Rust example with `cargo add` from crates.io at
  the workspace version the revision declares, instead of building from
  a clone, and state the minimum Rust version in place of a pinned
  toolchain file (`rust-examples.ts`; libtmux/docs#196)
- Install the Rust workspace CLI and MCP server with `cargo install` and
  no alpha version, and say on the workspace internals page that
  releases are numbered 0.1.N and any release may change the API
  (`ports.ts`, `install-matrix.ts`, `index.md`; libtmux/docs#200)
- Show a Rust type alias on its reference page as a declaration line,
  type Name = Value (`api-sections.ts`; libtmux/docs#205)
- Install the Rust MCP server with `tmux-mcp@0.1.0`, and depend on
  libtmux and tmux-mcp 0.1.0 in the MCP inspect-sessions example in
  place of git revisions (`connect-client.md`, `inspect-sessions.md`;
  libtmux/docs#212)
- Set the section titles of the MCP reference in the sans face, and keep
  its sidebar guide line under the parent label and not through the
  row's own text (`ProtocolReference.astro`, `api-tree.css`;
  libtmux/docs#211)

Shared source: libtmux/docs
From: 00045828e6457d142d58933f603665a2ead35811
To:   e1ab401f7d6fca5ac9c418bc6c77ca382320cd2e
tony added a commit to libtmux/libtmux-go that referenced this pull request Oct 28, 2026
why: The site still presented libtmux as an alpha: badges, notices,
install commands and examples carried alpha pins and prerelease flags,
and a docs channel stood for a release state that no libtmux release
has. A Sphinx project had no inventory to link to, tmux commands and
cross-port links sat in small rows under each declaration, TypeScript
aliases showed no declaration, and native Python documentation pages
listed every page in one flat sidebar column.

what:
- Publish `objects.inv` and `targets.json` at the root of each port
  version, naming the pages, headings, workspace table rows, MCP schema
  fields, command options and API declarations the build rendered, and
  stop the build when an API declaration has no rendered target
  (`inventory.ts`, `inventory-publisher.ts`, `inventory-targets.ts`,
  `targets.ts`; libtmux/docs#166)
- Link the footer of a port page to the inventory of its port version,
  to the full inventory and to a guide on linking from Sphinx, and list
  the same inventory and target files in the `docs.json` manifest
  (`SiteFooter.astro`, `inventory-links.ts`, `docs.json.ts`;
  libtmux/docs#166)
- Export the rows of the shared workspace command and configuration
  tables as Sphinx option, setting and environment variable targets, and
  keep a page's identity across a move through `inventoryId` and
  `inventoryAliases` in its frontmatter (`rehype-row-anchors.ts`,
  `load.md`, `panes.md`, `environment.md`, `content.config.ts`;
  libtmux/docs#166)
- Link the AI policy, which the root site publishes at
  `/meta/ai-policy/`, from the footer (`SiteFooter.astro`,
  `ai-policy.md`; libtmux/docs#194)
- Show a final release on its badge as its series, 0.x for 0.1.0, with
  the line "Released; the API may change.", and replace the alpha notice
  with an early-release notice that returns once for a reader who
  dismissed it (`ports.ts`, `registry.json`, `PrereleaseNotice.astro`;
  libtmux/docs#200)
- Remove the stable docs channel: a release tag publishes at its own
  version, a prerelease also as `next`, and the newest final release tag
  is the default and indexed version, or `latest` while the port has
  none; an older tag pushed later does not take the default
  (`port-docs-identity.sh`, `publish-plan.mjs`, `gen-versions.mjs`,
  `versions.ts`; libtmux/docs#201)
- Leave a release-numbering label such as 0.1.N plain in prose instead
  of resolving it as an API name (`resolver.ts`; libtmux/docs#204)
- Give a symbol's tmux commands, tmux C declarations, hooks, options and
  formats, Guides and equivalents in other ports their own sections on
  its API reference page and in its Markdown export, ahead of Related
  types (`api-tmux-sections.ts`, `ApiTmuxSections.astro`,
  `ApiReference.astro`; libtmux/docs#202)
- Draw the nested guide line in every sidebar layout, set Grouped's
  group headings bold as Outline's are, and make the API glossary the
  last row of the reference sidebar and the last search result
  (`api-tree.css`, `ApiTree.astro`, `api-tree.ts`; libtmux/docs#208)
- Open the preview card of a glossary link only after the pointer rests
  on it for a second, and let Escape cancel a card that has not opened
  (`link-preview-browser.ts`; libtmux/docs#211)
- Let Tab move from the footer's inventory help link to the link in its
  tooltip at once (`SiteFooter.astro`; libtmux/docs#211)
- Set the title of an index-style reference page, such as API reference,
  in the sans face (`ApiReference.astro`; libtmux/docs#211)
- Add the module of each Go example with `go get` from the Go proxy,
  instead of building from a clone of the repository with a `replace`
  directive (`go-examples.ts`; libtmux/docs#196), and keep the retired
  step anchors of the attach-and-send-keys example resolving as
  inventory headings (`attach-and-send-keys.md`; libtmux/docs#166)
- Install libtmux-mcp at `v0.1.0` and require libtmux-go v0.1.0 in the
  Go MCP examples (`connect-client.md`, `inspect-sessions.md`,
  `run-command.md`; libtmux/docs#212)
- Resolve libtmux-go and its workspace module v0.1.0 from the Go proxy
  in the workspace internals example, with no source checkout and no
  replace lines (`examples.md`; libtmux/docs#212)
- Set the section titles of the MCP reference in the sans face, and keep
  its sidebar guide line under the parent label and not through the
  row's own text (`ProtocolReference.astro`, `api-tree.css`;
  libtmux/docs#211)

Shared source: libtmux/docs
From: 00045828e6457d142d58933f603665a2ead35811
To:   e1ab401f7d6fca5ac9c418bc6c77ca382320cd2e
tony added a commit to libtmux/libtmux-java that referenced this pull request Oct 28, 2026
why: The site still presented libtmux as an alpha: badges, notices,
install commands and examples carried alpha pins and prerelease flags,
and a docs channel stood for a release state that no libtmux release
has. A Sphinx project had no inventory to link to, tmux commands and
cross-port links sat in small rows under each declaration, TypeScript
aliases showed no declaration, and native Python documentation pages
listed every page in one flat sidebar column.

what:
- Publish `objects.inv` and `targets.json` at the root of each port
  version, naming the pages, headings, workspace table rows, MCP schema
  fields, command options and API declarations the build rendered, and
  stop the build when an API declaration has no rendered target
  (`inventory.ts`, `inventory-publisher.ts`, `inventory-targets.ts`,
  `targets.ts`; libtmux/docs#166)
- Link the footer of a port page to the inventory of its port version,
  to the full inventory and to a guide on linking from Sphinx, and list
  the same inventory and target files in the `docs.json` manifest
  (`SiteFooter.astro`, `inventory-links.ts`, `docs.json.ts`;
  libtmux/docs#166)
- Export the rows of the shared workspace command and configuration
  tables as Sphinx option, setting and environment variable targets, and
  keep a page's identity across a move through `inventoryId` and
  `inventoryAliases` in its frontmatter (`rehype-row-anchors.ts`,
  `load.md`, `panes.md`, `environment.md`, `content.config.ts`;
  libtmux/docs#166)
- Link the AI policy, which the root site publishes at
  `/meta/ai-policy/`, from the footer (`SiteFooter.astro`,
  `ai-policy.md`; libtmux/docs#194)
- Show a final release on its badge as its series, 0.x for 0.1.0, with
  the line "Released; the API may change.", and replace the alpha notice
  with an early-release notice that returns once for a reader who
  dismissed it (`ports.ts`, `registry.json`, `PrereleaseNotice.astro`;
  libtmux/docs#200)
- Remove the stable docs channel: a release tag publishes at its own
  version, a prerelease also as `next`, and the newest final release tag
  is the default and indexed version, or `latest` while the port has
  none; an older tag pushed later does not take the default
  (`port-docs-identity.sh`, `publish-plan.mjs`, `gen-versions.mjs`,
  `versions.ts`; libtmux/docs#201)
- Leave a release-numbering label such as 0.1.N plain in prose instead
  of resolving it as an API name (`resolver.ts`; libtmux/docs#204)
- Give a symbol's tmux commands, tmux C declarations, hooks, options and
  formats, Guides and equivalents in other ports their own sections on
  its API reference page and in its Markdown export, ahead of Related
  types (`api-tmux-sections.ts`, `ApiTmuxSections.astro`,
  `ApiReference.astro`; libtmux/docs#202)
- Draw the nested guide line in every sidebar layout, set Grouped's
  group headings bold as Outline's are, and make the API glossary the
  last row of the reference sidebar and the last search result
  (`api-tree.css`, `ApiTree.astro`, `api-tree.ts`; libtmux/docs#208)
- Open the preview card of a glossary link only after the pointer rests
  on it for a second, and let Escape cancel a card that has not opened
  (`link-preview-browser.ts`; libtmux/docs#211)
- Let Tab move from the footer's inventory help link to the link in its
  tooltip at once (`SiteFooter.astro`; libtmux/docs#211)
- Set the title of an index-style reference page, such as API reference,
  in the sans face (`ApiReference.astro`; libtmux/docs#211)
- Depend the Java, Kotlin and Scala examples on the Maven Central
  release named by the newest release tag in the documented revision,
  instead of building from a checkout, and leave the source build out of
  `settings.gradle.kts` (`jvm-examples.ts`; libtmux/docs#196)
- Name the 0.1.0 BOM in the Gradle and Maven setup of the Java library
  (`ports.ts`; libtmux/docs#200)
- Depend the Java MCP and workspace examples, the Java BOM guide, and
  the Kotlin and Scala concept, capture and attach pages on 0.1.0 from
  Maven Central, keeping the release checkout only as the Gradle wrapper
  source (`examples.md`, `queries.md`; libtmux/docs#212)
- Say on the Kotlin and Scala transports pages that managed control
  needs tmux 3.7 or newer (`transports.md`; libtmux/docs#212)
- Set the section titles of the MCP reference in the sans face, and keep
  its sidebar guide line under the parent label and not through the
  row's own text (`ProtocolReference.astro`, `api-tree.css`;
  libtmux/docs#211)

Shared source: libtmux/docs
From: 00045828e6457d142d58933f603665a2ead35811
To:   e1ab401f7d6fca5ac9c418bc6c77ca382320cd2e
tony added a commit to libtmux/libtmux-dotnet that referenced this pull request Oct 28, 2026
why: The site still presented libtmux as an alpha: badges, notices,
install commands and examples carried alpha pins and prerelease flags,
and a docs channel stood for a release state that no libtmux release
has. A Sphinx project had no inventory to link to, tmux commands and
cross-port links sat in small rows under each declaration, TypeScript
aliases showed no declaration, and native Python documentation pages
listed every page in one flat sidebar column.

what:
- Publish `objects.inv` and `targets.json` at the root of each port
  version, naming the pages, headings, workspace table rows, MCP schema
  fields, command options and API declarations the build rendered, and
  stop the build when an API declaration has no rendered target
  (`inventory.ts`, `inventory-publisher.ts`, `inventory-targets.ts`,
  `targets.ts`; libtmux/docs#166)
- Link the footer of a port page to the inventory of its port version,
  to the full inventory and to a guide on linking from Sphinx, and list
  the same inventory and target files in the `docs.json` manifest
  (`SiteFooter.astro`, `inventory-links.ts`, `docs.json.ts`;
  libtmux/docs#166)
- Export the rows of the shared workspace command and configuration
  tables as Sphinx option, setting and environment variable targets, and
  keep a page's identity across a move through `inventoryId` and
  `inventoryAliases` in its frontmatter (`rehype-row-anchors.ts`,
  `load.md`, `panes.md`, `environment.md`, `content.config.ts`;
  libtmux/docs#166)
- Link the AI policy, which the root site publishes at
  `/meta/ai-policy/`, from the footer (`SiteFooter.astro`,
  `ai-policy.md`; libtmux/docs#194)
- Show a final release on its badge as its series, 0.x for 0.1.0, with
  the line "Released; the API may change.", and replace the alpha notice
  with an early-release notice that returns once for a reader who
  dismissed it (`ports.ts`, `registry.json`, `PrereleaseNotice.astro`;
  libtmux/docs#200)
- Remove the stable docs channel: a release tag publishes at its own
  version, a prerelease also as `next`, and the newest final release tag
  is the default and indexed version, or `latest` while the port has
  none; an older tag pushed later does not take the default
  (`port-docs-identity.sh`, `publish-plan.mjs`, `gen-versions.mjs`,
  `versions.ts`; libtmux/docs#201)
- Leave a release-numbering label such as 0.1.N plain in prose instead
  of resolving it as an API name (`resolver.ts`; libtmux/docs#204)
- Give a symbol's tmux commands, tmux C declarations, hooks, options and
  formats, Guides and equivalents in other ports their own sections on
  its API reference page and in its Markdown export, ahead of Related
  types (`api-tmux-sections.ts`, `ApiTmuxSections.astro`,
  `ApiReference.astro`; libtmux/docs#202)
- Draw the nested guide line in every sidebar layout, set Grouped's
  group headings bold as Outline's are, and make the API glossary the
  last row of the reference sidebar and the last search result
  (`api-tree.css`, `ApiTree.astro`, `api-tree.ts`; libtmux/docs#208)
- Open the preview card of a glossary link only after the pointer rests
  on it for a second, and let Escape cancel a card that has not opened
  (`link-preview-browser.ts`; libtmux/docs#211)
- Let Tab move from the footer's inventory help link to the link in its
  tooltip at once (`SiteFooter.astro`; libtmux/docs#211)
- Set the title of an index-style reference page, such as API reference,
  in the sans face (`ApiReference.astro`; libtmux/docs#211)
- Restore `LibTmux` for the C# and F# examples from NuGet at the exact
  release their project file names, instead of building from a local
  package feed and a source build (`csharp-examples.ts`,
  `fsharp-examples.ts`; libtmux/docs#196)
- Install the C# package with `dotnet package add` and the workspace and
  MCP tools with `dotnet tool install` and `dnx`, none with
  `--prerelease`, and say on the C# workspace internals page that public
  contracts can change between 0.1.N releases (`ports.ts`,
  `install-matrix.ts`, `index.md`; libtmux/docs#200)
- Record the tmux commands that the C# methods send at LibTmux 0.1.0,
  with their source lines (`csharp.json`; libtmux/docs#204)
- Install LibTmux.Mcp 0.1.0 on the C# MCP pages, and state on
  run-command that it needs tmux 3.4 or newer (`connect-client.md`,
  `run-command.md`; libtmux/docs#212)
- Set the section titles of the MCP reference in the sans face, and keep
  its sidebar guide line under the parent label and not through the
  row's own text (`ProtocolReference.astro`, `api-tree.css`;
  libtmux/docs#211)

Shared source: libtmux/docs
From: 00045828e6457d142d58933f603665a2ead35811
To:   e1ab401f7d6fca5ac9c418bc6c77ca382320cd2e
tony added a commit to libtmux/libtmux-elixir that referenced this pull request Oct 28, 2026
why: The site still presented libtmux as an alpha: badges, notices,
install commands and examples carried alpha pins and prerelease flags,
and a docs channel stood for a release state that no libtmux release
has. A Sphinx project had no inventory to link to, tmux commands and
cross-port links sat in small rows under each declaration, TypeScript
aliases showed no declaration, and native Python documentation pages
listed every page in one flat sidebar column.

what:
- Publish `objects.inv` and `targets.json` at the root of each port
  version, naming the pages, headings, workspace table rows, MCP schema
  fields, command options and API declarations the build rendered, and
  stop the build when an API declaration has no rendered target
  (`inventory.ts`, `inventory-publisher.ts`, `inventory-targets.ts`,
  `targets.ts`; libtmux/docs#166)
- Link the footer of a port page to the inventory of its port version,
  to the full inventory and to a guide on linking from Sphinx, and list
  the same inventory and target files in the `docs.json` manifest
  (`SiteFooter.astro`, `inventory-links.ts`, `docs.json.ts`;
  libtmux/docs#166)
- Export the rows of the shared workspace command and configuration
  tables as Sphinx option, setting and environment variable targets, and
  keep a page's identity across a move through `inventoryId` and
  `inventoryAliases` in its frontmatter (`rehype-row-anchors.ts`,
  `load.md`, `panes.md`, `environment.md`, `content.config.ts`;
  libtmux/docs#166)
- Link the AI policy, which the root site publishes at
  `/meta/ai-policy/`, from the footer (`SiteFooter.astro`,
  `ai-policy.md`; libtmux/docs#194)
- Show a final release on its badge as its series, 0.x for 0.1.0, with
  the line "Released; the API may change.", and replace the alpha notice
  with an early-release notice that returns once for a reader who
  dismissed it (`ports.ts`, `registry.json`, `PrereleaseNotice.astro`;
  libtmux/docs#200)
- Remove the stable docs channel: a release tag publishes at its own
  version, a prerelease also as `next`, and the newest final release tag
  is the default and indexed version, or `latest` while the port has
  none; an older tag pushed later does not take the default
  (`port-docs-identity.sh`, `publish-plan.mjs`, `gen-versions.mjs`,
  `versions.ts`; libtmux/docs#201)
- Leave a release-numbering label such as 0.1.N plain in prose instead
  of resolving it as an API name (`resolver.ts`; libtmux/docs#204)
- Give a symbol's tmux commands, tmux C declarations, hooks, options and
  formats, Guides and equivalents in other ports their own sections on
  its API reference page and in its Markdown export, ahead of Related
  types (`api-tmux-sections.ts`, `ApiTmuxSections.astro`,
  `ApiReference.astro`; libtmux/docs#202)
- Draw the nested guide line in every sidebar layout, set Grouped's
  group headings bold as Outline's are, and make the API glossary the
  last row of the reference sidebar and the last search result
  (`api-tree.css`, `ApiTree.astro`, `api-tree.ts`; libtmux/docs#208)
- Open the preview card of a glossary link only after the pointer rests
  on it for a second, and let Escape cancel a card that has not opened
  (`link-preview-browser.ts`; libtmux/docs#211)
- Let Tab move from the footer's inventory help link to the link in its
  tooltip at once (`SiteFooter.astro`; libtmux/docs#211)
- Set the title of an index-style reference page, such as API reference,
  in the sans face (`ApiReference.astro`; libtmux/docs#211)
- Require Elixir's libtmux in `mix.exs` with a `~>` requirement on the
  release, which accepts every 0.1.N release, in place of an exact pin
  (`ports.ts`; libtmux/docs#200)
- Install libtmux from Hex with the 0.1 requirement in the Elixir
  attaching guide, in place of an exact alpha pin
  (`attaching-to-tmux.md`; libtmux/docs#212)

Shared source: libtmux/docs
From: 00045828e6457d142d58933f603665a2ead35811
To:   e1ab401f7d6fca5ac9c418bc6c77ca382320cd2e
tony added a commit that referenced this pull request Oct 28, 2026
why: #212 moved the port examples to the 0.1.0 releases, but merged with
four review findings open: the Go homepage still built from a source
checkout, the Elixir guide misdescribed its version requirement, the C#
run-command page stated two tmux floors, and three receipts named tmux
branches. Ship the fixes to the homepage now; the port pages follow
with the next publisher pin.

what:
- The Go homepage example installs libtmux-go v0.1.0 from the Go proxy
  and runs the release's quickstart; every view uses a per-run socket,
  so running it twice works
- The Elixir attaching guide says ~> 0.1 accepts any release from 0.1.0
  up to, but not including, 1.0.0
- The C# MCP run-command example states one tmux floor, 3.4; the tmux
  minimum check scopes the F# homepage exemption to the F# example
- The Elixir, Ruby and Julia homepage receipts record tagged tmux
  versions, each re-run natively

This branch was previously deployed

2 inactive deployments
docs-preview-cleanup — 54e2ada3 Deployed Oct 27, 2026 by tony via cleanup #187
docs-preview — 54e2ada3 Deployed Oct 27, 2026 by tony via publish-preview / publish #1025
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.

1 participant