refactor(arch): remaining registry/feature tasks — frontend mounts, native FeatureBundle, merge surface, pluginreg aligned#114
Conversation
…(Phase 3 + 6) Execute Phase 3 (registry split) and Phase 6 (feature bridge cleanup): move standard bundle tables, installers, per-backend factories, env-key resolution, and default wire model from internal/pluginreg to new internal/standardplugins; move the FeatureFactoryFromHooks bridge to new internal/featurebundle. pluginreg retains Registry, ValidateBundledFactories, EffectiveAPIKeys, and the feature merge surface (MergedFeatureSurface + Registry methods). The feature merge surface stays in pluginreg because its methods are on *Registry (Go requires same-package); its relocation to featurebundle is a follow-up that requires converting methods to free functions. standardplugins re-exports pluginreg types via type/const aliases (types.go) so moved installer/factory files compile with minimal reference churn. The standardbundle facade (internal/pluginreg/standardbundle/install.go) now delegates to standardplugins. All call sites updated: bootstrap_plan.go, build_executor.go, routes_read.go, stdhttp/route.go, cmd/model-inventory-proof, testkit/conformance, and ~40 test files across runtimebundle/stdhttp/core/cmd. 27 test files moved from pluginreg to standardplugins (they test moved code and were internal package pluginreg, unable to import standardplugins without a cycle). Hexagonal baseline updated: pluginreg allowed_internal_core_imports narrowed (config removed — moved with standard bundle); internal/standardplugins added as exception (config, execbackend, hooks) with retirement trigger for frontend mount relocation; internal/featurebundle added as exception (hooks) with retirement trigger for bridge deletion. Critical-file budget path updated from pluginreg/standard_table.go to standardplugins/standard_table.go. Verification: make quality-checks, make test-unit (zero failing packages), and lipstd serve smoke (405 + X-Trace-Id) all pass. Phase 6 partial: the bridge (FeatureFactoryFromHooks) moved to internal/featurebundle. The 7 hook-only features still call the bridge (now featurebundle.FeatureFactoryFromHooks from standardplugins). Converting the 3 noops to native FeatureBundle and the merge surface relocation are follow-up tasks. No behavior change; Build/BuildBootstrap/Built unchanged. Co-authored-by: Cursor <cursoragent@cursor.com>
…ative FeatureBundle, merge surface relocation, pluginreg aligned (Tasks 3.3-3.5, 6.1-6.3) Complete all remaining registry/feature/frontend tasks from the architecture review resolution plan: (1) Frontend mount relocation — each frontend package (openairesponses, openailegacy, anthropic, gemini) now exposes Mount(mux, opts); standardplugins/frontends_install.go deleted; the duplicated 6-field handler wiring is eliminated (F-07 fixed). (2) Feature noop conversion + bridge retirement — all 7 hook-only features converted to native lipfeature.FeatureBundle; FeatureFactoryFromHooks bridge deleted from internal/featurebundle; internal/core/hooks import removed from standardplugins (F-08 fixed). (3) Merge surface relocation — MergedFeatureSurface + merge logic moved from pluginreg to internal/featurebundle as free functions; pluginreg drops internal/core/hooks import. (4) pluginreg reclassified exception -> aligned (only imports execbackend + modelcatalog). (5) standardplugins reclassified exception -> aligned (only imports config + execbackend; hooks removed). (6) docs/feature-bridge-retirement-checklist.md documents all 13 features. Also adds 3 executor characterization tests (nil Store, nil call, call.Validate failure) as the safety net for the executor collaborator extraction (Phase 4 Tasks 4.2-4.7), which is the next increment. Hexagonal baseline updated: pluginreg + standardplugins -> aligned; featurebundle stays exception (hooks import for MergedFeatureSurface.Hooks, with retirement trigger). Verification: make quality-checks, make test-unit (zero failing packages), lipstd check-config all pass. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Warning Review limit reached
Next review available in: 8 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (10)
📝 WalkthroughWalkthroughThis PR extracts standard backend/feature registry logic from internal/pluginreg into a new internal/standardplugins package, migrates feature-surface merging into internal/featurebundle as package-level functions, removes the FeatureFactoryFromHooks bridge in favor of native lipfeature.FeatureBundle returns, adds dedicated frontend Mount functions, and updates all call sites and architecture metadata accordingly. ChangesStandardplugins split and callers migration
New executor characterization tests
Estimated code review effort: 3 (Moderate) | ~30 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 8✅ Passed checks (8 passed)
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 |
…/feature APIs Update all active docs, steering, EchoesVault pages, and one code comment that still pointed at deleted or moved surfaces after PR #114: pluginreg/standard_table.go -> standardplugins/standard_table.go; pluginreg/keys.go -> standardplugins/keys.go; pluginreg/frontends_install.go -> frontend package Mount functions; Registry.MergeFeatureSurface -> featurebundle.MergeFeatureSurface; pluginreg.ResolveUpstreamAPIKeysFromEnv -> standardplugins.ResolveUpstreamAPIKeysFromEnv; pluginreg.InstallStandardBundleOn -> standardplugins.InstallStandardBundleOn; FeatureFactoryFromHooks -> retired (all features now native FeatureBundle). Files updated: README.md, .kiro/steering/api-standards.md, .kiro/steering/product.md, docs/runtime-flow.md, docs/extension-platform-authoring.md, internal/plugins/features/README.md, EchoesVault/pages/package-map.md, EchoesVault/pages/security-auth.md, internal/stdhttp/auth/adapter.go. No behavior change; docs and one comment only. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@internal/standardplugins/keys.go`:
- Around line 28-32: The doc comment for ResolveUpstreamAPIKeysFromEnv
overstates support for numbered suffixes in collectNumberedEnvKeys. Update the
comment to clearly reflect the actual behavior: the bare PREFIX value is treated
as the first entry and numbered keys start at _2, while
OpenRouter/NVIDIA/Hugging Face explicitly support _1. Keep the wording aligned
with the implementation in collectNumberedEnvKeys and the provider-specific
handling in ResolveUpstreamAPIKeysFromEnv.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 21e07068-d1e2-4846-9edf-4710f6b8d282
📒 Files selected for processing (97)
cmd/lipstd/hooks_compose_test.gocmd/model-inventory-proof/main.gocmd/model-inventory-proof/main_test.godocs/feature-bridge-retirement-checklist.mdinternal/archtest/critical_files.gointernal/core/diag/inventory_test.gointernal/core/runtime/executor_backend_credentials_test.gointernal/core/runtime/executor_characterization_phase4_test.gointernal/core/runtime/executor_local_stub_integration_test.gointernal/featurebundle/merge_surface.gointernal/infra/runtimebundle/auth_compose_test.gointernal/infra/runtimebundle/auth_secret_leak_test.gointernal/infra/runtimebundle/bootstrap_plan.gointernal/infra/runtimebundle/build.gointernal/infra/runtimebundle/build_executor.gointernal/infra/runtimebundle/build_modelcatalog_test.gointernal/infra/runtimebundle/build_test.gointernal/infra/runtimebundle/dual_backend_test.gointernal/infra/runtimebundle/managed_postgres_runtime_integration_test.gointernal/infra/runtimebundle/managed_postgres_runtime_test.gointernal/infra/runtimebundle/minimal_registry_test.gointernal/infra/runtimebundle/modelcatalog_override_set_test.gointernal/infra/runtimebundle/modelregistry_build_test.gointernal/infra/runtimebundle/opencode_zen_registry_live_test.gointernal/infra/runtimebundle/routes_read.gointernal/infra/runtimebundle/routes_read_test.gointernal/infra/runtimebundle/secure_session_build_test.gointernal/infra/runtimebundle/sqlite_closer_test.gointernal/pluginreg/custom_registry_hooks_test.gointernal/pluginreg/feature_merge_surface_test.gointernal/pluginreg/featurebundle.gointernal/pluginreg/frontends_install.gointernal/pluginreg/keys.gointernal/pluginreg/proof_reference_features_test.gointernal/pluginreg/reg.gointernal/pluginreg/standardbundle/install.gointernal/pluginreg/standardbundle/install_test.gointernal/pluginreg/validate_test.gointernal/plugins/frontends/anthropic/mount.gointernal/plugins/frontends/gemini/mount.gointernal/plugins/frontends/openailegacy/mount.gointernal/plugins/frontends/openairesponses/mount.gointernal/standardplugins/backend_model_inventory_config_test.gointernal/standardplugins/backend_prefix_inventory_test.gointernal/standardplugins/backend_security_test.gointernal/standardplugins/backends_acp_cli.gointernal/standardplugins/backends_acp_cli_test.gointernal/standardplugins/backends_anthropic.gointernal/standardplugins/backends_bedrock.gointernal/standardplugins/backends_gemini.gointernal/standardplugins/backends_install.gointernal/standardplugins/backends_install_test.gointernal/standardplugins/backends_misc.gointernal/standardplugins/backends_ollama.gointernal/standardplugins/backends_openai.gointernal/standardplugins/backends_openaicodex.gointernal/standardplugins/backends_openaicodex_test.gointernal/standardplugins/backends_openaifamily_yaml.gointernal/standardplugins/backends_openaifamily_yaml_test.gointernal/standardplugins/backends_opencode.gointernal/standardplugins/backends_openrouter.gointernal/standardplugins/bedrock_acp_install_regression_test.gointernal/standardplugins/build_backend_test.gointernal/standardplugins/credentials.gointernal/standardplugins/custom_backend_env_keys_test.gointernal/standardplugins/custom_backend_prefix_test.gointernal/standardplugins/custom_backends.gointernal/standardplugins/custom_compatible_build_test.gointernal/standardplugins/default_wire_model.gointernal/standardplugins/feature_merge_test.gointernal/standardplugins/feature_yaml.gointernal/standardplugins/feature_yaml_test.gointernal/standardplugins/features_install.gointernal/standardplugins/hosted_backend_build_test.gointernal/standardplugins/hosted_yaml_api_keys_test.gointernal/standardplugins/keys.gointernal/standardplugins/llamacpp_build_test.gointernal/standardplugins/lmstudio_build_test.gointernal/standardplugins/localstub_build_test.gointernal/standardplugins/modelinventory_yaml.gointernal/standardplugins/ollama_build_test.gointernal/standardplugins/opencode_backends_test.gointernal/standardplugins/registry_zero_test.gointernal/standardplugins/resolve_upstream_api_keys_test.gointernal/standardplugins/spec_bundle_standard_inventory_test.gointernal/standardplugins/standard_bundle_posture_test.gointernal/standardplugins/standard_bundle_test.gointernal/standardplugins/standard_table.gointernal/standardplugins/types.gointernal/standardplugins/vllm_build_test.gointernal/stdhttp/default_route_frontends_test.gointernal/stdhttp/mount_test.gointernal/stdhttp/route.gointernal/stdhttp/server_test.gointernal/stdhttp/standard_wiring_roundtrip_test.gointernal/testkit/conformance/harness.gotestdata/architecture/hexagonal_migration_baseline.json
💤 Files with no reviewable changes (3)
- internal/pluginreg/featurebundle.go
- internal/pluginreg/frontends_install.go
- internal/pluginreg/keys.go
📜 Review details
⏰ Context from checks skipped due to timeout. (1)
- GitHub Check: qa
🧰 Additional context used
📓 Path-based instructions (5)
**/*
📄 CodeRabbit inference engine (Custom checks)
Do not introduce hardcoded credentials, API keys, tokens, private keys, passwords, production secrets, or sensitive internal URLs.
Files:
docs/feature-bridge-retirement-checklist.mdinternal/infra/runtimebundle/sqlite_closer_test.gointernal/plugins/frontends/anthropic/mount.gointernal/stdhttp/route.gointernal/standardplugins/backend_security_test.gointernal/standardplugins/backends_openaifamily_yaml.gointernal/infra/runtimebundle/routes_read.gointernal/plugins/frontends/gemini/mount.gointernal/infra/runtimebundle/build_executor.gointernal/standardplugins/backends_acp_cli.gointernal/core/runtime/executor_local_stub_integration_test.gointernal/standardplugins/backends_ollama.gointernal/standardplugins/backends_openrouter.gointernal/standardplugins/backend_prefix_inventory_test.gointernal/plugins/frontends/openairesponses/mount.gointernal/archtest/critical_files.gointernal/standardplugins/credentials.gointernal/standardplugins/backends_install.gointernal/standardplugins/modelinventory_yaml.gointernal/pluginreg/validate_test.gointernal/infra/runtimebundle/managed_postgres_runtime_integration_test.gointernal/standardplugins/backends_opencode.gointernal/pluginreg/custom_registry_hooks_test.gointernal/standardplugins/resolve_upstream_api_keys_test.gointernal/infra/runtimebundle/minimal_registry_test.gointernal/standardplugins/backends_bedrock.gointernal/standardplugins/lmstudio_build_test.gointernal/standardplugins/backends_acp_cli_test.gointernal/stdhttp/standard_wiring_roundtrip_test.gointernal/stdhttp/mount_test.gointernal/standardplugins/backends_openai.gointernal/infra/runtimebundle/modelregistry_build_test.gointernal/standardplugins/vllm_build_test.gointernal/standardplugins/backends_openaicodex_test.gointernal/core/runtime/executor_backend_credentials_test.gointernal/infra/runtimebundle/secure_session_build_test.gointernal/standardplugins/backends_openaifamily_yaml_test.gointernal/standardplugins/custom_backends.gointernal/standardplugins/types.gointernal/core/runtime/executor_characterization_phase4_test.gointernal/standardplugins/backends_misc.gointernal/standardplugins/hosted_backend_build_test.gointernal/standardplugins/ollama_build_test.gointernal/standardplugins/feature_yaml.gointernal/pluginreg/standardbundle/install.gointernal/infra/runtimebundle/auth_secret_leak_test.gointernal/standardplugins/spec_bundle_standard_inventory_test.gointernal/standardplugins/bedrock_acp_install_regression_test.gointernal/standardplugins/custom_backend_prefix_test.gointernal/standardplugins/backends_install_test.gointernal/standardplugins/default_wire_model.gointernal/standardplugins/opencode_backends_test.gointernal/standardplugins/standard_bundle_test.gocmd/lipstd/hooks_compose_test.gointernal/infra/runtimebundle/modelcatalog_override_set_test.gointernal/infra/runtimebundle/routes_read_test.gocmd/model-inventory-proof/main_test.gointernal/standardplugins/backends_openaicodex.gointernal/core/diag/inventory_test.gointernal/stdhttp/server_test.gointernal/standardplugins/backends_anthropic.gointernal/pluginreg/reg.gointernal/pluginreg/proof_reference_features_test.gointernal/infra/runtimebundle/build_test.gointernal/standardplugins/localstub_build_test.gointernal/plugins/frontends/openailegacy/mount.gointernal/standardplugins/llamacpp_build_test.gointernal/standardplugins/keys.gointernal/standardplugins/registry_zero_test.gointernal/standardplugins/custom_backend_env_keys_test.gointernal/standardplugins/backend_model_inventory_config_test.gointernal/standardplugins/hosted_yaml_api_keys_test.gointernal/stdhttp/default_route_frontends_test.gointernal/infra/runtimebundle/dual_backend_test.gointernal/standardplugins/build_backend_test.gocmd/model-inventory-proof/main.gointernal/pluginreg/feature_merge_surface_test.gointernal/standardplugins/standard_table.gointernal/infra/runtimebundle/bootstrap_plan.gointernal/standardplugins/standard_bundle_posture_test.gointernal/infra/runtimebundle/build.gointernal/standardplugins/feature_merge_test.gointernal/infra/runtimebundle/build_modelcatalog_test.gointernal/standardplugins/feature_yaml_test.gotestdata/architecture/hexagonal_migration_baseline.jsoninternal/featurebundle/merge_surface.gointernal/infra/runtimebundle/auth_compose_test.gointernal/standardplugins/custom_compatible_build_test.gointernal/testkit/conformance/harness.gointernal/standardplugins/features_install.gointernal/infra/runtimebundle/managed_postgres_runtime_test.gointernal/standardplugins/backends_gemini.gointernal/infra/runtimebundle/opencode_zen_registry_live_test.gointernal/pluginreg/standardbundle/install_test.go
**/*.go
📄 CodeRabbit inference engine (Custom checks)
**/*.go: For server, CLI, worker, or network Go code, ensurecontext.Contextis propagated correctly, cancellation is respected, and new goroutines cannot leak indefinitely.
Do not make accidental public API breaks in Go code: underpkg/**or anywhere exported Go identifiers are changed, warn if the PR changes exported types, function signatures, error behavior, JSON fields, CLI flags, config keys, or documented behavior without clearly explaining the compatibility impact.
Files:
internal/infra/runtimebundle/sqlite_closer_test.gointernal/plugins/frontends/anthropic/mount.gointernal/stdhttp/route.gointernal/standardplugins/backend_security_test.gointernal/standardplugins/backends_openaifamily_yaml.gointernal/infra/runtimebundle/routes_read.gointernal/plugins/frontends/gemini/mount.gointernal/infra/runtimebundle/build_executor.gointernal/standardplugins/backends_acp_cli.gointernal/core/runtime/executor_local_stub_integration_test.gointernal/standardplugins/backends_ollama.gointernal/standardplugins/backends_openrouter.gointernal/standardplugins/backend_prefix_inventory_test.gointernal/plugins/frontends/openairesponses/mount.gointernal/archtest/critical_files.gointernal/standardplugins/credentials.gointernal/standardplugins/backends_install.gointernal/standardplugins/modelinventory_yaml.gointernal/pluginreg/validate_test.gointernal/infra/runtimebundle/managed_postgres_runtime_integration_test.gointernal/standardplugins/backends_opencode.gointernal/pluginreg/custom_registry_hooks_test.gointernal/standardplugins/resolve_upstream_api_keys_test.gointernal/infra/runtimebundle/minimal_registry_test.gointernal/standardplugins/backends_bedrock.gointernal/standardplugins/lmstudio_build_test.gointernal/standardplugins/backends_acp_cli_test.gointernal/stdhttp/standard_wiring_roundtrip_test.gointernal/stdhttp/mount_test.gointernal/standardplugins/backends_openai.gointernal/infra/runtimebundle/modelregistry_build_test.gointernal/standardplugins/vllm_build_test.gointernal/standardplugins/backends_openaicodex_test.gointernal/core/runtime/executor_backend_credentials_test.gointernal/infra/runtimebundle/secure_session_build_test.gointernal/standardplugins/backends_openaifamily_yaml_test.gointernal/standardplugins/custom_backends.gointernal/standardplugins/types.gointernal/core/runtime/executor_characterization_phase4_test.gointernal/standardplugins/backends_misc.gointernal/standardplugins/hosted_backend_build_test.gointernal/standardplugins/ollama_build_test.gointernal/standardplugins/feature_yaml.gointernal/pluginreg/standardbundle/install.gointernal/infra/runtimebundle/auth_secret_leak_test.gointernal/standardplugins/spec_bundle_standard_inventory_test.gointernal/standardplugins/bedrock_acp_install_regression_test.gointernal/standardplugins/custom_backend_prefix_test.gointernal/standardplugins/backends_install_test.gointernal/standardplugins/default_wire_model.gointernal/standardplugins/opencode_backends_test.gointernal/standardplugins/standard_bundle_test.gocmd/lipstd/hooks_compose_test.gointernal/infra/runtimebundle/modelcatalog_override_set_test.gointernal/infra/runtimebundle/routes_read_test.gocmd/model-inventory-proof/main_test.gointernal/standardplugins/backends_openaicodex.gointernal/core/diag/inventory_test.gointernal/stdhttp/server_test.gointernal/standardplugins/backends_anthropic.gointernal/pluginreg/reg.gointernal/pluginreg/proof_reference_features_test.gointernal/infra/runtimebundle/build_test.gointernal/standardplugins/localstub_build_test.gointernal/plugins/frontends/openailegacy/mount.gointernal/standardplugins/llamacpp_build_test.gointernal/standardplugins/keys.gointernal/standardplugins/registry_zero_test.gointernal/standardplugins/custom_backend_env_keys_test.gointernal/standardplugins/backend_model_inventory_config_test.gointernal/standardplugins/hosted_yaml_api_keys_test.gointernal/stdhttp/default_route_frontends_test.gointernal/infra/runtimebundle/dual_backend_test.gointernal/standardplugins/build_backend_test.gocmd/model-inventory-proof/main.gointernal/pluginreg/feature_merge_surface_test.gointernal/standardplugins/standard_table.gointernal/infra/runtimebundle/bootstrap_plan.gointernal/standardplugins/standard_bundle_posture_test.gointernal/infra/runtimebundle/build.gointernal/standardplugins/feature_merge_test.gointernal/infra/runtimebundle/build_modelcatalog_test.gointernal/standardplugins/feature_yaml_test.gointernal/featurebundle/merge_surface.gointernal/infra/runtimebundle/auth_compose_test.gointernal/standardplugins/custom_compatible_build_test.gointernal/testkit/conformance/harness.gointernal/standardplugins/features_install.gointernal/infra/runtimebundle/managed_postgres_runtime_test.gointernal/standardplugins/backends_gemini.gointernal/infra/runtimebundle/opencode_zen_registry_live_test.gointernal/pluginreg/standardbundle/install_test.go
⚙️ CodeRabbit configuration file
**/*.go: Review as production Go code. Prioritize correctness, race conditions, goroutine leaks, context cancellation, timeout handling, error wrapping, nil-pointer risks, resource cleanup, defer placement, API compatibility, interface design, dependency boundaries, and testability. Avoid generic style comments when gofmt/golangci-lint already covers the issue.
Files:
internal/infra/runtimebundle/sqlite_closer_test.gointernal/plugins/frontends/anthropic/mount.gointernal/stdhttp/route.gointernal/standardplugins/backend_security_test.gointernal/standardplugins/backends_openaifamily_yaml.gointernal/infra/runtimebundle/routes_read.gointernal/plugins/frontends/gemini/mount.gointernal/infra/runtimebundle/build_executor.gointernal/standardplugins/backends_acp_cli.gointernal/core/runtime/executor_local_stub_integration_test.gointernal/standardplugins/backends_ollama.gointernal/standardplugins/backends_openrouter.gointernal/standardplugins/backend_prefix_inventory_test.gointernal/plugins/frontends/openairesponses/mount.gointernal/archtest/critical_files.gointernal/standardplugins/credentials.gointernal/standardplugins/backends_install.gointernal/standardplugins/modelinventory_yaml.gointernal/pluginreg/validate_test.gointernal/infra/runtimebundle/managed_postgres_runtime_integration_test.gointernal/standardplugins/backends_opencode.gointernal/pluginreg/custom_registry_hooks_test.gointernal/standardplugins/resolve_upstream_api_keys_test.gointernal/infra/runtimebundle/minimal_registry_test.gointernal/standardplugins/backends_bedrock.gointernal/standardplugins/lmstudio_build_test.gointernal/standardplugins/backends_acp_cli_test.gointernal/stdhttp/standard_wiring_roundtrip_test.gointernal/stdhttp/mount_test.gointernal/standardplugins/backends_openai.gointernal/infra/runtimebundle/modelregistry_build_test.gointernal/standardplugins/vllm_build_test.gointernal/standardplugins/backends_openaicodex_test.gointernal/core/runtime/executor_backend_credentials_test.gointernal/infra/runtimebundle/secure_session_build_test.gointernal/standardplugins/backends_openaifamily_yaml_test.gointernal/standardplugins/custom_backends.gointernal/standardplugins/types.gointernal/core/runtime/executor_characterization_phase4_test.gointernal/standardplugins/backends_misc.gointernal/standardplugins/hosted_backend_build_test.gointernal/standardplugins/ollama_build_test.gointernal/standardplugins/feature_yaml.gointernal/pluginreg/standardbundle/install.gointernal/infra/runtimebundle/auth_secret_leak_test.gointernal/standardplugins/spec_bundle_standard_inventory_test.gointernal/standardplugins/bedrock_acp_install_regression_test.gointernal/standardplugins/custom_backend_prefix_test.gointernal/standardplugins/backends_install_test.gointernal/standardplugins/default_wire_model.gointernal/standardplugins/opencode_backends_test.gointernal/standardplugins/standard_bundle_test.gocmd/lipstd/hooks_compose_test.gointernal/infra/runtimebundle/modelcatalog_override_set_test.gointernal/infra/runtimebundle/routes_read_test.gocmd/model-inventory-proof/main_test.gointernal/standardplugins/backends_openaicodex.gointernal/core/diag/inventory_test.gointernal/stdhttp/server_test.gointernal/standardplugins/backends_anthropic.gointernal/pluginreg/reg.gointernal/pluginreg/proof_reference_features_test.gointernal/infra/runtimebundle/build_test.gointernal/standardplugins/localstub_build_test.gointernal/plugins/frontends/openailegacy/mount.gointernal/standardplugins/llamacpp_build_test.gointernal/standardplugins/keys.gointernal/standardplugins/registry_zero_test.gointernal/standardplugins/custom_backend_env_keys_test.gointernal/standardplugins/backend_model_inventory_config_test.gointernal/standardplugins/hosted_yaml_api_keys_test.gointernal/stdhttp/default_route_frontends_test.gointernal/infra/runtimebundle/dual_backend_test.gointernal/standardplugins/build_backend_test.gocmd/model-inventory-proof/main.gointernal/pluginreg/feature_merge_surface_test.gointernal/standardplugins/standard_table.gointernal/infra/runtimebundle/bootstrap_plan.gointernal/standardplugins/standard_bundle_posture_test.gointernal/infra/runtimebundle/build.gointernal/standardplugins/feature_merge_test.gointernal/infra/runtimebundle/build_modelcatalog_test.gointernal/standardplugins/feature_yaml_test.gointernal/featurebundle/merge_surface.gointernal/infra/runtimebundle/auth_compose_test.gointernal/standardplugins/custom_compatible_build_test.gointernal/testkit/conformance/harness.gointernal/standardplugins/features_install.gointernal/infra/runtimebundle/managed_postgres_runtime_test.gointernal/standardplugins/backends_gemini.gointernal/infra/runtimebundle/opencode_zen_registry_live_test.gointernal/pluginreg/standardbundle/install_test.go
internal/**
⚙️ CodeRabbit configuration file
internal/**: Focus on package boundaries, hidden coupling, unexported API design, concurrency safety, deterministic behavior, and whether logic belongs in this internal package.
Files:
internal/infra/runtimebundle/sqlite_closer_test.gointernal/plugins/frontends/anthropic/mount.gointernal/stdhttp/route.gointernal/standardplugins/backend_security_test.gointernal/standardplugins/backends_openaifamily_yaml.gointernal/infra/runtimebundle/routes_read.gointernal/plugins/frontends/gemini/mount.gointernal/infra/runtimebundle/build_executor.gointernal/standardplugins/backends_acp_cli.gointernal/core/runtime/executor_local_stub_integration_test.gointernal/standardplugins/backends_ollama.gointernal/standardplugins/backends_openrouter.gointernal/standardplugins/backend_prefix_inventory_test.gointernal/plugins/frontends/openairesponses/mount.gointernal/archtest/critical_files.gointernal/standardplugins/credentials.gointernal/standardplugins/backends_install.gointernal/standardplugins/modelinventory_yaml.gointernal/pluginreg/validate_test.gointernal/infra/runtimebundle/managed_postgres_runtime_integration_test.gointernal/standardplugins/backends_opencode.gointernal/pluginreg/custom_registry_hooks_test.gointernal/standardplugins/resolve_upstream_api_keys_test.gointernal/infra/runtimebundle/minimal_registry_test.gointernal/standardplugins/backends_bedrock.gointernal/standardplugins/lmstudio_build_test.gointernal/standardplugins/backends_acp_cli_test.gointernal/stdhttp/standard_wiring_roundtrip_test.gointernal/stdhttp/mount_test.gointernal/standardplugins/backends_openai.gointernal/infra/runtimebundle/modelregistry_build_test.gointernal/standardplugins/vllm_build_test.gointernal/standardplugins/backends_openaicodex_test.gointernal/core/runtime/executor_backend_credentials_test.gointernal/infra/runtimebundle/secure_session_build_test.gointernal/standardplugins/backends_openaifamily_yaml_test.gointernal/standardplugins/custom_backends.gointernal/standardplugins/types.gointernal/core/runtime/executor_characterization_phase4_test.gointernal/standardplugins/backends_misc.gointernal/standardplugins/hosted_backend_build_test.gointernal/standardplugins/ollama_build_test.gointernal/standardplugins/feature_yaml.gointernal/pluginreg/standardbundle/install.gointernal/infra/runtimebundle/auth_secret_leak_test.gointernal/standardplugins/spec_bundle_standard_inventory_test.gointernal/standardplugins/bedrock_acp_install_regression_test.gointernal/standardplugins/custom_backend_prefix_test.gointernal/standardplugins/backends_install_test.gointernal/standardplugins/default_wire_model.gointernal/standardplugins/opencode_backends_test.gointernal/standardplugins/standard_bundle_test.gointernal/infra/runtimebundle/modelcatalog_override_set_test.gointernal/infra/runtimebundle/routes_read_test.gointernal/standardplugins/backends_openaicodex.gointernal/core/diag/inventory_test.gointernal/stdhttp/server_test.gointernal/standardplugins/backends_anthropic.gointernal/pluginreg/reg.gointernal/pluginreg/proof_reference_features_test.gointernal/infra/runtimebundle/build_test.gointernal/standardplugins/localstub_build_test.gointernal/plugins/frontends/openailegacy/mount.gointernal/standardplugins/llamacpp_build_test.gointernal/standardplugins/keys.gointernal/standardplugins/registry_zero_test.gointernal/standardplugins/custom_backend_env_keys_test.gointernal/standardplugins/backend_model_inventory_config_test.gointernal/standardplugins/hosted_yaml_api_keys_test.gointernal/stdhttp/default_route_frontends_test.gointernal/infra/runtimebundle/dual_backend_test.gointernal/standardplugins/build_backend_test.gointernal/pluginreg/feature_merge_surface_test.gointernal/standardplugins/standard_table.gointernal/infra/runtimebundle/bootstrap_plan.gointernal/standardplugins/standard_bundle_posture_test.gointernal/infra/runtimebundle/build.gointernal/standardplugins/feature_merge_test.gointernal/infra/runtimebundle/build_modelcatalog_test.gointernal/standardplugins/feature_yaml_test.gointernal/featurebundle/merge_surface.gointernal/infra/runtimebundle/auth_compose_test.gointernal/standardplugins/custom_compatible_build_test.gointernal/testkit/conformance/harness.gointernal/standardplugins/features_install.gointernal/infra/runtimebundle/managed_postgres_runtime_test.gointernal/standardplugins/backends_gemini.gointernal/infra/runtimebundle/opencode_zen_registry_live_test.gointernal/pluginreg/standardbundle/install_test.go
**/*_test.go
⚙️ CodeRabbit configuration file
**/*_test.go: Review tests for meaningful assertions, table-driven coverage, race-prone tests, t.Parallel misuse, nondeterminism, leaked goroutines, real network or filesystem dependencies, fragile sleeps, and missing edge cases. Prefer testing observable behavior over implementation details.
Files:
internal/infra/runtimebundle/sqlite_closer_test.gointernal/standardplugins/backend_security_test.gointernal/core/runtime/executor_local_stub_integration_test.gointernal/standardplugins/backend_prefix_inventory_test.gointernal/pluginreg/validate_test.gointernal/infra/runtimebundle/managed_postgres_runtime_integration_test.gointernal/pluginreg/custom_registry_hooks_test.gointernal/standardplugins/resolve_upstream_api_keys_test.gointernal/infra/runtimebundle/minimal_registry_test.gointernal/standardplugins/lmstudio_build_test.gointernal/standardplugins/backends_acp_cli_test.gointernal/stdhttp/standard_wiring_roundtrip_test.gointernal/stdhttp/mount_test.gointernal/infra/runtimebundle/modelregistry_build_test.gointernal/standardplugins/vllm_build_test.gointernal/standardplugins/backends_openaicodex_test.gointernal/core/runtime/executor_backend_credentials_test.gointernal/infra/runtimebundle/secure_session_build_test.gointernal/standardplugins/backends_openaifamily_yaml_test.gointernal/core/runtime/executor_characterization_phase4_test.gointernal/standardplugins/hosted_backend_build_test.gointernal/standardplugins/ollama_build_test.gointernal/infra/runtimebundle/auth_secret_leak_test.gointernal/standardplugins/spec_bundle_standard_inventory_test.gointernal/standardplugins/bedrock_acp_install_regression_test.gointernal/standardplugins/custom_backend_prefix_test.gointernal/standardplugins/backends_install_test.gointernal/standardplugins/opencode_backends_test.gointernal/standardplugins/standard_bundle_test.gocmd/lipstd/hooks_compose_test.gointernal/infra/runtimebundle/modelcatalog_override_set_test.gointernal/infra/runtimebundle/routes_read_test.gocmd/model-inventory-proof/main_test.gointernal/core/diag/inventory_test.gointernal/stdhttp/server_test.gointernal/pluginreg/proof_reference_features_test.gointernal/infra/runtimebundle/build_test.gointernal/standardplugins/localstub_build_test.gointernal/standardplugins/llamacpp_build_test.gointernal/standardplugins/registry_zero_test.gointernal/standardplugins/custom_backend_env_keys_test.gointernal/standardplugins/backend_model_inventory_config_test.gointernal/standardplugins/hosted_yaml_api_keys_test.gointernal/stdhttp/default_route_frontends_test.gointernal/infra/runtimebundle/dual_backend_test.gointernal/standardplugins/build_backend_test.gointernal/pluginreg/feature_merge_surface_test.gointernal/standardplugins/standard_bundle_posture_test.gointernal/standardplugins/feature_merge_test.gointernal/infra/runtimebundle/build_modelcatalog_test.gointernal/standardplugins/feature_yaml_test.gointernal/infra/runtimebundle/auth_compose_test.gointernal/standardplugins/custom_compatible_build_test.gointernal/infra/runtimebundle/managed_postgres_runtime_test.gointernal/infra/runtimebundle/opencode_zen_registry_live_test.gointernal/pluginreg/standardbundle/install_test.go
cmd/**
⚙️ CodeRabbit configuration file
cmd/**: Focus on CLI/service entrypoint behavior: signal handling, graceful shutdown, context propagation, configuration parsing, environment variables, logging setup, exit codes, and backwards compatibility of flags or command output.
Files:
cmd/lipstd/hooks_compose_test.gocmd/model-inventory-proof/main_test.gocmd/model-inventory-proof/main.go
🧠 Learnings (1)
📚 Learning: 2026-07-01T22:57:42.953Z
Learnt from: matdev83
Repo: matdev83/go-llm-interactive-proxy PR: 101
File: pkg/lipsdk/scope/context.go:0-0
Timestamp: 2026-07-01T22:57:42.953Z
Learning: In this repository, when defining unexported Go `context` key constants of type `ctxKey int` (e.g., `const ( kFoo ctxKey = iota + N )`), preserve the `iota + <offset>` pattern and keep the existing `<offset>` values rather than simplifying to plain `iota`. These per-package offsets are part of the repo-wide convention to avoid key collisions across packages, and each such constant set should include a short explanatory comment (for example: “offset avoids collision with other packages' context keys”).
Applied to files:
internal/infra/runtimebundle/sqlite_closer_test.gointernal/plugins/frontends/anthropic/mount.gointernal/stdhttp/route.gointernal/standardplugins/backend_security_test.gointernal/standardplugins/backends_openaifamily_yaml.gointernal/infra/runtimebundle/routes_read.gointernal/plugins/frontends/gemini/mount.gointernal/infra/runtimebundle/build_executor.gointernal/standardplugins/backends_acp_cli.gointernal/core/runtime/executor_local_stub_integration_test.gointernal/standardplugins/backends_ollama.gointernal/standardplugins/backends_openrouter.gointernal/standardplugins/backend_prefix_inventory_test.gointernal/plugins/frontends/openairesponses/mount.gointernal/archtest/critical_files.gointernal/standardplugins/credentials.gointernal/standardplugins/backends_install.gointernal/standardplugins/modelinventory_yaml.gointernal/pluginreg/validate_test.gointernal/infra/runtimebundle/managed_postgres_runtime_integration_test.gointernal/standardplugins/backends_opencode.gointernal/pluginreg/custom_registry_hooks_test.gointernal/standardplugins/resolve_upstream_api_keys_test.gointernal/infra/runtimebundle/minimal_registry_test.gointernal/standardplugins/backends_bedrock.gointernal/standardplugins/lmstudio_build_test.gointernal/standardplugins/backends_acp_cli_test.gointernal/stdhttp/standard_wiring_roundtrip_test.gointernal/stdhttp/mount_test.gointernal/standardplugins/backends_openai.gointernal/infra/runtimebundle/modelregistry_build_test.gointernal/standardplugins/vllm_build_test.gointernal/standardplugins/backends_openaicodex_test.gointernal/core/runtime/executor_backend_credentials_test.gointernal/infra/runtimebundle/secure_session_build_test.gointernal/standardplugins/backends_openaifamily_yaml_test.gointernal/standardplugins/custom_backends.gointernal/standardplugins/types.gointernal/core/runtime/executor_characterization_phase4_test.gointernal/standardplugins/backends_misc.gointernal/standardplugins/hosted_backend_build_test.gointernal/standardplugins/ollama_build_test.gointernal/standardplugins/feature_yaml.gointernal/pluginreg/standardbundle/install.gointernal/infra/runtimebundle/auth_secret_leak_test.gointernal/standardplugins/spec_bundle_standard_inventory_test.gointernal/standardplugins/bedrock_acp_install_regression_test.gointernal/standardplugins/custom_backend_prefix_test.gointernal/standardplugins/backends_install_test.gointernal/standardplugins/default_wire_model.gointernal/standardplugins/opencode_backends_test.gointernal/standardplugins/standard_bundle_test.gocmd/lipstd/hooks_compose_test.gointernal/infra/runtimebundle/modelcatalog_override_set_test.gointernal/infra/runtimebundle/routes_read_test.gocmd/model-inventory-proof/main_test.gointernal/standardplugins/backends_openaicodex.gointernal/core/diag/inventory_test.gointernal/stdhttp/server_test.gointernal/standardplugins/backends_anthropic.gointernal/pluginreg/reg.gointernal/pluginreg/proof_reference_features_test.gointernal/infra/runtimebundle/build_test.gointernal/standardplugins/localstub_build_test.gointernal/plugins/frontends/openailegacy/mount.gointernal/standardplugins/llamacpp_build_test.gointernal/standardplugins/keys.gointernal/standardplugins/registry_zero_test.gointernal/standardplugins/custom_backend_env_keys_test.gointernal/standardplugins/backend_model_inventory_config_test.gointernal/standardplugins/hosted_yaml_api_keys_test.gointernal/stdhttp/default_route_frontends_test.gointernal/infra/runtimebundle/dual_backend_test.gointernal/standardplugins/build_backend_test.gocmd/model-inventory-proof/main.gointernal/pluginreg/feature_merge_surface_test.gointernal/standardplugins/standard_table.gointernal/infra/runtimebundle/bootstrap_plan.gointernal/standardplugins/standard_bundle_posture_test.gointernal/infra/runtimebundle/build.gointernal/standardplugins/feature_merge_test.gointernal/infra/runtimebundle/build_modelcatalog_test.gointernal/standardplugins/feature_yaml_test.gointernal/featurebundle/merge_surface.gointernal/infra/runtimebundle/auth_compose_test.gointernal/standardplugins/custom_compatible_build_test.gointernal/testkit/conformance/harness.gointernal/standardplugins/features_install.gointernal/infra/runtimebundle/managed_postgres_runtime_test.gointernal/standardplugins/backends_gemini.gointernal/infra/runtimebundle/opencode_zen_registry_live_test.gointernal/pluginreg/standardbundle/install_test.go
🔇 Additional comments (87)
internal/core/runtime/executor_characterization_phase4_test.go (1)
1-54: LGTM!internal/standardplugins/keys.go (1)
1-110: LGTM!internal/standardplugins/backends_openaicodex_test.go (1)
1-1: LGTM!internal/standardplugins/bedrock_acp_install_regression_test.go (1)
1-1: LGTM!internal/standardplugins/llamacpp_build_test.go (1)
1-1: LGTM!internal/standardplugins/localstub_build_test.go (1)
1-1: LGTM!Also applies to: 11-39
internal/standardplugins/resolve_upstream_api_keys_test.go (1)
1-1: LGTM!internal/standardplugins/standard_bundle_posture_test.go (1)
1-1: LGTM!Also applies to: 14-61
internal/standardplugins/vllm_build_test.go (1)
1-1: LGTM!internal/standardplugins/types.go (1)
1-39: LGTM!internal/standardplugins/credentials.go (1)
1-1: LGTM!internal/standardplugins/custom_backend_env_keys_test.go (1)
1-1: LGTM!internal/standardplugins/custom_backend_prefix_test.go (1)
1-1: LGTM!internal/standardplugins/ollama_build_test.go (1)
1-1: LGTM!internal/standardplugins/opencode_backends_test.go (1)
1-1: LGTM!internal/pluginreg/validate_test.go (1)
9-9: LGTM!Also applies to: 18-18, 29-29
internal/standardplugins/features_install.go (1)
30-97: LGTM!Also applies to: 179-187
internal/standardplugins/backend_security_test.go (1)
1-1: LGTM!internal/standardplugins/backends_acp_cli.go (1)
1-1: LGTM!internal/standardplugins/backends_acp_cli_test.go (1)
1-1: LGTM!internal/standardplugins/build_backend_test.go (1)
1-1: LGTM!internal/standardplugins/default_wire_model.go (1)
1-31: LGTM!internal/pluginreg/standardbundle/install.go (1)
8-29: LGTM!internal/pluginreg/standardbundle/install_test.go (1)
8-46: LGTM!internal/standardplugins/backends_bedrock.go (1)
1-1: LGTM!internal/standardplugins/backends_install.go (1)
1-1: LGTM!internal/standardplugins/backends_install_test.go (1)
1-1: LGTM!internal/standardplugins/feature_yaml.go (1)
1-1: LGTM!internal/featurebundle/merge_surface.go (1)
1-7: LGTM!Also applies to: 43-57, 140-142
internal/pluginreg/custom_registry_hooks_test.go (1)
7-10: LGTM!Also applies to: 21-24, 41-45
internal/pluginreg/feature_merge_surface_test.go (1)
8-8: LGTM!Also applies to: 114-114, 142-142, 171-171, 200-200, 228-228, 290-290
internal/standardplugins/feature_yaml_test.go (1)
1-1: LGTM!Also applies to: 10-10, 85-85, 100-100, 115-115, 153-153
internal/standardplugins/backends_misc.go (1)
1-1: LGTM!internal/standardplugins/backends_ollama.go (1)
1-1: LGTM!internal/standardplugins/backends_openai.go (1)
1-1: LGTM!internal/standardplugins/backends_openaicodex.go (1)
1-1: LGTM!internal/standardplugins/custom_backends.go (1)
1-1: LGTM!internal/standardplugins/custom_compatible_build_test.go (1)
1-1: LGTM!internal/standardplugins/hosted_backend_build_test.go (1)
1-1: LGTM!internal/standardplugins/backends_openaifamily_yaml.go (1)
1-1: LGTM!internal/standardplugins/backends_openaifamily_yaml_test.go (1)
1-1: LGTM!internal/standardplugins/hosted_yaml_api_keys_test.go (1)
1-1: LGTM!internal/standardplugins/modelinventory_yaml.go (1)
1-1: LGTM!internal/pluginreg/reg.go (1)
245-248: LGTM!internal/pluginreg/proof_reference_features_test.go (1)
6-13: LGTM!Also applies to: 30-30, 51-51, 65-65
internal/standardplugins/feature_merge_test.go (1)
1-12: LGTM!Also applies to: 22-42
internal/standardplugins/registry_zero_test.go (1)
1-1: LGTM!Also applies to: 10-11, 46-48
internal/standardplugins/standard_table.go (1)
141-159: LGTM!internal/plugins/frontends/anthropic/mount.go (1)
1-26: LGTM!internal/plugins/frontends/gemini/mount.go (1)
1-29: LGTM!internal/plugins/frontends/openailegacy/mount.go (1)
1-26: LGTM!internal/plugins/frontends/openairesponses/mount.go (1)
1-26: LGTM!cmd/lipstd/hooks_compose_test.go (1)
11-14: LGTM!Also applies to: 24-24, 44-44, 86-86, 107-107
cmd/model-inventory-proof/main.go (1)
23-23: LGTM!Also applies to: 76-80, 101-101
internal/core/diag/inventory_test.go (1)
18-18: LGTM!Also applies to: 73-80, 133-140, 215-220, 283-288
internal/infra/runtimebundle/managed_postgres_runtime_test.go (1)
15-22: LGTM!Also applies to: 55-55, 85-85, 119-119
internal/infra/runtimebundle/minimal_registry_test.go (1)
10-10: LGTM!Also applies to: 21-21
internal/infra/runtimebundle/modelcatalog_override_set_test.go (1)
16-16: LGTM!Also applies to: 70-70
cmd/model-inventory-proof/main_test.go (1)
7-15: LGTM!Also applies to: 49-49
internal/core/runtime/executor_backend_credentials_test.go (1)
28-28: LGTM!Also applies to: 60-60, 142-142, 218-218
internal/core/runtime/executor_local_stub_integration_test.go (1)
16-16: LGTM!Also applies to: 25-25
internal/infra/runtimebundle/build_executor.go (1)
25-25: LGTM!Also applies to: 181-184
internal/infra/runtimebundle/managed_postgres_runtime_integration_test.go (1)
12-12: LGTM!Also applies to: 26-26
internal/infra/runtimebundle/bootstrap_plan.go (1)
13-18: 🗄️ Data Integrity & IntegrationNo change needed here.
standardbundle.InstallOnalready acceptsstandardplugins.UpstreamAPIKeysand forwards tostandardplugins.InstallStandardBundleOn.> Likely an incorrect or invalid review comment.internal/infra/runtimebundle/auth_compose_test.go (1)
16-16: LGTM!Also applies to: 38-38, 80-80, 132-132, 177-177, 222-222, 265-265, 298-298, 353-353, 410-410, 455-455, 510-510, 559-559, 603-603
internal/infra/runtimebundle/auth_secret_leak_test.go (1)
15-15: LGTM!Also applies to: 37-37
internal/infra/runtimebundle/build.go (1)
16-16: LGTM!Also applies to: 40-40
internal/infra/runtimebundle/build_modelcatalog_test.go (1)
17-20: LGTM!Also applies to: 22-25, 72-72, 126-126, 196-196
internal/infra/runtimebundle/build_test.go (1)
16-16: LGTM!Also applies to: 170-170, 185-185
internal/infra/runtimebundle/dual_backend_test.go (1)
11-19: LGTM!Also applies to: 59-60, 69-70, 89-90, 99-100
internal/stdhttp/server_test.go (1)
22-22: LGTM!Also applies to: 245-245, 280-280
internal/infra/runtimebundle/modelregistry_build_test.go (1)
24-24: LGTM!Also applies to: 99-99
internal/infra/runtimebundle/opencode_zen_registry_live_test.go (1)
13-27: LGTM!internal/infra/runtimebundle/routes_read.go (1)
10-10: LGTM!Also applies to: 46-46
internal/infra/runtimebundle/routes_read_test.go (1)
12-12: LGTM!Also applies to: 26-29
internal/infra/runtimebundle/secure_session_build_test.go (1)
13-13: LGTM!Also applies to: 104-104
testdata/architecture/hexagonal_migration_baseline.json (3)
55-70: LGTM!
4-10: LGTM!
39-54: 🗄️ Data Integrity & IntegrationKeep the narrowed import lists as-is.
./internal/pluginregimports onlyexecbackendandmodelcatalog, and./internal/standardpluginsimports onlyconfigandexecbackend;modelcatalogdoes not belong in the latter list.> Likely an incorrect or invalid review comment.docs/feature-bridge-retirement-checklist.md (1)
1-33: LGTM!internal/infra/runtimebundle/sqlite_closer_test.go (1)
11-18: LGTM!internal/stdhttp/default_route_frontends_test.go (1)
13-13: LGTM!Also applies to: 25-27, 40-46, 114-118, 150-154
internal/stdhttp/mount_test.go (1)
18-18: LGTM!Also applies to: 32-32, 188-188
internal/stdhttp/route.go (1)
5-5: LGTM!Also applies to: 15-15
internal/stdhttp/standard_wiring_roundtrip_test.go (1)
14-15: LGTM!Also applies to: 77-77
internal/testkit/conformance/harness.go (1)
10-23: LGTM!Also applies to: 25-28
internal/archtest/critical_files.go (1)
39-46: LGTM!
Reconcile PR #114 with PR #111's pluginreg -> standardplugins/featurebundle refactor (now on main) plus PR #112's docs/archtest and the executor characterization tests. PR #114's native FeatureBundle + per-frontend mounts supersede main's moved featurebundle.go and frontends_install.go. Conflict resolutions: - internal/standardplugins/types.go (add/add): take main's gofumpt-fixed type-alias group. - internal/featurebundle/featurebundle.go and internal/standardplugins/ frontends_install.go (rename/delete + modify/delete): deleted, honoring PR #114's native FeatureBundle and per-frontend mount.go design which replaces them. - internal/standardplugins/standard_table.go and three test files (custom_registry_hooks_test.go, feature_merge_test.go, registry_zero_test.go): take PR #114's direct FeatureFactory registration (factories return lipfeature.FeatureBundle directly; no featurebundle.FeatureFactoryFromHooks wrapping). - testdata/architecture/hexagonal_migration_baseline.json: take PR #114's evolved classifications (pluginreg and standardplugins reclassified to aligned; featurebundle holds the MergedFeatureSurface merge surface; FeatureFactoryFromHooks bridge retired). Verified locally: go build ./... OK; golangci-lint v2.11.4 run -> 0 issues; full go test -tags=precommit,integration ./... passes (includes the hexagonal baseline archtest and root hygiene checks). Co-authored-by: Cursor <cursoragent@cursor.com>
…review) The doc comment claimed numbered suffixes "_1, _2, _3, ..." for all listed providers, but collectNumberedEnvKeys (OpenAI/Anthropic/Gemini/OpenCode*) reads the bare var as the first slot and then starts at _2, so an explicit "_1" is never read for those providers. collect1IndexedEnvKeys (OpenRouter/ NVIDIA/Hugging Face) does read an explicit _1. Clarify the comment to match the implementation: bare var fills the first slot; OpenAI/Anthropic/Gemini suffixes start at _2; OpenRouter/NVIDIA/Hugging Face use _1-indexed numbering. Behavior unchanged; doc-only fix. Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
openairesponses,openailegacy,anthropic,gemini) now exposesMount(mux, opts);standardplugins/frontends_install.godeleted; duplicated 6-field handler wiring eliminated.lipfeature.FeatureBundle;FeatureFactoryFromHooksbridge deleted;internal/core/hooksimport removed fromstandardplugins.MergedFeatureSurface+ merge logic moved frompluginregtointernal/featurebundleas free functions;pluginregdropsinternal/core/hooksimport.pluginregreclassifiedexception->aligned;standardpluginsreclassifiedexception->aligned;featurebundlestaysexception(hooks forMergedFeatureSurface.Hooks).docs/feature-bridge-retirement-checklist.mddocuments all 13 features.call.Validatefailure) as the safety net for the executor collaborator extraction (Phase 4 Tasks 4.2-4.7), which is the next increment.Remaining (next increment to this PR or follow-up PR)
Execute(L228-416).Test plan
go build ./...+go vet ./...go test -run '^$' ./...(all tests compile)make quality-checks(gofmt, tidy, build, vet, goroutine allowlist, regex hotpath, archtest incl. aligned pluginreg + standardplugins baseline)make test-unit(zero failing packages)go run ./cmd/lipstd check-config --config ./config/examples/dogfood-local-stub.yaml— configuration validpluginregisaligned(Registry + validate + EffectiveAPIKeys only, no hooks);standardpluginsisaligned(no hooks);featurebundlehas only the merge surface;FeatureFactoryFromHooksis deleted; frontendMountfunctions are protocol-owned