Repository navigation
Conversation
Run pinned DSH over ACP using the existing BYO payload and A2A executor. Preserve native conversation state, cancellation and one-shot permissions. Proxy HTTP MCP bindings to honor headers, timeouts and session termination. Include the runtime image, dependency lock, deployment example and tests. AI-assisted development with Codex; human review is required before upstream submission. Signed-off-by: Junfeng Yu <64075563+Jacob953@users.noreply.github.com>
Close the ACP input stream when a blocked write is canceled and bound cancellation messages by a deadline. Cover blocked prompt, setup and permission writes, plus real DSH tool errors, permission decisions and resumed MCP calls. AI-assisted development with Codex; human review is required before upstream submission. Signed-off-by: Junfeng Yu <64075563+Jacob953@users.noreply.github.com>
Handle invalid remote tool schemas as startup errors and reject repeated pagination cursors. Verify remote session and DSH process cleanup. AI assistance: implementation and validation assisted by OpenAI Codex. Signed-off-by: Junfeng Yu <64075563+Jacob953@users.noreply.github.com>
AI assistance: audit and documentation assisted by OpenAI Codex. Signed-off-by: Junfeng Yu <64075563+Jacob953@users.noreply.github.com>
Use a per-turn Linux subreaper and a lifetime pipe to clean up detached and orphaned tools before returning. Preserve non-object ACP input in JSON-compatible tool events so DSH can return validation errors to the model. Validate forced and normal teardown, adapter death, unrelated process survival, non-object arguments, and the existing runtime suite under the race detector. Runtime execution now requires Linux. AI assistance: implementation, regression tests, and validation assisted by OpenAI Codex. Signed-off-by: Junfeng Yu <64075563+Jacob953@users.noreply.github.com>
Pin MCP requests and binding headers to the configured origin. Preserve same-origin redirects with a bounded chain and reject cross-origin hops. Use nested Linux subreapers and private cleanup confirmation to recover when either supervisor dies during payload execution. Avoid inherited stderr copy hangs. Keep the task unsettled if cleanup cannot be confirmed. Verify redirect isolation, forced supervisor death, detached tool cleanup, unrelated process survival, and missing confirmation. Run host runtime race tests, the Linux DSH race suite, Go and Linux lint, and container checks. AI assistance: implementation, regression tests, and validation assisted by OpenAI Codex. Signed-off-by: Junfeng Yu <64075563+Jacob953@users.noreply.github.com>
Exercise the production TaskStore wrapper over gRPC, require native process cleanup before settlement, and verify file and conversation recovery with the pinned DSH runtime. Document the completed clean-cluster lifecycle acceptance and remaining coverage limits. AI assistance: implementation and validation assisted by OpenAI Codex. Signed-off-by: Junfeng Yu <64075563+Jacob953@users.noreply.github.com>
Document upstream dependencies and the guarantees needed to replace local process supervision, pending approvals and MCP origin checks. Clarify that replacing an Actor does not reconcile an orphaned controller task. AI assistance: implementation and validation assisted by OpenAI Codex. Signed-off-by: Junfeng Yu <64075563+Jacob953@users.noreply.github.com>
Return an explicit cancellation error when the shared executor emits no result. Reject lost task continuations before SDK history writes can mutate or settle the waiting task. Keep unknown cleanup fail-closed and document that these DSH-only mitigations do not provide automatic task or approval recovery. AI assistance: implementation and validation assisted by OpenAI Codex. Signed-off-by: Junfeng Yu <64075563+Jacob953@users.noreply.github.com>
Contributor
|
Hey there! Thanks so much for the PR. I don't think we plan to add more harnesses in core, but would definitely be open to starting a community harness repo, would you be interested in contributing there? |
Report a specific failed outcome when process cleanup is already confirmed before an approval decision. Verify with real DSH SIGKILL fault injection that allow, reject and cancel settle the old task and a new task continues in the same session without replaying the pending tool. Document the surviving-adapter requirement. AI assistance: implementation and validation assisted by OpenAI Codex. Signed-off-by: Junfeng Yu <64075563+Jacob953@users.noreply.github.com>
Verify with pinned DSH that session resume records an interrupted tool outcome without restoring its pending approval or running the command. Document the difference between this safety regression and durable approval continuation, and clarify adoption conditions for kagent kagent-dev#3010, kagent-dev#3011 and kagent-dev#3165. AI assistance: implementation and validation assisted by OpenAI Codex. Signed-off-by: Junfeng Yu <64075563+Jacob953@users.noreply.github.com>
Author
|
Thanks for the guidance, @EItanya. I'd be happy to contribute the DeepSeek Harness BYO integration to a community harness repository and help build it together with the community. Could you share the next steps for getting involved? In particular, is a repository already planned, and are there any guidelines for its structure, testing, or contribution process? I'd appreciate a pointer to the right place to coordinate the initial setup and moving this integration over. |
Record that Go ADK reproduces the shared unpublished-boundary failure and that a deletion escape does not establish pending-call recovery or safe missing-owner cancellation. AI assistance: documentation assisted by OpenAI Codex. Signed-off-by: Junfeng Yu <64075563+Jacob953@users.noreply.github.com>
Signed-off-by: Junfeng Yu <64075563+Jacob953@users.noreply.github.com>
…omptly Signed-off-by: Junfeng Yu <64075563+Jacob953@users.noreply.github.com>
Bind protected calls to the runtime task and conversation, persist execution phases and results, and continue the original public task through a new DSH turn. Consume the optional shared pending-restoration contract without changing core. Cover concurrent conversations, immutable decisions, recovery, and cancellation with real DSH/MCP integration tests. AI assistance: implementation, tests and documentation assisted by OpenAI Codex. Signed-off-by: Junfeng Yu <64075563+Jacob953@users.noreply.github.com>
This was referenced Oct 16, 2026
3 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Migration to a community harness repository
This integration will move to a separate community harness repository. Following the maintainer's guidance, I agreed to contribute there. The destination repository and its contribution process are still awaiting confirmation.
This draft preserves the implementation, tests and review context until that move is coordinated. It is not a request to add another maintained harness to kagent core. Shared runtime/controller fixes belong in their own upstream PRs; the community integration will consume those contracts. The adapter, optional approval service, images, deployment example and tests will move together, with their dependencies and acceptance gaps documented below.
Implementation reviewed here:
20ed48c1. Dependency statuses checked on 2026-10-15.What this PR implements
0.2.0-rc.2over ACP behind kagent's private A2A gRPC service. Reads the compiled BYO configuration and agent card, supports OpenAI-compatible Chat Completions, and retains gateway-injected credentials. Adds a pinned container build and an Agent/Harness deployment example. No native harness type, CRD fields or shared runtime/controller behavior are added. The diff consists of the DSH directory, deployment example and a Docker build-context adjustment.requireApprovalholds a call before upstream dispatch. The adapter stops DSH, saves the exact operation and trusted task/context identity, then publishesinput-required. Approval executes the saved call; denial and waiting cancellation execute nothing. The result continues the same public A2A task in a new native DSH turn. Per-Actor DATA binds the conversation automatically. Wrong-context, mismatched and late decisions are rejected before task-history mutation. Proven discovery/setup failures remain retryable, and saved results are reused without dispatching the operation again.The protected-binding path provides unified kagent HITL and original-task continuity. The standalone service provides an independent business workflow. Neither changes DSH source or restores an interrupted native execution stack.
Known gaps and limitations
PendingRestorerand passes separate integration tests against that PR, but its shared changes are absent from this branch. Live HITL works on the current base; a replacement adapter rejects the lost-owner continuation.delivery_unknownand requires reconciliation; it is not resent automatically. Acknowledgement confirms acceptance, not successful completion of the follow-up model turn. Repairing notification delivery never repeats the business operation.Upstream dependencies and follow-up work
These items have different roles: only #3165 is the direct dependency for the implemented DATA-restored public-task continuation. The others track shared gaps or possible future reuse of temporary DSH-specific code.
4fe32fdbac8ffbca4b8f66c4d7c0771ad0380ab1. Revalidate against the merged contract before enabling or advertising that recovery capability.CANCELEDresponse alone does not prove DSH descendant or remote-effect cleanup, so merging it is insufficient to remove the local guard.The relevant supervisor, MCP, executor and pending-turn code comments record the conditions for adopting shared capabilities. An issue being closed or a PR being merged is not, by itself, sufficient to delete a guard that enforces a stronger cleanup or ownership requirement.
Validation
Keep this PR in draft pending the community-repository move, shared dependency integration and remaining release acceptance. Migration should preserve the tests and these limits; it should not imply that outstanding shared recovery work has been completed.
AI assistance: OpenAI Codex assisted with implementation, testing and this description.