Repository navigation
feat(site) Add Clojure guides and native API - #276
Merged
Merged
Conversation
2 of 3 tasks
why: External README badges can hold the load event after the Ruby
legacy URL has reached its destination article. The shared
assertion affects multiple port integrations.
what:
- Check the destination URL, parsed article heading and title
- Hold badge responses in a regression without raising timeouts
- Add the focused --guide-redirect browser mode
Isolated samples with staged Ruby guides compared main 9a01505
with the Perl integration ca13fe5: cold GET 7.13s versus 7.34s,
final server RSS 2675 versus 2716 MiB, and warm redirects 0.30s
versus 0.34s. This sample showed little integration growth; it did
not establish the cause of the separate hosted ECONNRESET.
On this main-based branch, held badge responses reproduce the old
load timeout. Document readiness completes within the existing
deadline. Appearance checks retain their image-completion contract.
10 of 12 tasks
why: Remote README badges can keep document load pending across browser checks. Context routing alone misses redirects and can be bypassed by later request decorators. what: - Create shared check contexts with an owned origin-restricted proxy - Fulfil foreign images locally and constrain existing decorators - Preserve load and visible-readiness assertions for legacy guides - Exercise redirects, popups, WebSockets and failed stream cleanup - Close owned contexts when policy registration fails
why: Clojure users need native reference and runnable guides beside the other JVM libraries, with installation that reflects package availability. what: - Export public Clojure metadata through the owning Gradle runtime and validate source identity, arities, package ownership and docstring links. - Stage package guides and complete programs with setup, expected output and private tmux fixtures; integrate search and cross-port navigation. - Register the core and optional core.async packages, native artwork and JVM grouping while retaining their unpublished registry status. - Include Clojure in Java's shared documentation caller, runtime setup and deployment-prefix validation.
why: The offline publication gate compares generated registry bytes with the port catalog's order and rejects an appended Clojure entry. what: - Regenerate the registry offline with Clojure beside its JVM siblings. - Preserve every package availability value and existing version record.
why: The snapshot includes current Clojure link checks, but its older generation date makes the inventory control treat them as future evidence. what: - Record the generation date of the updated snapshot. - Preserve every destination's actual individual verification date.
why: Server-owned API programs omit the shell launcher. Source-pinned documentation must also retain earlier programs that require it. what: - Accept either deps.edn alone or the existing deps.edn/run.sh setup. - Select the launch command and ownership text from the source catalog. - Preserve legacy program blocks and reject missing dependency setup. - Check both catalog forms and retain exact source links and run commands.
why: The shared reference needs Clojure's namespace and var model alongside ports whose primary owner is a Server class. Missing catalog entries also leave its examples unhighlighted and its staged guides untested. what: - Highlight Clojure examples and retain native namespace/var spelling. - Cover namespaces in search, navigation and prose-link contracts. - Register package destinations, products, redirects and staged caches. - Match the mention audit's JDK inventory to the renderer and regenerate mentions and the canonical version fallback. - Distinguish control capabilities from the core tmux floor and keep future-date controls independent of mixed observation dates.
why: Keyword values such as :timeout were split at the colon and linked to unrelated Java members. Shared prose resolution also omitted Clojure from the language and JVM ownership tables. what: - Tokenize ordinary, qualified and auto-resolved keywords as values - Retain native var references and Java dependency type links - Register Clojure prose ownership alongside the other JVM facades - Cover keywords in maps and render the real dependency collision
why: Fixture settings, dependency coordinates and external library names were reported as missing Clojure vars. Selected facade builds also lent their language to shared site prose that declared no Clojure ownership. what: - Link runtime and optional-library references to upstream source - Recognize known fixture settings and registered Tools.deps coordinates - Preserve native shared prose and explicit language ownership in facades - Keep missing vars observable and retain the shared dangling ceiling
why: The shared export test assumed a Server declaration and rejected the valid libtmux.core namespace in Clojure's generated docs.json. what: - Recognize the native Clojure namespace as its reference entry point - Preserve existing class, command and rendered-target assertions
why: New native references need not begin with a Server class, and companion products may be unpublished or excluded. Uniform route assumptions reject valid port documentation in the combined assembly. what: - Check every reference section and declaration against its native model - Select product sections and core navigation from authored source routes - Preserve unavailable-product distinctions from the port registry - Record Clojure's measured cross-reference floor without changing others
why: Package source guides can belong to an existing Guides section. The expanded publication check assumed each source guide was its own navigation destination and rejected Ruby's valid product pages. what: - Use the authored section inventory to choose the source-guide destination - Retain standalone guide sections where no Guides overview exists - Preserve current-location, sidebar, status and destination checks
why: Publication checks require an explicit baseline for each port. Clojure's reference has plain identifiers in its native signatures. what: - Record the measured ceiling of 258 plain identifiers. - Preserve all existing port ceilings.
tony
added a commit
that referenced
this pull request
Nov 8, 2026
…uplicated why: Local runs of CI's --check gates failed on the merged result: the API destination evidence held two records for two Java URLs, the example sources listed Perl's workspace example out of order, and the manifest packages pinned stale Haskell and Clojure revisions and lacked Lisp's. what: - keep the first record of each duplicated API destination URL - regenerate example sources and manifest packages from the pinned revisions - Clojure's measured type-link ceiling arrives with the #276 merge
tony
temporarily deployed
to
docs-preview-cleanup
November 9, 2026 13:38 — with
GitHub Actions
Inactive
tony
added a commit
that referenced
this pull request
Nov 9, 2026
…ts (#291) why: Six ports had docs branches ready but no published site, and three shared fixes were waiting behind them. Releasing them together gives one docs commit to trust for deployment and one set of caller pins to move, instead of six separate waves. what: - Add OCaml (#264), Haskell (#265), Erlang (#266, #278, #279, #280, #284, #292), Common Lisp (#268), Perl (#274) and Clojure (#276): native API pages, tested guides, navigation, landing and switcher entries, and cross-reference data for each - Keep browser checks from loading third-party resources, and pass the check origin to the three scripts that named an undefined base (#287) - Render guide badges at build time instead of hotlinking shields (#288) - Size the reference sidebar and member bars from the viewport, so the Chrome iOS keyboard no longer shrinks them (#290) - Make the OCaml model producer verify its native build inputs in their checkout and reject stale ones, with controls run in CI - Offer one switcher page per port, and title Perl's workspace guide "Workspace guide" - Regenerate the registry, mention index and cross-reference counts for the combined port set Base main 2593131, head dabe59b. Port heads: #264 7d4f88f and 73fb1ad, #265 dc024e3, #268 947da1f, #274 818fa2e, #276 a134503, #287 a437e97, #292 e7740d9.
This branch was previously deployed
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.
The Clojure façade has landed in libtmux-java #20. This change gives its users a Clojure entry in the shared site, with source-bound guides, native API reference and complete programs they can run against private tmux servers.
Summary
Changes
Native Clojure reference
packages/api-modelexports compiled public vars through the owning Gradle runtime and adapts them to the shared model. It preserves package ownership, native call spelling and every arity; validates source and exporter hashes; and rejects unresolved authored docstring links. Complete API examples come from the same recorded source revision.Clojure keyword values remain literal, including qualified keys inside maps. Native var references and Java dependency types keep their links. Shared prose resolution recognizes Clojure and preserves its own declarations when discussing the Java platform.
Fixture properties and registered Tools.deps coordinates remain data. Runtime and optional-library references link to upstream source. Façade builds respect authored page and code-fence ownership, so shared tmux and site prose does not acquire Clojure ownership. Unknown Clojure vars and packages still reach the dangling report.
Guides and discovery
siteplaces Clojure beside Java, Kotlin and Scala in the JVM selector. The quickstart builds a session/window/pane graph, preserves captured observations across effects, waits for application output and closes its owned resources. Further programs cover layouts, bounded concurrent work, cancellation, incremental terminal output and core.async ownership. Guides are staged from the package READMEs and native documentation, with qualified reference links and optional-package navigation.The package inventory labels both Clojure artifacts as unpublished and presents source installation accordingly. Living source links use
master; pinned examples and API citations use source commits reachable from it. Module artwork, language icons and palettes follow the existing site layout. Reference metadata uses consistent text sizing.Publication checks derive reference sections and declaration order from each native model. Product checks follow declared availability and authored routes, including unpublished overviews and excluded products, without requiring every port to expose the same sections.
Existing Java publisher
The shared workflows recognize Clojure under Java’s existing caller and prepare its JDK/Gradle toolchain. Source-selected Clojure builds regenerate their native model, guides and tmux usage data together. Deployment input validation accepts the Clojure prefix while retaining the qualified-prefix boundary.
Private-server example compatibility
The extractor also accepts the standalone Clojure catalog from libtmux-java #143. It selects the direct CLI invocation and server-ownership prose from that source while preserving launcher-based blocks from older pinned sources exactly. The JVM reader support from docs #275 is merged into the base. The current cache still uses the merged façade source; the unmerged starter API is not advertised as available.
Test plan
docs.json, including rendered declaration and inventory destinations.The selected Clojure publisher build, local links/anchors/assets audit and desktop/mobile browser checks pass. The interlinking repair also passes through a fresh publisher build and Chromium verification. The full dangling report contains no Clojure entries and stays within the unchanged shared ceiling. The previous hosted Clojure registration failures pass in focused replay and the complete related suites. The full local outer loop still exceeds its existing 60-second budget, tracked in docs #272; complete hosted publication qualification remains pending. The local selected-port build excludes unassembled cross-port/version targets.
The shared Ruby guide navigation timeout is handled separately in docs #287. The
release/combinedintegration brings this PR together with the shared repairs and the other new ports. Its complete hosted audit is the release gate; shared-file conflicts are resolved there, while Clojure-specific fixes stay on this branch.Setup required
The existing Java
docs.ymlcaller still needs a Clojure language choice and both reusable workflow pins updated to a qualified revision containing this integration and the merged standalone JVM example support. A build-only invocation withlanguage=clojuremust pass before deployment.Companion PR
libtmux-java #20 supplies the merged façade, native documentation and installed-consumer examples.