Skip to content

feat!: adopt mod-utils v6 (mod-llm v2)#105

Merged
markdumay merged 1 commit into
mainfrom
feat/mod-utils-v6
Jul 12, 2026
Merged

feat!: adopt mod-utils v6 (mod-llm v2)#105
markdumay merged 1 commit into
mainfrom
feat/mod-utils-v6

Conversation

@markdumay

Copy link
Copy Markdown
Contributor

Summary

  • Bump this module's own Go path to github.com/gethinode/mod-llm/v2 and the
    mod-utils requirement to v6 v6.0.1 (never v6.0.0), across go.mod,
    config.toml, exampleSite/hugo.toml, README.md, and
    exampleSite/content/docs/getting-started.md. Part of the mod-utils v6
    adoption wave: feat!: redesign argument and type system as v6 (core + shims, golden-tested) mod-utils#334 (see the v5-to-v6 migration notes in
    mod-utils' README).
  • No argument-handling call sites to migrate. mod-llm has zero
    InitArgs.html/InitTypes.html (or Args.html) call sites — it has no
    shortcodes or partials that validate arguments. Its llms-components.json
    generator (layouts/index.llmscomponents.json) reads site.Data.structures
    (the raw _arguments.yml/_types.yml schema files mod-utils mounts)
    directly, never through the Args API, so this PR is a mechanical path bump
    plus dependency cleanup, not an Args-API migration.
  • hugo mod tidy (run from exampleSite/, which uses Hugo workspace wiring —
    mod-llm.work + use ../) drops the now-stale mod-llm v1.3.5 and
    mod-utils/v5 v5.23.4 requires from exampleSite/go.mod/go.sum. It also
    prunes a pre-existing unused mod-mermaid/v3 entry — confirmed via a
    pristine-tree hugo mod tidy run to be unrelated to this change (already
    prunable before this PR).

Verification

  • hugo mod graph (from exampleSite/): github.com/gethinode/mod-llm/v2
    github.com/gethinode/mod-utils/v6@v6.0.1+vendor. Zero mod-utils/v5 edges
    anywhere in the graph.
  • pnpm build (hugo --gc --minify -s exampleSite): exit 0, 0 ERROR lines,
    both before and after this change.
  • Engine-endstate note (same phenomenon as documented for the
    mod-fontawesome pilot, feat!: adopt mod-utils v6 (mod-fontawesome v6) mod-fontawesome#329): this module's
    exampleSite is unusually rich for wave 1 — it mounts the full Hinode +
    mod-blocks + mod-docs + mod-bootstrap-icons stack (via a Hugo workspace) so
    its own llms.txt/markdown/JSON generators have real content to crawl.
    Because this module's go.mod now requires mod-utils/v6, it wins the
    shared layouts/partials/utilities/ mount for the whole exampleSite,
    flipping every other mounted module's InitArgs/Args calls onto the v6
    engine too (those modules are still individually pinned to v5, unreleased
    on v6). This surfaces ~60 new WARN lines and reflows ~12 screenshot pages,
    entirely from other modules' partials (assets/hero-image.html,
    assets/table.html, assets/sidebar.html, mod-blocks component wrappers,
    etc.) — not from mod-llm's own code, which has no call sites. Four of the
    affected pages (table, navs-and-tabs, video, file) reproduce the
    exact mechanism the program register already documented and accepted from
    the pilot's engine-endstate run ("legacy InitTypes derived UDT doc-tables
    from the GLOBAL type, ignoring the structure's inline type override — v6
    honors the override"); the rest are the same "nested defaults now apply
    correctly" / "unsupported nested attribute now reported" behavior the
    mod-utils v5-to-v6 migration notes document. None are fixable in this repo
    (different modules own that code) and none are ERROR lines.
  • mod-llm's own output is byte-parity clean. Compared the module's
    distinctive output (not just HTML, since it mostly emits llms.txt-style
    text) between a pristine pre-migration build and this branch's build:
    llms.txt is byte-identical; every generated */index.md page is
    byte-identical except the one file this PR intentionally edited
    (docs/getting-started/index.md, the install-path snippet); and
    llms-components.json is structurally identical once the inherently
    volatile meta.generated build timestamp is normalized (all 60 components,
    all types, byte-for-byte).
  • Visual harness (node tests/visual/visual.mjs) run against this module's
    own exampleSite, baseline shot from the pristine pre-migration clone
    before any edit: 61/73 pages pixel-clean (0.0000%0.08%, under
    threshold), 12 flagged — all traced to the engine-endstate mechanism above
    via the build's own WARN output, none are unexplained.

Test plan

  • pnpm build exits 0 with 0 ERROR lines (before and after)
  • hugo mod graph (exampleSite context) shows mod-utils/v6 v6.0.1,
    zero mod-utils/v5 edges
  • Confirmed zero InitArgs/InitTypes/Args.html call sites exist in
    this module (nothing to migrate)
  • llms.txt / */index.md / llms-components.json byte-diffed against
    the pristine pre-migration build (see Verification above)
  • Visual regression harness run against this module's own exampleSite,
    baseline captured before any change; all 12 flagged pages traced to a
    named, already-documented v6 engine-endstate mechanism in other
    modules' code
  • Whole-repo grep for stale mod-llm (bare path) / mod-utils/v5
    references: zero hits after this change
  • Commit-body landmine check
    (git show -s --format=%B HEAD | grep -E '^-.*-$'): no match

🤖 Generated with Claude Code

Bump the module's own Go path to github.com/gethinode/mod-llm/v2 and the mod-utils
requirement to v6 v6.0.1, updating go.mod, config.toml, exampleSite/hugo.toml,
README.md, and exampleSite/content/docs/getting-started.md.

mod-llm has zero InitArgs.html/InitTypes.html call sites: it has no shortcodes or
partials that validate arguments. Its llms-components.json generator reads
site.Data.structures (the raw _arguments.yml/_types.yml schema files) directly,
never through the Args API, so there is no argument-handling call site to migrate
in this PR.

hugo mod tidy (exampleSite) drops the now-stale mod-llm v1.3.5 and mod-utils/v5
requires. It also prunes a pre-existing unused mod-mermaid/v3 entry, confirmed via
a pristine-tree tidy run to be unrelated to this change.

BREAKING CHANGE: requires github.com/gethinode/mod-llm/v2 import path; adopts
mod-utils v6 (no InitArgs/InitTypes call sites existed to migrate to the Args API
— see gethinode/mod-utils v5-to-v6 migration notes).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@markdumay markdumay merged commit dd54544 into main Jul 12, 2026
8 checks passed
@markdumay

Copy link
Copy Markdown
Contributor Author

🎉 This PR is included in version 2.0.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant