Skip to content

fix(communication-transfer): fail closed on malformed figure-evidence context - #163

Merged
lostlight530 merged 1 commit into
mainfrom
agent/20261023-communication-transfer-sidecar-shape
Oct 23, 2026
Merged

lostlight530 merged 1 commit into
mainfrom
agent/20261023-communication-transfer-sidecar-shape

Conversation

@lostlight530

@lostlight530 lostlight530 commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Current confirmed defect

At main commit 7af0513e54c63dc795b1f39ac1b9194bf16179d1, core/communication_transfer.py accepts figure-evidence with the correct source profile but non-object values for seven optional context fields, then accesses them as dictionaries in _coverage() or dict(), causing an uncaught AttributeError for e.g. upstream_research: ["malformed"] — not a typed Tool CLI failure

Bounded repair

  • core/communication_transfer.py: validate the seven copied context fields as JSON objects when supplied, while preserving missing/null semantics, before downstream dict access
  • tests/test_tool_cli.py: 35 malformed-field variants must yield EXECUTION_FAILED from the adapter, one CLI subprocess must return exit 1 + machine JSON + empty stderr, and a valid nullable sidecar must retain bounded transfer/non-inheritance semantics
  • No historical documentation, dates, workflow, tool registry or scientific-meaning modifications

Evidence

  • REMOTE_STATE_VERIFIED + STATIC_SOURCE_REVIEW: main, source, current machine contract and tests
  • ISOLATED_REPRO_EXECUTED: source-equivalent minimal reproducer observed AttributeError: 'list' object has no attribute 'get'
  • Local full-checkout native tests: NOT_EXECUTED because connected runtime checkout unavailable
  • CI at exact head 60a8dcfdf60ed8b3591cddbcb22f1dce98da80c0: EXECUTED / SUCCESS — GitHub Actions run 39868076220, job local-tool-contract, all steps successful
  • python -m unittest tests.test_tool_cli -v: 9 tests OK (new malformed context and valid/null compatibility tests both OK)
  • make test: success — core tests/test_all.py 10 tests, accessibility 13, Tool/Agent 14, UI 3 — all green in logs
  • Python compile step and JSON/HTML catalog generation: success
  • Native maintenance scanner: NOT_EXECUTED
  • External scientific/acceptance/WCAG claims: NOT_EXECUTED and explicitly not inherited

Freshness and handoff

  • Exact original base: 7af0513e54c63dc795b1f39ac1b9194bf16179d1
  • Head: 60a8dcfdf60ed8b3591cddbcb22f1dce98da80c0
  • main...head: ahead 1, behind 0, changed only the two paths above
  • Keep this PR Draft, no producer merge / auto-merge / main write
  • Current state: READY_FOR_MAINTAINER_REVIEW — subject to independent maintainer review and exact-head freshness gate immediately before any authorized merge

@lostlight530
lostlight530 marked this pull request as ready for review October 23, 2026 03:35
@lostlight530
lostlight530 merged commit 6ffa665 into main Oct 23, 2026
1 check passed
@lostlight530
lostlight530 deleted the agent/20261023-communication-transfer-sidecar-shape branch October 23, 2026 03:35
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