Skip to content

fix: add requirements.txt with msgpack>=1.1.0, enable test runner, fix CONTRIBUTING.md#37

Closed
Copilot wants to merge 1 commit into
mainfrom
copilot/update-messagepack-version
Closed

fix: add requirements.txt with msgpack>=1.1.0, enable test runner, fix CONTRIBUTING.md#37
Copilot wants to merge 1 commit into
mainfrom
copilot/update-messagepack-version

Conversation

Copilot AI commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

The project had no dependency file and both validate scripts were exit 0 stubs — tests were never actually running. A C# term in CONTRIBUTING.md was also causing a latent test failure.

Changes

  • requirements.txt (new) — pins msgpack>=1.1.0 (security fix) and pytest>=7.4
  • scripts/validate-build.shpip install -r requirements.txt instead of exit 0
  • scripts/validate-tests.sh — runs pytest plugins/dev-team/scripts/ instead of exit 0
  • CONTRIBUTING.md — removes TaskCompletionSource (C#-specific term that tripped test_contributing_md_has_no_csharp_patterns)

Copilot AI changed the title fix: update msgpack to >=1.1.0 and enable tests fix: add requirements.txt with msgpack>=1.1.0, enable test runner, fix CONTRIBUTING.md Jun 12, 2026
Copilot AI requested a review from jodavis June 12, 2026 23:19
@github-actions

Copy link
Copy Markdown

build-and-test: Python test results

Status: ✅ Passed

Test log
============================= test session starts ==============================
platform linux -- Python 3.12.3, pytest-9.0.3, pluggy-1.6.0 -- /usr/bin/python
cachedir: .pytest_cache
rootdir: /home/runner/work/agent-plugins/agent-plugins
collecting ... collected 89 items

plugins/dev-team/scripts/test_contributing_md.py::TestContributingMd::test_contributing_md_exists PASSED [  1%]
plugins/dev-team/scripts/test_contributing_md.py::TestContributingMd::test_contributing_md_has_required_sections PASSED [  2%]
plugins/dev-team/scripts/test_contributing_md.py::TestContributingMd::test_contributing_md_has_no_csharp_patterns PASSED [  3%]
plugins/dev-team/scripts/test_dev_team.py::TestExitWithActions::test_exits_with_code_0 PASSED [  4%]
plugins/dev-team/scripts/test_dev_team.py::TestExitWithActions::test_emits_json_array_on_stdout PASSED [  5%]
plugins/dev-team/scripts/test_dev_team.py::TestExitWithActions::test_single_item_wrapped_in_array PASSED [  6%]
plugins/dev-team/scripts/test_dev_team.py::TestExitWithActions::test_serializes_nested_list_fields PASSED [  7%]
plugins/dev-team/scripts/test_dev_team.py::TestExitWithActions::test_nothing_on_stderr PASSED [  8%]
plugins/dev-team/scripts/test_dev_team.py::TestExitWithActions::test_empty_list_is_valid PASSED [ 10%]
plugins/dev-team/scripts/test_dev_team.py::TestExitWithActions::test_multiple_items_preserved_in_order PASSED [ 11%]
plugins/dev-team/scripts/test_dev_team.py::TestComputeContextPath::test_uses_home_dev_team_by_default PASSED [ 12%]
plugins/dev-team/scripts/test_dev_team.py::TestComputeContextPath::test_uses_dev_team_state_dir_when_set PASSED [ 13%]
plugins/dev-team/scripts/test_dev_team.py::TestComputeContextPath::test_work_item_id_becomes_filename PASSED [ 14%]
plugins/dev-team/scripts/test_dev_team.py::TestComputeContextPath::test_repo_slug_becomes_subdirectory PASSED [ 15%]
plugins/dev-team/scripts/test_dev_team.py::TestComputeContextPath::test_hyphenated_repo_slug PASSED [ 16%]
plugins/dev-team/scripts/test_dev_team.py::TestSignoffCycleCount::test_starts_at_zero PASSED [ 17%]
plugins/dev-team/scripts/test_dev_team.py::TestSignoffCycleCount::test_increments_on_signoff_changes_requested PASSED [ 19%]
plugins/dev-team/scripts/test_dev_team.py::TestSignoffCycleCount::test_accumulates_across_multiple_cycles PASSED [ 20%]
plugins/dev-team/scripts/test_dev_team.py::TestSignoffCycleCount::test_resets_to_zero_on_signoff_approved PASSED [ 21%]
plugins/dev-team/scripts/test_dev_team.py::TestSignoffCycleCount::test_not_affected_by_reviewing_step PASSED [ 22%]
plugins/dev-team/scripts/test_dev_team.py::TestSignoffCycleCount::test_roundtrip_through_save_load PASSED [ 23%]
plugins/dev-team/scripts/test_dev_team.py::TestReviewCycleCount::test_starts_at_zero PASSED [ 24%]
plugins/dev-team/scripts/test_dev_team.py::TestReviewCycleCount::test_increments_on_reviewing_step_changes_requested PASSED [ 25%]
plugins/dev-team/scripts/test_dev_team.py::TestReviewCycleCount::test_increments_on_reviewing_step_approved PASSED [ 26%]
plugins/dev-team/scripts/test_dev_team.py::TestReviewCycleCount::test_resets_to_zero_on_signoff_approved PASSED [ 28%]
plugins/dev-team/scripts/test_dev_team.py::TestReviewCycleCount::test_not_affected_by_signoff_changes_requested PASSED [ 29%]
plugins/dev-team/scripts/test_dev_team.py::TestReviewCycleCount::test_roundtrip_through_save_load PASSED [ 30%]
plugins/dev-team/scripts/test_dev_team.py::TestConsecutiveFailures::test_starts_at_zero PASSED [ 31%]
plugins/dev-team/scripts/test_dev_team.py::TestConsecutiveFailures::test_increments_on_agent_failure PASSED [ 32%]
plugins/dev-team/scripts/test_dev_team.py::TestConsecutiveFailures::test_accumulates_across_multiple_failures PASSED [ 33%]
plugins/dev-team/scripts/test_dev_team.py::TestConsecutiveFailures::test_resets_to_zero_on_agent_success PASSED [ 34%]
plugins/dev-team/scripts/test_dev_team.py::TestConsecutiveFailures::test_reset_does_not_require_prior_failure PASSED [ 35%]
plugins/dev-team/scripts/test_dev_team.py::TestConsecutiveFailures::test_roundtrip_through_save_load PASSED [ 37%]
plugins/dev-team/scripts/test_dev_team.py::TestTroubleshooterInput::test_defaults_to_empty_string PASSED [ 38%]
plugins/dev-team/scripts/test_dev_team.py::TestTroubleshooterInput::test_roundtrip_through_save_load PASSED [ 39%]
plugins/dev-team/scripts/test_dev_team.py::TestTroubleshooterInput::test_empty_string_roundtrip PASSED [ 40%]
plugins/dev-team/scripts/test_dev_team.py::TestParseApprovalStatus::test_approved_json_returns_approved PASSED [ 41%]
plugins/dev-team/scripts/test_dev_team.py::TestParseApprovalStatus::test_changes_requested_json_returns_changes_requested PASSED [ 42%]
plugins/dev-team/scripts/test_dev_team.py::TestParseApprovalStatus::test_bare_approved_word_returns_approved PASSED [ 43%]
plugins/dev-team/scripts/test_dev_team.py::TestParseApprovalStatus::test_both_words_present_returns_changes_requested PASSED [ 44%]
plugins/dev-team/scripts/test_dev_team.py::TestParseApprovalStatus::test_unrecognised_content_defaults_to_changes_requested PASSED [ 46%]
plugins/dev-team/scripts/test_dev_team.py::TestParseApprovalStatus::test_json_with_pr_url_approved PASSED [ 47%]
plugins/dev-team/scripts/test_dev_team.py::TestResearcherValidated::test_validated_json_object_returns_true PASSED [ 48%]
plugins/dev-team/scripts/test_dev_team.py::TestResearcherValidated::test_failed_json_object_returns_false PASSED [ 49%]
plugins/dev-team/scripts/test_dev_team.py::TestResearcherValidated::test_validated_with_criteria_array_returns_true PASSED [ 50%]
plugins/dev-team/scripts/test_dev_team.py::TestResearcherValidated::test_failed_with_criteria_array_returns_false PASSED [ 51%]
plugins/dev-team/scripts/test_dev_team.py::TestResearcherValidated::test_validated_embedded_in_prose_returns_true PASSED [ 52%]
plugins/dev-team/scripts/test_dev_team.py::TestResearcherValidated::test_failed_embedded_in_prose_returns_false PASSED [ 53%]
plugins/dev-team/scripts/test_dev_team.py::TestResearcherValidated::test_unrecognised_content_returns_false PASSED [ 55%]
plugins/dev-team/scripts/test_dev_team.py::TestResearcherValidated::test_empty_string_returns_false PASSED [ 56%]
plugins/dev-team/scripts/test_dev_team.py::TestPrintContextPath::test_prints_path_and_exits_zero PASSED [ 57%]
plugins/dev-team/scripts/test_dev_team.py::TestPrintContextPath::test_uses_state_dir_env PASSED [ 58%]
plugins/dev-team/scripts/test_dev_team.py::TestPrintContextPath::test_nothing_on_stderr PASSED [ 59%]
plugins/dev-team/scripts/test_dev_team.py::TestExitWithActionsParallel::test_flat_array_with_spawn_and_run_script_items PASSED [ 60%]
plugins/dev-team/scripts/test_dev_team.py::TestExitWithActionsParallel::test_reviewer_item_in_flat_array PASSED [ 61%]
plugins/dev-team/scripts/test_dev_team.py::TestExitWithActionsParallel::test_run_script_item_has_correct_fields PASSED [ 62%]
plugins/dev-team/scripts/test_dev_team.py::TestExitWithActionsMessage::test_message_field_in_item_is_serialized PASSED [ 64%]
plugins/dev-team/scripts/test_dev_team.py::TestExitWithActionsMessage::test_item_without_message_still_valid PASSED [ 65%]
plugins/dev-team/scripts/test_dev_team.py::TestSignoffBuildResult::test_defaults_to_empty_string PASSED [ 66%]
plugins/dev-team/scripts/test_dev_team.py::TestSignoffBuildResult::test_roundtrip_through_save_load PASSED [ 67%]
plugins/dev-team/scripts/test_dev_team.py::TestSignoffBuildResult::test_failed_result_roundtrip PASSED [ 68%]
plugins/dev-team/scripts/test_dev_team.py::TestSignoffBuildResult::test_passed_with_log_path_is_recognized PASSED [ 69%]
plugins/dev-team/scripts/test_dev_team.py::TestSignoffBuildResult::test_failed_with_log_path_is_not_passed PASSED [ 70%]
plugins/dev-team/scripts/test_dev_team.py::TestSignoffBuildResult::test_empty_string_roundtrip PASSED [ 71%]
plugins/dev-team/scripts/test_dev_team.py::TestSignoffBuildResult::test_reset_alongside_signoff_sections PASSED [ 73%]
plugins/dev-team/scripts/test_dev_team.py::TestReviewStepPrUrlExtraction::test_pr_url_saved_to_frontmatter_after_extraction PASSED [ 74%]
plugins/dev-team/scripts/test_dev_team.py::TestReviewStepPrUrlExtraction::test_load_does_not_fallback_to_pr_url_section PASSED [ 75%]
plugins/dev-team/scripts/test_dev_team.py::TestReviewStepPrUrlExtraction::test_pr_url_in_frontmatter_is_loaded PASSED [ 76%]
plugins/dev-team/scripts/test_dev_team.py::TestGetFailingPrChecks::test_returns_empty_when_gh_not_found PASSED [ 77%]
plugins/dev-team/scripts/test_dev_team.py::TestGetFailingPrChecks::test_returns_empty_on_timeout PASSED [ 78%]
plugins/dev-team/scripts/test_dev_team.py::TestGetFailingPrChecks::test_returns_failing_lines_when_present PASSED [ 79%]
plugins/dev-team/scripts/test_dev_team.py::TestGetFailingPrChecks::test_returns_empty_when_all_pass PASSED [ 80%]
plugins/dev-team/scripts/test_dev_team.py::TestGetContextPathShSlugExtraction::test_slug_in_output_path[https://github.com/org/repo.git-org/repo] PASSED [ 82%]
plugins/dev-team/scripts/test_dev_team.py::TestGetContextPathShSlugExtraction::test_slug_in_output_path[https://github.com/org/repo-org/repo] PASSED [ 83%]
plugins/dev-team/scripts/test_dev_team.py::TestGetContextPathShSlugExtraction::test_slug_in_output_path[git@github.com:org/repo.git-org/repo] PASSED [ 84%]
plugins/dev-team/scripts/test_dev_team.py::TestGetContextPathShSlugExtraction::test_slug_in_output_path[git@github.com:org/repo-org/repo] PASSED [ 85%]
plugins/dev-team/scripts/test_dev_team.py::TestGetContextPathShSlugExtraction::test_slug_in_output_path[https://github.com/acme-corp/cool-service.git-acme-corp/cool-service] PASSED [ 86%]
plugins/dev-team/scripts/test_dev_team.py::TestGetContextPathShSlugExtraction::test_exits_zero[https://github.com/org/repo.git-org/repo] PASSED [ 87%]
plugins/dev-team/scripts/test_dev_team.py::TestGetContextPathShSlugExtraction::test_exits_zero[https://github.com/org/repo-org/repo] PASSED [ 88%]
plugins/dev-team/scripts/test_dev_team.py::TestGetContextPathShSlugExtraction::test_exits_zero[git@github.com:org/repo.git-org/repo] PASSED [ 89%]
plugins/dev-team/scripts/test_dev_team.py::TestGetContextPathShSlugExtraction::test_exits_zero[git@github.com:org/repo-org/repo] PASSED [ 91%]
plugins/dev-team/scripts/test_dev_team.py::TestGetContextPathShSlugExtraction::test_exits_zero[https://github.com/acme-corp/cool-service.git-acme-corp/cool-service] PASSED [ 92%]
plugins/dev-team/scripts/test_dev_team.py::TestGetContextPathShSlugExtraction::test_nothing_on_stderr[https://github.com/org/repo.git-org/repo] PASSED [ 93%]
plugins/dev-team/scripts/test_dev_team.py::TestGetContextPathShSlugExtraction::test_nothing_on_stderr[https://github.com/org/repo-org/repo] PASSED [ 94%]
plugins/dev-team/scripts/test_dev_team.py::TestGetContextPathShSlugExtraction::test_nothing_on_stderr[git@github.com:org/repo.git-org/repo] PASSED [ 95%]
plugins/dev-team/scripts/test_dev_team.py::TestGetContextPathShSlugExtraction::test_nothing_on_stderr[git@github.com:org/repo-org/repo] PASSED [ 96%]
plugins/dev-team/scripts/test_dev_team.py::TestGetContextPathShSlugExtraction::test_nothing_on_stderr[https://github.com/acme-corp/cool-service.git-acme-corp/cool-service] PASSED [ 97%]
plugins/dev-team/scripts/test_dev_team.py::TestGetContextPathShErrorHandling::test_exits_nonzero_when_git_fails PASSED [ 98%]
plugins/dev-team/scripts/test_dev_team.py::TestGetContextPathShErrorHandling::test_exits_nonzero_when_no_work_item_id PASSED [100%]

============================== 89 passed in 1.90s ==============================

@jodavis

jodavis commented Jun 13, 2026

Copy link
Copy Markdown
Owner

This isn't actually necessary.

@jodavis jodavis closed this Jun 13, 2026
@jodavis jodavis deleted the copilot/update-messagepack-version branch June 13, 2026 14:30
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.

2 participants