Index | Thread | Search

From:
Mike Larkin <mlarkin@nested.page>
Subject:
Re: [UPDATE] devel/crush 0.96.1 -> 0.98.1
To:
David Uhden Collado <daviduhden@gmail.com>
Cc:
kirill@korins.ky, stu@spacehopper.org, ports@openbsd.org
Date:
Tue, 13 Oct 2026 19:17:38 -0700

Download raw body.

Thread
On Wed, Oct 14, 2026 at 02:09:00AM +0000, David Uhden Collado wrote:
> Hello,
>
> Please find attached a patch updating devel/crush from 0.96.1 to
> 0.98.1.
>
> The upstream release notes and full comparison are available at:
>
> https://github.com/charmbracelet/crush/releases
> https://github.com/charmbracelet/crush/compare/v0.96.1...v0.98.1
>
> The releases introduce MCP server toggling, Git branch information,
> sidebar improvements, OSC 7501 terminal status support, and xAI/Grok
> OAuth authentication.
>
> They also fix several issues involving OAuth models, MCP handling,
> the external editor, and GitHub Copilot compatibility with newer
> models.
>
> For the OpenBSD port, I updated MODGO_VERSION to v0.98.1 and
> regenerated modules.inc and distinfo.
>
> I also added ripgrep as a conditional runtime dependency. Crush prefers
> ripgrep for its grep and glob tools, but has a pure-Go fallback. The
> dependency is therefore enabled only on architectures supporting Rust,
> preserving compatibility with armv7 and i386.
>
> Finally, I corrected the existing MIT license comment. Upstream uses
> FSL-1.1-MIT, which initially restricts competing use and automatically
> converts each released version to MIT after two years.
>
> No local patches or package list changes are required.
>
> Thank you for your time and consideration.
>
> Best regards,
> David.


cant speak to the diff below but can comment that I've been using this crush
version from github (it compiles cleanly out of the box) and it works
fine. I usually rebuild it every couple weeks.

-ml

