chore: drop plugin/deploy, pin voice-pipeline, scope go.work [skip-tag]#35
Merged
Conversation
The gRPC plugin protocol is not on the roadmap for near-term use and currently costs CI minutes (test-plugin matrix) without providing value. Remove the module so the repo matches what is actually shipped: - delete plugin/ sources (protocol, serve, types, proto gen) - remove ./plugin from go.work use list - drop test-plugin job + plugin gate check from ci.yml - drop plugin from post-merge build/vet loops - drop plugin from auto-tag module list and Phase 1 - delete local plugin/v0.1.0 tag (remote deletion follows) Made-with: Cursor
The deploy/ directory only contained a .env.example — no actual deployment tooling — and forced every env loader to probe four candidate paths just to find it. Collapse to a single convention: read a repo-root .env, and let callers export variables directly if they prefer. - delete deploy/.env.example - sdkx/internal/testenv: walk up from cwd to find a repo-root .env (no more deploy/ path probing) - examples/voice-pipeline: drop deploy/.env candidate, keep repo-root .env + local .env; update README, main.go error hint, env.go comment - .gitignore: drop !deploy/** whitelist and !plugin/** (orphaned from the previous commit) Made-with: Cursor
Drop the local `replace` directives that pointed sdk/sdkx back at ../../sdk and ../../sdkx. The example now builds against the latest released module versions, matching how any external consumer of the repo would depend on them. This is a prerequisite for removing go.work: once the workspace is gone, pinning via go.mod is the only remaining dependency source. Note: while go.work is still present in the tree it takes precedence over these require lines; the pin fully takes effect after the subsequent commit deletes the workspace file. Made-with: Cursor
voice-pipeline was previously in the workspace so local edits to sdk reached it automatically. Now that it pins sdk v0.1.12 + sdkx v0.1.14 (from the previous commit), keeping it in the workspace would override the pin and hide whether the released versions actually compile. Move it to MODULES_OFFWORK so make runs it with GOWORK=off, same treatment bench already has. sdk + sdkx remain in the workspace because sdkx imports sdk packages (sdk/recall, sdk/retrieval, sdk/history) that aren't yet in any released sdk tag — the workspace is the only way those cross-module edits compile atomically in the same PR. Made-with: Cursor
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.
Summary
Repo-level cleanup in four atomic commits, each reviewable on its own:
drop
plugin/— gRPC plugin protocol is not on the near-term roadmap; delete sources, remove fromgo.work, droptest-pluginCI job +post-mergevet/build loops, remove fromauto-tagmodule list. The orphanplugin/v0.1.0tag has been deleted from origin.drop
deploy/— the directory only held a.env.example, and every env loader probed four candidate paths just to find it. Collapse to a single convention: read a repo-root.env.sdkx/internal/testenvandexamples/voice-pipeline/env.goare rewired accordingly.pin
examples/voice-pipelinetosdk v0.1.12+sdkx v0.1.14, dropping the localreplacedirectives. External consumers now see a reproducible example built against real released versions.scope
go.worktosdk + sdkx— voice-pipeline leaves the workspace (if it stayed in, the workspace would override the pin from commit 3 and we'd never catch "example broken against latest release"). sdk+sdkx stay in the workspace because sdkx imports sdk/recall, sdk/retrieval, sdk/history, which aren't yet in any released sdk tag — the workspace is what lets cross-module edits compile atomically.Why keep
go.workin git at all?Considered removing it entirely. Verified against reality instead:
go.work; so do most large Go monorepos. The "don't commitgo.work" advice is aimed at library authors, not monorepos with tightly-coupled internal modules.go work initdance.Committing a narrow workspace (sdk + sdkx only) buys atomic cross-module CI with zero extra CI config.
Test plan
make cigreen locally (sdk + sdkx via workspace; bench + voice-pipeline via GOWORK=off with pinned deps)deploy/references don't break any other consumer (expected: none —grep deployonly hits test fixtures and the now-updated env loaders)Made with Cursor