CAC-264: Clarify repository boundaries and clean up adapter contracts - #178
Conversation
Codex reviewFiles reviewed
FindingsBlocking
Should-fixNone. Nit
Per-category coverage
Verdictchanges-requested |
Codex reviewFiles reviewed
|
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
Codex reviewFiles reviewedapi/v1alpha1
cmd/inferencecache
config/crd/bases
config/samples
docs/cli
docs/concepts
docs/design
docs/observability
docs/reference-stack
hack/verify-samples
internal/adapters/builtin
internal/adapters/builtin/runtime
internal/adapters/builtin/storage
internal/controller
internal/webhook/pod
internal/webhook/v1alpha1
pkg/adapters/runtime
pkg/cli/doctor/checks
site/content/en/docs
FindingsBlocking
Should-fix
Nit
Per-category coverage
Verdictchanges-requested |
Codex reviewFiles reviewedapi/v1alpha1
cmd/inferencecache
config/crd/bases
config/samples
docs/cli
docs/concepts
docs/design
docs/observability
docs/reference-stack
hack/verify-samples
internal/adapters/builtin
internal/adapters/builtin/runtime
internal/adapters/builtin/storage
internal/controller
internal/webhook/pod
internal/webhook/v1alpha1
pkg/adapters/runtime
pkg/cli/doctor/checks
site/content/en/docs
FindingsBlocking
Should-fixNone. Nit
Per-category coverage
Verdictchanges-requested |
Codex reviewFiles reviewed
FindingsBlocking
Should-fixNone. Nit
Per-category coverage
Verdictchanges-requested |
Codex reviewFiles reviewedapi
cmd
config
docs
hack
internal/adapters
internal/controller
internal/webhook
pkg
site
FindingsBlocking
Should-fix
NitNone. Per-category coverage
Verdictchanges-requested |
47d7929 to
8e52e1a
Compare
Codex reviewFiles reviewed
FindingsBlocking
Should-fixNone. Nit
Per-category coverage
Verdictchanges-requested |
8e52e1a to
37d8fb4
Compare
Codex reviewFiles reviewed
FindingsBlocking
Should-fix
NitNone. Per-category coverage
Verdictchanges-requested |
Codex reviewFiles reviewed
|
c8c9eb3 to
2b7307b
Compare
Codex reviewFiles reviewed
FindingsBlocking
Should-fixNone. NitNone. Per-category coverage
Verdictchanges-requested |
Maintainer disposition: compatibility findingsWe acknowledge the blocking findings and are intentionally not addressing them in this PR. Inference Cache has not had a formal production deployment, so there are no persisted production Preserving the legacy fields and enum values, or adding a conversion webhook and another API version, would leave two competing contracts and introduce migration machinery for a contract with no deployed consumers. That would work against the repository-boundary and API-clarity goals of this refactor without protecting any real production workload. The maintainers are therefore taking a narrow, one-time pre-deployment exception to the general These findings should be treated as an acknowledged maintainer decision for this PR unless evidence identifies an actual deployed resource or supported external consumer that requires compatibility. |
Summary
This PR follows up on #174 by establishing clearer repository ownership boundaries before the remaining source-layout migration.
It:
CacheBackendTypevalues and deprecated provider-rendering seams;internal/adapters/builtin;internal/adapters/builtin.New;pkg/adaptersas the build-time out-of-tree extension contract;backend.Bindingsupport a required runtime adapter contract;docs/design/repository-boundaries.mdas the source of truth for the remaining Phase A–C restructuring.The CacheBackend compatibility removal is intentional: inference-cache has not been formally deployed, so this PR does not add conversion or forwarding behavior for the removed resource shape.
Out-of-tree runtime adapters must now implement
SupportsBindingand accept*backend.Bindingdirectly in engine/router injection methods. A nil binding consistently means host-only operation.This PR does not change protobuf compatibility, LookupRoute wire paths, legacy vLLM metric names, Kubernetes Event compatibility reads, or runtime plugin-loading behavior.
Linked issues
Part of CAC-264.
Follow-up to CAC-259 and #174.
Checklist
Vendor-neutral naming (required — see CONTRIBUTING.md)
oci/oracle/*.oci.com/oraclecloud.comin any API group, CRD group, proto package, gRPC service/package, Kubernetes namespace, image registry, Helm chart, or Go module path.pkg/adapters/.../) — never in core controllers, CRD types, the proto contract, or default config.make install-hooksonce, then it runs on every commit).Quality
make buildandmake testpass locally.go test ./...andgo test -race ./...pass.make lintclean (gofmt + go vet).git diff --checkpasses.make manifests generateproduces no drift (generated code committed)..status, CLI, gRPC/HTTP, install bundle/RBAC, samples)? If so, the install-smoke gate asserts it (see CONTRIBUTING.md).Contracts (only if touching CRDs or proto)
v1alpha1consumers (engines, gateway clients).proto/changed,docs/design/grpc-contract.mdis updated to match (the pre-commit hook enforces this).proto/is unchanged.api/v1alpha1/*_types.go) or the proto contract changed, the documentation is updated to match — the docs site (site/) and/or the design docs (docs/). CI enforces this (make verify-docs-sync); add theno-docs-neededlabel to waive a genuinely doc-exempt change.