Skip to content

refactor: deduplicate ACP runtime - #242

Merged
matdev83 merged 2 commits into
mainfrom
refactor/acp-runtime-dedup
Jul 31, 2026
Merged

refactor: deduplicate ACP runtime#242
matdev83 merged 2 commits into
mainfrom
refactor/acp-runtime-dedup

Conversation

@matdev83

Copy link
Copy Markdown
Owner

Summary

  • retire the duplicated root ACP backend runtime and keep connector-support/acp as the sole implementation
  • remove ACP from the static built-in conformance matrix while retaining executable connector parity coverage
  • replace mirror drift checks with architecture enforcement and update release manifests, scripts, and docs

Verification

  • make quality-checks
  • make parity-acp-plugin
  • make parity-cli-acp-plugins
  • go test ./internal/archtest/...
  • go test ./internal/testkit/conformance/...
  • 30-second fuzz campaigns for FuzzParseNDJSONLine, FuzzMapSessionUpdateToEvents, and FuzzMergeHandshakeProfileExtensions
  • focused connector-support/acp RPC error tests

Known environment limitations

  • full connector-support/acp tests and the module-check target reach the pre-existing Windows executable-cache hang; focused ACP suites and parity gates pass
  • make test-unit encountered one unrelated transient SQLITE_BUSY in TestSQLiteStore_ConcurrentSameKeyAppendIsIdempotent; its focused rerun passed
  • race verification remains for Linux CI

@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@matdev83, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 43 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 6a1104ee-53c3-47e1-a1ac-e7bc9361a8ae

📥 Commits

Reviewing files that changed from the base of the PR and between eddc104 and 71f6f0d.

📒 Files selected for processing (5)
  • .kiro/specs/acp-runtime-deduplication/design.md
  • .kiro/specs/acp-runtime-deduplication/requirements.md
  • .kiro/specs/acp-runtime-deduplication/tasks.md
  • scripts/check-adhoc-goroutines.ps1
  • scripts/check-adhoc-goroutines.sh
📝 Walkthrough

Summary by CodeRabbit

  • Refactor

    • Consolidated ACP runtime support into a single canonical implementation.
    • Removed the legacy duplicate runtime and retired ACP from the static backend conformance matrix.
  • Documentation

    • Updated release gates, testing guidance, specifications, manifests, and validation scripts to reflect the consolidated runtime.
  • Tests

    • Added architecture coverage confirming removal of the legacy implementation.
    • Updated parity and conformance checks for the revised backend scope.

Walkthrough

The change establishes connector-support/acp as the canonical ACP runtime, removes root-module ACP conformance wiring and architecture exemptions, and updates manifests, scripts, documentation, and validation paths.

Changes

ACP runtime deduplication