> Index: devel/crush/Makefile
> ===================================================================
> RCS file: /cvs/ports/devel/crush/Makefile,v
> diff -u -p -u -p -r1.5 Makefile
> --- devel/crush/Makefile	26 Sep 2026 09:37:51 -0000	1.5
> +++ devel/crush/Makefile	14 Oct 2026 02:01:22 -0000
> @@ -1,7 +1,7 @@
>  COMMENT =		coding agent with a rich terminal UI
>
>  MODGO_MODNAME =		github.com/charmbracelet/crush
> -MODGO_VERSION =		v0.96.1
> +MODGO_VERSION =		v0.98.1
>
>  DISTNAME =		crush-${MODGO_VERSION}
>  WRKDIST =		${WRKDIR}/${MODGO_MODNAME}@${MODGO_VERSION}
> @@ -10,13 +10,22 @@ CATEGORIES =		devel
>
>  HOMEPAGE =		https://github.com/charmbracelet/crush
>
> -# MIT
> +# FSL-1.1 (no-compete terms), old versions become MIT after 2 years
>  PERMIT_PACKAGE =	Yes
>
>  WANTLIB += c pthread
>
>  MODULES =		lang/go
>
> +# The grep and glob agent tools use ripgrep when it is available and fall
> +# back to a pure-Go implementation otherwise. ripgrep is built with Rust,
> +# which is unavailable on armv7 and i386, so use the "rust" property.
> +.include <bsd.port.arch.mk>
> +.if ${PROPERTIES:Mrust}
> +RUN_DEPENDS =		textproc/ripgrep
> +.endif
> +
> +# Upstream release binaries inject the tag version into internal/version.
>  MODGO_LDFLAGS +=	-X github.com/charmbracelet/crush/internal/version.Version=${MODGO_VERSION}
>
>  .include "modules.inc"
> Index: devel/crush/distinfo
> ===================================================================
> RCS file: /cvs/ports/devel/crush/distinfo,v
> diff -u -p -u -p -r1.4 distinfo
> --- devel/crush/distinfo	26 Sep 2026 09:37:51 -0000	1.4
> +++ devel/crush/distinfo	14 Oct 2026 02:01:23 -0000
> @@ -1,4 +1,4 @@
> -SHA256 (crush-v0.96.1.zip) = ecbK8Qw9+c/vK4pbhjN6OaSjndRjLCmL6Ib4H50gk1k=
> +SHA256 (crush-v0.98.1.zip) = tC7sROZtgaOIzGcr1+tFrLkfszmGy2GKxgjhpd9z7EY=
>  SHA256 (go_modules/cel.dev/expr/@v/v0.24.0.mod) = wMexfwVuWHervPsGdEz1I4y5oLChoI4ThM8mhaIhFNE=
>  SHA256 (go_modules/cel.dev/expr/@v/v0.25.2.mod) = Z0UnUNV+zK4mM7F05mRotyYy7edErdtN4sCybd04qOE=
>  SHA256 (go_modules/cel.dev/expr/@v/v0.25.3.mod) = Z0UnUNV+zK4mM7F05mRotyYy7edErdtN4sCybd04qOE=
> @@ -6,14 +6,14 @@ SHA256 (go_modules/cel.dev/expr/@v/v0.25
>  SHA256 (go_modules/charm.land/bubbles/v2/@v/v2.2.1.mod) = qzZu1icdy66GueleeDbw6GCPtgmwFsJ6bBT5w0A4qi0=
>  SHA256 (go_modules/charm.land/bubbles/v2/@v/v2.2.1.zip) = ZCks3JZeTN2B+ue5sm93ztF5MhqwFPSaRCtHiQeLACQ=
>  SHA256 (go_modules/charm.land/bubbletea/v2/@v/v2.0.8.mod) = dRBJwCbv1oF75kPfKov8TdRZBI6tgabbn5dI5SC/1ZU=
> -SHA256 (go_modules/charm.land/bubbletea/v2/@v/v2.0.9.mod) = dRBJwCbv1oF75kPfKov8TdRZBI6tgabbn5dI5SC/1ZU=
> -SHA256 (go_modules/charm.land/bubbletea/v2/@v/v2.0.9.zip) = UBryKsWiINONYwUhnBf9ybGcDhtrBTBbwKGHjSHLuf8=
> -SHA256 (go_modules/charm.land/catwalk/@v/v0.52.28.mod) = mtyYjohTN+K7LFR4LZqk+2YnvZWOds9oFBAGvvcwoPs=
> -SHA256 (go_modules/charm.land/catwalk/@v/v0.52.28.zip) = aWTIyRYWpE6ZHZrGy/4q27ltLpfJLmHN0VTHs7VkWPw=
> +SHA256 (go_modules/charm.land/bubbletea/v2/@v/v2.1.0.mod) = dsNt4yKspkgCRshIjutJ9D3laQdv+Tb2aNWSu64iVPQ=
> +SHA256 (go_modules/charm.land/bubbletea/v2/@v/v2.1.0.zip) = 2dF8+bSAvGOjtMX8RjVp1IdOirH41A21Xdo++jAz/tQ=
> +SHA256 (go_modules/charm.land/catwalk/@v/v0.52.49.mod) = mtyYjohTN+K7LFR4LZqk+2YnvZWOds9oFBAGvvcwoPs=
> +SHA256 (go_modules/charm.land/catwalk/@v/v0.52.49.zip) = j0xrBXldTeTNiFQ3GhMBiEMI9K9Dei8a4hyZMl/8qxE=
>  SHA256 (go_modules/charm.land/fang/v2/@v/v2.0.1.mod) = p+wtEpc/ctQqQG8zd32RFAvax1XhVvIemMB3PHP4c5Y=
>  SHA256 (go_modules/charm.land/fang/v2/@v/v2.0.1.zip) = 8oS79roLPlC6xaLDXdIwp7sEbEZ+C4hts54zBh9GVBQ=
> -SHA256 (go_modules/charm.land/fantasy/@v/v0.43.1.mod) = VvNybXoj/mEwZ+6GTW/HI+dwIMu8PV2LY+LoTg1tEU0=
> -SHA256 (go_modules/charm.land/fantasy/@v/v0.43.1.zip) = q9191PsQzZvnGULLSa+AlxO13botEmjrIU0nGePxZd8=
> +SHA256 (go_modules/charm.land/fantasy/@v/v0.45.1.mod) = joSHuhzoztRSjFlB3+Mp8MrB+GeCewPzfi4KDSX+CE0=
> +SHA256 (go_modules/charm.land/fantasy/@v/v0.45.1.zip) = XoTkEuphjAWGbC+FsLn7aRKeXYUN8KjP4uTjdeSJm8s=
>  SHA256 (go_modules/charm.land/glamour/v2/@v/v2.0.1.mod) = ywn49tZHLN2o1gwtksj6LbcS/6oBtUYKMcPr9O5hlRg=
>  SHA256 (go_modules/charm.land/glamour/v2/@v/v2.0.1.zip) = xKmPTldszidLhyT/ao5x2LLAIqG8S0aOgnJQY9jxwDk=
>  SHA256 (go_modules/charm.land/lipgloss/v2/@v/v2.0.1.mod) = QsYUvDZv0g7TRSNV+8ydEBU/tBpxNSkrsO0X9DG4//8=
> @@ -208,7 +208,6 @@ SHA256 (go_modules/github.com/aws/smithy
>  SHA256 (go_modules/github.com/aymanbagabas/go-osc52/v2/@v/v2.0.1.mod) = Rkb58ZqCKuv0KWvOJNXyt7JwDqHET1zJeDACY8t7VhE=
>  SHA256 (go_modules/github.com/aymanbagabas/go-osc52/v2/@v/v2.0.1.zip) = k56/KlSB8hcuGl4MMY0FrvW22VCpYFViFsPaeHmpJ/g=
>  SHA256 (go_modules/github.com/aymanbagabas/go-udiff/@v/v0.2.0.mod) = 8HbrxTvRjkauc/7y+Rwwmgp4Opr+FvBQv6avo763ptw=
> -SHA256 (go_modules/github.com/aymanbagabas/go-udiff/@v/v0.3.1.mod) = Jlk3Q1iE3KP5o4fVcmyjjdaYicgkxfd1j+wrA+AVJtY=
>  SHA256 (go_modules/github.com/aymanbagabas/go-udiff/@v/v0.4.1.mod) = wDrR00+BR2sA68Wzsxq3U1tkYx47JDMa0zlFGC53SS0=
>  SHA256 (go_modules/github.com/aymanbagabas/go-udiff/@v/v0.4.1.zip) = N4K7lzXcTB5MmP99dxOvJ/J24aD/ST5LI3/1Hr2S770=
>  SHA256 (go_modules/github.com/aymerick/douceur/@v/v0.2.0.mod) = XgRUJBwle0xPnb3chOeOmeKcUnWzz67or9K7R25ySJc=
> @@ -248,31 +247,36 @@ SHA256 (go_modules/github.com/charmbrace
>  SHA256 (go_modules/github.com/charmbracelet/harmonica/@v/v0.2.0.zip) = hJTXKJFlUfD8mgZfqFTfri11xxkc6Dm64H3hpikNtAo=
>  SHA256 (go_modules/github.com/charmbracelet/lipgloss/@v/v0.7.1.mod) = a5JoObDyEwdcBnvqPfJWi9grair6lmNsL3LAqiEsnKk=
>  SHA256 (go_modules/github.com/charmbracelet/lipgloss/@v/v0.7.1.zip) = BSuUVjPoVHBz+2OQ5IntXiAAPvrD+PCQFua7ilFHLek=
> +SHA256 (go_modules/github.com/charmbracelet/openai-go/@v/v0.0.0-20260921175203-216db9e71b83.mod) = 1h8jjgGYpJnfVTl0sTp22fXmVNCzMxoT/t+r2pxUO4M=
> +SHA256 (go_modules/github.com/charmbracelet/openai-go/@v/v0.0.0-20260921175203-216db9e71b83.zip) = LThKwRQu+5GDxwRsDLDFlrzGncl/W4QCBixHjEeDGXI=
>  SHA256 (go_modules/github.com/charmbracelet/ultraviolet/@v/v0.0.0-20251205161215-1948445e3318.mod) = b0U/9nTAAdE/zXL1VjmsSvhBDRn+ERglRnf4f39oGSQ=
>  SHA256 (go_modules/github.com/charmbracelet/ultraviolet/@v/v0.0.0-20260205113103-524a6607adb8.mod) = xEK2vZw5b7Mkm9dkJ+b4kLDKLnFipwhoQ1quhnb+D2A=
>  SHA256 (go_modules/github.com/charmbracelet/ultraviolet/@v/v0.0.0-20260703014108-f5a850f9c2b7.mod) = 9X7/gRHVczRwMAFr6pudgyC8HRxYK2Jvx8OndxqIyP4=
>  SHA256 (go_modules/github.com/charmbracelet/ultraviolet/@v/v0.0.0-20260811164956-006e29f97886.mod) = 9+W4GrjK/wmnlXUFmvvdSuYqLQto9iC1RI+R2+9xJRo=
> -SHA256 (go_modules/github.com/charmbracelet/ultraviolet/@v/v0.0.0-20260811164956-006e29f97886.zip) = 8FoqrBMQ9zcAx1h9soQp2s00Wx1oylDAUEj5rJicD38=
> +SHA256 (go_modules/github.com/charmbracelet/ultraviolet/@v/v0.0.0-20261008173134-6b8d4baf91b4.mod) = 85kB/vMgla2A4jNAryZ9w2wK8G5/DcJKg0iY7ygNkjo=
> +SHA256 (go_modules/github.com/charmbracelet/ultraviolet/@v/v0.0.0-20261008173134-6b8d4baf91b4.zip) = h+tXrLX+xuOS97PQobJ2YWFjfUJsciiLKRJ1K9qlV5Y=
>  SHA256 (go_modules/github.com/charmbracelet/x/ansi/@v/v0.11.6.mod) = 5EKtMIq/DFCC5xrgfHLYrBglXFACUixDOqRr+MirIJo=
>  SHA256 (go_modules/github.com/charmbracelet/x/ansi/@v/v0.11.7.mod) = qu+AII36DKtAqBQRx8TwiE4K9pvmDd0k5dYstA8F220=
>  SHA256 (go_modules/github.com/charmbracelet/x/ansi/@v/v0.11.8.mod) = lHRbAvBDcXK/PdctgFlCHPlc4p+Y5k0Qj/a8aOhgJGQ=
> -SHA256 (go_modules/github.com/charmbracelet/x/ansi/@v/v0.11.8.zip) = rAhw575hy//iPQZATHfP1D4R4WLhx5pL87+vVwNtdAc=
> +SHA256 (go_modules/github.com/charmbracelet/x/ansi/@v/v0.11.9.mod) = N+uFm6Rd3SdpC/qNYX6HRMN7CQ4SHAOjuMjXKxo0N/U=
> +SHA256 (go_modules/github.com/charmbracelet/x/ansi/@v/v0.11.9.zip) = mBVTVpnvwhY2dVzITbySJQGCJG6Hbk6oPodGTYccv4I=
>  SHA256 (go_modules/github.com/charmbracelet/x/editor/@v/v0.2.0.mod) = 8B4dgI2Lpz+uWXkeP1Mkj3oJnevGknqRJQtLxy4TDJs=
>  SHA256 (go_modules/github.com/charmbracelet/x/editor/@v/v0.2.0.zip) = R0PCgDv8Ci1gVBotwiM5gvsdMYbHmlcGRSgUFzEiMgg=
>  SHA256 (go_modules/github.com/charmbracelet/x/etag/@v/v0.2.0.mod) = Iz4YV/ll4kubhl76NbvAuqe9wkAeoRUxpJ656No4TiI=
>  SHA256 (go_modules/github.com/charmbracelet/x/etag/@v/v0.2.0.zip) = XA51uyZgQCyr6YdmOBtRZNlpEMk5ySUXKfHseVAXPIY=
>  SHA256 (go_modules/github.com/charmbracelet/x/exp/charmtone/@v/v0.0.0-20250603201427-c31516f43444.mod) = 9FKGgeUaG4abAAfEJZM9yI0G7QJOycqltyBQXJ/jBCk=
> -SHA256 (go_modules/github.com/charmbracelet/x/exp/charmtone/@v/v0.0.0-20260602025833-85a30b5e440a.mod) = mud6AvGtjnoO01Iw/u1ShI9wqCVm1ja5ldFvcnK0/p4=
> -SHA256 (go_modules/github.com/charmbracelet/x/exp/charmtone/@v/v0.0.0-20260602025833-85a30b5e440a.zip) = GxbxWWn/IpZ8xVv9opJoCgTp9lUqZC6F0wb4tQYjrb8=
> +SHA256 (go_modules/github.com/charmbracelet/x/exp/charmtone/@v/v0.1.0.mod) = mud6AvGtjnoO01Iw/u1ShI9wqCVm1ja5ldFvcnK0/p4=
> +SHA256 (go_modules/github.com/charmbracelet/x/exp/charmtone/@v/v0.1.0.zip) = vQqePLh7wETcKbncySTL1ACO0YMKD5GbBAA5b9KSHWg=
>  SHA256 (go_modules/github.com/charmbracelet/x/exp/golden/@v/v0.0.0-20241212170349-ad4b7ae0f25f.mod) = qOQi7fNKC26E5mkaeXSSaknqW54R3uh7Auc32goAc0s=
>  SHA256 (go_modules/github.com/charmbracelet/x/exp/golden/@v/v0.0.0-20250806222409-83e3a29d542f.mod) = G5O7ToP7cdWGmo3H9l73FikbKK9UB9aTCcbPlayXiAU=
> -SHA256 (go_modules/github.com/charmbracelet/x/exp/golden/@v/v0.0.0-20250806222409-83e3a29d542f.zip) = aGNrbN7A5PwLvgtQxO/FLILy4XXRGKkDNjGr3ZWUtSc=
> +SHA256 (go_modules/github.com/charmbracelet/x/exp/golden/@v/v0.1.0.mod) = arxBeq4MDHYb0+Okl4R4GCYE/BmNJUqFQSBT69qSwfI=
> +SHA256 (go_modules/github.com/charmbracelet/x/exp/golden/@v/v0.1.0.zip) = MHX+O7Uc/fafROfxsvWG2koIlxG3rIO2XDc3y3Jc5kY=
>  SHA256 (go_modules/github.com/charmbracelet/x/exp/ordered/@v/v0.1.0.mod) = d0C19W7NavX9uf6MokWgG9/eTO2gDSBq6WFJxBC4S4U=
>  SHA256 (go_modules/github.com/charmbracelet/x/exp/ordered/@v/v0.1.0.zip) = gFVKw7+W86HEeCcIyCDHV7kJJlLFwda0IfOXgh0naJo=
>  SHA256 (go_modules/github.com/charmbracelet/x/exp/slice/@v/v0.0.0-20250327172914-2fdc97757edf.mod) = ucDwpB1HfZe3c+r7UXjGMtko5bUQAoHRkwbAU3Uf5Us=
>  SHA256 (go_modules/github.com/charmbracelet/x/exp/slice/@v/v0.0.0-20250904123553-b4e2667e5ad5.mod) = l0pJVrKO4lEM6eTFsdp/AbjESrC3vBikd32lUtWmCLk=
> -SHA256 (go_modules/github.com/charmbracelet/x/exp/slice/@v/v0.0.0-20260730164118-7e2d3e6c5238.mod) = qkKtwzNt3Vpzx1YuCSTLpFyEACT4SuLV59ssZ2mWKaw=
> -SHA256 (go_modules/github.com/charmbracelet/x/exp/slice/@v/v0.0.0-20260730164118-7e2d3e6c5238.zip) = A6y0qz/85RywMeDbzlD9UvDnWqIbKJ4m9Sz6Ezg6MgI=
> +SHA256 (go_modules/github.com/charmbracelet/x/exp/slice/@v/v0.1.0.mod) = qkKtwzNt3Vpzx1YuCSTLpFyEACT4SuLV59ssZ2mWKaw=
> +SHA256 (go_modules/github.com/charmbracelet/x/exp/slice/@v/v0.1.0.zip) = iAcVwS0czvFsVTvkUKvedPxz6RLOH6Y2FACa1IcxYDk=
>  SHA256 (go_modules/github.com/charmbracelet/x/exp/strings/@v/v0.1.0.mod) = fpCZfz/JQwTYyN7J9Xj6X8Zl2oKosTC9Nr5P2tqVI2o=
>  SHA256 (go_modules/github.com/charmbracelet/x/exp/strings/@v/v0.1.0.zip) = zAAmsFmuuoIKjBOzoazHRyfpeD8ZlOrHEnU2cD58ZvY=
>  SHA256 (go_modules/github.com/charmbracelet/x/json/@v/v0.2.0.mod) = krzgvGXg2YpKSLh0G/EpqcJK1K00jiUlGIObsZgWTWM=
> @@ -627,7 +631,8 @@ SHA256 (go_modules/github.com/mattn/go-r
>  SHA256 (go_modules/github.com/mattn/go-runewidth/@v/v0.0.23.mod) = 8Y88c/WdE4/VZfngGbQYcTY4FYnohQdwT0YY5C1a9Y4=
>  SHA256 (go_modules/github.com/mattn/go-runewidth/@v/v0.0.24.mod) = 8Y88c/WdE4/VZfngGbQYcTY4FYnohQdwT0YY5C1a9Y4=
>  SHA256 (go_modules/github.com/mattn/go-runewidth/@v/v0.0.27.mod) = kJHHk+JVA2uoztYX+jIllyp0Xq7lytTPJkwVduXBNH4=
> -SHA256 (go_modules/github.com/mattn/go-runewidth/@v/v0.0.27.zip) = eLFpC9JQb67uz/nM5hXlcQwS/iWlOTq+PCUD0OpO4uo=
> +SHA256 (go_modules/github.com/mattn/go-runewidth/@v/v0.0.30.mod) = kJHHk+JVA2uoztYX+jIllyp0Xq7lytTPJkwVduXBNH4=
> +SHA256 (go_modules/github.com/mattn/go-runewidth/@v/v0.0.30.zip) = l8UPlDJB1ZPEDER3c8znOO3wuds21orq3DJ3OiEDrx4=
>  SHA256 (go_modules/github.com/mdlayher/netlink/@v/v1.7.2.mod) = aqaJXz02D+MPyZtEDVZsJgToOqTJKJQyfskeB4OfDh0=
>  SHA256 (go_modules/github.com/mdlayher/netlink/@v/v1.7.2.zip) = ohzK6ipvt7lGqWxh78L/8z1xeTHCDFuzouws5SgHLcA=
>  SHA256 (go_modules/github.com/mdlayher/packet/@v/v1.1.2.mod) = DYN/vaVgOeOHar2CAJI4YaxYmRvQ0udQbAeUhTGFpEM=
> @@ -697,9 +702,6 @@ SHA256 (go_modules/github.com/nxadm/tail
>  SHA256 (go_modules/github.com/nxadm/tail/@v/v1.4.11.zip) = xCp7GhCpsx9hgGdC576Z5SSiiFyRgPGEA75IpwO1Zno=
>  SHA256 (go_modules/github.com/onsi/gomega/@v/v1.34.1.mod) = 7cth9PTAaDaOewUSzssSAqD/2SJcPOTZDZqUsUlp+EY=
>  SHA256 (go_modules/github.com/onsi/gomega/@v/v1.34.1.zip) = HuT62/JaAef6u6k6qIy/bEx5rC2KRaYBfj6k9pbVGZM=
> -SHA256 (go_modules/github.com/openai/openai-go/v3/@v/v3.54.0.mod) = zDFJ3NZM6UG6c0HuEvdwkn8kQhjOHQcn1OL74YSVMrQ=
> -SHA256 (go_modules/github.com/openai/openai-go/v3/@v/v3.56.0.mod) = zDFJ3NZM6UG6c0HuEvdwkn8kQhjOHQcn1OL74YSVMrQ=
> -SHA256 (go_modules/github.com/openai/openai-go/v3/@v/v3.56.0.zip) = XZsZtCvzVMlP6QVteuOpcNE37YuOUVVTm/jkTauByDY=
>  SHA256 (go_modules/github.com/opencontainers/go-digest/@v/v1.0.0.mod) = jeAlCkumgR93A/u0me2IlnJZdpnzNbEvR9eI0d8Ie0o=
>  SHA256 (go_modules/github.com/opencontainers/go-digest/@v/v1.0.0.zip) = YV77Mf9s1xA1uKo4w2Wdi02kbzzZKsgHy1BEmt/jfIY=
>  SHA256 (go_modules/github.com/opencontainers/image-spec/@v/v1.1.1.mod) = GQX1+QBh5CLRojqLO+zyuIR8SuAHBNRN4rt/WF+g/tY=
> @@ -886,7 +888,8 @@ SHA256 (go_modules/github.com/willscott/
>  SHA256 (go_modules/github.com/xanzy/ssh-agent/@v/v0.3.3.mod) = HOHMUJiJtzjB9j2/zFrVIs62MnLZ3v9u73SZ7TAaoSU=
>  SHA256 (go_modules/github.com/xanzy/ssh-agent/@v/v0.3.3.zip) = GahsJiOyDMmGh73diePwI9sMpRyLyeOLmtnFblt9EQ0=
>  SHA256 (go_modules/github.com/xo/terminfo/@v/v0.0.0-20220910002029-abceb7e1c41e.mod) = cZ1TOX9e56KopHsGrNndrgY8vj1srzjt7KR3wtH+LM4=
> -SHA256 (go_modules/github.com/xo/terminfo/@v/v0.0.0-20220910002029-abceb7e1c41e.zip) = uPQnAZHgjhNeky3+FodpBGpCaOx/OJJZOx13OyxfpM8=
> +SHA256 (go_modules/github.com/xo/terminfo/@v/v1.0.0.mod) = cZ1TOX9e56KopHsGrNndrgY8vj1srzjt7KR3wtH+LM4=
> +SHA256 (go_modules/github.com/xo/terminfo/@v/v1.0.0.zip) = ZGGUB6Aq/OLx+xumiJwTTHPxvlc2eNfbdQRUh+eDOo0=
>  SHA256 (go_modules/github.com/xyproto/randomstring/@v/v1.0.5.mod) = p9Ud13Qi0W+c9GiI184Uo+jxGnw8fwJJFvUMBlgF/Io=
>  SHA256 (go_modules/github.com/xyproto/randomstring/@v/v1.0.5.zip) = WOoMcElvxpjEWXYlOVs/NTId8JvgE+6ICmzhDpSWkmE=
>  SHA256 (go_modules/github.com/ydb-platform/ydb-go-genproto/@v/v0.0.0-20260810123728-f0c151ab31b9.mod) = Q6rbeYQiAYS8CXSxlgGuz3ah+xZQYDwyTu8jI+MW930=
> @@ -1272,7 +1275,7 @@ SHA256 (go_modules/mvdan.cc/sh/x/@v/v0.0
>  SHA256 (go_modules/mvdan.cc/sh/x/@v/v0.0.0-20260907232430-b5028a3332a4.zip) = ihOUHozHP5hCTNIWJospN3T+SncrIUvrYra2L1LqlnU=
>  SHA256 (go_modules/pack.ag/tftp/@v/v1.0.1-0.20181129014014-07909dfbde3c.mod) = VLlRy6/uldG7KTMZ+Tv09LQC1u1/6WsX67Gt9e3n6N8=
>  SHA256 (go_modules/pack.ag/tftp/@v/v1.0.1-0.20181129014014-07909dfbde3c.zip) = EKKXbL6XnK6qqLJeM2X4BPxgi5er2IJEjs3r83uGeE0=
> -SIZE (crush-v0.96.1.zip) = 2932953
> +SIZE (crush-v0.98.1.zip) = 3040232
>  SIZE (go_modules/cel.dev/expr/@v/v0.24.0.mod) = 231
>  SIZE (go_modules/cel.dev/expr/@v/v0.25.2.mod) = 96
>  SIZE (go_modules/cel.dev/expr/@v/v0.25.3.mod) = 96
> @@ -1280,14 +1283,14 @@ SIZE (go_modules/cel.dev/expr/@v/v0.25.3
>  SIZE (go_modules/charm.land/bubbles/v2/@v/v2.2.1.mod) = 1225
>  SIZE (go_modules/charm.land/bubbles/v2/@v/v2.2.1.zip) = 159166
>  SIZE (go_modules/charm.land/bubbletea/v2/@v/v2.0.8.mod) = 1006
> -SIZE (go_modules/charm.land/bubbletea/v2/@v/v2.0.9.mod) = 1006
> -SIZE (go_modules/charm.land/bubbletea/v2/@v/v2.0.9.zip) = 85761
> -SIZE (go_modules/charm.land/catwalk/@v/v0.52.28.mod) = 607
> -SIZE (go_modules/charm.land/catwalk/@v/v0.52.28.zip) = 141017
> +SIZE (go_modules/charm.land/bubbletea/v2/@v/v2.1.0.mod) = 978
> +SIZE (go_modules/charm.land/bubbletea/v2/@v/v2.1.0.zip) = 92985
> +SIZE (go_modules/charm.land/catwalk/@v/v0.52.49.mod) = 607
> +SIZE (go_modules/charm.land/catwalk/@v/v0.52.49.zip) = 143019
>  SIZE (go_modules/charm.land/fang/v2/@v/v2.0.1.mod) = 1547
>  SIZE (go_modules/charm.land/fang/v2/@v/v2.0.1.zip) = 39868
> -SIZE (go_modules/charm.land/fantasy/@v/v0.43.1.mod) = 6549
> -SIZE (go_modules/charm.land/fantasy/@v/v0.43.1.zip) = 1248254
> +SIZE (go_modules/charm.land/fantasy/@v/v0.45.1.mod) = 6628
> +SIZE (go_modules/charm.land/fantasy/@v/v0.45.1.zip) = 1269056
>  SIZE (go_modules/charm.land/glamour/v2/@v/v2.0.1.mod) = 1463
>  SIZE (go_modules/charm.land/glamour/v2/@v/v2.0.1.zip) = 139064
>  SIZE (go_modules/charm.land/lipgloss/v2/@v/v2.0.1.mod) = 1046
> @@ -1482,7 +1485,6 @@ SIZE (go_modules/github.com/aws/smithy-g
>  SIZE (go_modules/github.com/aymanbagabas/go-osc52/v2/@v/v2.0.1.mod) = 52
>  SIZE (go_modules/github.com/aymanbagabas/go-osc52/v2/@v/v2.0.1.zip) = 7855
>  SIZE (go_modules/github.com/aymanbagabas/go-udiff/@v/v0.2.0.mod) = 49
> -SIZE (go_modules/github.com/aymanbagabas/go-udiff/@v/v0.3.1.mod) = 49
>  SIZE (go_modules/github.com/aymanbagabas/go-udiff/@v/v0.4.1.mod) = 49
>  SIZE (go_modules/github.com/aymanbagabas/go-udiff/@v/v0.4.1.zip) = 46689
>  SIZE (go_modules/github.com/aymerick/douceur/@v/v0.2.0.mod) = 35
> @@ -1522,31 +1524,36 @@ SIZE (go_modules/github.com/charmbracele
>  SIZE (go_modules/github.com/charmbracelet/harmonica/@v/v0.2.0.zip) = 10431
>  SIZE (go_modules/github.com/charmbracelet/lipgloss/@v/v0.7.1.mod) = 422
>  SIZE (go_modules/github.com/charmbracelet/lipgloss/@v/v0.7.1.zip) = 40609
> +SIZE (go_modules/github.com/charmbracelet/openai-go/@v/v0.0.0-20260921175203-216db9e71b83.mod) = 1790
> +SIZE (go_modules/github.com/charmbracelet/openai-go/@v/v0.0.0-20260921175203-216db9e71b83.zip) = 1820074
>  SIZE (go_modules/github.com/charmbracelet/ultraviolet/@v/v0.0.0-20251205161215-1948445e3318.mod) = 747
>  SIZE (go_modules/github.com/charmbracelet/ultraviolet/@v/v0.0.0-20260205113103-524a6607adb8.mod) = 735
>  SIZE (go_modules/github.com/charmbracelet/ultraviolet/@v/v0.0.0-20260703014108-f5a850f9c2b7.mod) = 677
>  SIZE (go_modules/github.com/charmbracelet/ultraviolet/@v/v0.0.0-20260811164956-006e29f97886.mod) = 677
> -SIZE (go_modules/github.com/charmbracelet/ultraviolet/@v/v0.0.0-20260811164956-006e29f97886.zip) = 226161
> +SIZE (go_modules/github.com/charmbracelet/ultraviolet/@v/v0.0.0-20261008173134-6b8d4baf91b4.mod) = 649
> +SIZE (go_modules/github.com/charmbracelet/ultraviolet/@v/v0.0.0-20261008173134-6b8d4baf91b4.zip) = 246846
>  SIZE (go_modules/github.com/charmbracelet/x/ansi/@v/v0.11.6.mod) = 336
>  SIZE (go_modules/github.com/charmbracelet/x/ansi/@v/v0.11.7.mod) = 275
>  SIZE (go_modules/github.com/charmbracelet/x/ansi/@v/v0.11.8.mod) = 275
> -SIZE (go_modules/github.com/charmbracelet/x/ansi/@v/v0.11.8.zip) = 172952
> +SIZE (go_modules/github.com/charmbracelet/x/ansi/@v/v0.11.9.mod) = 275
> +SIZE (go_modules/github.com/charmbracelet/x/ansi/@v/v0.11.9.zip) = 177100
>  SIZE (go_modules/github.com/charmbracelet/x/editor/@v/v0.2.0.mod) = 52
>  SIZE (go_modules/github.com/charmbracelet/x/editor/@v/v0.2.0.zip) = 3694
>  SIZE (go_modules/github.com/charmbracelet/x/etag/@v/v0.2.0.mod) = 50
>  SIZE (go_modules/github.com/charmbracelet/x/etag/@v/v0.2.0.zip) = 3197
>  SIZE (go_modules/github.com/charmbracelet/x/exp/charmtone/@v/v0.0.0-20250603201427-c31516f43444.mod) = 110
> -SIZE (go_modules/github.com/charmbracelet/x/exp/charmtone/@v/v0.0.0-20260602025833-85a30b5e440a.mod) = 59
> -SIZE (go_modules/github.com/charmbracelet/x/exp/charmtone/@v/v0.0.0-20260602025833-85a30b5e440a.zip) = 6626
> +SIZE (go_modules/github.com/charmbracelet/x/exp/charmtone/@v/v0.1.0.mod) = 59
> +SIZE (go_modules/github.com/charmbracelet/x/exp/charmtone/@v/v0.1.0.zip) = 6445
>  SIZE (go_modules/github.com/charmbracelet/x/exp/golden/@v/v0.0.0-20241212170349-ad4b7ae0f25f.mod) = 103
>  SIZE (go_modules/github.com/charmbracelet/x/exp/golden/@v/v0.0.0-20250806222409-83e3a29d542f.mod) = 105
> -SIZE (go_modules/github.com/charmbracelet/x/exp/golden/@v/v0.0.0-20250806222409-83e3a29d542f.zip) = 5037
> +SIZE (go_modules/github.com/charmbracelet/x/exp/golden/@v/v0.1.0.mod) = 105
> +SIZE (go_modules/github.com/charmbracelet/x/exp/golden/@v/v0.1.0.zip) = 4522
>  SIZE (go_modules/github.com/charmbracelet/x/exp/ordered/@v/v0.1.0.mod) = 55
>  SIZE (go_modules/github.com/charmbracelet/x/exp/ordered/@v/v0.1.0.zip) = 2902
>  SIZE (go_modules/github.com/charmbracelet/x/exp/slice/@v/v0.0.0-20250327172914-2fdc97757edf.mod) = 53
>  SIZE (go_modules/github.com/charmbracelet/x/exp/slice/@v/v0.0.0-20250904123553-b4e2667e5ad5.mod) = 55
> -SIZE (go_modules/github.com/charmbracelet/x/exp/slice/@v/v0.0.0-20260730164118-7e2d3e6c5238.mod) = 55
> -SIZE (go_modules/github.com/charmbracelet/x/exp/slice/@v/v0.0.0-20260730164118-7e2d3e6c5238.zip) = 4696
> +SIZE (go_modules/github.com/charmbracelet/x/exp/slice/@v/v0.1.0.mod) = 55
> +SIZE (go_modules/github.com/charmbracelet/x/exp/slice/@v/v0.1.0.zip) = 4472
>  SIZE (go_modules/github.com/charmbracelet/x/exp/strings/@v/v0.1.0.mod) = 57
>  SIZE (go_modules/github.com/charmbracelet/x/exp/strings/@v/v0.1.0.zip) = 4400
>  SIZE (go_modules/github.com/charmbracelet/x/json/@v/v0.2.0.mod) = 50
> @@ -1901,7 +1908,8 @@ SIZE (go_modules/github.com/mattn/go-run
>  SIZE (go_modules/github.com/mattn/go-runewidth/@v/v0.0.23.mod) = 95
>  SIZE (go_modules/github.com/mattn/go-runewidth/@v/v0.0.24.mod) = 95
>  SIZE (go_modules/github.com/mattn/go-runewidth/@v/v0.0.27.mod) = 95
> -SIZE (go_modules/github.com/mattn/go-runewidth/@v/v0.0.27.zip) = 29985
> +SIZE (go_modules/github.com/mattn/go-runewidth/@v/v0.0.30.mod) = 95
> +SIZE (go_modules/github.com/mattn/go-runewidth/@v/v0.0.30.zip) = 40394
>  SIZE (go_modules/github.com/mdlayher/netlink/@v/v1.7.2.mod) = 257
>  SIZE (go_modules/github.com/mdlayher/netlink/@v/v1.7.2.zip) = 61930
>  SIZE (go_modules/github.com/mdlayher/packet/@v/v1.1.2.mod) = 256
> @@ -1971,9 +1979,6 @@ SIZE (go_modules/github.com/nxadm/tail/@
>  SIZE (go_modules/github.com/nxadm/tail/@v/v1.4.11.zip) = 33813
>  SIZE (go_modules/github.com/onsi/gomega/@v/v1.34.1.mod) = 559
>  SIZE (go_modules/github.com/onsi/gomega/@v/v1.34.1.zip) = 426432
> -SIZE (go_modules/github.com/openai/openai-go/v3/@v/v3.54.0.mod) = 1750
> -SIZE (go_modules/github.com/openai/openai-go/v3/@v/v3.56.0.mod) = 1750
> -SIZE (go_modules/github.com/openai/openai-go/v3/@v/v3.56.0.zip) = 1502617
>  SIZE (go_modules/github.com/opencontainers/go-digest/@v/v1.0.0.mod) = 52
>  SIZE (go_modules/github.com/opencontainers/go-digest/@v/v1.0.0.zip) = 34573
>  SIZE (go_modules/github.com/opencontainers/image-spec/@v/v1.1.1.mod) = 415
> @@ -2160,7 +2165,8 @@ SIZE (go_modules/github.com/willscott/go
>  SIZE (go_modules/github.com/xanzy/ssh-agent/@v/v0.3.3.mod) = 203
>  SIZE (go_modules/github.com/xanzy/ssh-agent/@v/v0.3.3.zip) = 11274
>  SIZE (go_modules/github.com/xo/terminfo/@v/v0.0.0-20220910002029-abceb7e1c41e.mod) = 100
> -SIZE (go_modules/github.com/xo/terminfo/@v/v0.0.0-20220910002029-abceb7e1c41e.zip) = 42016
> +SIZE (go_modules/github.com/xo/terminfo/@v/v1.0.0.mod) = 100
> +SIZE (go_modules/github.com/xo/terminfo/@v/v1.0.0.zip) = 41726
>  SIZE (go_modules/github.com/xyproto/randomstring/@v/v1.0.5.mod) = 48
>  SIZE (go_modules/github.com/xyproto/randomstring/@v/v1.0.5.zip) = 4537
>  SIZE (go_modules/github.com/ydb-platform/ydb-go-genproto/@v/v0.0.0-20260810123728-f0c151ab31b9.mod) = 137
> Index: devel/crush/modules.inc
> ===================================================================
> RCS file: /cvs/ports/devel/crush/modules.inc,v
> diff -u -p -u -p -r1.4 modules.inc
> --- devel/crush/modules.inc	26 Sep 2026 09:37:51 -0000	1.4
> +++ devel/crush/modules.inc	14 Oct 2026 02:01:23 -0000
> @@ -1,10 +1,10 @@
>  MODGO_MODULES =	\
>  	cel.dev/expr										 v0.25.3 \
>  	charm.land/bubbles/v2									 v2.2.1 \
> -	charm.land/bubbletea/v2									 v2.0.9 \
> -	charm.land/catwalk									 v0.52.28 \
> +	charm.land/bubbletea/v2									 v2.1.0 \
> +	charm.land/catwalk									 v0.52.49 \
>  	charm.land/fang/v2									 v2.0.1 \
> -	charm.land/fantasy									 v0.43.1 \
> +	charm.land/fantasy									 v0.45.1 \
>  	charm.land/glamour/v2									 v2.0.1 \
>  	charm.land/lipgloss/v2									 v2.0.6 \
>  	charm.land/log/v2									 v2.0.1 \
> @@ -91,14 +91,15 @@ MODGO_MODULES =	\
>  	github.com/charmbracelet/colorprofile							 v0.4.3 \
>  	github.com/charmbracelet/harmonica							 v0.2.0 \
>  	github.com/charmbracelet/lipgloss							 v0.7.1 \
> -	github.com/charmbracelet/ultraviolet							 v0.0.0-20260811164956-006e29f97886 \
> -	github.com/charmbracelet/x/ansi								 v0.11.8 \
> +	github.com/charmbracelet/openai-go							 v0.0.0-20260921175203-216db9e71b83 \
> +	github.com/charmbracelet/ultraviolet							 v0.0.0-20261008173134-6b8d4baf91b4 \
> +	github.com/charmbracelet/x/ansi								 v0.11.9 \
>  	github.com/charmbracelet/x/editor							 v0.2.0 \
>  	github.com/charmbracelet/x/etag								 v0.2.0 \
> -	github.com/charmbracelet/x/exp/charmtone						 v0.0.0-20260602025833-85a30b5e440a \
> -	github.com/charmbracelet/x/exp/golden							 v0.0.0-20250806222409-83e3a29d542f \
> +	github.com/charmbracelet/x/exp/charmtone						 v0.1.0 \
> +	github.com/charmbracelet/x/exp/golden							 v0.1.0 \
>  	github.com/charmbracelet/x/exp/ordered							 v0.1.0 \
> -	github.com/charmbracelet/x/exp/slice							 v0.0.0-20260730164118-7e2d3e6c5238 \
> +	github.com/charmbracelet/x/exp/slice							 v0.1.0 \
>  	github.com/charmbracelet/x/exp/strings							 v0.1.0 \
>  	github.com/charmbracelet/x/json								 v0.2.0 \
>  	github.com/charmbracelet/x/powernap							 v0.1.6 \
> @@ -246,7 +247,7 @@ MODGO_MODULES =	\
>  	github.com/lucasb-eyer/go-colorful							 v1.4.1 \
>  	github.com/mattn/go-isatty								 v0.0.24 \
>  	github.com/mattn/go-localereader							 v0.0.1 \
> -	github.com/mattn/go-runewidth								 v0.0.27 \
> +	github.com/mattn/go-runewidth								 v0.0.30 \
>  	github.com/mdlayher/netlink								 v1.7.2 \
>  	github.com/mdlayher/packet								 v1.1.2 \
>  	github.com/mdlayher/socket								 v0.5.1 \
> @@ -281,7 +282,6 @@ MODGO_MODULES =	\
>  	github.com/nfnt/resize									 v0.0.0-20180221191011-83c6a9932646 \
>  	github.com/nxadm/tail									 v1.4.11 \
>  	github.com/onsi/gomega									 v1.34.1 \
> -	github.com/openai/openai-go/v3								 v3.56.0 \
>  	github.com/opencontainers/go-digest							 v1.0.0 \
>  	github.com/opencontainers/image-spec							 v1.1.1 \
>  	github.com/orangecms/go-framebuffer							 v0.0.0-20200613202404-a0700d90c330 \
> @@ -357,7 +357,7 @@ MODGO_MODULES =	\
>  	github.com/willscott/go-nfs								 v0.0.0-20240424173852-04b947a7e58a \
>  	github.com/willscott/go-nfs-client							 v0.0.0-20240104095149-b44639837b00 \
>  	github.com/xanzy/ssh-agent								 v0.3.3 \
> -	github.com/xo/terminfo									 v0.0.0-20220910002029-abceb7e1c41e \
> +	github.com/xo/terminfo									 v1.0.0 \
>  	github.com/xyproto/randomstring								 v1.0.5 \
>  	github.com/ydb-platform/ydb-go-genproto							 v0.0.0-20260810123728-f0c151ab31b9 \
>  	github.com/ydb-platform/ydb-go-sdk/v3							 v3.151.1 \
> @@ -509,15 +509,17 @@ MODGO_MODFILES =	\
>  	github.com/aws/smithy-go								 v1.20.3 \
>  	github.com/aws/smithy-go								 v1.27.8 \
>  	github.com/aymanbagabas/go-udiff							 v0.2.0 \
> -	github.com/aymanbagabas/go-udiff							 v0.3.1 \
>  	github.com/charmbracelet/colorprofile							 v0.4.2 \
>  	github.com/charmbracelet/ultraviolet							 v0.0.0-20251205161215-1948445e3318 \
>  	github.com/charmbracelet/ultraviolet							 v0.0.0-20260205113103-524a6607adb8 \
>  	github.com/charmbracelet/ultraviolet							 v0.0.0-20260703014108-f5a850f9c2b7 \
> +	github.com/charmbracelet/ultraviolet							 v0.0.0-20260811164956-006e29f97886 \
>  	github.com/charmbracelet/x/ansi								 v0.11.6 \
>  	github.com/charmbracelet/x/ansi								 v0.11.7 \
> +	github.com/charmbracelet/x/ansi								 v0.11.8 \
>  	github.com/charmbracelet/x/exp/charmtone						 v0.0.0-20250603201427-c31516f43444 \
>  	github.com/charmbracelet/x/exp/golden							 v0.0.0-20241212170349-ad4b7ae0f25f \
> +	github.com/charmbracelet/x/exp/golden							 v0.0.0-20250806222409-83e3a29d542f \
>  	github.com/charmbracelet/x/exp/slice							 v0.0.0-20250327172914-2fdc97757edf \
>  	github.com/charmbracelet/x/exp/slice							 v0.0.0-20250904123553-b4e2667e5ad5 \
>  	github.com/clipperhouse/displaywidth							 v0.9.0 \
> @@ -579,8 +581,8 @@ MODGO_MODFILES =	\
>  	github.com/mattn/go-runewidth								 v0.0.20 \
>  	github.com/mattn/go-runewidth								 v0.0.23 \
>  	github.com/mattn/go-runewidth								 v0.0.24 \
> +	github.com/mattn/go-runewidth								 v0.0.27 \
>  	github.com/modelcontextprotocol/go-sdk							 v1.3.1 \
> -	github.com/openai/openai-go/v3								 v3.54.0 \
>  	github.com/pierrec/lz4/v4								 v4.1.14 \
>  	github.com/pierrec/lz4/v4								 v4.1.22 \
>  	github.com/pkg/errors									 v0.8.1 \
> @@ -616,6 +618,7 @@ MODGO_MODFILES =	\
>  	github.com/tidwall/gjson								 v1.18.0 \
>  	github.com/tidwall/pretty								 v1.2.0 \
>  	github.com/ulikunitz/xz									 v0.5.15 \
> +	github.com/xo/terminfo									 v0.0.0-20220910002029-abceb7e1c41e \
>  	github.com/yuin/goldmark								 v1.4.13 \
>  	github.com/yuin/goldmark								 v1.7.1 \
>  	github.com/yuin/goldmark								 v1.7.8 \