Repository navigation
feat(v1): add pilot module and generation flow - #232
Merged
Merged
Conversation
The config examples the MCP server serves named api.easyp.tech, which has no DNS record at all, and put protoc-gen-go under a "protobuf" group that does not exist — the catalogue calls it protocolbuffers. Both are wrong in a way that only shows up when someone runs the example, and these examples are read by agents, so a wrong one propagates into code before anyone tries it. They now name plugins.beta.easyp.tech and groups that exist; each version cited is one the registry actually carries. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
service v0.14.0 renamed its gRPC surface — package api.generator.v1 became easyp.generator.v1 and ServiceAPI became GeneratorAPI — and moved the contract into its own module. This client kept dialling the old name, so every remote: plugin against a v0.14.0+ server, plugins.beta.easyp.tech included, failed with Unimplemented. Nobody noticed while the public stand lagged on v0.13.0; it moved to v1.0.0 this week and the gap showed. Depends on github.com/easyp-tech/service/api v1.0.0 directly now, and no longer on the service module at all. Verified against the stand: a remote generate produces output where the same call answered Unimplemented before. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
go.mod has required go 1.26.6 since the toolchain bump, and the release image was still built on golang:1.25-alpine with GOTOOLCHAIN=local — so `go mod download` inside the image refused the module outright. No release had been cut since the bump, which is why nothing noticed until v0.17.0. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Both workflows pinned Go 1.24 while go.mod has required 1.26.6 since the toolchain bump. The release job would have failed at setup-go before goreleaser ran, and the test job has been failing the same way — go.mod is the one place the requirement is stated, so the workflows read it from there. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
gotestsum 1.11.0 and mockery v2.41.0 both pull golang.org/x/tools at a version whose tokeninternal fails to compile on Go 1.26, so `task init` died before a single test ran. This was masked while CI pinned Go 1.24 by literal; reading the version from go.mod exposed it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
#227 added the field to the config and hand-edited both schema artifacts, but the generator that the golden test and schema:check compare against never learned it. The artifacts were right; the model was behind. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Adapt GeneratorAPI and its tests to service/api v1.0.0; retain the pilot YAML validator and v1 architecture. Wire FILE breaking checks through v1 policy, runtime, generated schemas and MCP. Carry over main build/CI toolchain updates and provide a live-verified remote plugin example. Validate with go test -race -count=1 ./..., go vet, both CLI builds, go mod verify, schema regeneration, and live protoc-gen-go v1.36.11 generation.
Add mutually exclusive descriptor_set_out_dir exports per project/module. Compile and validate all graphs and destinations before running plugins; preserve consumer options and use immutable prepared graphs. Explain descriptor conflicts with source and version context, avoid thin-root targets, and prevent output collisions including directory symlink aliases. Verified with 879 passing tests/subtests under -race, go vet, schema:check, both CLI builds, and all 69 v1 tests/subtests in easyp-test. The new regression reproduces premature plugin execution on the previous binary.
…view Use stable rule deduplication; reject unsupported lint names across runtime, schema and MCP with located diagnostics. Remove the unimplemented cycle rule from the catalog and replace its panic with an error. Resolve absolute replacements consistently. Let explicit --against override policy without promoting its default. Preserve legacy deps and Git-input transitives through MVS. Verified with 930 tests/subtests under -race, go vet, module verification, schema:check, both CLI builds, and all 76 v1 tests/subtests in easyp-test. All five defect regressions fail on the previous binary; the relative replacement control remains green.
Address X-14, X-16, R-20, X-24 and X-26. Apply Go prefixes without implicit language defaults. Compare independently scoped modules with revision-local snapshots, locks and effective policies; retain target paths, FILE checking and baseline-only files. Exclude vendor before policy discovery. Reject changed locked semantic-version identities while preserving normal updates and lock-first downloads. Remove obsolete docs publication from the CLI repository. Verified with 956 tests/subtests under -race, all 94 v1 easyp-test checks with -race and explicit source/binary paths, go vet, go mod verify, schema:check and both CLI builds. All 18 added regression tests/subtests fail against the pre-fix source/binary.
Address X-19/X-22, X-15, X-23, X-18 and X-25. Bound context discovery; make recursive generation opt-in and project selection repeatable. Restore per-plugin with_imports and stage outputs with Go-package collision checks. Resolve compatible tag/SHA/versionless requirements deterministically. Apply scoped lint directives without global state. Reuse locked Git commit objects with verified shallow-fetch fallback. Verified with 970 tests/subtests under -race, 104 v1 easyp-test checks, both CLI builds, go vet, go mod verify and schema:check. Import generation is checked by compiling the generated multi-module Go project. Reproducible cold/warm Git benchmarks retain identical locks.
Add preview-first v0 migration with conservative source equivalence, immutable historical pins, verified legacy hashes, backups and ordinary-failure rollback. Convert native repository configs and add a deterministic self-test to CI. Implement source-relative policy exclusions and unstable package filtering. Tighten manifest parsing, preserve hash comments during edits, respect import-root identities, fix baseline refs/ignore scope and literal plugin argv. Reject advertised-but-unimplemented future settings in schema and align MCP. Verified with 1349 tests/subtests under -race, all 136 v1 easyp-test checks, both CLI builds, go vet, module verification, schema:check and native example smoke. Migration round trips, old pins and hash-domain conversion are exercised against local Git fixtures. Shared policy delivery and local-replace lock semantics remain explicitly out of scope.
Automatically guide terminal invocations without --module; preserve existing flag-only usage and permit explicit --interactive=false. Separate default-no dependency/cache and application permissions, display verified candidates, refuse redirected interactive consent, and recheck reviewed input state. Preserve migration integrity, backups and no-plugin semantics. Verified with 1392 EasyP tests/subtests under -race, 151 v1 regression checks including 15 new PTY checks, both CLI builds, go vet, module/schema verification and native example. EN/RU documentation passes types and production build.
Validate reachable import closures and fail ls-files on reported errors. Promote existing indirect requirements. Derive strict managed schemas from actual handlers, enforce policy/runtime parity without double expansion. Bound init prompts to terminal IO, preserve declared origin identities, improve CLI diagnostics and batch lint by effective context. Align existing agent instructions. 1598 unit tests/subtests and 176 external v1 checks passed with -race. Both builds, vet, module/schema/native-example checks and six EN/RU documentation pages verified. X-20 and registry mapping remain separate.
Repair root-scoped Task targets, mock owners and local-only Docker helpers. Add offline tooling regression to CI and align existing skills with the CLI. Improve cache/revision diagnostics and cancellation without repinning. Resolve actual lint findings and pin current APK packages. Verified 1604 EasyP tests/subtests and 181 v1 checks with race detection; both builds, vet, schema/native example, full Go and Dockerfile lint, optional generated mocks, and APK package installation on arm64/amd64. X-20 remains unchanged.
Require /vN identities for native v2+ modules, keep v0/v1 unsuffixed, and treat major lines as independent module identities. Verify nested-module tag mapping and published legacy +incompatible provenance across fetch, cache, frozen graphs, migration, replacements, and resolution without rewriting protobuf imports.
Read Buf v1beta1/v1/v2 deps, including selected v1 workspace modules, and stop dependency adaptation with structured BSR metadata instead of silently dropping it. Keep BSR-to-Git mapping out of scope and preserve native protobuf.mod precedence.
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.
No description provided.