Layer / File(s) Summary
Architecture and implementation plan
.kiro/specs/acp-runtime-deduplication/*
The specification defines canonical ACP ownership, removal of the legacy package, conformance migration, validation requirements, and reconciliation constraints.
Root conformance migration
internal/testkit/conformance/*
The conformance harness, backend matrix, parity helpers, and text assertions no longer handle ACP as a static backend.
Legacy package and boundary validation
internal/archtest/*, internal/plugins/backends/acp/plugin_nil_context_test.go
Architecture tests verify that the legacy ACP package is absent. Boundary checks no longer exempt that package.
Release and validation cleanup
.release-files, Makefile, docs/*, scripts/*
Release entries, parity commands, documentation paths, mirror checks, and goroutine allowlists now reference only the canonical ACP runtime.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 7 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 54.55% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (7 passed)
Check name Status Explanation
Title check ✅ Passed The title uses a conventional refactor prefix and clearly describes deduplicating the ACP runtime.
Description check ✅ Passed The description directly explains the ACP runtime deduplication, conformance changes, architecture enforcement, verification, and known limitations.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
No Secrets ✅ Passed The commit adds no URLs, credential assignments, key markers, or known token formats; the only secret-related addition is a comment mentioning API keys, and the new code contains paths only.
Context Propagation ✅ Passed The PR only removes the duplicate root ACP runtime; canonical ACP remains. Open and RPC paths pass ctx, HTTP binds requests to ctx, and Close cancels streams and terminates subprocess goroutines.
No Accidental Public Api Break ✅ Passed No pkg/** or canonical ACP files changed; removed identifiers are confined to internal/plugins/backends/acp, with zero production imports and the connector-support/acp replacement documented in the...

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 79605bb and eddc104.

📒 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-files
  • Makefile
  • docs/release-gates.md
  • docs/testing-determinism.md
  • internal/archtest/acp_plugin_architecture_test.go
  • internal/archtest/identity_transport_boundaries_test.go
  • internal/plugins/backends/acp/acp_protocol.go
  • internal/plugins/backends/acp/call_extract.go
  • internal/plugins/backends/acp/call_extract_test.go
  • internal/plugins/backends/acp/cancel.go
  • internal/plugins/backends/acp/caps_test.go
  • internal/plugins/backends/acp/client.go
  • internal/plugins/backends/acp/config_option.go
  • internal/plugins/backends/acp/connector_config.go
  • internal/plugins/backends/acp/connector_config_test.go
  • internal/plugins/backends/acp/doc.go
  • internal/plugins/backends/acp/external_parity_profile_test.go
  • internal/plugins/backends/acp/fuzz_test.go
  • internal/plugins/backends/acp/handshake.go
  • internal/plugins/backends/acp/history_transcript.go
  • internal/plugins/backends/acp/history_transcript_test.go
  • internal/plugins/backends/acp/integration_test.go
  • internal/plugins/backends/acp/invoke.go
  • internal/plugins/backends/acp/invoke_test.go
  • internal/plugins/backends/acp/lifecycle_contract_test.go
  • internal/plugins/backends/acp/lookpath.go
  • internal/plugins/backends/acp/lookpath_race_test.go
  • internal/plugins/backends/acp/main_test.go
  • internal/plugins/backends/acp/map_events.go
  • internal/plugins/backends/acp/map_events_internal_test.go
  • internal/plugins/backends/acp/model_index.go
  • internal/plugins/backends/acp/model_index_test.go
  • internal/plugins/backends/acp/ndjson_stream.go
  • internal/plugins/backends/acp/ndjson_stream_test.go
  • internal/plugins/backends/acp/plugin.go
  • internal/plugins/backends/acp/plugin_nil_context_test.go
  • internal/plugins/backends/acp/process_identity.go
  • internal/plugins/backends/acp/process_identity_test.go
  • internal/plugins/backends/acp/process_identity_unix.go
  • internal/plugins/backends/acp/process_identity_unix_test.go
  • internal/plugins/backends/acp/process_identity_windows.go
  • internal/plugins/backends/acp/prompt_msg.go
  • internal/plugins/backends/acp/prompt_msg_test.go
  • internal/plugins/backends/acp/rpc.go
  • internal/plugins/backends/acp/rpc_error.go
  • internal/plugins/backends/acp/rpc_error_test.go
  • internal/plugins/backends/acp/rpc_id.go
  • internal/plugins/backends/acp/runtime_pool.go
  • internal/plugins/backends/acp/runtime_pool_claim_test.go
  • internal/plugins/backends/acp/runtime_pool_ensure.go
  • internal/plugins/backends/acp/runtime_pool_ensure_test.go
  • internal/plugins/backends/acp/runtime_pool_test.go
  • internal/plugins/backends/acp/server_handler.go
  • internal/plugins/backends/acp/server_request_test.go
  • internal/plugins/backends/acp/session.go
  • internal/plugins/backends/acp/session_update.go
  • internal/plugins/backends/acp/session_update_test.go
  • internal/plugins/backends/acp/stderr_sanitize.go
  • internal/plugins/backends/acp/stderr_sanitize_test.go
  • internal/plugins/backends/acp/subprocess_protocol.go
  • internal/plugins/backends/acp/subprocess_spec.go
  • internal/plugins/backends/acp/subprocess_spec_openturn_test.go
  • internal/plugins/backends/acp/subprocess_spec_test.go
  • internal/plugins/backends/acp/testdata/fuzz/FuzzMapSessionUpdateToEvents/corpus_agent_chunk
  • internal/plugins/backends/acp/testdata/fuzz/FuzzMergeHandshakeProfileExtensions/corpus_extensions
  • internal/plugins/backends/acp/testdata/fuzz/FuzzParseNDJSONLine/corpus_session_update
  • internal/plugins/backends/acp/tool_sink.go
  • internal/plugins/backends/acp/tool_summary.go
  • internal/plugins/backends/acp/tool_summary_test.go
  • internal/plugins/backends/acp/transport.go
  • internal/plugins/backends/acp/transport_stdio.go
  • internal/plugins/backends/acp/transport_stdio_os.go
  • internal/plugins/backends/acp/transport_stdio_os_unix.go
  • internal/plugins/backends/acp/transport_stdio_os_windows.go
  • internal/plugins/backends/acp/transport_stdio_test.go
  • internal/plugins/backends/acp/transport_test.go
  • internal/plugins/backends/acp/workspace.go
  • internal/plugins/backends/acp/workspace_test.go
  • internal/testkit/conformance/backend_credentials_test.go
  • internal/testkit/conformance/conformance_text_test.go
  • internal/testkit/conformance/error_upstream.go
  • internal/testkit/conformance/harness.go
  • internal/testkit/conformance/matrix.go
  • internal/testkit/conformance/matrix_evidence_test.go
  • internal/testkit/conformance/parity_acp_test.go
  • internal/testkit/conformance/refparity.go
  • internal/testkit/conformance/sanity_emulator_wiring_test.go
  • internal/testkit/conformance/stage_checklist_14_evidence_test.go
  • scripts/backend-plugin-module-checks.ps1
  • scripts/backend-plugin-module-checks.sh
  • scripts/check-adhoc-goroutines.ps1
  • scripts/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 on main; create a suitably named local worktree and fix/spec/feat branch based on main for 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.sh
  • internal/testkit/conformance/refparity.go
  • internal/testkit/conformance/parity_acp_test.go
  • docs/release-gates.md
  • docs/testing-determinism.md
  • internal/testkit/conformance/matrix.go
  • internal/testkit/conformance/harness.go
  • internal/archtest/acp_plugin_architecture_test.go
**/*.go

