feat(ding): add harness-neutral guarded adapter seam - #123
Closed
myobie wants to merge 2 commits into
Closed
Conversation
25 tasks
Contributor
|
Superseded by provider-native session drivers and merged #390. This branch would reintroduce a second generic managed-harness delivery owner. Posted on behalf of @schickling
|
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.
Summary
dingselect one opt-in external activity adapter through structured argv, with no shell, provider selector, inferred arguments, or redundant delivery enumST_ROOTand declared adapter roots work without collapsing argument boundariesinputBufferJSONL contract and require an exact PTY activity snapshot before a generation/revision-guarded writeding-control hook-ownedingress for exact filenames already injected by an external lifecycle hookdinglowering and legacy DING bytes exactly; configured rich DING is fail-closed and never falls backBoundaries
Core contains no provider grammar, hook installation, hook-payload parsing, model-call trigger, or mid-turn interruption mechanism. A successful guarded write is PTY ownership, not a claimed harness acceptance receipt. The rich path is experimental and depends on the PTY activity and guarded-send contracts in compoundingtech/pty#131 and compoundingtech/pty#133.
Addresses #111.
Review correction proof
tests/exec_backend.rs::generated_rich_ding_uses_task_only_roots_without_shell_expansionstarts an isolated test subprocess with parentST_ROOTandADAPTER_ROOTremoved. It discovers and reconciles a compact rich-DING declaration, launches the generated DING task through the real exec backend, proves$ST_ROOTresolves the native catalog inbox, proves the declared$ADAPTER_ROOTstarts the exact fake adapter argv, and proves shell-looking argument text remains inert.Validation
At corrected exact head
d7500b0fcad8bb268da9da96c0226d9caddbe305on exact basec6846f6239329f0803142afc06c15a07b93937c1:cargo test --workspace --all-targets --no-fail-fast -- --test-threads=1cargo test --workspace --doccargo test --test exec_backend -- --test-threads=1(8 passed, including the real generated-sidecar proof)cargo test --lib 'ding::' --no-fail-fast(42 passed)cargo test -p agent-spec compact_dingcargo test --test ding_control --test invariantscargo test --test native_onlyagent-specall targets and the changedst2lib/bin/integration targetsgit diff --checkHosted Nix is intentionally left to the PR gate because Nix is unavailable on the authoring host. Full workspace strict Clippy remains baseline-red only on the two current-main
too_many_arguments/type_complexitylints outside this diff.