fix(cli): prime build extension contracts - #3538
Merged
Merged
Conversation
veryfront build activates built-in LLM and eval report extensions even when a project does not configure providers. Those extensions validate their required registries during orchestration, so the build path must prime the same contracts that other bootstraps provide. Constraint: Built-in provider and exporter extensions validate required contract registries during build extension orchestration Constraint: Issue veryfront/veryfront-issue-inbox#456 identifies 0.1.1206 as first bad and 59fe62c / PR #3417 as the introducing change Rejected: Require users to install or opt into extra extensions | the failing extensions are already activated by the build path and only need core registries Confidence: high Scope-risk: narrow Related: veryfront/veryfront-issue-inbox#456 Tested: git diff --check Tested: deno test --preload=src/testing/preload.ts --no-check --allow-all cli/shared/build-extensions.test.ts Tested: deno task fmt:check Tested: deno task lint Tested: deno check cli/shared/build-extensions.ts cli/shared/build-extensions.test.ts Tested: Pre-push hook passed formatting, lint, and typecheck before unit tests Tested: Previously verified focused 30-step suite, deno task build:npm, and packed npm consumer build during TDD reproduction Not-tested: Full repository unit suite did not complete; pre-push deno task test:unit failed in cli/commands/styles/command.test.ts with uncaught Unable to get CWD after 3783 passed / 28090 steps
📝 WalkthroughWalkthrough
ChangesBuild extension contracts
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
kojiwakayama
enabled auto-merge
August 10, 2026 16:04
This was referenced Aug 10, 2026
kwakayama
added a commit
that referenced
this pull request
Aug 10, 2026
Ships the build fixes for veryfront-issue-inbox#456. `veryfront build` has been broken for every project since 0.1.1206, and 5 of 7 scaffold templates could not build at all. - #3538 prime host contracts in the build extension path - #3541 resolve server-side esm.sh modules with a server target - #3542 keep optional Deno imports optional - #3540 isolate cwd-mutating unit tests The version is embedded in hydration-runtime.generated.ts, so a bump must be followed by `deno task generate`; the manifests check fails otherwise. There is no earlier version to pin to: 0.1.1205 fails the same templates with the CSSProcessor error that #3417 was fixing.
This was referenced Aug 10, 2026
Merged
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
Related to veryfront/veryfront-issue-inbox#456: "veryfront build fails for every project since 0.1.1206: build path is the only orchestrateExtensions caller that omits primeContracts". The inbox issue identifies 0.1.1206 as first bad, introduced by 59fe62c / PR #3417, with all local
veryfront buildruns affected.This fixes the build-only extension orchestration path by priming the same host-owned registries that dev/serve and eval already seed:
LLMProviderRegistryfor the built-in OpenAI, Anthropic, and Google LLM extensions.EvalReportExporterRegistryfor the built-in MLflow eval report extension.The extensions were present and activated. The missing part was the build caller's host registry contract setup, not an optional install.
Root cause
cli/shared/build-extensions.tswas the onlyorchestrateExtensionscaller that activated built-in LLM and eval extensions withoutprimeContracts. Those extensions correctly fail closed when their required registries are neither provided by another extension nor primed by the host.TDD
cli/shared/build-extensions.test.tsthat assertssetupBuildCliExtensionsprimes both required contracts.setupBuildCliExtensionsnow passes freshLLMProviderRegistryandEvalReportExporterRegistryinstances into orchestration.Verification
deno test --preload=src/testing/preload.ts --no-check --allow-all cli/shared/build-extensions.test.tspassed after transplant ontoorigin/main(6 steps).git diff --checkpassed.deno task fmt:checkpassed.deno task lintpassed.deno check cli/shared/build-extensions.ts cli/shared/build-extensions.test.tspassed.deno task build:npmpassed during the TDD reproduction/fix cycle.Summary by CodeRabbit
Bug Fixes
Tests