Skip to content

Compact workflow_get candidate evidence

  • Repository: h8v6/heyaira
  • Frozen task: ee1b6fd5-078b-442f-9daa-4a3a857799ac version 2, read through MCP before changes.
  • Execution: 1f98132a-7aa3-41b8-9aef-5a4ee2e66c03
  • Base commit: 790cc1a31f7cf5b0e2db11c969fd89ad5996050a
  • Candidate branch: heyaira/ee1b6fd5; the containing commit is the candidate.

The MCP tool previously returned duplicated frozen instruction text on every read. Its optional detail boolean now defaults to false. A response-only projection replaces contract.profile.instructions, contract.verifier.instructions and contract.prompt with markers containing omitted=true, Python character count and lowercase SHA-256 of the original UTF-8 text. Every other field is retained. detail=true returns the original full read result. Neither the stored contract nor its digest is rewritten.

Changed files: src/heyaira/server.py, tests/test_workflow_view.py, tests/test_workflow_e2e.py, contracts/mcp-tools.json, docs/reference/mcp-tools.md, docs/reference/task-workflow.md, and this report.

Criterion evidence

Criterion Result Evidence
compact-default pass Shaping and registered-tool tests compare every field, restoring only the three text fields after checking exact markers. Unicode, empty text, missing text, absent verifier and input immutability are covered.
detail-full pass Shaping and registered-tool tests assert equality with the original full output. The database regression compares the full contract with dispatch and full reads.
internal-callers pass Audited all production read callers: MCP uses workflow.read; Bridge uses workflow.read_project; read delegates to read_project. Both read functions and the Bridge route remain unchanged.
contract-docs pass Generated MCP contract and both reference pages describe the optional boolean, default, markers and full view. Export and documentation checks pass.
suite fail Complete sandbox suite: one failure in an unchanged SMTP wall-clock test, 392 passed, 233 skipped. See the timing evidence below.

Executed checks

Test processes used TMPDIR="$PWD/.pytest_cache/tmp", a writable ignored directory. The complete run additionally prefixed PATH with /Applications/Xcode.app/Contents/Developer/usr/bin to avoid Apple's Git launcher cache restrictions. No dependencies were installed.

  • Before implementation: PYTHONPATH=src python -m pytest -q -p no:cacheprovider tests/test_workflow_view.py returned 5 failed in 2.08s. The registered MCP test failed because the default response still contained instruction strings instead of markers.
  • After implementation: PYTHONPATH=src python -m pytest -q -p no:cacheprovider tests/test_workflow_view.py tests/test_workflow_e2e.py tests/test_mcp_runtime_contract.py returned 20 passed, 39 skipped in 1.82s.
  • python scripts/export_mcp_contract.py --check returned exit 0: MCP contract is up to date.
  • python scripts/check_docs_contract.py returned exit 0: documentation contract passed: 30 MCP tools covered.
  • git diff --check returned exit 0.
  • PYTHONPATH=src python -m pytest -q -p no:cacheprovider returned exit 1: 1 failed, 392 passed, 233 skipped in 73.85s.

The failing test is tests/test_server_beat_audit.py::test_R6_02_tcp_connect_gets_only_the_budget_left_after_resolution. Its mocked resolver sleeps for 0.15 seconds within a 0.2-second total deadline. It failed because the connection mock was never reached (assert seen with seen == []). An instrumented synthetic reproduction measured SMTP hostname lookup at 0.011 seconds and the requested 0.15-second sleep at 0.251 seconds; the deadline consequently expired before connection. The isolated unchanged test also failed (1 failed in 1.16s), and an awake-process wrapper (caffeinate -i) did not resolve it (1 failed in 0.74s). No SMTP production code or existing timing tests were modified to broaden this workflow task.

An earlier suite invocation through Apple's Git launcher was interrupted after 158 passed, 31 skipped in 362.80s because Git-fixture commands were slow; it is not counted as a complete suite result.

Verification limits and handoff

HEYAIRA_EXECUTION_E2E_DATABASE_URL is absent locally. The added real MCP/PostgreSQL regression therefore skips as required. It verifies default and explicit compact output, full output, pagination, Bridge full output, internal full reads, and persisted contract/digest preservation. Existing CI runs it through .github/workflows/ci.yml and scripts/test_postgres.py, which supplies the isolated database URL and rejects skipped tests.

Confidence is high in the scoped response change from passing targeted tests, field-by-field assertions and the caller audit. Database execution remains unverified locally, and the required full-suite criterion is not met in this sandbox. Independent verification and resolution of the existing timing failure are required before acceptance. This is a local candidate only; no push, PR, merge, installation, deployment or production mutation was performed.