refactor: deduplicate ACP runtime - #242
Conversation
|
Warning Review limit reached
Next review available in: 43 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 Plus Run ID: 📒 Files selected for processing (5)
📝 WalkthroughSummary by CodeRabbit
WalkthroughThe change establishes ChangesACP runtime deduplication
Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 7 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (7 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 |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 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 @.kiro/specs/acp-runtime-deduplication/design.md:
- Line 17: Resolve the MD022 spacing warnings by adding one blank line after
every listed Markdown heading: design.md lines 17, 24, 29, 40, 51, 54, 61, and
69, and requirements.md lines 15, 19, 23, 27, 31, 35, 39, and 44. No other
content changes are needed.
In @.kiro/specs/acp-runtime-deduplication/tasks.md:
- Around line 143-151: Uncheck Task 4.1 until its prerequisite Tasks 3.1 and 3.3
are completed with direct verification evidence, or complete and check those
prerequisites first. Preserve the existing reconciliation details and validation
requirements; only update the checklist state to accurately reflect dependency
completion.
In `@scripts/check-adhoc-goroutines.sh`:
- Line 34: Update the ripgrep scan roots in the shell goroutine-check script to
include connector-support and connectors alongside internal, pkg, and cmd, so
listed connector files can be detected. Apply the equivalent root expansion in
the corresponding PowerShell script, preserving the existing scan and filtering
behavior.
🪄 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 Plus
Run ID: 11dff1a1-cab7-4b82-a492-9da1096de5a9
📒 Files selected for processing (96)
.kiro/specs/acp-runtime-deduplication/design.md.kiro/specs/acp-runtime-deduplication/requirements.md.kiro/specs/acp-runtime-deduplication/spec.json.kiro/specs/acp-runtime-deduplication/tasks.md.release-filesMakefiledocs/release-gates.mddocs/testing-determinism.mdinternal/archtest/acp_plugin_architecture_test.gointernal/archtest/identity_transport_boundaries_test.gointernal/plugins/backends/acp/acp_protocol.gointernal/plugins/backends/acp/call_extract.gointernal/plugins/backends/acp/call_extract_test.gointernal/plugins/backends/acp/cancel.gointernal/plugins/backends/acp/caps_test.gointernal/plugins/backends/acp/client.gointernal/plugins/backends/acp/config_option.gointernal/plugins/backends/acp/connector_config.gointernal/plugins/backends/acp/connector_config_test.gointernal/plugins/backends/acp/doc.gointernal/plugins/backends/acp/external_parity_profile_test.gointernal/plugins/backends/acp/fuzz_test.gointernal/plugins/backends/acp/handshake.gointernal/plugins/backends/acp/history_transcript.gointernal/plugins/backends/acp/history_transcript_test.gointernal/plugins/backends/acp/integration_test.gointernal/plugins/backends/acp/invoke.gointernal/plugins/backends/acp/invoke_test.gointernal/plugins/backends/acp/lifecycle_contract_test.gointernal/plugins/backends/acp/lookpath.gointernal/plugins/backends/acp/lookpath_race_test.gointernal/plugins/backends/acp/main_test.gointernal/plugins/backends/acp/map_events.gointernal/plugins/backends/acp/map_events_internal_test.gointernal/plugins/backends/acp/model_index.gointernal/plugins/backends/acp/model_index_test.gointernal/plugins/backends/acp/ndjson_stream.gointernal/plugins/backends/acp/ndjson_stream_test.gointernal/plugins/backends/acp/plugin.gointernal/plugins/backends/acp/plugin_nil_context_test.gointernal/plugins/backends/acp/process_identity.gointernal/plugins/backends/acp/process_identity_test.gointernal/plugins/backends/acp/process_identity_unix.gointernal/plugins/backends/acp/process_identity_unix_test.gointernal/plugins/backends/acp/process_identity_windows.gointernal/plugins/backends/acp/prompt_msg.gointernal/plugins/backends/acp/prompt_msg_test.gointernal/plugins/backends/acp/rpc.gointernal/plugins/backends/acp/rpc_error.gointernal/plugins/backends/acp/rpc_error_test.gointernal/plugins/backends/acp/rpc_id.gointernal/plugins/backends/acp/runtime_pool.gointernal/plugins/backends/acp/runtime_pool_claim_test.gointernal/plugins/backends/acp/runtime_pool_ensure.gointernal/plugins/backends/acp/runtime_pool_ensure_test.gointernal/plugins/backends/acp/runtime_pool_test.gointernal/plugins/backends/acp/server_handler.gointernal/plugins/backends/acp/server_request_test.gointernal/plugins/backends/acp/session.gointernal/plugins/backends/acp/session_update.gointernal/plugins/backends/acp/session_update_test.gointernal/plugins/backends/acp/stderr_sanitize.gointernal/plugins/backends/acp/stderr_sanitize_test.gointernal/plugins/backends/acp/subprocess_protocol.gointernal/plugins/backends/acp/subprocess_spec.gointernal/plugins/backends/acp/subprocess_spec_openturn_test.gointernal/plugins/backends/acp/subprocess_spec_test.gointernal/plugins/backends/acp/testdata/fuzz/FuzzMapSessionUpdateToEvents/corpus_agent_chunkinternal/plugins/backends/acp/testdata/fuzz/FuzzMergeHandshakeProfileExtensions/corpus_extensionsinternal/plugins/backends/acp/testdata/fuzz/FuzzParseNDJSONLine/corpus_session_updateinternal/plugins/backends/acp/tool_sink.gointernal/plugins/backends/acp/tool_summary.gointernal/plugins/backends/acp/tool_summary_test.gointernal/plugins/backends/acp/transport.gointernal/plugins/backends/acp/transport_stdio.gointernal/plugins/backends/acp/transport_stdio_os.gointernal/plugins/backends/acp/transport_stdio_os_unix.gointernal/plugins/backends/acp/transport_stdio_os_windows.gointernal/plugins/backends/acp/transport_stdio_test.gointernal/plugins/backends/acp/transport_test.gointernal/plugins/backends/acp/workspace.gointernal/plugins/backends/acp/workspace_test.gointernal/testkit/conformance/backend_credentials_test.gointernal/testkit/conformance/conformance_text_test.gointernal/testkit/conformance/error_upstream.gointernal/testkit/conformance/harness.gointernal/testkit/conformance/matrix.gointernal/testkit/conformance/matrix_evidence_test.gointernal/testkit/conformance/parity_acp_test.gointernal/testkit/conformance/refparity.gointernal/testkit/conformance/sanity_emulator_wiring_test.gointernal/testkit/conformance/stage_checklist_14_evidence_test.goscripts/backend-plugin-module-checks.ps1scripts/backend-plugin-module-checks.shscripts/check-adhoc-goroutines.ps1scripts/check-adhoc-goroutines.sh
💤 Files with no reviewable changes (83)
- internal/plugins/backends/acp/caps_test.go
- internal/plugins/backends/acp/external_parity_profile_test.go
- internal/plugins/backends/acp/tool_sink.go
- internal/plugins/backends/acp/config_option.go
- internal/plugins/backends/acp/testdata/fuzz/FuzzMapSessionUpdateToEvents/corpus_agent_chunk
- internal/plugins/backends/acp/prompt_msg.go
- internal/plugins/backends/acp/testdata/fuzz/FuzzMergeHandshakeProfileExtensions/corpus_extensions
- internal/plugins/backends/acp/process_identity.go
- internal/plugins/backends/acp/lifecycle_contract_test.go
- internal/plugins/backends/acp/fuzz_test.go
- internal/plugins/backends/acp/client.go
- internal/plugins/backends/acp/rpc.go
- internal/plugins/backends/acp/call_extract.go
- internal/plugins/backends/acp/subprocess_spec.go
- internal/plugins/backends/acp/session.go
- scripts/backend-plugin-module-checks.ps1
- internal/plugins/backends/acp/process_identity_windows.go
- internal/plugins/backends/acp/connector_config.go
- scripts/check-adhoc-goroutines.ps1
- internal/plugins/backends/acp/plugin_nil_context_test.go
- internal/plugins/backends/acp/lookpath_race_test.go
- internal/plugins/backends/acp/transport_stdio_os_windows.go
- internal/plugins/backends/acp/testdata/fuzz/FuzzParseNDJSONLine/corpus_session_update
- scripts/backend-plugin-module-checks.sh
- internal/plugins/backends/acp/acp_protocol.go
- internal/plugins/backends/acp/cancel.go
- internal/plugins/backends/acp/map_events.go
- internal/plugins/backends/acp/history_transcript.go
- internal/plugins/backends/acp/rpc_id.go
- internal/plugins/backends/acp/transport_stdio_os.go
- internal/plugins/backends/acp/stderr_sanitize.go
- internal/plugins/backends/acp/server_request_test.go
- internal/plugins/backends/acp/process_identity_unix_test.go
- internal/plugins/backends/acp/model_index.go
- internal/plugins/backends/acp/tool_summary.go
- internal/plugins/backends/acp/handshake.go
- internal/plugins/backends/acp/transport_stdio_os_unix.go
- internal/testkit/conformance/sanity_emulator_wiring_test.go
- internal/plugins/backends/acp/transport.go
- internal/testkit/conformance/backend_credentials_test.go
- internal/plugins/backends/acp/workspace.go
- internal/plugins/backends/acp/subprocess_spec_test.go
- internal/plugins/backends/acp/main_test.go
- internal/plugins/backends/acp/session_update_test.go
- internal/plugins/backends/acp/process_identity_unix.go
- internal/testkit/conformance/error_upstream.go
- internal/plugins/backends/acp/plugin.go
- internal/plugins/backends/acp/stderr_sanitize_test.go
- internal/plugins/backends/acp/process_identity_test.go
- internal/archtest/identity_transport_boundaries_test.go
- internal/plugins/backends/acp/tool_summary_test.go
- internal/testkit/conformance/matrix_evidence_test.go
- internal/plugins/backends/acp/transport_stdio.go
- internal/plugins/backends/acp/invoke.go
- internal/plugins/backends/acp/subprocess_spec_openturn_test.go
- internal/plugins/backends/acp/runtime_pool.go
- internal/testkit/conformance/stage_checklist_14_evidence_test.go
- internal/plugins/backends/acp/model_index_test.go
- internal/plugins/backends/acp/rpc_error_test.go
- internal/plugins/backends/acp/rpc_error.go
- internal/plugins/backends/acp/prompt_msg_test.go
- internal/plugins/backends/acp/runtime_pool_ensure.go
- internal/plugins/backends/acp/ndjson_stream.go
- internal/plugins/backends/acp/connector_config_test.go
- internal/plugins/backends/acp/subprocess_protocol.go
- internal/testkit/conformance/conformance_text_test.go
- internal/plugins/backends/acp/transport_test.go
- internal/plugins/backends/acp/integration_test.go
- internal/plugins/backends/acp/call_extract_test.go
- internal/plugins/backends/acp/runtime_pool_test.go
- internal/plugins/backends/acp/ndjson_stream_test.go
- internal/plugins/backends/acp/transport_stdio_test.go
- internal/plugins/backends/acp/runtime_pool_claim_test.go
- internal/plugins/backends/acp/session_update.go
- internal/plugins/backends/acp/workspace_test.go
- internal/plugins/backends/acp/lookpath.go
- internal/plugins/backends/acp/history_transcript_test.go
- internal/plugins/backends/acp/map_events_internal_test.go
- internal/plugins/backends/acp/invoke_test.go
- internal/plugins/backends/acp/doc.go
- internal/plugins/backends/acp/runtime_pool_ensure_test.go
- internal/plugins/backends/acp/server_handler.go
- Makefile
📜 Review details
⏰ Context from checks skipped due to timeout. (8)
- GitHub Check: Test (ubuntu-latest)
- GitHub Check: Test (windows-latest)
- GitHub Check: Analyze (Go)
- GitHub Check: qa
- GitHub Check: process-tree (windows-latest)
- GitHub Check: cross-platform-qa (ubuntu-latest)
- GitHub Check: cross-platform-qa (windows-latest)
- GitHub Check: cross-platform-qa (macos-latest)
🧰 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.
**/*: Do not add changelog,_Updated,_Reason, timestamp, or history footers to steering or agent instructions.
Use TDD by default: write the test or interface before the implementation.
Prefer the smallest correct diff and avoid speculative abstractions.
Never claim success without direct verification evidence.
Preserve user-authored changes and never use destructive git commands unless explicitly requested.
Do not work onmain; create a suitably named local worktree and fix/spec/feat branch based onmainfor each change.
Use forward-slash git pathspecs on Windows.
Reports must state changed files and verification run, and plainly state skipped tests or uncertainty; mention architectural trade-offs only when relevant.
Files:
scripts/check-adhoc-goroutines.shinternal/testkit/conformance/refparity.gointernal/testkit/conformance/parity_acp_test.godocs/release-gates.mddocs/testing-determinism.mdinternal/testkit/conformance/matrix.gointernal/testkit/conformance/harness.gointernal/archtest/acp_plugin_architecture_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.
**/*.go: Implement and describe Go behavior only; explicitly label Python-era or future behavior.
The core owns orchestration, routing, failover, and B2BUA continuity; provider semantics remain in adapters/plugins.
Core code must not import provider SDKs or concrete plugins.
Use canonical protocol adapters instead of pairwise protocol translators.
Streaming is primary; non-streaming APIs must collect the canonical stream.
Do not transparently retry or fail over after the first downstream content event.
Fail explicitly on capability mismatches; never silently drop required semantics.
Place request and response mutation behind hooks or extensions, not core branching.
Use explicit construction and registration; do not use DI containers, reflection registries, globals, or Go nativepluginin v1.
Use specs for new features, breaking or architecture changes, protocol/plugin contract changes, routing semantic changes, or unclear requirements; use direct code for small fixes, documentation, narrow tests, and trivial maintenance.
If an active Kiro spec is in scope, do not code before approvedrequirements.mdanddesign.mdare recorded inspec.json.
Prefer the standard library and add dependencies only when they reduce complexity or risk.
Define small interfaces where consumed; constructors should return concrete types unless exposing stable SDK or plugin contracts.
Every I/O boundary must takecontext.Context; never store contexts in structs.
Own goroutines, channels, and cancellation ex...
Files:
internal/testkit/conformance/refparity.gointernal/testkit/conformance/parity_acp_test.gointernal/testkit/conformance/matrix.gointernal/testkit/conformance/harness.gointernal/archtest/acp_plugin_architecture_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/testkit/conformance/refparity.gointernal/testkit/conformance/parity_acp_test.gointernal/testkit/conformance/matrix.gointernal/testkit/conformance/harness.gointernal/archtest/acp_plugin_architecture_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/testkit/conformance/refparity.gointernal/testkit/conformance/parity_acp_test.gointernal/testkit/conformance/matrix.gointernal/testkit/conformance/harness.gointernal/archtest/acp_plugin_architecture_test.go
**/*_test.go
📄 CodeRabbit inference engine (AGENTS.md)
Use focused tests with
go test -run TestName ./path/to/pkg; use the project’s prescribed unit, quality, parity, QA, race, and fuzz commands according to change scope.
Files:
internal/testkit/conformance/parity_acp_test.gointernal/archtest/acp_plugin_architecture_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/testkit/conformance/parity_acp_test.gointernal/archtest/acp_plugin_architecture_test.go
.release-files
⚙️ CodeRabbit configuration file
.release-files: Treat as a security boundary: every new tracked path must be explicitly listed; flag unexpected additions or removals.
Files:
.release-files
🧠 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/testkit/conformance/refparity.gointernal/testkit/conformance/parity_acp_test.gointernal/testkit/conformance/matrix.gointernal/testkit/conformance/harness.gointernal/archtest/acp_plugin_architecture_test.go
🪛 LanguageTool
.kiro/specs/acp-runtime-deduplication/requirements.md
[grammar] ~37-~37: Ensure spelling is correct
Context: ... - R6.2: When production imports, testkit imports, build manifests, developer scr...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~45-~45: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...e* PR #239 is merged into origin/main prior to submitting this refactor PR, the branch...
(EN_WORDINESS_PREMIUM_PRIOR_TO)
.kiro/specs/acp-runtime-deduplication/tasks.md
[style] ~23-~23: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...CP_|TestIdentityTransport_'(must fail prior to package deletion becauseinternal/plug...
(EN_WORDINESS_PREMIUM_PRIOR_TO)
[style] ~33-~33: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...ity_ACP_retiredFromStaticMatrix(fails prior to removing ACP from static matrix inmat...
(EN_WORDINESS_PREMIUM_PRIOR_TO)
[grammar] ~67-~67: Ensure spelling is correct
Context: ....1 RED failure) & Task 1.4 (conformance testkit migration complete) - Goal: Remov...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
.kiro/specs/acp-runtime-deduplication/design.md
[grammar] ~71-~71: Ensure spelling is correct
Context: ...FuzzMergeHandshakeProfileExtensionsinconnector-support/acp. - **Makefile**: Update parity-acp-p...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~75-~75: Ensure spelling is correct
Context: .../plugins/backends/acp/prompt_msg.gotoconnector-support/acp/prompt_msg.go`. - Reference Classification: All sta...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~86-~86: ‘Prior to’ might be wordy. Consider a shorter alternative.
Context: ...239 implementation. Final Task Gate: Prior to opening the final PR for dedup, when PR...
(EN_WORDINESS_PREMIUM_PRIOR_TO)
🪛 markdownlint-cli2 (0.23.1)
.kiro/specs/acp-runtime-deduplication/requirements.md
[warning] 15-15: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 19-19: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 23-23: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 27-27: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 31-31: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 35-35: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 39-39: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 44-44: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
.kiro/specs/acp-runtime-deduplication/design.md
[warning] 17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 24-24: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 29-29: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 40-40: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 51-51: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 54-54: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 61-61: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 69-69: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
🔇 Additional comments (13)
.kiro/specs/acp-runtime-deduplication/design.md (1)
1-16: LGTM!Also applies to: 18-23, 25-28, 30-39, 41-50, 52-53, 55-60, 62-68, 70-93
.kiro/specs/acp-runtime-deduplication/requirements.md (1)
1-14: LGTM!Also applies to: 16-18, 20-22, 24-26, 28-30, 32-34, 36-38, 40-43, 45-46
.kiro/specs/acp-runtime-deduplication/spec.json (1)
1-23: LGTM!.kiro/specs/acp-runtime-deduplication/tasks.md (1)
1-142: LGTM!internal/testkit/conformance/harness.go (2)
13-13: LGTM!Also applies to: 44-44
107-107: 🎯 Functional CorrectnessNo direct harness caller still requests ACP.
internal/testkit/conformance/matrix.go (1)
18-25: LGTM!Also applies to: 36-36, 62-63
internal/testkit/conformance/parity_acp_test.go (1)
9-16: LGTM!internal/archtest/acp_plugin_architecture_test.go (1)
74-78: LGTM!Also applies to: 97-108
.release-files (1)
402-405: LGTM!Also applies to: 3189-3189
docs/testing-determinism.md (1)
11-11: LGTM!docs/release-gates.md (1)
60-62: 🎯 Functional CorrectnessNo change needed.
make test-fuzzruns the threeconnector-support/acpfuzz targets from that module andmake release-gatesinvokesmake test-fuzz.internal/testkit/conformance/refparity.go (1)
15-20: 🎯 Functional CorrectnessNo stale ACP reference-backend caller remains.
NewSuccessRefBackendis not called with"acp"in conformance code.
Summary
Verification
Known environment limitations