Repository navigation
fix(communication-transfer): fail closed on malformed figure-evidence context - #163
Merged
lostlight530 merged 1 commit intoOct 23, 2026
Merged
Conversation
lostlight530
marked this pull request as ready for review
October 23, 2026 03:35
lostlight530
deleted the
agent/20261023-communication-transfer-sidecar-shape
branch
October 23, 2026 03:35
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.
Current confirmed defect
At
maincommit7af0513e54c63dc795b1f39ac1b9194bf16179d1,core/communication_transfer.pyaccepts figure-evidence with the correct source profile but non-object values for seven optional context fields, then accesses them as dictionaries in_coverage()ordict(), causing an uncaughtAttributeErrorfor e.g.upstream_research: ["malformed"]— not a typed Tool CLI failureBounded repair
core/communication_transfer.py: validate the seven copied context fields as JSON objects when supplied, while preserving missing/null semantics, before downstream dict accesstests/test_tool_cli.py: 35 malformed-field variants must yieldEXECUTION_FAILEDfrom the adapter, one CLI subprocess must return exit 1 + machine JSON + empty stderr, and a valid nullable sidecar must retain bounded transfer/non-inheritance semanticsEvidence
AttributeError: 'list' object has no attribute 'get'60a8dcfdf60ed8b3591cddbcb22f1dce98da80c0: EXECUTED / SUCCESS — GitHub Actions run 39868076220, joblocal-tool-contract, all steps successfulpython -m unittest tests.test_tool_cli -v: 9 tests OK (new malformed context and valid/null compatibility tests both OK)make test: success — coretests/test_all.py10 tests, accessibility 13, Tool/Agent 14, UI 3 — all green in logsFreshness and handoff
7af0513e54c63dc795b1f39ac1b9194bf16179d160a8dcfdf60ed8b3591cddbcb22f1dce98da80c0main...head: ahead 1, behind 0, changed only the two paths above