feat(pmoves): activate the pmoves-catwalk submodule build — TensorZero provider in the binary - #15
Conversation
…o provider in the binary go.mod now routes charm.land/catwalk at ./pmoves-catwalk (the fork submodule carrying the TensorZero provider for PMOVES gateway routing). This is the build-time activation the 2026-07-18 trail entry deferred: crush consumes catwalk as a compiled-in library, so the upstream CATWALK_URL runtime override (added upstream charmbracelet#3585) cannot carry custom providers into the model picker — only a replace can. Every workflow that runs the go toolchain now inits the submodule first: build (all OSes), lint (via meta's pre-run hook), schema-update, security/govulncheck, snapshot. release and nightly delegate to charmbracelet/meta workflows with no submodule support — both are dormant on this fork (no tags; nightly startup-fails on the missing goreleaser_key secret) and now carry a NOTE with the inline instructions if ever activated. Verified locally with the go1.26.6 toolchain (auto-switched): go mod tidy idempotent, go build ./... exit 0, go run . schema produces valid JSON — all three with the replace active.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 08842b68d2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // the TensorZero provider for PMOVES gateway routing. Every workflow that | ||
| // runs the go toolchain must init this submodule first (see build.yml): | ||
| // with the replace active, go mod tidy fails on a bare checkout. | ||
| replace charm.land/catwalk => ./pmoves-catwalk |
There was a problem hiding this comment.
Keep versioned Go installs compatible with the module
Avoid publishing this local replace: when the project is installed through the documented go install github.com/charmbracelet/crush@latest route rather than a recursive Git checkout, the submodule directory is unavailable, and versioned go install rejects modules containing replacement directives that change how the module is interpreted (go help install states this constraint explicitly). Consequently, releases containing this change cannot be installed through the advertised Go installation method; publish the fork as an addressable module dependency or otherwise avoid a filesystem-only replacement in the released go.mod.
Useful? React with 👍 / 👎.
| # PMOVES: the catwalk replace in go.mod points at this submodule; | ||
| # every job that runs the go toolchain must init it first. | ||
| - run: git submodule update --init pmoves-catwalk |
There was a problem hiding this comment.
Initialize the submodule for the CodeQL Go build
Add the initialization to the codeql job as well: in the language: go matrix, its checkout leaves submodules disabled and the subsequent github/codeql-action/autobuild step compiles the project, so ./pmoves-catwalk is absent and the new replacement makes that matrix entry fail. This added step only protects govulncheck; it does not affect the separate CodeQL checkout at lines 30-37.
Useful? React with 👍 / 👎.
|
CI status — GitHub event-pipeline stall (external), not the change. All local verification is complete on the exact go1.26.6 toolchain (auto-switched): |
What
Activates the build-time catwalk routing deferred since the 2026-07-18 trail entry:
go.modnow carriesreplace charm.land/catwalk => ./pmoves-catwalk, so published binaries include the fork's TensorZero provider (PMOVES gateway routing in the model picker).Why a replace and not CATWALK_URL: crush imports catwalk as a compiled-in library (
internal/ui/dialog/models.go→catwalk.Provider). Upstream's newCATWALK_URLoverride (charmbracelet#3585, arrived in the v0.91.1 sync) only redirects the registry fetch — it cannot inject custom providers into the compiled model list. Only the replace can.The CI consequence, handled
With the replace active,
go mod tidyfails on a bare checkout. Every workflow that runs the go toolchain now inits the submodule first:git submodule update --init pmoves-catwalksteppre-runhook (no inlining needed — it exists)goreleaser_keybefore any build) — carry a NOTE with inline instructions if ever activated; meta's workflows have no submodule supportVerified locally (go1.26.6 via toolchain auto-switch)
go mod tidy— idempotent (second run zero-diff; CI'sgit diff --exit-codegate will pass)go build ./...— exit 0 with the replacego run . schema— valid JSONgo.sum— catwalk hash lines correctly dropped (path replace)Lane claimed in PMOVES.AI AGNOTE4482PHI.t1.md (B850-CLAUDE, 2026-08-26T15:30Z); pairs with gitlink promotion after merge.
💘 Generated with Crush