Skip to content

Red run — the tests that motivate the change (issue-273)

Captured with the production change (cli/the_loop/graphlink.py) stashed and the test changes in place, so every failure below is the reported bug rather than a missing symbol.

Command

console
$ git stash push cli/the_loop/graphlink.py
$ uv run pytest -q -p no:randomly \
    cli/tests/test_graphlink.py cli/tests/test_graph_drive.py \
    cli/tests/test_graphlink_integration.py \
    cli/tests/test_harness_config_scaffold_integration.py

Output

text
=========================== short test summary info ============================
FAILED cli/tests/test_graphlink.py::test_a_work_item_with_no_spec_directory_is_still_started
FAILED cli/tests/test_graphlink.py::test_the_gate_reads_the_same_directory_the_runtime_will
FAILED cli/tests/test_graphlink.py::test_a_start_with_no_spec_directory_records_no_skip
FAILED cli/tests/test_graph_drive.py::test_a_fresh_item_reports_the_node_it_is_about_to_stand_on
FAILED cli/tests/test_graphlink_integration.py::test_a_ticket_with_no_spec_folder_is_still_held_at_phase_selection
FAILED cli/tests/test_graphlink_integration.py::test_the_gate_still_waits_for_an_authorized_human
FAILED cli/tests/test_graphlink_integration.py::test_the_spawn_prompt_of_an_unplaced_work_item_forbids_starting_a_phase
FAILED cli/tests/test_harness_config_scaffold_integration.py::test_a_repository_is_adopted_even_when_its_graph_is_skipped
8 failed, 79 passed in 18.44s

What each failure says

TestPre-fix assertion failureRequirement
…_is_still_startedruntime.started == [] — the coupling declined to start the graphR1.1
test_the_gate_reads_the_same_directory_the_runtime_willruntime.built == [] after the spawn — the exempt action never got as far as building a runtimeR1.5
…_records_no_skiptwo graph.skipped records (context, start), reason no-spec-dir — the bug's exact signature from the ticketR1.1
…_reports_the_node_it_is_about_to_stand_oncontext(...) returned NoneR2.1
…_is_still_held_at_phase_selectionGraphState.current_node was "" — no graph, no loop:phase-selection label, no checklistR1.1, R1.2
test_the_gate_still_waits_for_an_authorized_humansame: there was no graph for the unauthorized comment to fail to moveR1.3
…_forbids_starting_a_phasethe context was None, so render_graph_context produced the empty block the auto-execute prompt shipped withR2.1, R2.2
test_a_repository_is_adopted_even_when_its_graph_is_skippedno graph-state.json — adoption happened, the graph did notR1.1, R1.2

The one new test that passes before the fix is deliberate: test_a_graph_that_has_started_reports_its_real_node is the control for R2.3 — pending must never mask a work item in flight — so it is green on both sides of the change.

Released under the MIT License.