📄 CodeRabbit inference engine (Custom checks)

**/*.go: For server, CLI, worker, or network Go code, ensure context.Context is propagated correctly, cancellation is respected, and new goroutines cannot leak indefinitely.
Do not make accidental public API breaks in Go code: under pkg/** 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 native plugin in 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 approved requirements.md and design.md are recorded in spec.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 take context.Context; never store contexts in structs.
Own goroutines, channels, and cancellation ex...

Files:

  • internal/testkit/conformance/refparity.go
  • internal/testkit/conformance/parity_acp_test.go
  • internal/testkit/conformance/matrix.go
  • internal/testkit/conformance/harness.go
  • internal/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.go
  • internal/testkit/conformance/parity_acp_test.go
  • internal/testkit/conformance/matrix.go
  • internal/testkit/conformance/harness.go
  • internal/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.go
  • internal/testkit/conformance/parity_acp_test.go
  • internal/testkit/conformance/matrix.go
  • internal/testkit/conformance/harness.go
  • internal/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.go
  • internal/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.go
  • internal/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.go
  • internal/testkit/conformance/parity_acp_test.go
  • internal/testkit/conformance/matrix.go
  • internal/testkit/conformance/harness.go
  • internal/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 Correctness

No 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 Correctness

No change needed. make test-fuzz runs the three connector-support/acp fuzz targets from that module and make release-gates invokes make test-fuzz.

internal/testkit/conformance/refparity.go (1)

15-20: 🎯 Functional Correctness

No stale ACP reference-backend caller remains.

NewSuccessRefBackend is not called with "acp" in conformance code.

Comment thread .kiro/specs/acp-runtime-deduplication/design.md
Comment thread .kiro/specs/acp-runtime-deduplication/tasks.md Outdated
Comment thread scripts/check-adhoc-goroutines.sh Outdated
@matdev83
matdev83 merged commit 70d500d into main Jul 31, 2026
23 checks passed
@matdev83
matdev83 deleted the refactor/acp-runtime-dedup branch July 31, 2026 12:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant