Commit-count criterion warning: worker evidence¶
Task: 02f32758-63a5-495d-8a3a-bf3eacb82f1b, frozen version 3.
Execution: 94c28aea-8f86-499b-8d44-799f5c763bfd.
Repository: h8v6/heyaira; branch: heyaira/02f32758.
Source and starting HEAD: c4ff760a95b644303595192264970023ada9e684.
Tested implementation HEAD: 05362e108f0c450f3bba18bd68345198b7b7b10c.
The following evidence commit changes only this report; the final result SHA
is recorded in the HeyAira RESULT and receipt. No existing commits were rewritten.
Subagents used: none. Worker: Codex, task model gpt-6.1-sol.
Cause and change¶
Commit-count acceptance criteria conflict with Bridge corrections, which add
commits while preserving candidate history. Configuration now returns one
advisory commit_count_criterion warning per matching criterion, using the
specified compiled case-insensitive regex against description and method.
The response always includes warnings, including an empty list when no
criterion matches. Existing validation, stored criteria and version increments
are unchanged. The tool description, exported MCP contract and getting-started
guidance describe the warning and recommend allowed paths plus ancestry.
Confidence: high for the tested configure behavior and documentation contract.
Environment and reproduction¶
Working directory for candidate checks:
/Users/jablonskib/HeyAira-agents/.heyaira-worktrees/heyaira/02f32758-worker.
Python is the existing provisioned Python 3.12; dependencies were available.
All database runs used the provisioned local PostgreSQL Unix socket via
HEYAIRA_TEST_ADMIN_DATABASE_URL. No database URL or credential is reproduced.
Each test runner creates and drops its own isolated test databases.
MCP requests use the existing ASGIFlow/queue_server, without a TCP listener.
For test commands below, TMPDIR="$PWD/.task-tmp" selected writable temporary
storage inside this worktree. No installations or production mutations occurred.
Git below denotes the provisioned executable at
/Users/jablonskib/Library/Application Support/HeyAira Bridge/task-bin/git.
The system Git launcher initially emitted denied Xcode cache-write warnings;
the provisioned executable worked. The implementation commit succeeded but
automatic Git maintenance reported denied packed-refs.lock/commit-graph
writes outside its allowed scope. These were execution limitations, not test
failures or candidate defects. The evidence commit disables optional automatic
maintenance with -c maintenance.auto=false -c gc.auto=0.
K1: base assertions fail; implementation HEAD passes¶
Prepared an archive of the required base and copied only the new regression file into it (no implementation or documentation changes):
mkdir -p .task-tmp/base
git archive c4ff760a95b644303595192264970023ada9e684 | tar -x -C .task-tmp/base
cp tests/test_commit_count_warnings.py .task-tmp/base/tests/test_commit_count_warnings.py
cmp tests/test_commit_count_warnings.py .task-tmp/base/tests/test_commit_count_warnings.py
Archive/copy/compare exited 0. From the worker directory:
TMPDIR="$PWD/.task-tmp" python .task-tmp/base/scripts/test_postgres.py tests/test_commit_count_warnings.py -p no:cacheprovider
The runner sets its working directory and PYTHONPATH to the base archive.
Exit 1; actual final summary: 7 failed in 4.15s. W1, W2 and W3 each reached:
assert "warnings" in result, "configure must always return warnings"
AssertionError: configure must always return warnings
All four additional parameter cases reached the same assertion. No import, fixture or connection errors and no skips. The base's persisted criteria and version assertions passed before the missing-key assertion. An initial test draft also exited 1 (7 failures in 14.10s), but incorrectly expected the existing task JSON field to be a list. The test now decodes that field; only the subsequent missing-warning failures above establish the regression.
On implementation HEAD 05362e108f0c450f3bba18bd68345198b7b7b10c:
TMPDIR="$PWD/.task-tmp" python scripts/test_postgres.py tests/test_commit_count_warnings.py -p no:cacheprovider
Exit 0:
....... [100%]
7 passed in 3.57s
postgres_acceptance=passed: selected tests, zero skipped tests
W1 checks exactly three warning entries and their complete shape, unchanged
stored/returned criteria and normal version advancement. W2 checks an empty
list; W3 checks the four specified false positives. Additional cases check
method-only matches, case-insensitivity, whitespace/plural variants, the
commit count alternative, and one warning when both fields match.
K2: combined regressions and docs contract¶
On the same implementation HEAD:
TMPDIR="$PWD/.task-tmp" python scripts/test_postgres.py tests/test_commit_count_warnings.py tests/test_docs_contract.py -p no:cacheprovider
Exit 0:
................... [100%]
19 passed in 6.30s
postgres_acceptance=passed: selected tests, zero skipped tests
Pre-commit validation of the same implementation also passed: focused run
7 passed in 4.95s; combined run 19 passed in 8.23s, both exit 0, zero skips.
tests/test_task_execution.py and tests/test_task_execution_review.py were
not run: the frozen task assigns these TCP-dependent suites to CI. No claim
is made about their outcome or independent acceptance.
K3: generated and documentation contracts; whitespace¶
Generation: PYTHONPATH=src python scripts/export_mcp_contract.py exited 0:
wrote contracts/mcp-tools.json. Only the configure tool's description changed
in the generated contract. No docs-reference row change was required by the
documentation checker.
Checks on the implementation HEAD:
PYTHONPATH=src python scripts/export_mcp_contract.py --check
exit 0: MCP contract is up to date
PYTHONPATH=src python scripts/check_docs_contract.py
exit 0: documentation contract passed: 50 MCP tools covered
git diff --check
exit 0: no output
K4: allowed paths and preserved ancestry¶
git diff --name-only c4ff760a95b644303595192264970023ada9e684..HEAD
on the implementation HEAD exited 0:
contracts/mcp-tools.json
docs/getting-started/send-a-task.md
src/heyaira/task_execution.py
tests/test_commit_count_warnings.py
The evidence commit adds only this allowed docs/reports/ file.
git merge-base --is-ancestor c4ff760a95b644303595192264970023ada9e684 HEAD
exited 0 with no output. No migrations, Criterion-model, Bridge, verifier or
workflow changes. No push, pull request, merge or deployment.
Criterion records¶
criterion_id: K1
outcome: pass
evidence_path: docs/reports/commit-count-criterion-02f32758.md
feedback: Base archive regression command exited 1 with all 7 tests failing at the missing-warnings assertion; implementation HEAD command exited 0 with 7 passed, zero skips.
criterion_id: K2
outcome: pass
evidence_path: docs/reports/commit-count-criterion-02f32758.md
feedback: Combined PostgreSQL/docs regression command exited 0 with 19 passed, zero skips. TCP-dependent execution suites remain assigned to CI and were not run.
criterion_id: K3
outcome: pass
evidence_path: docs/reports/commit-count-criterion-02f32758.md
feedback: MCP export check, docs contract check and git diff --check all exited 0.
criterion_id: K4
outcome: pass
evidence_path: docs/reports/commit-count-criterion-02f32758.md
feedback: Changed paths are within the frozen allowlist; the source commit is an ancestor; no migrations.
Required-check blockers: none. Next actor: Bridge's independent verifier; publication and CI remain Bridge's responsibility.