
=== final-qualification.json ===
{
  "candidate": {
    "candidate_digest": "6ab2a5291b1cfbdbe26805973b099a022abb719b26d060b59980bb16deb3b37f",
    "evidence_inventory_entries": 35,
    "hermes_wheel_sha256": "f00d8a826abe55e0b16545bc5c7a4bf251e03930feae373eaf864705f71fd946",
    "manifest_sha256": "0fe68684d89f04022dc0c4c96094c1f46059a83072cf59e779d16917f4cd687c",
    "path": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-candidate",
    "physical_inventory_entries": 346,
    "profile_wheel_sha256": "18adebc0c21c12a552d09748f9b35b6087f82584e585ef9d82bacc1a85d70b60",
    "qualification_sha256": "bd7e525d95f156b87085c7c6e2b6426069476aeebd96c79fdb89568c3315c0ff",
    "regular_files": 347,
    "source_inventory_entries": 274,
    "source_tree_digest": "5702809555d32d8c45262bce297273fbf4dbdc8eb8782bddf0ade15c4e2ad73e",
    "symlinks": 0,
    "unknown_files": 0,
    "writable_files": 0
  },
  "evidence": {
    "gateway_collection_sha256": "4f60f84e246df73fa5659113337704746484b79a92457bd670d1dc183cda963f",
    "gateway_execution_sha256": "4a55c88e882f934935a01a0b2d8323f843ffbc435935f8feea12170d6cc33f2a",
    "tamper_sha256": "7b2b9d7983974fd40390d67b852507ac247678b9b2b1356f1352bf64e1a5b61e",
    "todo11_stress_sha256": "68947edac0439a92e9682ddbedc4550c48f6415029d990ec2aacc011fe7f4121"
  },
  "loc": {
    "baseline_pure_loc": 21394,
    "candidate_pure_loc": 21393,
    "delta": -1,
    "legacy_pure_loc_increases": 0,
    "member": "gateway/platforms/nutrition_coaching.py",
    "new_modules_over_250": 0,
    "source": "exact Task1 baseline and candidate Hermes wheel member bytes"
  },
  "must_not": {
    "git_stage_commit_tag_push": 0,
    "live_provider_customer_service_actions": 0,
    "network_publish_deploy_install": 0,
    "todo13_actions": 0
  },
  "no_excuse": {
    "arithmetic": "1628 = 1651 + 0 - 23",
    "baseline_files": 12,
    "baseline_violations": 1651,
    "candidate_files": 113,
    "candidate_violations": 1628,
    "new_violations": 0,
    "receipt_sha256": "27ab4c0e1741a6dcd49bdcf04c3112a7881aacdeb5fcfc12cbf0bcb449a81e27",
    "resolved_inherited_violations": 23,
    "scope": "exact changed-member Python union from Task1 baseline and candidate wheels"
  },
  "operational_gates": {
    "default_off": "PASS_2",
    "exact_verifier": "NUTRICOACH_V140_CANDIDATE_PASS",
    "installed_e2e": "DISPOSABLE_WEEKLY_OPERATIONS_PASS",
    "installed_golden": "NUTRICOACH_V140_GOLDEN_PATH_VERIFY_PASS",
    "loc_receipt_tamper_rejected": true,
    "migration": "MIGRATION_ROLLBACK_INDEPENDENT_PASS",
    "no_excuse_receipt_tamper_rejected": true,
    "physical_tamper_rejected": true,
    "reproducible_hermes": true,
    "reproducible_profile": true,
    "rollback": "BYTE_IDENTICAL_PASS",
    "source_e2e": "DISPOSABLE_WEEKLY_OPERATIONS_PASS",
    "source_golden": "NUTRICOACH_V140_GOLDEN_PATH_VERIFY_PASS",
    "tamper_classes_rejected": "12/12"
  },
  "schema": "nutricoach-v140-task12-r8-final-qualification-v1",
  "static": {
    "analyzed_python_paths": 271,
    "basedpyright_added_new_changed": 0,
    "compileall": "PASS_ISOLATED",
    "lsp": "PASS",
    "new_suppressions": 0,
    "receipt_sha256": "8cc3122680ad87548d3551ee5e0ee38da1b11ebee96498be48bd2a788d599d3b",
    "ruff": "PASS",
    "ty_added_new_changed": 0
  },
  "status": "QUALIFIED_PENDING_LIVE_AUTHORIZATION",
  "supersedes": {
    "candidate_digest": "2ee7a460fb7a67d624f0ca8a947e7b317b748c3c14cc334ea7e7ee10f821ac08",
    "preserved_path": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-candidate-rejected-2ee7",
    "status": "REJECTED_NOT_QUALIFIED_INDEPENDENT_FINDINGS"
  },
  "tests": {
    "affected_total": 165,
    "candidate_and_golden_focused": 5,
    "gateway_baseline_matched_real_failure_files": 11,
    "gateway_candidate_only_failures": 0,
    "gateway_collection_skips": 2,
    "gateway_executed_exactly_once": true,
    "gateway_nodeids": 7751,
    "gateway_short_basetemp": "/tmp/nc8-<sha256-prefix>",
    "gateway_summary_count": 7751,
    "gateway_unclassified_failures": 0,
    "golden": 10,
    "golden_row_state_semantic_tamper": "PASS",
    "profile": 1040,
    "todo11_stress": "12/12 passed",
    "verifier_unit": 5
  }
}

=== static-delta.json ===
{
  "analyzed_python_paths": 271,
  "basedpyright_added_new_changed": 0,
  "basedpyright_output_sha256": "f5d2cdeb4364bece42badf098dacfbb0d7a504896e53106c9e82be1f51331a90",
  "baseline_no_excuse_violations": 1651,
  "candidate_no_excuse_violations": 1628,
  "compileall": "PASS_ISOLATED",
  "loc": {
    "baseline_nutrition_coaching_pure_loc": 21394,
    "legacy_pure_loc_increases": 0,
    "measurement": "nonblank noncomment physical Python lines from exact wheel member bytes",
    "new_module_over_250": 0,
    "nutrition_coaching_delta": -1,
    "nutrition_coaching_member": "gateway/platforms/nutrition_coaching.py",
    "nutrition_coaching_pure_loc": 21393
  },
  "lsp": "ZERO_PRODUCT_DIAGNOSTICS",
  "new_no_excuse_violations": 0,
  "new_suppressions": 0,
  "no_excuse_arithmetic": "1628 = 1651 + 0 - 23",
  "rejected_predecessor": "2ee7a460fb7a67d624f0ca8a947e7b317b748c3c14cc334ea7e7ee10f821ac08",
  "resolved_no_excuse_violations": 23,
  "ruff": "PASS",
  "schema": "nutricoach-v140-task12-r8-static-delta-v1",
  "status": "PASS",
  "ty_added_new_changed": 0,
  "ty_output_sha256": "b5004c41c4854f80a4b324df098b040e7e02d85a305dde63ca51e6ab1a930417"
}

=== no-excuse-delta.json ===
{
  "arithmetic": "1628 = 1651 + 0 - 23",
  "baseline_files": 12,
  "baseline_log_sha256": "b4827b84462f3a7c1883f86048f92e99b3bc9a3c99dc3467d85ed0126dab0cc5",
  "baseline_no_excuse_violations": 1651,
  "candidate_files": 113,
  "candidate_log_sha256": "bd1c741f9aca643e68acf6ee362d28e9d628edd1e17215cba558488f315f197c",
  "candidate_no_excuse_violations": 1628,
  "new_no_excuse_violations": 0,
  "resolved_no_excuse_violations": 23,
  "schema": "nutricoach-v140-task12-r8-no-excuse-delta-v1",
  "scope": "Python members in the exact Hermes/profile changed-member union between Task1 baseline wheels and the candidate wheels",
  "status": "PASS",
  "tool": "/projects/richard/omo-native-pirate/packages/shared-skills/skills/programming/scripts/python/check-no-excuse-rules.py"
}

=== tamper-matrix.json ===
{
  "candidate_digest": "6ab2a5291b1cfbdbe26805973b099a022abb719b26d060b59980bb16deb3b37f",
  "classes": [
    {
      "attack": "unknown_file",
      "rejected": true,
      "returncode": 1
    },
    {
      "attack": "source_byte",
      "rejected": true,
      "returncode": 1
    },
    {
      "attack": "evidence_byte",
      "rejected": true,
      "returncode": 1
    },
    {
      "attack": "config_byte",
      "rejected": true,
      "returncode": 1
    },
    {
      "attack": "policy_byte",
      "rejected": true,
      "returncode": 1
    },
    {
      "attack": "wheel_byte",
      "rejected": true,
      "returncode": 1
    },
    {
      "attack": "installed_byte",
      "rejected": true,
      "returncode": 1
    },
    {
      "attack": "qualification_status",
      "rejected": true,
      "returncode": 1
    },
    {
      "attack": "manifest_allowlist",
      "rejected": true,
      "returncode": 1
    },
    {
      "attack": "loc_receipt",
      "rejected": true,
      "returncode": 1
    },
    {
      "attack": "no_excuse_receipt",
      "rejected": true,
      "returncode": 1
    },
    {
      "attack": "physical_mode",
      "rejected": true,
      "returncode": 1
    }
  ],
  "schema": "nutricoach-v140-r8-tamper-matrix-v1",
  "status": "PASS"
}

=== migration-rollback-independent.json ===
{
  "apply": {
    "authority_files_added": [
      "weekly-operations-authority/30c88b9d6807ace54b4f11287ee668a44206f03f12df4dd6f42f82b58cf410ab.day-status-v1.lock",
      "weekly-operations-authority/authority-v1.json",
      "weekly-operations-authority/canonical-authorities-v1.jsonl"
    ],
    "authority_initialized": true,
    "canonical_unchanged": true,
    "legacy_unchanged": true,
    "sidecar_rows_backfilled": 0
  },
  "dry_run": {
    "canonical_sha256": "9b3644d22a74110f76aa29ef379b597eba2e725c4d06a54ee087c76ea6b3c74c",
    "legacy_migration_required": "weekly operations failed: migration_required",
    "legacy_sha256": "2e1dbb83f3a3e63b3f5798e4f042450cfd1191eaf0971f6224c7c48cf432df1f",
    "tree_unchanged": true
  },
  "rollback": {
    "authority_removed": true,
    "canonical_sha256": "9b3644d22a74110f76aa29ef379b597eba2e725c4d06a54ee087c76ea6b3c74c",
    "legacy_sha256": "2e1dbb83f3a3e63b3f5798e4f042450cfd1191eaf0971f6224c7c48cf432df1f",
    "tree_restored_byte_identically": true
  },
  "schema": "nutricoach-v140-task12-independent-migration-rollback-v1"
}

=== todo11-stress.json ===
{
  "passed": 12,
  "processes": [
    {
      "passed": true,
      "process": 0,
      "returncode": 0,
      "stdout_sha256": "7eb035525f8216b1795d4bc994d889a2d360cdf7b35e17d88931fecfb8bbb9c5"
    },
    {
      "passed": true,
      "process": 1,
      "returncode": 0,
      "stdout_sha256": "7eb035525f8216b1795d4bc994d889a2d360cdf7b35e17d88931fecfb8bbb9c5"
    },
    {
      "passed": true,
      "process": 2,
      "returncode": 0,
      "stdout_sha256": "7eb035525f8216b1795d4bc994d889a2d360cdf7b35e17d88931fecfb8bbb9c5"
    },
    {
      "passed": true,
      "process": 3,
      "returncode": 0,
      "stdout_sha256": "7eb035525f8216b1795d4bc994d889a2d360cdf7b35e17d88931fecfb8bbb9c5"
    },
    {
      "passed": true,
      "process": 4,
      "returncode": 0,
      "stdout_sha256": "7eb035525f8216b1795d4bc994d889a2d360cdf7b35e17d88931fecfb8bbb9c5"
    },
    {
      "passed": true,
      "process": 5,
      "returncode": 0,
      "stdout_sha256": "7eb035525f8216b1795d4bc994d889a2d360cdf7b35e17d88931fecfb8bbb9c5"
    },
    {
      "passed": true,
      "process": 6,
      "returncode": 0,
      "stdout_sha256": "7eb035525f8216b1795d4bc994d889a2d360cdf7b35e17d88931fecfb8bbb9c5"
    },
    {
      "passed": true,
      "process": 7,
      "returncode": 0,
      "stdout_sha256": "7eb035525f8216b1795d4bc994d889a2d360cdf7b35e17d88931fecfb8bbb9c5"
    },
    {
      "passed": true,
      "process": 8,
      "returncode": 0,
      "stdout_sha256": "7eb035525f8216b1795d4bc994d889a2d360cdf7b35e17d88931fecfb8bbb9c5"
    },
    {
      "passed": true,
      "process": 9,
      "returncode": 0,
      "stdout_sha256": "7eb035525f8216b1795d4bc994d889a2d360cdf7b35e17d88931fecfb8bbb9c5"
    },
    {
      "passed": true,
      "process": 10,
      "returncode": 0,
      "stdout_sha256": "7eb035525f8216b1795d4bc994d889a2d360cdf7b35e17d88931fecfb8bbb9c5"
    },
    {
      "passed": true,
      "process": 11,
      "returncode": 0,
      "stdout_sha256": "7eb035525f8216b1795d4bc994d889a2d360cdf7b35e17d88931fecfb8bbb9c5"
    }
  ],
  "schema": "nutricoach-v140-r8-todo11-stress-v1",
  "status": "PASS",
  "total": 12
}

=== broad-gateway-nodeids-isolated.json ===
{
  "collection_failures": [],
  "collection_skips": [
    "tests/gateway/test_discord_voice_mixer.py",
    "tests/gateway/test_matrix_voice.py"
  ],
  "file_count": 363,
  "files": [
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0000",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_35809_auto_reset_clean_context.py"
      ],
      "nodeids": [
        "tests/gateway/test_35809_auto_reset_clean_context.py::TestAutoResetBlockReSyncsBinding::test_reset_session_return_is_captured",
        "tests/gateway/test_35809_auto_reset_clean_context.py::TestAutoResetBlockReSyncsBinding::test_topic_binding_is_resynced_after_reset",
        "tests/gateway/test_35809_auto_reset_clean_context.py::TestAutoResetLoadsCleanContext::test_next_turn_transcript_is_empty_after_auto_reset",
        "tests/gateway/test_35809_auto_reset_clean_context.py::TestAutoResetLoadsCleanContext::test_clean_context_survives_gateway_restart"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0000-test_35809_auto_reset_clean_context.py.log",
      "output_sha256": "b96b9098132a0cc755cc406cdcca428dd2cbc147dd2faaf9c0d1541c6700d4df",
      "returncode": 0,
      "test_file": "tests/gateway/test_35809_auto_reset_clean_context.py",
      "test_file_sha256": "7c2d2e9311b619dd56566621b01aa722a71b6081d14087a87f9c1be63c404198"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0001",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_42039_duplicate_user_message.py"
      ],
      "nodeids": [
        "tests/gateway/test_42039_duplicate_user_message.py::test_agent_failed_early_skip_db_when_agent_has_session_db",
        "tests/gateway/test_42039_duplicate_user_message.py::test_agent_failed_early_no_skip_db_when_no_session_db",
        "tests/gateway/test_42039_duplicate_user_message.py::test_not_new_messages_skip_db_when_agent_has_session_db",
        "tests/gateway/test_42039_duplicate_user_message.py::test_normal_path_skip_db_when_agent_has_session_db"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0001-test_42039_duplicate_user_message.py.log",
      "output_sha256": "16fbc2ec00b7157e0e11be1d1840b58ae9685b6d13797b6e51a2844180244dae",
      "returncode": 0,
      "test_file": "tests/gateway/test_42039_duplicate_user_message.py",
      "test_file_sha256": "c0a1d3a5da9b2346b9c294e52893d14e69fc59a480c4e0f3120f048aee2b122a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0002",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_7100_transient_failure_transcript.py"
      ],
      "nodeids": [
        "tests/gateway/test_7100_transient_failure_transcript.py::TestContextOverflowStillSkipsTranscript::test_compression_exhausted_is_context_overflow",
        "tests/gateway/test_7100_transient_failure_transcript.py::TestContextOverflowStillSkipsTranscript::test_explicit_context_length_error_is_context_overflow",
        "tests/gateway/test_7100_transient_failure_transcript.py::TestContextOverflowStillSkipsTranscript::test_generic_400_on_large_session_is_context_overflow",
        "tests/gateway/test_7100_transient_failure_transcript.py::TestTransientFailureKeepsUserMessage::test_rate_limit_429_is_not_context_overflow",
        "tests/gateway/test_7100_transient_failure_transcript.py::TestTransientFailureKeepsUserMessage::test_read_timeout_is_not_context_overflow",
        "tests/gateway/test_7100_transient_failure_transcript.py::TestTransientFailureKeepsUserMessage::test_connection_reset_is_not_context_overflow",
        "tests/gateway/test_7100_transient_failure_transcript.py::TestTransientFailureKeepsUserMessage::test_provider_500_is_not_context_overflow",
        "tests/gateway/test_7100_transient_failure_transcript.py::TestTransientFailureKeepsUserMessage::test_generic_400_on_short_session_is_not_context_overflow",
        "tests/gateway/test_7100_transient_failure_transcript.py::TestSuccessfulResultUnaffected::test_successful_result_neither_failed_nor_overflow"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0002-test_7100_transient_failure_transcript.py.log",
      "output_sha256": "13132a17dc136150ef7ce4b28551d04a8665638b8145a6cc8efa907c207d9f35",
      "returncode": 0,
      "test_file": "tests/gateway/test_7100_transient_failure_transcript.py",
      "test_file_sha256": "312aac63a1d00508ccc8a40cd7fa1bbdc42933ffdbdb4c611cd296c2356e62e5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0003",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_active_session_text_merge.py"
      ],
      "nodeids": [
        "tests/gateway/test_active_session_text_merge.py::test_rapid_text_followups_accumulate_instead_of_replacing",
        "tests/gateway/test_active_session_text_merge.py::test_debounce_buffers_rapid_text_then_flushes_to_pending",
        "tests/gateway/test_active_session_text_merge.py::test_debounce_resets_timer_on_new_arrival",
        "tests/gateway/test_active_session_text_merge.py::test_active_drain_force_flushes_debounce_before_release",
        "tests/gateway/test_active_session_text_merge.py::test_force_flush_cancels_timer_without_duplicate_processing",
        "tests/gateway/test_active_session_text_merge.py::test_text_debounce_does_not_merge_different_senders",
        "tests/gateway/test_active_session_text_merge.py::test_control_and_clarify_messages_bypass_text_debounce",
        "tests/gateway/test_active_session_text_merge.py::test_debounce_skipped_when_busy_text_mode_not_queue",
        "tests/gateway/test_active_session_text_merge.py::test_debounce_respects_env_var_override",
        "tests/gateway/test_active_session_text_merge.py::test_debounce_cleanup_in_cancel_background_tasks",
        "tests/gateway/test_active_session_text_merge.py::test_single_followup_is_stored_as_is",
        "tests/gateway/test_active_session_text_merge.py::test_adapter_defaults_to_interrupt_mode",
        "tests/gateway/test_active_session_text_merge.py::test_adapter_is_queue_text_debounce_candidate_when_queue_set",
        "tests/gateway/test_active_session_text_merge.py::test_command_messages_bypass_debounce_even_in_queue_mode",
        "tests/gateway/test_active_session_text_merge.py::test_busy_text_mode_respects_env_var_override"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0003-test_active_session_text_merge.py.log",
      "output_sha256": "5f012667d1ebe9175bf44725df64e4378cfb48440acbd36dd44856e3216cd081",
      "returncode": 0,
      "test_file": "tests/gateway/test_active_session_text_merge.py",
      "test_file_sha256": "b80730c7ffde21ddefe20a490f981f8e4fed271c2c0a5995d1415635f7659988"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0004",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_adaptive_nutrition.py"
      ],
      "nodeids": [
        "tests/gateway/test_adaptive_nutrition.py::test_empty_or_mismatched_journals_block_production",
        "tests/gateway/test_adaptive_nutrition.py::test_config_epoch_requires_exact_live_fanout_and_digest[duplicate_customer]",
        "tests/gateway/test_adaptive_nutrition.py::test_config_epoch_requires_exact_live_fanout_and_digest[extra_customer]",
        "tests/gateway/test_adaptive_nutrition.py::test_config_epoch_requires_exact_live_fanout_and_digest[omitted_enabled_customer]",
        "tests/gateway/test_adaptive_nutrition.py::test_config_epoch_requires_exact_live_fanout_and_digest[missing_digest]",
        "tests/gateway/test_adaptive_nutrition.py::test_config_epoch_requires_exact_live_fanout_and_digest[mismatched_digest]",
        "tests/gateway/test_adaptive_nutrition.py::test_source_day_mapping_identity_is_one_to_one[duplicate_root]",
        "tests/gateway/test_adaptive_nutrition.py::test_source_day_mapping_identity_is_one_to_one[duplicate_mapping_id]",
        "tests/gateway/test_adaptive_nutrition.py::test_source_day_mapping_identity_is_one_to_one[missing]",
        "tests/gateway/test_adaptive_nutrition.py::test_source_day_mapping_identity_is_one_to_one[unmapped]",
        "tests/gateway/test_adaptive_nutrition.py::test_production_proposal_uses_canonical_events_and_pins_artifacts",
        "tests/gateway/test_adaptive_nutrition.py::test_untyped_approved_schedule_fails_closed",
        "tests/gateway/test_adaptive_nutrition.py::test_production_journal_reload_uses_persisted_rows",
        "tests/gateway/test_adaptive_nutrition.py::test_reload_rejects_hash_consistent_persisted_explanation_and_body",
        "tests/gateway/test_adaptive_nutrition.py::test_reload_delivery_rejects_hash_consistent_noncanonical_customer_body",
        "tests/gateway/test_adaptive_nutrition.py::test_live_feature_config_digest_is_verified",
        "tests/gateway/test_adaptive_nutrition.py::test_d_plus_transport_gate_revalidates_feature_config_digest",
        "tests/gateway/test_adaptive_nutrition.py::test_real_adaptive_transport_window_covers_baseline_and_extension[0-None-True]",
        "tests/gateway/test_adaptive_nutrition.py::test_real_adaptive_transport_window_covers_baseline_and_extension[27-None-True]",
        "tests/gateway/test_adaptive_nutrition.py::test_real_adaptive_transport_window_covers_baseline_and_extension[28-None-False]",
        "tests/gateway/test_adaptive_nutrition.py::test_real_adaptive_transport_window_covers_baseline_and_extension[28-extended_through3-True]",
        "tests/gateway/test_adaptive_nutrition.py::test_real_adaptive_transport_window_covers_baseline_and_extension[83-extended_through4-True]",
        "tests/gateway/test_adaptive_nutrition.py::test_real_adaptive_transport_window_covers_baseline_and_extension[84-extended_through5-False]",
        "tests/gateway/test_adaptive_nutrition.py::test_owner_can_persist_and_revoke_delivery_capability",
        "tests/gateway/test_adaptive_nutrition.py::test_delivery_enable_does_not_rebind_after_document_digest_rotation",
        "tests/gateway/test_adaptive_nutrition.py::test_production_lifecycle_rejects_source_mutation_and_wrong_destination",
        "tests/gateway/test_adaptive_nutrition.py::test_production_revocation_matrix_fails_closed[consent-approve]",
        "tests/gateway/test_adaptive_nutrition.py::test_production_revocation_matrix_fails_closed[consent-activate]",
        "tests/gateway/test_adaptive_nutrition.py::test_production_revocation_matrix_fails_closed[consent-deliver]",
        "tests/gateway/test_adaptive_nutrition.py::test_production_revocation_matrix_fails_closed[safety-approve]",
        "tests/gateway/test_adaptive_nutrition.py::test_production_revocation_matrix_fails_closed[safety-activate]",
        "tests/gateway/test_adaptive_nutrition.py::test_production_revocation_matrix_fails_closed[safety-deliver]",
        "tests/gateway/test_adaptive_nutrition.py::test_production_revocation_matrix_fails_closed[owner-approve]",
        "tests/gateway/test_adaptive_nutrition.py::test_production_revocation_matrix_fails_closed[owner-activate]",
        "tests/gateway/test_adaptive_nutrition.py::test_production_revocation_matrix_fails_closed[owner-deliver]",
        "tests/gateway/test_adaptive_nutrition.py::test_production_revocation_matrix_fails_closed[destination-approve]",
        "tests/gateway/test_adaptive_nutrition.py::test_production_revocation_matrix_fails_closed[destination-activate]",
        "tests/gateway/test_adaptive_nutrition.py::test_production_revocation_matrix_fails_closed[destination-deliver]",
        "tests/gateway/test_adaptive_nutrition.py::test_production_lifecycle_requires_exact_configured_owner",
        "tests/gateway/test_adaptive_nutrition.py::test_public_shadow_constructor_flag_cannot_enable_raw_runtime_paths",
        "tests/gateway/test_adaptive_nutrition.py::test_forged_runtime_paths_fail_before_store_or_provider_mutation",
        "tests/gateway/test_adaptive_nutrition.py::test_shadow_factory_requires_the_exact_private_token",
        "tests/gateway/test_adaptive_nutrition.py::test_topic_59_only",
        "tests/gateway/test_adaptive_nutrition.py::test_missing_goal_prompts_and_never_sends",
        "tests/gateway/test_adaptive_nutrition.py::test_revision_requires_reapproval_and_exact_digest",
        "tests/gateway/test_adaptive_nutrition.py::test_low_adherence_and_safety_fail_closed",
        "tests/gateway/test_adaptive_nutrition.py::test_safety_callback_cannot_approve_or_activate",
        "tests/gateway/test_adaptive_nutrition.py::test_approved_delivery_calls_strict_sender_once_and_audits",
        "tests/gateway/test_adaptive_nutrition.py::test_unknown_delivery_is_never_retried",
        "tests/gateway/test_adaptive_nutrition.py::test_negative_provider_receipt_is_unknown_and_never_retried",
        "tests/gateway/test_adaptive_nutrition.py::test_adaptive_config_is_exact_topic_and_disabled_by_default",
        "tests/gateway/test_adaptive_nutrition.py::test_review_ingress_is_distinct_from_canonical_owner_and_sessions_are_exact",
        "tests/gateway/test_adaptive_nutrition.py::test_review_session_wrong_user_and_stale_duplicate_are_terminal",
        "tests/gateway/test_adaptive_nutrition.py::test_operator_sessions_bind_action_provenance_and_expiry",
        "tests/gateway/test_adaptive_nutrition.py::test_callback_claim_race_dispatches_create_once",
        "tests/gateway/test_adaptive_nutrition.py::test_operator_card_exposes_only_state_appropriate_primary_action",
        "tests/gateway/test_adaptive_nutrition.py::test_terminal_delivery_card_removes_send_and_exposes_only_valid_recovery[sent_audited-None]",
        "tests/gateway/test_adaptive_nutrition.py::test_terminal_delivery_card_removes_send_and_exposes_only_valid_recovery[delivery_unknown-None]",
        "tests/gateway/test_adaptive_nutrition.py::test_terminal_delivery_card_removes_send_and_exposes_only_valid_recovery[duplicate-None]",
        "tests/gateway/test_adaptive_nutrition.py::test_terminal_delivery_card_removes_send_and_exposes_only_valid_recovery[audit_pending-\\uac10\\uc0ac \\uae30\\ub85d \\ubcf5\\uad6c]",
        "tests/gateway/test_adaptive_nutrition.py::test_callback_claim_race_dispatches_mutation_once",
        "tests/gateway/test_adaptive_nutrition.py::test_operator_edit_note_returns_identity_envelope",
        "tests/gateway/test_adaptive_nutrition.py::test_publish_pending_card_recovers_once",
        "tests/gateway/test_adaptive_nutrition.py::test_adaptive_delivery_result_text_is_safe[result0-\\uc804\\uc1a1 \\uacb0\\uacfc\\ub97c \\ud655\\uc778\\ud560 \\uc218 \\uc5c6\\uc2b5\\ub2c8\\ub2e4. \\ub2e4\\uc2dc \\ubcf4\\ub0b4\\uc9c0 \\ub9c8\\uc138\\uc694. \\uc870\\uc815\\uc774 \\ud544\\uc694\\ud569\\ub2c8\\ub2e4.]",
        "tests/gateway/test_adaptive_nutrition.py::test_adaptive_delivery_result_text_is_safe[result1-\\uace0\\uac1d \\uc804\\uc1a1 \\uc601\\uc218\\uc99d\\uc740 \\ud655\\uc778\\ub410\\uc2b5\\ub2c8\\ub2e4. \\uc7ac\\uc804\\uc1a1\\ud558\\uc9c0 \\ub9d0\\uace0 \\uac10\\uc0ac \\uae30\\ub85d\\uc744 \\ubcf5\\uad6c\\ud574 \\uc8fc\\uc138\\uc694.]",
        "tests/gateway/test_adaptive_nutrition.py::test_adaptive_delivery_result_text_is_safe[result2-\\uace0\\uac1d \\uc804\\uc1a1\\uacfc \\uac10\\uc0ac \\uae30\\ub85d\\uc774 \\uc644\\ub8cc\\ub418\\uc5c8\\uc2b5\\ub2c8\\ub2e4.]",
        "tests/gateway/test_adaptive_nutrition.py::test_adaptive_delivery_result_text_is_safe[result3-\\uc774\\ubbf8 \\ucc98\\ub9ac\\ub41c \\uc804\\uc1a1\\uc785\\ub2c8\\ub2e4.]",
        "tests/gateway/test_adaptive_nutrition.py::test_owner_rotation_aborts_persisted_delivery_before_append",
        "tests/gateway/test_adaptive_nutrition.py::test_owner_rotation_aborts_activation_before_transition_append",
        "tests/gateway/test_adaptive_nutrition.py::test_owner_rotation_aborts_rollback_before_transition_append",
        "tests/gateway/test_adaptive_nutrition.py::test_production_lifecycle_rejects_raw_operator_identity",
        "tests/gateway/test_adaptive_nutrition.py::test_opaque_adaptive_callbacks_are_bounded_and_stale_safe",
        "tests/gateway/test_adaptive_nutrition.py::test_live_telegram_adaptive_callback_requires_exact_owner_topic",
        "tests/gateway/test_adaptive_nutrition.py::test_live_telegram_adaptive_callback_rejects_non_owner_or_wrong_space",
        "tests/gateway/test_adaptive_nutrition.py::test_live_telegram_adaptive_callback_requires_configured_review_space",
        "tests/gateway/test_adaptive_nutrition.py::test_telegram_registry_authority_is_configured_and_contained",
        "tests/gateway/test_adaptive_nutrition.py::test_async_registered_transport_success_is_audited",
        "tests/gateway/test_adaptive_nutrition.py::test_async_registered_transport_unknown_is_terminal",
        "tests/gateway/test_adaptive_nutrition.py::test_delivery_disabled_rejects_before_provider_call",
        "tests/gateway/test_adaptive_nutrition.py::test_adaptive_transport_rejects_raw_and_unreserved_calls",
        "tests/gateway/test_adaptive_nutrition.py::test_real_telegram_transport_checks_authority_before_consuming_reservation[positive]",
        "tests/gateway/test_adaptive_nutrition.py::test_real_telegram_transport_checks_authority_before_consuming_reservation[d_plus_85]",
        "tests/gateway/test_adaptive_nutrition.py::test_real_telegram_transport_checks_authority_before_consuming_reservation[revoked]",
        "tests/gateway/test_adaptive_nutrition.py::test_activation_crash_between_overlay_and_epoch_aborts_after_recovery",
        "tests/gateway/test_adaptive_nutrition.py::test_activation_recovery_rejects_document_digest_rotation",
        "tests/gateway/test_adaptive_nutrition.py::test_replacement_overlay_epoch_failure_aborts_and_restores_predecessor",
        "tests/gateway/test_adaptive_nutrition.py::test_base_rollback_crash_restores_prior_state_idempotently",
        "tests/gateway/test_adaptive_nutrition.py::test_replacement_rollback_crash_restores_prior_state_idempotently",
        "tests/gateway/test_adaptive_nutrition.py::test_activation_crash_before_receipt_commits_missing_receipt_on_recovery",
        "tests/gateway/test_adaptive_nutrition.py::test_concurrent_coordinators_reserve_once_before_async_provider_call",
        "tests/gateway/test_adaptive_nutrition.py::test_subprocess_shared_directory_reservation_race",
        "tests/gateway/test_adaptive_nutrition.py::test_provider_receipt_reconciles_missing_delivery_audit_without_resend",
        "tests/gateway/test_adaptive_nutrition.py::test_public_delivery_false_uses_persisted_enable_then_fresh_revoke_fails_closed",
        "tests/gateway/test_adaptive_nutrition.py::test_delivery_reservation_revalidation_records_unknown_for_each_authority_change[source]",
        "tests/gateway/test_adaptive_nutrition.py::test_delivery_reservation_revalidation_records_unknown_for_each_authority_change[registration]",
        "tests/gateway/test_adaptive_nutrition.py::test_delivery_reservation_revalidation_records_unknown_for_each_authority_change[consent]",
        "tests/gateway/test_adaptive_nutrition.py::test_delivery_reservation_revalidation_records_unknown_for_each_authority_change[owner]",
        "tests/gateway/test_adaptive_nutrition.py::test_approve_revalidation_rejects_source_or_registration_change_before_append[source]",
        "tests/gateway/test_adaptive_nutrition.py::test_approve_revalidation_rejects_source_or_registration_change_before_append[registration]",
        "tests/gateway/test_adaptive_nutrition.py::test_proposal_append_recheck_rejects_source_or_registration_change[source]",
        "tests/gateway/test_adaptive_nutrition.py::test_proposal_append_recheck_rejects_source_or_registration_change[registration]",
        "tests/gateway/test_adaptive_nutrition.py::test_competing_revision_children_leave_stale_child_unapprovable_and_undeliverable",
        "tests/gateway/test_adaptive_nutrition.py::test_p2_p6_fresh_revisions_have_exact_terminal_rows_and_provider_counts",
        "tests/gateway/test_adaptive_nutrition.py::test_missing_review_operator_version_is_rejected",
        "tests/gateway/test_adaptive_nutrition.py::test_forged_capability_without_durable_session_fails_before_mutation",
        "tests/gateway/test_adaptive_nutrition.py::test_profile_authority_flock_serializes_processes_and_owner_change_is_stale",
        "tests/gateway/test_adaptive_nutrition.py::test_adaptive_send_callback_duplicate_is_exact_and_does_not_retry",
        "tests/gateway/test_adaptive_nutrition.py::test_adaptive_reconcile_callback_completes_without_provider_retry",
        "tests/gateway/test_adaptive_nutrition.py::test_mutating_action_pin_toctou_rejects_before_downstream_mutation[hold]",
        "tests/gateway/test_adaptive_nutrition.py::test_mutating_action_pin_toctou_rejects_before_downstream_mutation[release]",
        "tests/gateway/test_adaptive_nutrition.py::test_mutating_action_pin_toctou_rejects_before_downstream_mutation[approve]",
        "tests/gateway/test_adaptive_nutrition.py::test_mutating_action_pin_toctou_rejects_before_downstream_mutation[activate]",
        "tests/gateway/test_adaptive_nutrition.py::test_mutating_action_pin_toctou_rejects_before_downstream_mutation[delivery_enable]",
        "tests/gateway/test_adaptive_nutrition.py::test_mutating_action_pin_toctou_rejects_before_downstream_mutation[delivery_revoke]",
        "tests/gateway/test_adaptive_nutrition.py::test_mutating_action_pin_toctou_rejects_before_downstream_mutation[send]",
        "tests/gateway/test_adaptive_nutrition.py::test_mutating_action_pin_toctou_rejects_before_downstream_mutation[reconcile]",
        "tests/gateway/test_adaptive_nutrition.py::test_publication_recovery_claims_once_across_services",
        "tests/gateway/test_adaptive_nutrition.py::test_receipt_only_audit_pending_recovery_survives_restart_without_provider",
        "tests/gateway/test_adaptive_nutrition.py::test_view_and_back_callbacks_replay_without_claiming_or_reissuing",
        "tests/gateway/test_adaptive_nutrition.py::test_view_callback_stale_forwarded_or_pinned_replay_rejects[message]",
        "tests/gateway/test_adaptive_nutrition.py::test_view_callback_stale_forwarded_or_pinned_replay_rejects[pins]",
        "tests/gateway/test_adaptive_nutrition.py::test_humanizer_adaptive_grounding_accepts_only_production_fact_schema",
        "tests/gateway/test_adaptive_nutrition.py::test_coaching_facts_reject_forged_digest_before_mutation",
        "tests/gateway/test_adaptive_nutrition.py::test_coaching_facts_binding_changes_for_omitted_projection_field_drift",
        "tests/gateway/test_adaptive_nutrition.py::test_current_coaching_facts_binding_match_and_mismatch_are_read_only",
        "tests/gateway/test_adaptive_nutrition.py::test_publication_unknown_outcome_is_not_retried"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0004-test_adaptive_nutrition.py.log",
      "output_sha256": "e64c6265c3ad5f44e7604a4532061e2131876c0bf6d0304d27113dce87867505",
      "returncode": 0,
      "test_file": "tests/gateway/test_adaptive_nutrition.py",
      "test_file_sha256": "bf887f938dc71fc8825f31042dc8da5284c9145e17eaeab91dc4aa98e49f9373"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0005",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_agent_cache.py"
      ],
      "nodeids": [
        "tests/gateway/test_agent_cache.py::TestAgentConfigSignature::test_same_config_same_signature",
        "tests/gateway/test_agent_cache.py::TestAgentConfigSignature::test_model_change_different_signature",
        "tests/gateway/test_agent_cache.py::TestAgentConfigSignature::test_same_token_prefix_different_full_token_changes_signature",
        "tests/gateway/test_agent_cache.py::TestAgentConfigSignature::test_provider_change_different_signature",
        "tests/gateway/test_agent_cache.py::TestAgentConfigSignature::test_toolset_change_different_signature",
        "tests/gateway/test_agent_cache.py::TestAgentConfigSignature::test_reasoning_not_in_signature",
        "tests/gateway/test_agent_cache.py::TestAgentConfigSignature::test_cache_keys_default_omitted_matches_empty",
        "tests/gateway/test_agent_cache.py::TestAgentConfigSignature::test_context_length_change_busts_cache",
        "tests/gateway/test_agent_cache.py::TestAgentConfigSignature::test_max_tokens_change_busts_cache",
        "tests/gateway/test_agent_cache.py::TestAgentConfigSignature::test_compression_threshold_change_busts_cache",
        "tests/gateway/test_agent_cache.py::TestAgentConfigSignature::test_compression_enabled_toggle_busts_cache",
        "tests/gateway/test_agent_cache.py::TestAgentConfigSignature::test_cache_keys_key_order_does_not_matter",
        "tests/gateway/test_agent_cache.py::TestAgentConfigSignature::test_tool_registry_generation_change_busts_cache",
        "tests/gateway/test_agent_cache.py::TestExtractCacheBustingConfig::test_reads_model_context_length",
        "tests/gateway/test_agent_cache.py::TestExtractCacheBustingConfig::test_reads_compression_subkeys",
        "tests/gateway/test_agent_cache.py::TestExtractCacheBustingConfig::test_missing_keys_yield_none",
        "tests/gateway/test_agent_cache.py::TestExtractCacheBustingConfig::test_non_dict_section_treated_as_missing",
        "tests/gateway/test_agent_cache.py::TestExtractCacheBustingConfig::test_none_config_is_safe",
        "tests/gateway/test_agent_cache.py::TestExtractCacheBustingConfig::test_extract_includes_live_tool_registry_generation",
        "tests/gateway/test_agent_cache.py::TestExtractCacheBustingConfig::test_skips_honcho_config_read_when_provider_is_not_honcho",
        "tests/gateway/test_agent_cache.py::TestExtractCacheBustingConfig::test_reads_honcho_config_only_when_provider_is_honcho",
        "tests/gateway/test_agent_cache.py::TestExtractCacheBustingConfig::test_memory_provider_change_busts_signature",
        "tests/gateway/test_agent_cache.py::TestExtractCacheBustingConfig::test_honcho_cache_busting_config_memoized_by_mtime",
        "tests/gateway/test_agent_cache.py::TestExtractCacheBustingConfig::test_full_round_trip_busts_cache_on_real_edit",
        "tests/gateway/test_agent_cache.py::TestAgentCacheLifecycle::test_cache_hit_returns_same_agent",
        "tests/gateway/test_agent_cache.py::TestAgentCacheLifecycle::test_cache_miss_on_model_change",
        "tests/gateway/test_agent_cache.py::TestAgentCacheLifecycle::test_evict_on_session_reset",
        "tests/gateway/test_agent_cache.py::TestAgentCacheLifecycle::test_evict_does_not_affect_other_sessions",
        "tests/gateway/test_agent_cache.py::TestAgentCacheLifecycle::test_reasoning_config_updates_in_place",
        "tests/gateway/test_agent_cache.py::TestAgentCacheLifecycle::test_system_prompt_frozen_across_cache_reuse",
        "tests/gateway/test_agent_cache.py::TestAgentCacheLifecycle::test_callbacks_update_without_cache_eviction",
        "tests/gateway/test_agent_cache.py::TestAgentCacheBoundedGrowth::test_cap_evicts_lru_when_exceeded",
        "tests/gateway/test_agent_cache.py::TestAgentCacheBoundedGrowth::test_cap_respects_move_to_end",
        "tests/gateway/test_agent_cache.py::TestAgentCacheBoundedGrowth::test_cap_triggers_cleanup_thread",
        "tests/gateway/test_agent_cache.py::TestAgentCacheBoundedGrowth::test_idle_ttl_sweep_evicts_stale_agents",
        "tests/gateway/test_agent_cache.py::TestAgentCacheBoundedGrowth::test_idle_sweep_skips_agents_without_activity_ts",
        "tests/gateway/test_agent_cache.py::TestAgentCacheBoundedGrowth::test_plain_dict_cache_is_tolerated",
        "tests/gateway/test_agent_cache.py::TestAgentCacheBoundedGrowth::test_main_lookup_updates_lru_order",
        "tests/gateway/test_agent_cache.py::TestAgentCacheActiveSafety::test_cap_skips_active_lru_entry",
        "tests/gateway/test_agent_cache.py::TestAgentCacheActiveSafety::test_cap_evicts_when_multiple_excess_and_some_inactive",
        "tests/gateway/test_agent_cache.py::TestAgentCacheActiveSafety::test_cap_leaves_cache_over_limit_if_all_active",
        "tests/gateway/test_agent_cache.py::TestAgentCacheActiveSafety::test_cap_pending_sentinel_does_not_block_eviction",
        "tests/gateway/test_agent_cache.py::TestAgentCacheActiveSafety::test_idle_sweep_skips_active_agent",
        "tests/gateway/test_agent_cache.py::TestAgentCacheActiveSafety::test_eviction_does_not_close_active_agent_client",
        "tests/gateway/test_agent_cache.py::TestAgentCacheSpilloverLive::test_fill_to_cap_then_spillover",
        "tests/gateway/test_agent_cache.py::TestAgentCacheSpilloverLive::test_spillover_all_active_keeps_cache_over_cap",
        "tests/gateway/test_agent_cache.py::TestAgentCacheSpilloverLive::test_evicted_session_next_turn_gets_fresh_agent",
        "tests/gateway/test_agent_cache.py::TestAgentCacheIdleResume::test_release_clients_does_not_touch_process_registry",
        "tests/gateway/test_agent_cache.py::TestAgentCacheIdleResume::test_release_clients_does_not_touch_terminal_or_browser",
        "tests/gateway/test_agent_cache.py::TestAgentCacheIdleResume::test_release_clients_closes_llm_client",
        "tests/gateway/test_agent_cache.py::TestAgentCacheIdleResume::test_close_vs_release_full_teardown_difference",
        "tests/gateway/test_agent_cache.py::TestAgentCacheIdleResume::test_idle_evicted_session_rebuild_inherits_task_id",
        "tests/gateway/test_agent_cache.py::TestCachedAgentInactivityReset::test_fresh_turn_resets_idle_clock",
        "tests/gateway/test_agent_cache.py::TestCachedAgentInactivityReset::test_fresh_turn_resets_desc",
        "tests/gateway/test_agent_cache.py::TestCachedAgentInactivityReset::test_interrupt_turn_preserves_idle_clock",
        "tests/gateway/test_agent_cache.py::TestCachedAgentInactivityReset::test_interrupt_turn_preserves_desc",
        "tests/gateway/test_agent_cache.py::TestCachedAgentInactivityReset::test_deep_interrupt_recursion_preserves_idle_clock",
        "tests/gateway/test_agent_cache.py::TestCachedAgentInactivityReset::test_fresh_turn_resets_flush_cursor",
        "tests/gateway/test_agent_cache.py::TestCachedAgentInactivityReset::test_interrupt_turn_preserves_flush_cursor",
        "tests/gateway/test_agent_cache.py::TestCachedAgentInactivityReset::test_api_call_count_reset_regardless_of_depth",
        "tests/gateway/test_agent_cache.py::TestCachedAgentInactivityReset::test_watchdog_accumulation_across_recursive_turns",
        "tests/gateway/test_agent_cache.py::TestAgentConfigSignatureUserId::test_signature_changes_with_user_id",
        "tests/gateway/test_agent_cache.py::TestAgentConfigSignatureUserId::test_signature_stable_with_same_user_id",
        "tests/gateway/test_agent_cache.py::TestAgentConfigSignatureUserId::test_signature_changes_with_user_id_alt",
        "tests/gateway/test_agent_cache.py::TestAgentConfigSignatureUserId::test_signature_omits_user_id_when_absent",
        "tests/gateway/test_agent_cache.py::TestAgentCacheMessageCountRebaseline::test_same_process_turns_preserve_cached_agent",
        "tests/gateway/test_agent_cache.py::TestAgentCacheMessageCountRebaseline::test_cross_process_write_still_invalidates",
        "tests/gateway/test_agent_cache.py::TestAgentCacheMessageCountRebaseline::test_rebaseline_is_fail_safe_and_skips_legacy_and_pending"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0005-test_agent_cache.py.log",
      "output_sha256": "de8fc1ab04e7b3a1080680912658cb4b3dc7def69dd1fb7b284256e5850825e1",
      "returncode": 0,
      "test_file": "tests/gateway/test_agent_cache.py",
      "test_file_sha256": "98cfb3bf3a73741df37c37775303751d51cba76407c9cfa9feb51ee0a43bf5b4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0006",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_allowed_channels_widening.py"
      ],
      "nodeids": [
        "tests/gateway/test_allowed_channels_widening.py::TestTelegramAllowedChats::test_empty_is_no_restriction",
        "tests/gateway/test_allowed_channels_widening.py::TestTelegramAllowedChats::test_list_form",
        "tests/gateway/test_allowed_channels_widening.py::TestTelegramAllowedChats::test_csv_form",
        "tests/gateway/test_allowed_channels_widening.py::TestTelegramAllowedChats::test_env_var_fallback",
        "tests/gateway/test_allowed_channels_widening.py::TestTelegramAllowedChats::test_blocks_non_whitelisted_group",
        "tests/gateway/test_allowed_channels_widening.py::TestTelegramAllowedChats::test_permits_whitelisted_group",
        "tests/gateway/test_allowed_channels_widening.py::TestTelegramAllowedChats::test_mention_cannot_bypass_whitelist",
        "tests/gateway/test_allowed_channels_widening.py::TestTelegramAllowedChats::test_dms_unaffected",
        "tests/gateway/test_allowed_channels_widening.py::TestTelegramAllowedChats::test_config_bridge",
        "tests/gateway/test_allowed_channels_widening.py::TestTelegramAllowedChats::test_config_bridge_env_takes_precedence",
        "tests/gateway/test_allowed_channels_widening.py::TestDingTalkAllowedChats::test_empty_is_no_restriction",
        "tests/gateway/test_allowed_channels_widening.py::TestDingTalkAllowedChats::test_list_form",
        "tests/gateway/test_allowed_channels_widening.py::TestDingTalkAllowedChats::test_csv_form",
        "tests/gateway/test_allowed_channels_widening.py::TestDingTalkAllowedChats::test_env_var_fallback",
        "tests/gateway/test_allowed_channels_widening.py::TestDingTalkAllowedChats::test_blocks_non_whitelisted_group",
        "tests/gateway/test_allowed_channels_widening.py::TestDingTalkAllowedChats::test_dm_unaffected",
        "tests/gateway/test_allowed_channels_widening.py::TestDingTalkAllowedChats::test_config_bridge",
        "tests/gateway/test_allowed_channels_widening.py::TestMattermostAllowedChannels::test_empty_config_is_no_restriction",
        "tests/gateway/test_allowed_channels_widening.py::TestMattermostAllowedChannels::test_config_list_blocks_non_whitelisted_channel",
        "tests/gateway/test_allowed_channels_widening.py::TestMattermostAllowedChannels::test_config_list_permits_whitelisted_channel",
        "tests/gateway/test_allowed_channels_widening.py::TestMattermostAllowedChannels::test_env_var_fallback_when_no_config",
        "tests/gateway/test_allowed_channels_widening.py::TestMattermostAllowedChannels::test_dm_unaffected",
        "tests/gateway/test_allowed_channels_widening.py::TestMattermostAllowedChannels::test_config_bridge",
        "tests/gateway/test_allowed_channels_widening.py::TestMatrixAllowedRooms::test_empty_env_empty_set",
        "tests/gateway/test_allowed_channels_widening.py::TestMatrixAllowedRooms::test_env_var_parsed_to_set",
        "tests/gateway/test_allowed_channels_widening.py::TestMatrixAllowedRooms::test_block_logic",
        "tests/gateway/test_allowed_channels_widening.py::TestMatrixAllowedRooms::test_config_bridge"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0006-test_allowed_channels_widening.py.log",
      "output_sha256": "6be4719f5bbce2e9db97d46563e4fdcd79eb8b6a05e1915a038e37f356a6dd89",
      "returncode": 0,
      "test_file": "tests/gateway/test_allowed_channels_widening.py",
      "test_file_sha256": "d3de59f99d2273040d9e0cbdae3fcf5d36a72d10412f3a34ee03f003ffc8e4ca"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0007",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_allowlist_startup_check.py"
      ],
      "nodeids": [
        "tests/gateway/test_allowlist_startup_check.py::TestAllowlistStartupCheck::test_no_config_emits_warning",
        "tests/gateway/test_allowlist_startup_check.py::TestAllowlistStartupCheck::test_signal_group_allowed_users_suppresses_warning",
        "tests/gateway/test_allowlist_startup_check.py::TestAllowlistStartupCheck::test_telegram_allow_all_users_suppresses_warning",
        "tests/gateway/test_allowlist_startup_check.py::TestAllowlistStartupCheck::test_gateway_allow_all_users_suppresses_warning"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0007-test_allowlist_startup_check.py.log",
      "output_sha256": "e290a4eec18b6c19a90e90d77fa0b149a9662750e833d111f2a6d11274a73ecb",
      "returncode": 0,
      "test_file": "tests/gateway/test_allowlist_startup_check.py",
      "test_file_sha256": "d57e5c5cec52eedd64ea28fcdc6dae8f83de1d6e4b4be53548397410f4692c6b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0008",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_api_server.py"
      ],
      "nodeids": [
        "tests/gateway/test_api_server.py::TestCheckRequirements::test_returns_true_when_aiohttp_available",
        "tests/gateway/test_api_server.py::TestCheckRequirements::test_returns_false_without_aiohttp",
        "tests/gateway/test_api_server.py::TestResponseStore::test_put_and_get",
        "tests/gateway/test_api_server.py::TestResponseStore::test_get_missing_returns_none",
        "tests/gateway/test_api_server.py::TestResponseStore::test_lru_eviction",
        "tests/gateway/test_api_server.py::TestResponseStore::test_access_refreshes_lru",
        "tests/gateway/test_api_server.py::TestResponseStore::test_update_existing_key",
        "tests/gateway/test_api_server.py::TestResponseStore::test_delete_existing",
        "tests/gateway/test_api_server.py::TestResponseStore::test_delete_missing",
        "tests/gateway/test_api_server.py::TestResponseStore::test_delete_clears_conversation_mapping",
        "tests/gateway/test_api_server.py::TestResponseStore::test_eviction_clears_conversation_mapping",
        "tests/gateway/test_api_server.py::TestResponseStore::test_file_store_created_owner_only_under_permissive_umask",
        "tests/gateway/test_api_server.py::TestIdempotencyCache::test_concurrent_same_key_and_fingerprint_runs_once",
        "tests/gateway/test_api_server.py::TestIdempotencyCache::test_different_fingerprint_does_not_reuse_inflight_task",
        "tests/gateway/test_api_server.py::TestIdempotencyCache::test_cancelled_waiter_does_not_drop_shared_inflight_task",
        "tests/gateway/test_api_server.py::TestAdapterInit::test_default_config",
        "tests/gateway/test_api_server.py::TestAdapterInit::test_custom_config_from_extra",
        "tests/gateway/test_api_server.py::TestAdapterInit::test_config_from_env",
        "tests/gateway/test_api_server.py::TestAdapterInit::test_invalid_port_from_env_falls_back_to_default",
        "tests/gateway/test_api_server.py::TestAdapterInit::test_create_agent_forwards_config_reasoning_effort",
        "tests/gateway/test_api_server.py::TestAdapterInit::test_create_agent_refreshes_max_iterations_from_runtime_config",
        "tests/gateway/test_api_server.py::TestAuth::test_no_key_configured_allows_all",
        "tests/gateway/test_api_server.py::TestAuth::test_valid_key_passes",
        "tests/gateway/test_api_server.py::TestAuth::test_invalid_key_returns_401",
        "tests/gateway/test_api_server.py::TestAuth::test_missing_auth_header_returns_401",
        "tests/gateway/test_api_server.py::TestAuth::test_malformed_auth_header_returns_401",
        "tests/gateway/test_api_server.py::TestAgentExecution::test_run_agent_uses_session_id_as_task_id",
        "tests/gateway/test_api_server.py::TestHealthEndpoint::test_security_headers_present",
        "tests/gateway/test_api_server.py::TestHealthEndpoint::test_health_returns_ok",
        "tests/gateway/test_api_server.py::TestHealthEndpoint::test_health_reports_version",
        "tests/gateway/test_api_server.py::TestHealthEndpoint::test_v1_health_alias_returns_ok",
        "tests/gateway/test_api_server.py::TestHealthDetailedEndpoint::test_health_detailed_returns_ok",
        "tests/gateway/test_api_server.py::TestHealthDetailedEndpoint::test_health_detailed_no_runtime_status",
        "tests/gateway/test_api_server.py::TestHealthDetailedEndpoint::test_health_detailed_does_not_require_auth",
        "tests/gateway/test_api_server.py::TestModelsEndpoint::test_models_returns_hermes_agent",
        "tests/gateway/test_api_server.py::TestModelsEndpoint::test_models_returns_profile_name",
        "tests/gateway/test_api_server.py::TestModelsEndpoint::test_models_returns_explicit_model_name",
        "tests/gateway/test_api_server.py::TestModelsEndpoint::test_resolve_model_name_explicit",
        "tests/gateway/test_api_server.py::TestModelsEndpoint::test_resolve_model_name_default_profile",
        "tests/gateway/test_api_server.py::TestModelsEndpoint::test_resolve_model_name_named_profile",
        "tests/gateway/test_api_server.py::TestModelsEndpoint::test_models_requires_auth",
        "tests/gateway/test_api_server.py::TestModelsEndpoint::test_models_with_valid_auth",
        "tests/gateway/test_api_server.py::TestCapabilitiesEndpoint::test_capabilities_advertises_plugin_safe_contract",
        "tests/gateway/test_api_server.py::TestCapabilitiesEndpoint::test_capabilities_requires_auth_when_key_configured",
        "tests/gateway/test_api_server.py::TestSkillsEndpoint::test_skills_returns_list_envelope",
        "tests/gateway/test_api_server.py::TestSkillsEndpoint::test_skills_handles_enumeration_failure",
        "tests/gateway/test_api_server.py::TestSkillsEndpoint::test_skills_requires_auth_when_key_configured",
        "tests/gateway/test_api_server.py::TestToolsetsEndpoint::test_toolsets_returns_resolved_tools",
        "tests/gateway/test_api_server.py::TestToolsetsEndpoint::test_toolsets_handles_resolution_failure_per_toolset",
        "tests/gateway/test_api_server.py::TestToolsetsEndpoint::test_toolsets_requires_auth_when_key_configured",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_invalid_json_returns_400",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_missing_messages_returns_400",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_empty_messages_returns_400",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_stream_true_returns_sse",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_stream_string_false_returns_json_completion",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_stream_task_done_callback_enqueues_eos_for_chat_completions",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_stream_sends_keepalive_during_quiet_tool_gap",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_stream_survives_tool_call_none_sentinel",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_stream_includes_tool_progress",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_stream_tool_progress_skips_internal_events",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_stream_emits_tool_lifecycle_with_call_id",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_stream_tool_lifecycle_skips_internal_and_orphan_completes",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_no_user_message_returns_400",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_successful_completion",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_system_prompt_extracted",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_conversation_history_passed",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_agent_error_returns_500",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_stable_session_id_across_turns",
        "tests/gateway/test_api_server.py::TestChatCompletionsEndpoint::test_different_conversations_get_different_session_ids",
        "tests/gateway/test_api_server.py::TestDeriveChatSessionId::test_deterministic",
        "tests/gateway/test_api_server.py::TestDeriveChatSessionId::test_prefix",
        "tests/gateway/test_api_server.py::TestDeriveChatSessionId::test_different_system_prompt",
        "tests/gateway/test_api_server.py::TestDeriveChatSessionId::test_different_first_message",
        "tests/gateway/test_api_server.py::TestDeriveChatSessionId::test_none_system_prompt",
        "tests/gateway/test_api_server.py::TestResponsesEndpoint::test_missing_input_returns_400",
        "tests/gateway/test_api_server.py::TestResponsesEndpoint::test_invalid_json_returns_400",
        "tests/gateway/test_api_server.py::TestResponsesEndpoint::test_successful_response_with_string_input",
        "tests/gateway/test_api_server.py::TestResponsesEndpoint::test_successful_response_with_array_input",
        "tests/gateway/test_api_server.py::TestResponsesEndpoint::test_instructions_as_ephemeral_prompt",
        "tests/gateway/test_api_server.py::TestResponsesEndpoint::test_previous_response_id_chaining",
        "tests/gateway/test_api_server.py::TestResponsesEndpoint::test_previous_response_id_stores_full_agent_transcript_once",
        "tests/gateway/test_api_server.py::TestResponsesEndpoint::test_previous_response_id_outputs_only_current_turn_items",
        "tests/gateway/test_api_server.py::TestResponsesEndpoint::test_previous_response_id_preserves_session",
        "tests/gateway/test_api_server.py::TestResponsesEndpoint::test_invalid_previous_response_id_returns_404",
        "tests/gateway/test_api_server.py::TestResponsesEndpoint::test_store_false_does_not_store",
        "tests/gateway/test_api_server.py::TestResponsesEndpoint::test_store_string_false_does_not_store",
        "tests/gateway/test_api_server.py::TestResponsesEndpoint::test_instructions_inherited_from_previous",
        "tests/gateway/test_api_server.py::TestResponsesEndpoint::test_agent_error_returns_500",
        "tests/gateway/test_api_server.py::TestResponsesEndpoint::test_invalid_input_type_returns_400",
        "tests/gateway/test_api_server.py::TestResponsesStreaming::test_stream_true_returns_responses_sse",
        "tests/gateway/test_api_server.py::TestResponsesStreaming::test_stream_string_false_returns_json_response",
        "tests/gateway/test_api_server.py::TestResponsesStreaming::test_stream_task_done_callback_enqueues_eos_for_responses",
        "tests/gateway/test_api_server.py::TestResponsesStreaming::test_stream_emits_function_call_and_output_items",
        "tests/gateway/test_api_server.py::TestResponsesStreaming::test_streamed_response_is_stored_for_get",
        "tests/gateway/test_api_server.py::TestResponsesStreaming::test_streamed_previous_response_id_stores_full_agent_transcript_once",
        "tests/gateway/test_api_server.py::TestResponsesStreaming::test_stream_cancelled_persists_incomplete_snapshot",
        "tests/gateway/test_api_server.py::TestResponsesStreaming::test_stream_client_disconnect_persists_incomplete_snapshot",
        "tests/gateway/test_api_server.py::TestEndpointAuth::test_chat_completions_requires_auth",
        "tests/gateway/test_api_server.py::TestEndpointAuth::test_responses_requires_auth",
        "tests/gateway/test_api_server.py::TestEndpointAuth::test_models_requires_auth",
        "tests/gateway/test_api_server.py::TestEndpointAuth::test_health_does_not_require_auth",
        "tests/gateway/test_api_server.py::TestConfigIntegration::test_platform_enum_has_api_server",
        "tests/gateway/test_api_server.py::TestConfigIntegration::test_env_override_enables_api_server",
        "tests/gateway/test_api_server.py::TestConfigIntegration::test_env_override_with_key",
        "tests/gateway/test_api_server.py::TestConfigIntegration::test_env_override_port_and_host",
        "tests/gateway/test_api_server.py::TestConfigIntegration::test_env_override_cors_origins",
        "tests/gateway/test_api_server.py::TestConfigIntegration::test_api_server_in_connected_platforms",
        "tests/gateway/test_api_server.py::TestConfigIntegration::test_api_server_not_in_connected_when_disabled",
        "tests/gateway/test_api_server.py::TestMultipleSystemMessages::test_multiple_system_messages_concatenated",
        "tests/gateway/test_api_server.py::TestSendMethod::test_send_returns_not_supported",
        "tests/gateway/test_api_server.py::TestGetResponse::test_get_stored_response",
        "tests/gateway/test_api_server.py::TestGetResponse::test_get_not_found",
        "tests/gateway/test_api_server.py::TestGetResponse::test_get_requires_auth",
        "tests/gateway/test_api_server.py::TestDeleteResponse::test_delete_stored_response",
        "tests/gateway/test_api_server.py::TestDeleteResponse::test_delete_not_found",
        "tests/gateway/test_api_server.py::TestDeleteResponse::test_delete_requires_auth",
        "tests/gateway/test_api_server.py::TestToolCallsInOutput::test_tool_calls_in_output",
        "tests/gateway/test_api_server.py::TestToolCallsInOutput::test_no_tool_calls_still_works",
        "tests/gateway/test_api_server.py::TestUsageCounting::test_responses_usage",
        "tests/gateway/test_api_server.py::TestUsageCounting::test_chat_completions_usage",
        "tests/gateway/test_api_server.py::TestTruncation::test_truncation_auto_limits_history",
        "tests/gateway/test_api_server.py::TestTruncation::test_no_truncation_keeps_full_history",
        "tests/gateway/test_api_server.py::TestChatCompletionsAgentIncomplete::test_truncation_with_partial_text_uses_length_finish_reason",
        "tests/gateway/test_api_server.py::TestChatCompletionsAgentIncomplete::test_failure_with_no_text_returns_502_error_envelope",
        "tests/gateway/test_api_server.py::TestChatCompletionsAgentIncomplete::test_normal_completion_unchanged",
        "tests/gateway/test_api_server.py::TestCORS::test_origin_allowed_for_non_browser_client",
        "tests/gateway/test_api_server.py::TestCORS::test_origin_rejected_by_default",
        "tests/gateway/test_api_server.py::TestCORS::test_origin_allowed_for_allowlist_match",
        "tests/gateway/test_api_server.py::TestCORS::test_cors_headers_for_origin_disabled_by_default",
        "tests/gateway/test_api_server.py::TestCORS::test_cors_headers_for_origin_matches_allowlist",
        "tests/gateway/test_api_server.py::TestCORS::test_cors_headers_for_origin_rejects_unknown_origin",
        "tests/gateway/test_api_server.py::TestCORS::test_cors_headers_not_present_by_default",
        "tests/gateway/test_api_server.py::TestCORS::test_browser_origin_rejected_by_default",
        "tests/gateway/test_api_server.py::TestCORS::test_cors_options_preflight_rejected_by_default",
        "tests/gateway/test_api_server.py::TestCORS::test_cors_headers_present_for_allowed_origin",
        "tests/gateway/test_api_server.py::TestCORS::test_cors_allows_idempotency_key_header",
        "tests/gateway/test_api_server.py::TestCORS::test_cors_sets_vary_origin_header",
        "tests/gateway/test_api_server.py::TestCORS::test_cors_options_preflight_allowed_for_configured_origin",
        "tests/gateway/test_api_server.py::TestCORS::test_cors_preflight_sets_max_age",
        "tests/gateway/test_api_server.py::TestConversationParameter::test_conversation_creates_new",
        "tests/gateway/test_api_server.py::TestConversationParameter::test_conversation_chains_automatically",
        "tests/gateway/test_api_server.py::TestConversationParameter::test_conversation_and_previous_response_id_conflict",
        "tests/gateway/test_api_server.py::TestConversationParameter::test_separate_conversations_are_isolated",
        "tests/gateway/test_api_server.py::TestConversationParameter::test_conversation_store_false_no_mapping",
        "tests/gateway/test_api_server.py::TestConversationParameter::test_conversation_reuse_after_eviction_no_404",
        "tests/gateway/test_api_server.py::TestSessionIdHeader::test_new_session_response_includes_session_id_header",
        "tests/gateway/test_api_server.py::TestSessionIdHeader::test_provided_session_id_is_used_and_echoed",
        "tests/gateway/test_api_server.py::TestSessionIdHeader::test_provided_session_id_loads_history_from_db",
        "tests/gateway/test_api_server.py::TestSessionIdHeader::test_db_failure_falls_back_to_empty_history",
        "tests/gateway/test_api_server.py::TestSessionKeyHeader::test_session_key_passed_to_agent_and_echoed",
        "tests/gateway/test_api_server.py::TestSessionKeyHeader::test_session_key_independent_of_session_id",
        "tests/gateway/test_api_server.py::TestSessionKeyHeader::test_session_key_absent_yields_none",
        "tests/gateway/test_api_server.py::TestSessionKeyHeader::test_session_key_rejected_without_api_key",
        "tests/gateway/test_api_server.py::TestSessionKeyHeader::test_session_key_rejects_control_chars",
        "tests/gateway/test_api_server.py::TestSessionKeyHeader::test_session_key_rejects_oversized",
        "tests/gateway/test_api_server.py::TestSessionKeyHeader::test_session_key_threads_into_create_agent",
        "tests/gateway/test_api_server.py::TestSessionKeyHeader::test_responses_endpoint_accepts_session_key",
        "tests/gateway/test_api_server.py::TestSessionKeyHeader::test_capabilities_advertises_session_key_header"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0008-test_api_server.py.log",
      "output_sha256": "7048c5f898f4b72338a8df699de9e4c91ca78616dd9ea201b7a35691fe7192dc",
      "returncode": 0,
      "test_file": "tests/gateway/test_api_server.py",
      "test_file_sha256": "f2210685cb3cee84772ae75421d3a82b5425b2885d79b6d35f8c41722f5ac705"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0009",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_api_server_bind_guard.py"
      ],
      "nodeids": [
        "tests/gateway/test_api_server_bind_guard.py::TestIsNetworkAccessible::test_ipv4_loopback",
        "tests/gateway/test_api_server_bind_guard.py::TestIsNetworkAccessible::test_ipv6_loopback",
        "tests/gateway/test_api_server_bind_guard.py::TestIsNetworkAccessible::test_ipv4_mapped_loopback",
        "tests/gateway/test_api_server_bind_guard.py::TestIsNetworkAccessible::test_ipv4_wildcard",
        "tests/gateway/test_api_server_bind_guard.py::TestIsNetworkAccessible::test_ipv6_wildcard",
        "tests/gateway/test_api_server_bind_guard.py::TestIsNetworkAccessible::test_ipv4_mapped_unspecified",
        "tests/gateway/test_api_server_bind_guard.py::TestIsNetworkAccessible::test_private_ipv4",
        "tests/gateway/test_api_server_bind_guard.py::TestIsNetworkAccessible::test_private_ipv4_class_c",
        "tests/gateway/test_api_server_bind_guard.py::TestIsNetworkAccessible::test_public_ipv4",
        "tests/gateway/test_api_server_bind_guard.py::TestIsNetworkAccessible::test_localhost_resolves_to_loopback",
        "tests/gateway/test_api_server_bind_guard.py::TestIsNetworkAccessible::test_hostname_resolving_to_non_loopback",
        "tests/gateway/test_api_server_bind_guard.py::TestIsNetworkAccessible::test_hostname_mixed_resolution",
        "tests/gateway/test_api_server_bind_guard.py::TestIsNetworkAccessible::test_dns_failure_fails_closed",
        "tests/gateway/test_api_server_bind_guard.py::TestConnectBindGuard::test_refuses_ipv4_wildcard_without_key",
        "tests/gateway/test_api_server_bind_guard.py::TestConnectBindGuard::test_refuses_ipv6_wildcard_without_key",
        "tests/gateway/test_api_server_bind_guard.py::TestConnectBindGuard::test_refuses_loopback_without_key",
        "tests/gateway/test_api_server_bind_guard.py::TestConnectBindGuard::test_allows_wildcard_with_key"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0009-test_api_server_bind_guard.py.log",
      "output_sha256": "32358312d90d2ae11c9249bdb84926b4cb87a937c25483d475e41219a97941bd",
      "returncode": 0,
      "test_file": "tests/gateway/test_api_server_bind_guard.py",
      "test_file_sha256": "d15ab923592384b4b3b2090150dd72bb26ab5b0b330c5b6e409efc07890d6c12"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0010",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_api_server_jobs.py"
      ],
      "nodeids": [
        "tests/gateway/test_api_server_jobs.py::TestListJobs::test_list_jobs",
        "tests/gateway/test_api_server_jobs.py::TestListJobs::test_list_jobs_include_disabled",
        "tests/gateway/test_api_server_jobs.py::TestListJobs::test_list_jobs_default_excludes_disabled",
        "tests/gateway/test_api_server_jobs.py::TestCreateJob::test_create_job",
        "tests/gateway/test_api_server_jobs.py::TestCreateJob::test_create_job_missing_name",
        "tests/gateway/test_api_server_jobs.py::TestCreateJob::test_create_job_name_too_long",
        "tests/gateway/test_api_server_jobs.py::TestCreateJob::test_create_job_prompt_too_long",
        "tests/gateway/test_api_server_jobs.py::TestCreateJob::test_create_job_invalid_repeat",
        "tests/gateway/test_api_server_jobs.py::TestCreateJob::test_create_job_missing_schedule",
        "tests/gateway/test_api_server_jobs.py::TestGetJob::test_get_job",
        "tests/gateway/test_api_server_jobs.py::TestGetJob::test_get_job_not_found",
        "tests/gateway/test_api_server_jobs.py::TestGetJob::test_get_job_invalid_id",
        "tests/gateway/test_api_server_jobs.py::TestGetJob::test_invalid_job_id_logs_source_context",
        "tests/gateway/test_api_server_jobs.py::TestUpdateJob::test_update_job",
        "tests/gateway/test_api_server_jobs.py::TestUpdateJob::test_update_job_rejects_unknown_fields",
        "tests/gateway/test_api_server_jobs.py::TestUpdateJob::test_update_job_no_valid_fields",
        "tests/gateway/test_api_server_jobs.py::TestDeleteJob::test_delete_job",
        "tests/gateway/test_api_server_jobs.py::TestDeleteJob::test_delete_job_not_found",
        "tests/gateway/test_api_server_jobs.py::TestPauseJob::test_pause_job",
        "tests/gateway/test_api_server_jobs.py::TestResumeJob::test_resume_job",
        "tests/gateway/test_api_server_jobs.py::TestRunJob::test_run_job",
        "tests/gateway/test_api_server_jobs.py::TestAuthRequired::test_auth_required_list_jobs",
        "tests/gateway/test_api_server_jobs.py::TestAuthRequired::test_auth_required_create_job",
        "tests/gateway/test_api_server_jobs.py::TestAuthRequired::test_auth_required_get_job",
        "tests/gateway/test_api_server_jobs.py::TestAuthRequired::test_auth_required_delete_job",
        "tests/gateway/test_api_server_jobs.py::TestAuthRequired::test_auth_passes_with_valid_key",
        "tests/gateway/test_api_server_jobs.py::TestCronUnavailable::test_cron_unavailable_list",
        "tests/gateway/test_api_server_jobs.py::TestCronUnavailable::test_pause_handler_no_self_binding",
        "tests/gateway/test_api_server_jobs.py::TestCronUnavailable::test_list_handler_no_self_binding",
        "tests/gateway/test_api_server_jobs.py::TestCronUnavailable::test_update_handler_no_self_binding",
        "tests/gateway/test_api_server_jobs.py::TestCronUnavailable::test_cron_unavailable_create",
        "tests/gateway/test_api_server_jobs.py::TestCronUnavailable::test_cron_unavailable_get",
        "tests/gateway/test_api_server_jobs.py::TestCronUnavailable::test_cron_unavailable_delete",
        "tests/gateway/test_api_server_jobs.py::TestCronUnavailable::test_cron_unavailable_pause",
        "tests/gateway/test_api_server_jobs.py::TestCronUnavailable::test_cron_unavailable_resume",
        "tests/gateway/test_api_server_jobs.py::TestCronUnavailable::test_cron_unavailable_run",
        "tests/gateway/test_api_server_jobs.py::TestCronPromptScanParity::test_create_job_rejects_malicious_prompt",
        "tests/gateway/test_api_server_jobs.py::TestCronPromptScanParity::test_create_job_allows_benign_prompt",
        "tests/gateway/test_api_server_jobs.py::TestCronPromptScanParity::test_update_job_rejects_malicious_prompt",
        "tests/gateway/test_api_server_jobs.py::TestCronPromptScanParity::test_update_job_allows_benign_prompt"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0010-test_api_server_jobs.py.log",
      "output_sha256": "857f945849f7c48712034c9e6a697a147e3557000719a7430aa20568f77e5c2a",
      "returncode": 0,
      "test_file": "tests/gateway/test_api_server_jobs.py",
      "test_file_sha256": "093129531f42a03ba32dd4461ad1a9494cb544288bc716cfe2440859bf7adc86"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0011",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_api_server_multimodal.py"
      ],
      "nodeids": [
        "tests/gateway/test_api_server_multimodal.py::TestNormalizeMultimodalContent::test_string_passthrough",
        "tests/gateway/test_api_server_multimodal.py::TestNormalizeMultimodalContent::test_none_returns_empty_string",
        "tests/gateway/test_api_server_multimodal.py::TestNormalizeMultimodalContent::test_text_only_list_collapses_to_string",
        "tests/gateway/test_api_server_multimodal.py::TestNormalizeMultimodalContent::test_responses_input_text_canonicalized",
        "tests/gateway/test_api_server_multimodal.py::TestNormalizeMultimodalContent::test_image_url_preserved_with_text",
        "tests/gateway/test_api_server_multimodal.py::TestNormalizeMultimodalContent::test_input_image_converted_to_canonical_shape",
        "tests/gateway/test_api_server_multimodal.py::TestNormalizeMultimodalContent::test_data_image_url_accepted",
        "tests/gateway/test_api_server_multimodal.py::TestNormalizeMultimodalContent::test_non_image_data_url_rejected",
        "tests/gateway/test_api_server_multimodal.py::TestNormalizeMultimodalContent::test_file_part_rejected",
        "tests/gateway/test_api_server_multimodal.py::TestNormalizeMultimodalContent::test_input_file_part_rejected",
        "tests/gateway/test_api_server_multimodal.py::TestNormalizeMultimodalContent::test_missing_url_rejected",
        "tests/gateway/test_api_server_multimodal.py::TestNormalizeMultimodalContent::test_bad_scheme_rejected",
        "tests/gateway/test_api_server_multimodal.py::TestNormalizeMultimodalContent::test_unknown_part_type_rejected",
        "tests/gateway/test_api_server_multimodal.py::TestContentHasVisiblePayload::test_non_empty_string",
        "tests/gateway/test_api_server_multimodal.py::TestContentHasVisiblePayload::test_whitespace_only_string",
        "tests/gateway/test_api_server_multimodal.py::TestContentHasVisiblePayload::test_list_with_image_only",
        "tests/gateway/test_api_server_multimodal.py::TestContentHasVisiblePayload::test_list_with_only_empty_text",
        "tests/gateway/test_api_server_multimodal.py::TestChatCompletionsMultimodalHTTP::test_inline_image_preserved_to_run_agent",
        "tests/gateway/test_api_server_multimodal.py::TestChatCompletionsMultimodalHTTP::test_text_only_array_collapses_to_string",
        "tests/gateway/test_api_server_multimodal.py::TestChatCompletionsMultimodalHTTP::test_file_part_returns_400",
        "tests/gateway/test_api_server_multimodal.py::TestChatCompletionsMultimodalHTTP::test_non_image_data_url_returns_400",
        "tests/gateway/test_api_server_multimodal.py::TestResponsesMultimodalHTTP::test_input_image_canonicalized_and_forwarded",
        "tests/gateway/test_api_server_multimodal.py::TestResponsesMultimodalHTTP::test_input_file_returns_400"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0011-test_api_server_multimodal.py.log",
      "output_sha256": "a33d4ee241f4f7b0e2840f0f90fa22cc2a21a1cbf00a26c4d451d7c8b06c1600",
      "returncode": 0,
      "test_file": "tests/gateway/test_api_server_multimodal.py",
      "test_file_sha256": "0ae5fb3c353b00464421bfee3a4b8b82be9140e1c92af5bdd7b6802beaa5ff20"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0012",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_api_server_normalize.py"
      ],
      "nodeids": [
        "tests/gateway/test_api_server_normalize.py::TestNormalizeChatContent::test_none_returns_empty_string",
        "tests/gateway/test_api_server_normalize.py::TestNormalizeChatContent::test_plain_string_returned_as_is",
        "tests/gateway/test_api_server_normalize.py::TestNormalizeChatContent::test_empty_string_returned_as_is",
        "tests/gateway/test_api_server_normalize.py::TestNormalizeChatContent::test_text_content_part",
        "tests/gateway/test_api_server_normalize.py::TestNormalizeChatContent::test_input_text_content_part",
        "tests/gateway/test_api_server_normalize.py::TestNormalizeChatContent::test_output_text_content_part",
        "tests/gateway/test_api_server_normalize.py::TestNormalizeChatContent::test_multiple_text_parts_joined_with_newline",
        "tests/gateway/test_api_server_normalize.py::TestNormalizeChatContent::test_mixed_string_and_dict_parts",
        "tests/gateway/test_api_server_normalize.py::TestNormalizeChatContent::test_image_url_parts_silently_skipped",
        "tests/gateway/test_api_server_normalize.py::TestNormalizeChatContent::test_integer_content_converted",
        "tests/gateway/test_api_server_normalize.py::TestNormalizeChatContent::test_boolean_content_converted",
        "tests/gateway/test_api_server_normalize.py::TestNormalizeChatContent::test_deeply_nested_list_respects_depth_limit",
        "tests/gateway/test_api_server_normalize.py::TestNormalizeChatContent::test_large_list_capped",
        "tests/gateway/test_api_server_normalize.py::TestNormalizeChatContent::test_oversized_string_truncated",
        "tests/gateway/test_api_server_normalize.py::TestNormalizeChatContent::test_empty_text_parts_filtered",
        "tests/gateway/test_api_server_normalize.py::TestNormalizeChatContent::test_dict_without_type_skipped",
        "tests/gateway/test_api_server_normalize.py::TestNormalizeChatContent::test_empty_list_returns_empty",
        "tests/gateway/test_api_server_normalize.py::TestNormalizeChatContent::test_many_small_parts_normalize_without_quadratic_rescan"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0012-test_api_server_normalize.py.log",
      "output_sha256": "fd93bfe15b6bc9c41ceaea6a731363cb3d6576e0103ce78fb3f2fde1f9d39985",
      "returncode": 0,
      "test_file": "tests/gateway/test_api_server_normalize.py",
      "test_file_sha256": "00017013f51c3284c650d02fd823f37e4b3ada55974de0d583c1ca386d7635c9"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0013",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_api_server_runs.py"
      ],
      "nodeids": [
        "tests/gateway/test_api_server_runs.py::TestStartRun::test_start_returns_202",
        "tests/gateway/test_api_server_runs.py::TestStartRun::test_start_invalid_json_returns_400",
        "tests/gateway/test_api_server_runs.py::TestStartRun::test_start_missing_input_returns_400",
        "tests/gateway/test_api_server_runs.py::TestStartRun::test_start_empty_input_returns_400",
        "tests/gateway/test_api_server_runs.py::TestStartRun::test_start_invalid_history_does_not_allocate_run",
        "tests/gateway/test_api_server_runs.py::TestStartRun::test_start_requires_auth",
        "tests/gateway/test_api_server_runs.py::TestStartRun::test_start_with_valid_auth",
        "tests/gateway/test_api_server_runs.py::TestRunStatus::test_status_completed_run_includes_output_and_usage",
        "tests/gateway/test_api_server_runs.py::TestRunStatus::test_status_reflects_explicit_session_id",
        "tests/gateway/test_api_server_runs.py::TestRunStatus::test_status_not_found_returns_404",
        "tests/gateway/test_api_server_runs.py::TestRunStatus::test_status_requires_auth",
        "tests/gateway/test_api_server_runs.py::TestRunEvents::test_events_stream_returns_completed",
        "tests/gateway/test_api_server_runs.py::TestRunEvents::test_approval_response_without_pending_returns_409",
        "tests/gateway/test_api_server_runs.py::TestRunEvents::test_approval_string_false_does_not_resolve_all",
        "tests/gateway/test_api_server_runs.py::TestRunEvents::test_events_not_found_returns_404",
        "tests/gateway/test_api_server_runs.py::TestRunEvents::test_events_requires_auth",
        "tests/gateway/test_api_server_runs.py::TestStopRun::test_stop_running_agent",
        "tests/gateway/test_api_server_runs.py::TestStopRun::test_stop_nonexistent_run_returns_404",
        "tests/gateway/test_api_server_runs.py::TestStopRun::test_stop_requires_auth",
        "tests/gateway/test_api_server_runs.py::TestStopRun::test_stop_already_completed_run_returns_404",
        "tests/gateway/test_api_server_runs.py::TestStopRun::test_stop_interrupt_exception_does_not_crash",
        "tests/gateway/test_api_server_runs.py::TestStopRun::test_stop_sends_sentinel_to_events_stream"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0013-test_api_server_runs.py.log",
      "output_sha256": "8c73f8ca19379c2e8523e1c9b6b69f63c7b7b055df653cb5d241240b90533a4a",
      "returncode": 0,
      "test_file": "tests/gateway/test_api_server_runs.py",
      "test_file_sha256": "ecf90ab61c485e68c8ccd3e57731801e1dac594e2e7d77067866aeb79053942e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0014",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_api_server_toolset.py"
      ],
      "nodeids": [
        "tests/gateway/test_api_server_toolset.py::TestHermesApiServerToolset::test_toolset_exists",
        "tests/gateway/test_api_server_toolset.py::TestHermesApiServerToolset::test_toolset_validates",
        "tests/gateway/test_api_server_toolset.py::TestHermesApiServerToolset::test_toolset_includes_web_tools",
        "tests/gateway/test_api_server_toolset.py::TestHermesApiServerToolset::test_toolset_includes_core_tools",
        "tests/gateway/test_api_server_toolset.py::TestHermesApiServerToolset::test_toolset_includes_browser_tools",
        "tests/gateway/test_api_server_toolset.py::TestHermesApiServerToolset::test_toolset_includes_homeassistant_tools",
        "tests/gateway/test_api_server_toolset.py::TestHermesApiServerToolset::test_toolset_excludes_clarify",
        "tests/gateway/test_api_server_toolset.py::TestHermesApiServerToolset::test_toolset_excludes_send_message",
        "tests/gateway/test_api_server_toolset.py::TestHermesApiServerToolset::test_toolset_excludes_text_to_speech",
        "tests/gateway/test_api_server_toolset.py::TestApiServerPlatformConfig::test_platforms_dict_includes_api_server",
        "tests/gateway/test_api_server_toolset.py::TestApiServerAdapterToolset::test_create_agent_reads_config_toolsets",
        "tests/gateway/test_api_server_toolset.py::TestApiServerAdapterToolset::test_create_agent_respects_config_override"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0014-test_api_server_toolset.py.log",
      "output_sha256": "47030cd7f3a196c0fa2f4aef9357d637c9d590408c853bc4d567cedb21603423",
      "returncode": 0,
      "test_file": "tests/gateway/test_api_server_toolset.py",
      "test_file_sha256": "f8283c55f988de48f4f566792e6c8a06c1cafa24394235f46b3522f81c652009"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0015",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_approve_deny_commands.py"
      ],
      "nodeids": [
        "tests/gateway/test_approve_deny_commands.py::TestBlockingGatewayApproval::test_register_and_resolve_unblocks_entry",
        "tests/gateway/test_approve_deny_commands.py::TestBlockingGatewayApproval::test_resolve_returns_zero_when_no_pending",
        "tests/gateway/test_approve_deny_commands.py::TestBlockingGatewayApproval::test_resolve_all_unblocks_multiple_entries",
        "tests/gateway/test_approve_deny_commands.py::TestBlockingGatewayApproval::test_resolve_single_pops_oldest_fifo",
        "tests/gateway/test_approve_deny_commands.py::TestBlockingGatewayApproval::test_unregister_signals_all_entries",
        "tests/gateway/test_approve_deny_commands.py::TestBlockingGatewayApproval::test_clear_session_denies_and_signals_all_entries",
        "tests/gateway/test_approve_deny_commands.py::TestApproveCommand::test_approve_resolves_blocking_approval",
        "tests/gateway/test_approve_deny_commands.py::TestApproveCommand::test_approve_all_resolves_multiple",
        "tests/gateway/test_approve_deny_commands.py::TestApproveCommand::test_approve_all_session",
        "tests/gateway/test_approve_deny_commands.py::TestApproveCommand::test_approve_no_pending",
        "tests/gateway/test_approve_deny_commands.py::TestApproveCommand::test_approve_stale_old_style_pending",
        "tests/gateway/test_approve_deny_commands.py::TestDenyCommand::test_deny_resolves_blocking_approval",
        "tests/gateway/test_approve_deny_commands.py::TestDenyCommand::test_deny_all_resolves_all",
        "tests/gateway/test_approve_deny_commands.py::TestDenyCommand::test_deny_no_pending",
        "tests/gateway/test_approve_deny_commands.py::TestBareTextNoLongerApproves::test_yes_does_not_execute_pending_command",
        "tests/gateway/test_approve_deny_commands.py::TestBlockingApprovalE2E::test_blocking_approval_approve_once",
        "tests/gateway/test_approve_deny_commands.py::TestBlockingApprovalE2E::test_blocking_approval_deny",
        "tests/gateway/test_approve_deny_commands.py::TestBlockingApprovalE2E::test_blocking_approval_timeout",
        "tests/gateway/test_approve_deny_commands.py::TestBlockingApprovalE2E::test_parallel_subagent_approvals",
        "tests/gateway/test_approve_deny_commands.py::TestBlockingApprovalE2E::test_parallel_mixed_approve_deny",
        "tests/gateway/test_approve_deny_commands.py::TestFallbackNoCallback::test_no_callback_returns_approval_required"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0015-test_approve_deny_commands.py.log",
      "output_sha256": "4ebe7f0b5094beffbe4d6189c68d0e8e13744598aeb9000bc594a682439def43",
      "returncode": 0,
      "test_file": "tests/gateway/test_approve_deny_commands.py",
      "test_file_sha256": "f409fabd4056f6e8b599d7e59a7607bb80306b390efc082f7d9dcd48ffdb291c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0016",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_auth_fallback.py"
      ],
      "nodeids": [
        "tests/gateway/test_auth_fallback.py::TestResolveRuntimeAgentKwargsAuthFallback::test_auth_error_tries_fallback",
        "tests/gateway/test_auth_fallback.py::TestResolveRuntimeAgentKwargsAuthFallback::test_auth_error_no_fallback_raises",
        "tests/gateway/test_auth_fallback.py::TestResolveRuntimeAgentKwargsAuthFallback::test_legacy_fallback_is_appended_after_fallback_providers"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0016-test_auth_fallback.py.log",
      "output_sha256": "0a8f5e48297d42851f86837ff4b8b8a2e6918b3ba4bb71d2f94399b753651bfd",
      "returncode": 0,
      "test_file": "tests/gateway/test_auth_fallback.py",
      "test_file_sha256": "3d402ed56b2240191dfc5ba8bbd123f6aa6aaa4d7f77212e0cb5c85976085215"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0017",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_auto_continue.py"
      ],
      "nodeids": [
        "tests/gateway/test_auto_continue.py::TestAutoDetection::test_trailing_tool_result_triggers_note",
        "tests/gateway/test_auto_continue.py::TestAutoDetection::test_trailing_assistant_message_no_note",
        "tests/gateway/test_auto_continue.py::TestAutoDetection::test_empty_history_no_note",
        "tests/gateway/test_auto_continue.py::TestAutoDetection::test_trailing_user_message_no_note",
        "tests/gateway/test_auto_continue.py::TestAutoDetection::test_multiple_tool_results_still_triggers",
        "tests/gateway/test_auto_continue.py::TestAutoDetection::test_original_message_preserved_after_note",
        "tests/gateway/test_auto_continue.py::TestInterruptedReplayFiltering::test_interrupted_tool_tail_is_removed_from_agent_history",
        "tests/gateway/test_auto_continue.py::TestInterruptedReplayFiltering::test_mixed_tail_with_one_interrupted_result_is_removed",
        "tests/gateway/test_auto_continue.py::TestInterruptedReplayFiltering::test_successful_tool_tail_is_preserved",
        "tests/gateway/test_auto_continue.py::TestInterruptedReplayFiltering::test_dangling_unanswered_tool_call_tail_is_removed",
        "tests/gateway/test_auto_continue.py::TestInterruptedReplayFiltering::test_dangling_tail_after_completed_pair_is_removed_only_at_tail",
        "tests/gateway/test_auto_continue.py::TestInterruptedReplayFiltering::test_persisted_auto_continue_note_is_not_replayed"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0017-test_auto_continue.py.log",
      "output_sha256": "12b224c32c7267add8cfbd4c67290d08599a13c7db28587ce3a35722c0d10ae7",
      "returncode": 0,
      "test_file": "tests/gateway/test_auto_continue.py",
      "test_file_sha256": "454468394c4f51bdc9ec120a28ae8687a1d403426ac379ff11aee63d53646d57"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0018",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_auto_voice_reply_format.py"
      ],
      "nodeids": [
        "tests/gateway/test_auto_voice_reply_format.py::TestAutoVoiceReplyFormat::test_telegram_auto_voice_reply_requests_ogg_for_native_voice_bubble",
        "tests/gateway/test_auto_voice_reply_format.py::TestAutoVoiceReplyFormat::test_non_telegram_auto_voice_reply_keeps_mp3_default"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0018-test_auto_voice_reply_format.py.log",
      "output_sha256": "78176f5eae4032f11da7ec2a05f3082c865c7b5c54397a260a5bea6a41838165",
      "returncode": 0,
      "test_file": "tests/gateway/test_auto_voice_reply_format.py",
      "test_file_sha256": "c3f983a713e2df8a7953309b83c9e804380ca6a7d6fd34b5e5d894d779e5ba9e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0019",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_background_command.py"
      ],
      "nodeids": [
        "tests/gateway/test_background_command.py::TestHandleBackgroundCommand::test_no_prompt_shows_usage",
        "tests/gateway/test_background_command.py::TestHandleBackgroundCommand::test_bg_alias_no_prompt_shows_usage",
        "tests/gateway/test_background_command.py::TestHandleBackgroundCommand::test_empty_prompt_shows_usage",
        "tests/gateway/test_background_command.py::TestHandleBackgroundCommand::test_valid_prompt_starts_task",
        "tests/gateway/test_background_command.py::TestHandleBackgroundCommand::test_telegram_dm_topic_passes_trigger_anchor_to_task",
        "tests/gateway/test_background_command.py::TestHandleBackgroundCommand::test_prompt_truncated_in_preview",
        "tests/gateway/test_background_command.py::TestHandleBackgroundCommand::test_task_id_is_unique",
        "tests/gateway/test_background_command.py::TestHandleBackgroundCommand::test_works_across_platforms",
        "tests/gateway/test_background_command.py::TestRunBackgroundTask::test_no_adapter_returns_silently",
        "tests/gateway/test_background_command.py::TestRunBackgroundTask::test_no_credentials_sends_error",
        "tests/gateway/test_background_command.py::TestRunBackgroundTask::test_successful_task_sends_result",
        "tests/gateway/test_background_command.py::TestRunBackgroundTask::test_media_files_routed_by_type",
        "tests/gateway/test_background_command.py::TestRunBackgroundTask::test_telegram_dm_topic_completion_preserves_reply_anchor_metadata",
        "tests/gateway/test_background_command.py::TestRunBackgroundTask::test_agent_cleanup_runs_when_background_agent_raises",
        "tests/gateway/test_background_command.py::TestRunBackgroundTask::test_exception_sends_error_message",
        "tests/gateway/test_background_command.py::TestBackgroundInHelp::test_background_in_help_output",
        "tests/gateway/test_background_command.py::TestBackgroundInHelp::test_background_is_known_command",
        "tests/gateway/test_background_command.py::TestBackgroundInHelp::test_bg_alias_is_known_command",
        "tests/gateway/test_background_command.py::TestBackgroundInCLICommands::test_background_in_commands_dict",
        "tests/gateway/test_background_command.py::TestBackgroundInCLICommands::test_bg_alias_in_commands_dict",
        "tests/gateway/test_background_command.py::TestBackgroundInCLICommands::test_background_in_session_category",
        "tests/gateway/test_background_command.py::TestBackgroundInCLICommands::test_background_autocompletes"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0019-test_background_command.py.log",
      "output_sha256": "4df5565e10e1bfd82c10e0ead18f10de64cecccac14990879cc8e32eaf8e484c",
      "returncode": 0,
      "test_file": "tests/gateway/test_background_command.py",
      "test_file_sha256": "18cc5c64256601a0186708a1c2f8be1ed3a00cd85c65aad18589c0b7315c1432"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0020",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_background_process_notifications.py"
      ],
      "nodeids": [
        "tests/gateway/test_background_process_notifications.py::TestLoadBackgroundNotificationsMode::test_defaults_to_all",
        "tests/gateway/test_background_process_notifications.py::TestLoadBackgroundNotificationsMode::test_reads_config_yaml",
        "tests/gateway/test_background_process_notifications.py::TestLoadBackgroundNotificationsMode::test_env_var_overrides_config",
        "tests/gateway/test_background_process_notifications.py::TestLoadBackgroundNotificationsMode::test_false_value_maps_to_off",
        "tests/gateway/test_background_process_notifications.py::TestLoadBackgroundNotificationsMode::test_invalid_value_defaults_to_all",
        "tests/gateway/test_background_process_notifications.py::test_run_process_watcher_respects_notification_mode[all-sessions0-1-is still running]",
        "tests/gateway/test_background_process_notifications.py::test_run_process_watcher_respects_notification_mode[result-sessions1-0-None]",
        "tests/gateway/test_background_process_notifications.py::test_run_process_watcher_respects_notification_mode[off-sessions2-0-None]",
        "tests/gateway/test_background_process_notifications.py::test_run_process_watcher_respects_notification_mode[result-sessions3-1-finished with exit code 0]",
        "tests/gateway/test_background_process_notifications.py::test_run_process_watcher_respects_notification_mode[error-sessions4-0-None]",
        "tests/gateway/test_background_process_notifications.py::test_run_process_watcher_respects_notification_mode[error-sessions5-1-finished with exit code 1]",
        "tests/gateway/test_background_process_notifications.py::test_run_process_watcher_respects_notification_mode[all-sessions6-1-finished with exit code 0]",
        "tests/gateway/test_background_process_notifications.py::test_thread_id_passed_to_send",
        "tests/gateway/test_background_process_notifications.py::test_no_thread_id_sends_no_metadata",
        "tests/gateway/test_background_process_notifications.py::test_inject_watch_notification_routes_from_session_store_origin",
        "tests/gateway/test_background_process_notifications.py::test_agent_notification_carries_message_id_reply_anchor",
        "tests/gateway/test_background_process_notifications.py::test_agent_notification_no_message_id_is_tolerated",
        "tests/gateway/test_background_process_notifications.py::test_inject_watch_notification_carries_message_id_reply_anchor",
        "tests/gateway/test_background_process_notifications.py::test_build_process_event_source_falls_back_to_session_key_chat_type",
        "tests/gateway/test_background_process_notifications.py::test_build_process_event_source_uses_cached_live_source_before_session_key_parse",
        "tests/gateway/test_background_process_notifications.py::test_inject_watch_notification_ignores_foreground_event_source",
        "tests/gateway/test_background_process_notifications.py::test_build_process_event_source_returns_none_for_empty_evt",
        "tests/gateway/test_background_process_notifications.py::test_build_process_event_source_returns_none_for_invalid_platform",
        "tests/gateway/test_background_process_notifications.py::test_build_process_event_source_returns_none_for_short_session_key",
        "tests/gateway/test_background_process_notifications.py::test_parse_session_key_valid",
        "tests/gateway/test_background_process_notifications.py::test_parse_session_key_with_extra_parts",
        "tests/gateway/test_background_process_notifications.py::test_parse_session_key_with_user_id_part",
        "tests/gateway/test_background_process_notifications.py::test_parse_session_key_dm_with_thread",
        "tests/gateway/test_background_process_notifications.py::test_parse_session_key_thread_chat_type",
        "tests/gateway/test_background_process_notifications.py::test_parse_session_key_too_short",
        "tests/gateway/test_background_process_notifications.py::test_parse_session_key_wrong_prefix"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0020-test_background_process_notifications.py.log",
      "output_sha256": "96f8a8f32bca8bf284cbd2c36f3a57b4bb244986545d86b171ca28b895fdafb0",
      "returncode": 0,
      "test_file": "tests/gateway/test_background_process_notifications.py",
      "test_file_sha256": "b8b1c8bc75d855d05394a9b7a0726bfe32e1ab3a860a948d858e34526de73d6e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0021",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_base_topic_sessions.py"
      ],
      "nodeids": [
        "tests/gateway/test_base_topic_sessions.py::TestBasePlatformTopicSessions::test_handle_message_does_not_interrupt_different_topic",
        "tests/gateway/test_base_topic_sessions.py::TestBasePlatformTopicSessions::test_handle_message_interrupts_same_topic",
        "tests/gateway/test_base_topic_sessions.py::TestBasePlatformTopicSessions::test_process_message_background_replies_in_same_topic",
        "tests/gateway/test_base_topic_sessions.py::TestBasePlatformTopicSessions::test_process_message_background_marks_total_send_failure_unsuccessful",
        "tests/gateway/test_base_topic_sessions.py::TestBasePlatformTopicSessions::test_process_message_background_marks_exception_unsuccessful",
        "tests/gateway/test_base_topic_sessions.py::TestBasePlatformTopicSessions::test_process_message_background_marks_cancellation_unsuccessful",
        "tests/gateway/test_base_topic_sessions.py::TestBasePlatformTopicSessions::test_cancel_background_tasks_marks_expected_cancellation_cancelled",
        "tests/gateway/test_base_topic_sessions.py::TestTelegramAutoTtsCaptionDelivery::test_short_telegram_auto_tts_uses_caption_without_followup_text",
        "tests/gateway/test_base_topic_sessions.py::TestTelegramAutoTtsCaptionDelivery::test_long_telegram_auto_tts_keeps_followup_text_when_caption_would_truncate",
        "tests/gateway/test_base_topic_sessions.py::TestTelegramAutoTtsCaptionDelivery::test_telegram_auto_tts_send_failure_keeps_followup_text"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0021-test_base_topic_sessions.py.log",
      "output_sha256": "05f6790fc2d55889d3ecb7a2b110d51c11c40a16e6f67381158f8076ecb37301",
      "returncode": 0,
      "test_file": "tests/gateway/test_base_topic_sessions.py",
      "test_file_sha256": "5b22f5c6fada5456555a7c421ac4f0772797b17463872e35fd47569724e3fe3d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0022",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_bluebubbles.py"
      ],
      "nodeids": [
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesConfigLoading::test_apply_env_overrides_bluebubbles",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesConfigLoading::test_home_channel_set_from_env",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesConfigLoading::test_not_connected_without_password",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesHelpers::test_check_requirements",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesHelpers::test_supports_message_editing_is_false",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesHelpers::test_truncate_message_omits_pagination_suffixes",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesHelpers::test_send_splits_paragraphs_into_multiple_bubbles",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesHelpers::test_format_message_strips_markdown",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesHelpers::test_format_message_preserves_underscores_in_identifiers",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesHelpers::test_strip_markdown_headers",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesHelpers::test_strip_markdown_links",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesHelpers::test_init_normalizes_webhook_path",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesHelpers::test_init_preserves_leading_slash",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesHelpers::test_server_url_normalized",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesHelpers::test_server_url_adds_scheme",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesHelpers::test_default_mention_patterns_match_hermes_variants",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesHelpers::test_custom_mention_patterns_override_defaults",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesHelpers::test_clean_mention_text_strips_leading_wake_word",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesMentionGating::test_group_message_without_mention_is_acknowledged_and_skipped",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesMentionGating::test_group_message_with_default_mention_is_dispatched_cleaned",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesMentionGating::test_dm_message_does_not_require_mention",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookParsing::test_webhook_prefers_chat_guid_over_message_guid",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookParsing::test_webhook_can_fall_back_to_sender_when_chat_fields_missing",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookParsing::test_webhook_extracts_chat_guid_from_chats_array_dm",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookParsing::test_webhook_extracts_chat_guid_from_chats_array_group",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookParsing::test_extract_payload_record_accepts_list_data",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookParsing::test_extract_payload_record_dict_data",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookParsing::test_extract_payload_record_fallback_to_message",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesGuidResolution::test_raw_guid_returned_as_is",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesGuidResolution::test_empty_target_returns_none",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesAttachmentDownload::test_download_image_uses_image_cache",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesAttachmentDownload::test_download_audio_uses_audio_cache",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesAttachmentDownload::test_download_document_uses_document_cache",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesAttachmentDownload::test_download_returns_none_without_client",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookUrl::test_default_host",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookUrl::test_local_hosts_normalized[0.0.0.0]",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookUrl::test_local_hosts_normalized[127.0.0.1]",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookUrl::test_local_hosts_normalized[localhost]",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookUrl::test_local_hosts_normalized[::]",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookUrl::test_custom_host_preserved",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookUrl::test_register_url_embeds_password",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookUrl::test_register_url_url_encodes_password",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookUrl::test_register_url_for_log_masks_password",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookUrl::test_register_url_omits_query_when_no_password",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookRegistration::test_find_registered_webhooks_returns_matches",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookRegistration::test_find_registered_webhooks_empty_when_none",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookRegistration::test_find_registered_webhooks_handles_api_error",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookRegistration::test_register_fresh",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookRegistration::test_register_accepts_201",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookRegistration::test_register_reuses_existing",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookRegistration::test_register_returns_false_without_client",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookRegistration::test_register_returns_false_on_server_error",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookRegistration::test_unregister_removes_matching",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookRegistration::test_unregister_removes_all_duplicates",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookRegistration::test_unregister_returns_false_without_client",
        "tests/gateway/test_bluebubbles.py::TestBlueBubblesWebhookRegistration::test_unregister_handles_api_failure_gracefully"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0022-test_bluebubbles.py.log",
      "output_sha256": "fc88db6b77dbf3cf550034fb6582fdad858839b85497881e3344c705662c4aa7",
      "returncode": 0,
      "test_file": "tests/gateway/test_bluebubbles.py",
      "test_file_sha256": "590eb6586097660f6ede0466fe473f1bdaa136e37011d0b14f75b137432aaceb"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0023",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_bundles_command.py"
      ],
      "nodeids": [
        "tests/gateway/test_bundles_command.py::TestHandleBundlesCommand::test_empty",
        "tests/gateway/test_bundles_command.py::TestHandleBundlesCommand::test_with_bundles",
        "tests/gateway/test_bundles_command.py::TestBundleResolutionPriority::test_bundle_resolves",
        "tests/gateway/test_bundles_command.py::TestBundleResolutionPriority::test_underscore_alias"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0023-test_bundles_command.py.log",
      "output_sha256": "a569b609715b4213a532f4d4f68bddd8d6fc20aeb8a026686f366c4f973547a8",
      "returncode": 0,
      "test_file": "tests/gateway/test_bundles_command.py",
      "test_file_sha256": "c61d0309d92bd4c640ca2b75523d890b7afbb252e0555465deaef2b47b75c395"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0024",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_busy_session_ack.py"
      ],
      "nodeids": [
        "tests/gateway/test_busy_session_ack.py::TestBusySessionAck::test_handle_message_queue_mode_queues_without_interrupt",
        "tests/gateway/test_busy_session_ack.py::TestBusySessionAck::test_telegram_grace_followups_respect_queue_fifo",
        "tests/gateway/test_busy_session_ack.py::TestBusySessionAck::test_sends_ack_when_agent_running",
        "tests/gateway/test_busy_session_ack.py::TestBusySessionAck::test_queue_mode_suppresses_interrupt_and_updates_ack",
        "tests/gateway/test_busy_session_ack.py::TestBusySessionAck::test_busy_text_mode_queue_delegates_to_adapter_handle_message",
        "tests/gateway/test_busy_session_ack.py::TestBusySessionAck::test_steer_mode_calls_agent_steer_no_interrupt_no_queue",
        "tests/gateway/test_busy_session_ack.py::TestBusySessionAck::test_steer_mode_falls_back_to_queue_when_agent_rejects",
        "tests/gateway/test_busy_session_ack.py::TestBusySessionAck::test_steer_mode_falls_back_to_queue_when_agent_pending",
        "tests/gateway/test_busy_session_ack.py::TestBusySessionAck::test_debounce_suppresses_rapid_acks",
        "tests/gateway/test_busy_session_ack.py::TestBusySessionAck::test_ack_after_cooldown_expires",
        "tests/gateway/test_busy_session_ack.py::TestBusySessionAck::test_includes_status_detail_when_opted_in",
        "tests/gateway/test_busy_session_ack.py::TestBusySessionAck::test_telegram_omits_status_detail_by_default",
        "tests/gateway/test_busy_session_ack.py::TestBusySessionAck::test_draining_still_works",
        "tests/gateway/test_busy_session_ack.py::TestBusySessionAck::test_pending_sentinel_no_interrupt",
        "tests/gateway/test_busy_session_ack.py::TestBusySessionAck::test_no_adapter_falls_through",
        "tests/gateway/test_busy_session_ack.py::TestBusySessionOnboardingHint::test_first_busy_ack_appends_interrupt_hint",
        "tests/gateway/test_busy_session_ack.py::TestBusySessionOnboardingHint::test_second_busy_ack_omits_hint",
        "tests/gateway/test_busy_session_ack.py::TestBusySessionOnboardingHint::test_queue_mode_hint_points_to_interrupt"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0024-test_busy_session_ack.py.log",
      "output_sha256": "e2f64ffaeb842ee8ccd066744ebeffbeed58daacb8546ad146b2714a61a7150b",
      "returncode": 0,
      "test_file": "tests/gateway/test_busy_session_ack.py",
      "test_file_sha256": "ddf2564d352ae83a70a44c8d469ef7bbb2968e3ebb9f0be28ca0aeac69093bd1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0025",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_busy_session_auth_bypass.py"
      ],
      "nodeids": [
        "tests/gateway/test_busy_session_auth_bypass.py::TestBusySessionAuthBypass::test_unauthorized_user_dropped_in_busy_path",
        "tests/gateway/test_busy_session_auth_bypass.py::TestBusySessionAuthBypass::test_authorized_user_still_processed_in_busy_path",
        "tests/gateway/test_busy_session_auth_bypass.py::TestBusySessionAuthBypass::test_unauthorized_user_during_drain_still_blocked",
        "tests/gateway/test_busy_session_auth_bypass.py::TestBusySessionAuthBypass::test_unauthorized_user_cannot_steer_active_agent"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0025-test_busy_session_auth_bypass.py.log",
      "output_sha256": "37e5b8ded3ab32ce26c5953535453a79308764ded911cf6d5f71e580770d589e",
      "returncode": 0,
      "test_file": "tests/gateway/test_busy_session_auth_bypass.py",
      "test_file_sha256": "5bd9c2079b036ee0434bf498552c91deb3700edb5638ab7326d23b6617d1b71d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0026",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_cached_agent_max_iterations.py"
      ],
      "nodeids": [
        "tests/gateway/test_cached_agent_max_iterations.py::test_init_cached_agent_for_turn_does_not_touch_max_iterations",
        "tests/gateway/test_cached_agent_max_iterations.py::test_init_cached_agent_preserves_max_iterations_on_interrupt_depth",
        "tests/gateway/test_cached_agent_max_iterations.py::test_refreshed_max_iterations_propagates_to_turn_budget"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0026-test_cached_agent_max_iterations.py.log",
      "output_sha256": "d8364364ea5f7b8f1e0b7c8f8deddda72eb82bbbe419712ebd9c02b068129524",
      "returncode": 0,
      "test_file": "tests/gateway/test_cached_agent_max_iterations.py",
      "test_file_sha256": "5fc1b77a8d862d34b6d043c2e199dcd810f30e39b9a70b68fcb6a918b53275e5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0027",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_cancel_background_drain.py"
      ],
      "nodeids": [
        "tests/gateway/test_cancel_background_drain.py::test_cancel_background_tasks_drains_late_arrivals",
        "tests/gateway/test_cancel_background_drain.py::test_cancel_background_tasks_handles_no_tasks",
        "tests/gateway/test_cancel_background_drain.py::test_cancel_background_tasks_bounded_rounds"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0027-test_cancel_background_drain.py.log",
      "output_sha256": "64ce54608bab64974dc052478fa3a7f679e881fb7b1cfa5e6743af84ca24dc60",
      "returncode": 0,
      "test_file": "tests/gateway/test_cancel_background_drain.py",
      "test_file_sha256": "42290447d422cab0bc1bec63ca0ed50711ec3a398f747b284663d0598014f174"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0028",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_channel_directory.py"
      ],
      "nodeids": [
        "tests/gateway/test_channel_directory.py::TestLoadDirectory::test_missing_file",
        "tests/gateway/test_channel_directory.py::TestLoadDirectory::test_valid_file",
        "tests/gateway/test_channel_directory.py::TestLoadDirectory::test_corrupt_file",
        "tests/gateway/test_channel_directory.py::TestBuildChannelDirectoryWrites::test_failed_write_preserves_previous_cache",
        "tests/gateway/test_channel_directory.py::TestResolveChannelName::test_exact_match",
        "tests/gateway/test_channel_directory.py::TestResolveChannelName::test_case_insensitive",
        "tests/gateway/test_channel_directory.py::TestResolveChannelName::test_guild_qualified_match",
        "tests/gateway/test_channel_directory.py::TestResolveChannelName::test_prefix_match_unambiguous",
        "tests/gateway/test_channel_directory.py::TestResolveChannelName::test_prefix_match_ambiguous_returns_none",
        "tests/gateway/test_channel_directory.py::TestResolveChannelName::test_no_channels_returns_none",
        "tests/gateway/test_channel_directory.py::TestResolveChannelName::test_no_match_returns_none",
        "tests/gateway/test_channel_directory.py::TestResolveChannelName::test_topic_name_resolves_to_composite_id",
        "tests/gateway/test_channel_directory.py::TestResolveChannelName::test_id_match_takes_precedence_over_name",
        "tests/gateway/test_channel_directory.py::TestResolveChannelName::test_display_label_with_type_suffix_resolves",
        "tests/gateway/test_channel_directory.py::TestBuildFromSessions::test_builds_from_sessions_json",
        "tests/gateway/test_channel_directory.py::TestBuildFromSessions::test_missing_sessions_file",
        "tests/gateway/test_channel_directory.py::TestBuildFromSessions::test_deduplication_by_chat_id",
        "tests/gateway/test_channel_directory.py::TestBuildFromSessions::test_keeps_distinct_topics_with_same_chat_id",
        "tests/gateway/test_channel_directory.py::TestFormatDirectoryForDisplay::test_empty_directory",
        "tests/gateway/test_channel_directory.py::TestFormatDirectoryForDisplay::test_telegram_display",
        "tests/gateway/test_channel_directory.py::TestFormatDirectoryForDisplay::test_discord_grouped_by_guild",
        "tests/gateway/test_channel_directory.py::TestLookupChannelType::test_forum_channel",
        "tests/gateway/test_channel_directory.py::TestLookupChannelType::test_regular_channel",
        "tests/gateway/test_channel_directory.py::TestLookupChannelType::test_unknown_chat_id_returns_none",
        "tests/gateway/test_channel_directory.py::TestLookupChannelType::test_unknown_platform_returns_none",
        "tests/gateway/test_channel_directory.py::TestLookupChannelType::test_channel_without_type_key_returns_none",
        "tests/gateway/test_channel_directory.py::TestBuildSlack::test_no_team_clients_falls_back_to_sessions",
        "tests/gateway/test_channel_directory.py::TestBuildSlack::test_lists_channels_from_users_conversations",
        "tests/gateway/test_channel_directory.py::TestBuildSlack::test_paginates_via_response_metadata_cursor",
        "tests/gateway/test_channel_directory.py::TestBuildSlack::test_per_workspace_error_does_not_block_others",
        "tests/gateway/test_channel_directory.py::TestBuildSlack::test_session_dms_merged_when_not_in_api_results",
        "tests/gateway/test_channel_directory.py::TestBuildSlack::test_skips_channels_with_no_id_or_name",
        "tests/gateway/test_channel_directory.py::TestBuildSlack::test_response_not_ok_breaks_pagination_for_that_workspace",
        "tests/gateway/test_channel_directory.py::TestChannelAliases::test_alias_renames_existing_entry_on_load",
        "tests/gateway/test_channel_directory.py::TestChannelAliases::test_alias_injects_undiscovered_group",
        "tests/gateway/test_channel_directory.py::TestChannelAliases::test_no_alias_file_is_noop",
        "tests/gateway/test_channel_directory.py::TestChannelAliases::test_corrupt_alias_file_is_ignored",
        "tests/gateway/test_channel_directory.py::TestChannelAliases::test_alias_persists_through_rebuild",
        "tests/gateway/test_channel_directory.py::TestChannelAliases::test_apply_aliases_handles_malformed_map"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0028-test_channel_directory.py.log",
      "output_sha256": "eb306911251f125bdb0b8132e73a7e9963275c16c539a0a08ec9dac7724348a6",
      "returncode": 0,
      "test_file": "tests/gateway/test_channel_directory.py",
      "test_file_sha256": "28a76f3e8ac13d5ba10191f3b39928e81d00b3730908cc5b5a1c14eac5cace15"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0029",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_clean_shutdown_marker.py"
      ],
      "nodeids": [
        "tests/gateway/test_clean_shutdown_marker.py::TestSuspendRecentlyActive::test_suspends_recently_active_sessions",
        "tests/gateway/test_clean_shutdown_marker.py::TestSuspendRecentlyActive::test_does_not_suspend_old_sessions",
        "tests/gateway/test_clean_shutdown_marker.py::TestSuspendRecentlyActive::test_already_resume_pending_not_double_counted",
        "tests/gateway/test_clean_shutdown_marker.py::TestCleanShutdownMarker::test_marker_written_on_graceful_stop",
        "tests/gateway/test_clean_shutdown_marker.py::TestCleanShutdownMarker::test_marker_skips_suspension_on_startup",
        "tests/gateway/test_clean_shutdown_marker.py::TestCleanShutdownMarker::test_no_marker_triggers_suspension",
        "tests/gateway/test_clean_shutdown_marker.py::TestCleanShutdownMarker::test_marker_written_on_restart_stop"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0029-test_clean_shutdown_marker.py.log",
      "output_sha256": "0a758dda5cd19637ab2f2b08c10efde76521a079eed8ce8f907df784dfde17f2",
      "returncode": 0,
      "test_file": "tests/gateway/test_clean_shutdown_marker.py",
      "test_file_sha256": "1680c4fc00858f6f53384407c8e165eaa165f6b61fa4d39a6aafc4e25f4f484c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0030",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_command_bypass_active_session.py"
      ],
      "nodeids": [
        "tests/gateway/test_command_bypass_active_session.py::TestCommandBypassActiveSession::test_stop_bypasses_guard",
        "tests/gateway/test_command_bypass_active_session.py::TestCommandBypassActiveSession::test_new_bypasses_guard",
        "tests/gateway/test_command_bypass_active_session.py::TestCommandBypassActiveSession::test_reset_bypasses_guard",
        "tests/gateway/test_command_bypass_active_session.py::TestCommandBypassActiveSession::test_approve_bypasses_guard",
        "tests/gateway/test_command_bypass_active_session.py::TestCommandBypassActiveSession::test_deny_bypasses_guard",
        "tests/gateway/test_command_bypass_active_session.py::TestCommandBypassActiveSession::test_status_bypasses_guard",
        "tests/gateway/test_command_bypass_active_session.py::TestCommandBypassActiveSession::test_agents_bypasses_guard",
        "tests/gateway/test_command_bypass_active_session.py::TestCommandBypassActiveSession::test_tasks_alias_bypasses_guard",
        "tests/gateway/test_command_bypass_active_session.py::TestCommandBypassActiveSession::test_background_bypasses_guard",
        "tests/gateway/test_command_bypass_active_session.py::TestCommandBypassActiveSession::test_steer_bypasses_guard",
        "tests/gateway/test_command_bypass_active_session.py::TestCommandBypassActiveSession::test_help_bypasses_guard",
        "tests/gateway/test_command_bypass_active_session.py::TestCommandBypassActiveSession::test_update_bypasses_guard",
        "tests/gateway/test_command_bypass_active_session.py::TestCommandBypassActiveSession::test_queue_bypasses_guard",
        "tests/gateway/test_command_bypass_active_session.py::TestAllResolvableCommandsBypassGuard::test_command_bypasses_guard[/model claude-sonnet-4-model]",
        "tests/gateway/test_command_bypass_active_session.py::TestAllResolvableCommandsBypassGuard::test_command_bypasses_guard[/model-model]",
        "tests/gateway/test_command_bypass_active_session.py::TestAllResolvableCommandsBypassGuard::test_command_bypasses_guard[/reasoning high-reasoning]",
        "tests/gateway/test_command_bypass_active_session.py::TestAllResolvableCommandsBypassGuard::test_command_bypasses_guard[/personality default-personality]",
        "tests/gateway/test_command_bypass_active_session.py::TestAllResolvableCommandsBypassGuard::test_command_bypasses_guard[/voice on-voice]",
        "tests/gateway/test_command_bypass_active_session.py::TestAllResolvableCommandsBypassGuard::test_command_bypasses_guard[/insights 7-insights]",
        "tests/gateway/test_command_bypass_active_session.py::TestAllResolvableCommandsBypassGuard::test_command_bypasses_guard[/title my session-title]",
        "tests/gateway/test_command_bypass_active_session.py::TestAllResolvableCommandsBypassGuard::test_command_bypasses_guard[/resume yesterday-resume]",
        "tests/gateway/test_command_bypass_active_session.py::TestAllResolvableCommandsBypassGuard::test_command_bypasses_guard[/retry-retry]",
        "tests/gateway/test_command_bypass_active_session.py::TestAllResolvableCommandsBypassGuard::test_command_bypasses_guard[/undo-undo]",
        "tests/gateway/test_command_bypass_active_session.py::TestAllResolvableCommandsBypassGuard::test_command_bypasses_guard[/compress-compress]",
        "tests/gateway/test_command_bypass_active_session.py::TestAllResolvableCommandsBypassGuard::test_command_bypasses_guard[/usage-usage]",
        "tests/gateway/test_command_bypass_active_session.py::TestAllResolvableCommandsBypassGuard::test_command_bypasses_guard[/reload-mcp-reload-mcp]",
        "tests/gateway/test_command_bypass_active_session.py::TestAllResolvableCommandsBypassGuard::test_command_bypasses_guard[/sethome-sethome]",
        "tests/gateway/test_command_bypass_active_session.py::TestAllResolvableCommandsBypassGuard::test_should_bypass_returns_true_for_every_registered_command",
        "tests/gateway/test_command_bypass_active_session.py::TestAllResolvableCommandsBypassGuard::test_should_bypass_returns_false_for_unknown",
        "tests/gateway/test_command_bypass_active_session.py::TestNonBypassStillQueued::test_regular_text_queued",
        "tests/gateway/test_command_bypass_active_session.py::TestNonBypassStillQueued::test_unknown_command_queued",
        "tests/gateway/test_command_bypass_active_session.py::TestNonBypassStillQueued::test_file_path_not_treated_as_command",
        "tests/gateway/test_command_bypass_active_session.py::TestNoActiveSessionNormalDispatch::test_stop_when_no_session_active",
        "tests/gateway/test_command_bypass_active_session.py::TestPendingCommandSafetyNet::test_stop_command_detected",
        "tests/gateway/test_command_bypass_active_session.py::TestPendingCommandSafetyNet::test_new_command_detected",
        "tests/gateway/test_command_bypass_active_session.py::TestPendingCommandSafetyNet::test_reset_alias_detected",
        "tests/gateway/test_command_bypass_active_session.py::TestPendingCommandSafetyNet::test_unknown_command_not_detected",
        "tests/gateway/test_command_bypass_active_session.py::TestPendingCommandSafetyNet::test_file_path_not_detected_as_command",
        "tests/gateway/test_command_bypass_active_session.py::TestBypassWithBotnameSuffix::test_stop_with_botname",
        "tests/gateway/test_command_bypass_active_session.py::TestBypassWithBotnameSuffix::test_new_with_botname"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0030-test_command_bypass_active_session.py.log",
      "output_sha256": "8a49f462f9efabc9a90ae1fce136044f53a625afa0a7dacb9f94781576925582",
      "returncode": 0,
      "test_file": "tests/gateway/test_command_bypass_active_session.py",
      "test_file_sha256": "7ac05452a4dbae0ccc95558a5bf0f4c4cfd9169979e9051dd820f504b3710a62"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0031",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_complete_path_at_filter.py"
      ],
      "nodeids": [
        "tests/gateway/test_complete_path_at_filter.py::test_at_folder_colon_only_dirs",
        "tests/gateway/test_complete_path_at_filter.py::test_at_file_colon_only_files",
        "tests/gateway/test_complete_path_at_filter.py::test_at_folder_bare_without_colon_lists_dirs",
        "tests/gateway/test_complete_path_at_filter.py::test_at_file_bare_without_colon_lists_files",
        "tests/gateway/test_complete_path_at_filter.py::test_bare_at_still_shows_static_refs",
        "tests/gateway/test_complete_path_at_filter.py::test_fuzzy_at_finds_file_without_directory_prefix",
        "tests/gateway/test_complete_path_at_filter.py::test_fuzzy_ranks_exact_before_prefix_before_subseq",
        "tests/gateway/test_complete_path_at_filter.py::test_fuzzy_camelcase_word_boundary",
        "tests/gateway/test_complete_path_at_filter.py::test_fuzzy_subsequence_catches_sparse_queries",
        "tests/gateway/test_complete_path_at_filter.py::test_fuzzy_at_file_prefix_preserved",
        "tests/gateway/test_complete_path_at_filter.py::test_fuzzy_skipped_when_path_has_slash",
        "tests/gateway/test_complete_path_at_filter.py::test_fuzzy_skipped_when_folder_tag",
        "tests/gateway/test_complete_path_at_filter.py::test_fuzzy_hides_dotfiles_unless_asked",
        "tests/gateway/test_complete_path_at_filter.py::test_fuzzy_caps_results",
        "tests/gateway/test_complete_path_at_filter.py::test_fuzzy_paths_relative_to_cwd_inside_subdir"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0031-test_complete_path_at_filter.py.log",
      "output_sha256": "7def1007f76417138da328210ba2ba0016d030d4720512bb73da3a884b61b723",
      "returncode": 0,
      "test_file": "tests/gateway/test_complete_path_at_filter.py",
      "test_file_sha256": "abd2f9a6cbddc2f697de49e481f764c071eb85f66517d3e582e95e38c54a2321"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0032",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_compress_command.py"
      ],
      "nodeids": [
        "tests/gateway/test_compress_command.py::test_compress_command_reports_noop_without_success_banner",
        "tests/gateway/test_compress_command.py::test_compress_command_explains_when_token_estimate_rises",
        "tests/gateway/test_compress_command.py::test_compress_command_appends_warning_when_compression_aborts",
        "tests/gateway/test_compress_command.py::test_compress_command_surfaces_aux_model_failure_even_when_recovered"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0032-test_compress_command.py.log",
      "output_sha256": "76b39698b21995f82e930eea0f6e2e355a583b4c959d373fc5a462e758bbb967",
      "returncode": 0,
      "test_file": "tests/gateway/test_compress_command.py",
      "test_file_sha256": "d1a39d8727d0ad37bf6df66152deb136168244661b3b2d69663851d5eda02f0d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0033",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_compress_focus.py"
      ],
      "nodeids": [
        "tests/gateway/test_compress_focus.py::test_compress_focus_topic_passed_to_agent",
        "tests/gateway/test_compress_focus.py::test_compress_no_focus_passes_none"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0033-test_compress_focus.py.log",
      "output_sha256": "92e93711976e8c3cbec99b759100682abba7b2292afe4b80e6b21cb2bb4abd51",
      "returncode": 0,
      "test_file": "tests/gateway/test_compress_focus.py",
      "test_file_sha256": "963ba3cf64bc7e94ef48cce612637dff4f3bb1c062f76924b362e81f38f159ca"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0034",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_compress_plugin_engine.py"
      ],
      "nodeids": [
        "tests/gateway/test_compress_plugin_engine.py::test_compress_works_with_plugin_context_engine",
        "tests/gateway/test_compress_plugin_engine.py::test_compress_respects_plugin_has_content_to_compress_false"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0034-test_compress_plugin_engine.py.log",
      "output_sha256": "56510cb250b3966076ff3dc240f89bb7e8dcf36c73f1536dfedcd41aa38afe9c",
      "returncode": 0,
      "test_file": "tests/gateway/test_compress_plugin_engine.py",
      "test_file_sha256": "19384fbfbd566396c32bb91a007f5ace927c74db79bc7115b380dee36dec9f8a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0035",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_compression_concurrent_sessions.py"
      ],
      "nodeids": [
        "tests/gateway/test_compression_concurrent_sessions.py::test_concurrent_compressions_do_not_alias_sessions",
        "tests/gateway/test_compression_concurrent_sessions.py::test_concurrent_compressions_same_session_serialize"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0035-test_compression_concurrent_sessions.py.log",
      "output_sha256": "26e2374162f19c94af6f1a03fe4fcfb7f9b5fec328de1ab6942021891d929f12",
      "returncode": 0,
      "test_file": "tests/gateway/test_compression_concurrent_sessions.py",
      "test_file_sha256": "438983983c5b11f2a12691e93c838d47a3c452bdb44063faeee95873dcd349c6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0036",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_compression_failure_session_sync.py"
      ],
      "nodeids": [
        "tests/gateway/test_compression_failure_session_sync.py::test_failed_turn_still_syncs_compression_session_split"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0036-test_compression_failure_session_sync.py.log",
      "output_sha256": "ad7e9df1cd62f4588d6fc4fd4b791e714512536d7b009b9f34db665a8df51509",
      "returncode": 0,
      "test_file": "tests/gateway/test_compression_failure_session_sync.py",
      "test_file_sha256": "db1732079526dcff2c2b4381ac0079536234883bc2ac997b0d6ddd86cabcf7ed"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0037",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_compression_session_id_persistence.py"
      ],
      "nodeids": [
        "tests/gateway/test_compression_session_id_persistence.py::test_every_post_compression_session_id_assignment_persists",
        "tests/gateway/test_compression_session_id_persistence.py::TestCompressionSessionPropagation::test_gateway_session_entry_follows_compression_rotation",
        "tests/gateway/test_compression_session_id_persistence.py::TestCompressionSessionPropagation::test_no_update_when_session_id_unchanged",
        "tests/gateway/test_compression_session_id_persistence.py::TestCompressionSessionPropagation::test_contextvar_and_session_entry_agree_after_compression"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0037-test_compression_session_id_persistence.py.log",
      "output_sha256": "74297740c947d67fae9b2ca5119701ac07433d48f10d836882505b6b88042b87",
      "returncode": 0,
      "test_file": "tests/gateway/test_compression_session_id_persistence.py",
      "test_file_sha256": "f9256494c8a3a40b72f783433a4f824955bae71757e230a3e14b41bcc74aaf07"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0038",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_config.py"
      ],
      "nodeids": [
        "tests/gateway/test_config.py::TestHomeChannelRoundtrip::test_to_dict_from_dict",
        "tests/gateway/test_config.py::TestPlatformConfigRoundtrip::test_to_dict_from_dict",
        "tests/gateway/test_config.py::TestPlatformConfigRoundtrip::test_disabled_no_token",
        "tests/gateway/test_config.py::TestPlatformConfigRoundtrip::test_from_dict_coerces_quoted_false_enabled",
        "tests/gateway/test_config.py::TestPlatformConfigRoundtrip::test_gateway_restart_notification_defaults_true",
        "tests/gateway/test_config.py::TestPlatformConfigRoundtrip::test_gateway_restart_notification_roundtrip_false",
        "tests/gateway/test_config.py::TestPlatformConfigRoundtrip::test_gateway_restart_notification_coerces_quoted_false",
        "tests/gateway/test_config.py::TestGetConnectedPlatforms::test_returns_enabled_with_token",
        "tests/gateway/test_config.py::TestGetConnectedPlatforms::test_empty_platforms",
        "tests/gateway/test_config.py::TestGetConnectedPlatforms::test_dingtalk_recognised_via_extras",
        "tests/gateway/test_config.py::TestGetConnectedPlatforms::test_dingtalk_recognised_via_env_vars",
        "tests/gateway/test_config.py::TestGetConnectedPlatforms::test_dingtalk_missing_creds_not_connected",
        "tests/gateway/test_config.py::TestGetConnectedPlatforms::test_dingtalk_disabled_not_connected",
        "tests/gateway/test_config.py::TestSessionResetPolicy::test_roundtrip",
        "tests/gateway/test_config.py::TestSessionResetPolicy::test_defaults",
        "tests/gateway/test_config.py::TestSessionResetPolicy::test_from_dict_treats_null_values_as_defaults",
        "tests/gateway/test_config.py::TestSessionResetPolicy::test_from_dict_coerces_quoted_false_notify",
        "tests/gateway/test_config.py::TestStreamingConfig::test_defaults_to_auto_transport",
        "tests/gateway/test_config.py::TestStreamingConfig::test_from_dict_coerces_quoted_false_enabled",
        "tests/gateway/test_config.py::TestStreamingConfig::test_from_dict_malformed_numeric_values_fall_back_to_defaults",
        "tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_full_roundtrip",
        "tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_max_concurrent_sessions_from_dict_normalizes_disabled_values",
        "tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_max_concurrent_sessions_from_dict_accepts_positive_integer",
        "tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_max_concurrent_sessions_from_dict_ignores_invalid_values",
        "tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_max_concurrent_sessions_from_dict_accepts_nested_fallback",
        "tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_max_concurrent_sessions_top_level_overrides_nested",
        "tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_roundtrip_preserves_unauthorized_dm_behavior",
        "tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_from_dict_coerces_quoted_false_always_log_local",
        "tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_get_notice_delivery_defaults_to_public",
        "tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_get_notice_delivery_honors_platform_override",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_quick_commands_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_relay_platform_enabled_from_env_url",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_relay_platform_absent_when_url_unset",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_relay_platform_enabled_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_group_sessions_per_user_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_thread_sessions_per_user_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_thread_sessions_per_user_defaults_to_false",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_top_level_max_concurrent_sessions_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_nested_max_concurrent_sessions_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_top_level_max_concurrent_sessions_overrides_nested_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_discord_thread_require_mention_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_thread_require_mention_yaml_does_not_overwrite_env",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_discord_allow_from_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_discord_platform_extra_allow_from_to_env",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_quoted_false_platform_enabled_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_nested_gateway_platforms_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_top_level_platforms_override_nested_gateway_platforms",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_shared_key_loop_bridges_allow_from_from_nested_platforms",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_shared_key_loop_bridges_allow_from_from_nested_gateway_platforms",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_quoted_false_session_notify_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_quoted_false_always_log_local_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_discord_channel_prompts_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_discord_history_backfill_settings_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_telegram_channel_prompts_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_slack_channel_prompts_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_feishu_allow_bots_from_config_yaml_to_env",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_feishu_allow_bots_env_takes_precedence_over_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_invalid_quick_commands_in_config_yaml_are_ignored",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_unauthorized_dm_behavior_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_telegram_disable_link_previews_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_loads_telegram_rich_messages_from_gateway_platform_extra",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_load_config_default_enables_telegram_rich_messages",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_telegram_extra_base_url_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_notice_delivery_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_telegram_proxy_url_from_config_yaml",
        "tests/gateway/test_config.py::TestLoadGatewayConfig::test_telegram_proxy_env_takes_precedence_over_config",
        "tests/gateway/test_config.py::TestHomeChannelEnvOverrides::test_existing_platform_configs_accept_home_channel_env_overrides"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0038-test_config.py.log",
      "output_sha256": "868bf47805bfbab1482b81f2094b0431fb928398b7d7e9389f951a013b083a4c",
      "returncode": 0,
      "test_file": "tests/gateway/test_config.py",
      "test_file_sha256": "5a50df219a63b551baab9ae0fb783b9a49ab08035478beebd7ebb8242e6a9eb1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0039",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_config_cwd_bridge.py"
      ],
      "nodeids": [
        "tests/gateway/test_config_cwd_bridge.py::TestTopLevelCwdAlias::test_top_level_cwd_sets_terminal_cwd",
        "tests/gateway/test_config_cwd_bridge.py::TestTopLevelCwdAlias::test_top_level_backend_sets_terminal_env",
        "tests/gateway/test_config_cwd_bridge.py::TestTopLevelCwdAlias::test_top_level_cwd_and_backend",
        "tests/gateway/test_config_cwd_bridge.py::TestTopLevelCwdAlias::test_nested_terminal_takes_precedence_over_top_level",
        "tests/gateway/test_config_cwd_bridge.py::TestTopLevelCwdAlias::test_nested_terminal_backend_takes_precedence",
        "tests/gateway/test_config_cwd_bridge.py::TestTopLevelCwdAlias::test_no_cwd_falls_back_to_messaging_cwd",
        "tests/gateway/test_config_cwd_bridge.py::TestTopLevelCwdAlias::test_no_cwd_no_messaging_cwd_falls_back_to_home",
        "tests/gateway/test_config_cwd_bridge.py::TestTopLevelCwdAlias::test_dot_cwd_triggers_messaging_fallback",
        "tests/gateway/test_config_cwd_bridge.py::TestTopLevelCwdAlias::test_auto_cwd_triggers_messaging_fallback",
        "tests/gateway/test_config_cwd_bridge.py::TestTopLevelCwdAlias::test_empty_cwd_ignored",
        "tests/gateway/test_config_cwd_bridge.py::TestTopLevelCwdAlias::test_whitespace_only_cwd_ignored",
        "tests/gateway/test_config_cwd_bridge.py::TestTopLevelCwdAlias::test_messaging_cwd_env_var_works",
        "tests/gateway/test_config_cwd_bridge.py::TestTopLevelCwdAlias::test_top_level_cwd_beats_messaging_cwd",
        "tests/gateway/test_config_cwd_bridge.py::TestNestedTerminalCwdPlaceholderSkip::test_terminal_dot_cwd_does_not_clobber_env",
        "tests/gateway/test_config_cwd_bridge.py::TestNestedTerminalCwdPlaceholderSkip::test_terminal_auto_cwd_does_not_clobber_env",
        "tests/gateway/test_config_cwd_bridge.py::TestNestedTerminalCwdPlaceholderSkip::test_terminal_cwd_keyword_does_not_clobber_env",
        "tests/gateway/test_config_cwd_bridge.py::TestNestedTerminalCwdPlaceholderSkip::test_terminal_explicit_cwd_does_override",
        "tests/gateway/test_config_cwd_bridge.py::TestNestedTerminalCwdPlaceholderSkip::test_terminal_dot_cwd_falls_back_to_messaging_cwd",
        "tests/gateway/test_config_cwd_bridge.py::TestNestedTerminalCwdPlaceholderSkip::test_terminal_dot_cwd_and_messaging_cwd_both_set",
        "tests/gateway/test_config_cwd_bridge.py::TestNestedTerminalCwdPlaceholderSkip::test_non_cwd_terminal_keys_still_bridge",
        "tests/gateway/test_config_cwd_bridge.py::TestNestedTerminalCwdPlaceholderSkip::test_terminal_home_mode_bridges_to_env",
        "tests/gateway/test_config_cwd_bridge.py::TestTildeExpansion::test_terminal_cwd_tilde_expanded",
        "tests/gateway/test_config_cwd_bridge.py::TestTildeExpansion::test_top_level_cwd_tilde_expanded",
        "tests/gateway/test_config_cwd_bridge.py::TestTildeExpansion::test_tilde_with_nested_precedence"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0039-test_config_cwd_bridge.py.log",
      "output_sha256": "ce544d7fbaba1029f4bfef56b37cc7765ecf46ab9d2e9e5bf6617679d992c556",
      "returncode": 0,
      "test_file": "tests/gateway/test_config_cwd_bridge.py",
      "test_file_sha256": "2e1edd0c63a33ce453896560aa96d74215534e9e88ad4275803faa9e51b3c49a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0040",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_config_driven_access_policy.py"
      ],
      "nodeids": [
        "tests/gateway/test_config_driven_access_policy.py::test_base_adapter_defaults_to_not_owning_access_policy",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_adapters_declare_the_flag[gateway.platforms.wecom-WeComAdapter]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_adapters_declare_the_flag[gateway.platforms.weixin-WeixinAdapter]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_adapters_declare_the_flag[gateway.platforms.yuanbao-YuanbaoAdapter]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_adapters_declare_the_flag[gateway.platforms.qqbot.adapter-QQAdapter]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_adapters_declare_the_flag[gateway.platforms.whatsapp-WhatsAppAdapter]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_allowlist_authorized_without_env_allowlist[Platform.WECOM]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_allowlist_authorized_without_env_allowlist[Platform.WEIXIN]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_allowlist_authorized_without_env_allowlist[Platform.YUANBAO]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_allowlist_authorized_without_env_allowlist[Platform.QQBOT]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_allowlist_authorized_without_env_allowlist[Platform.WHATSAPP]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_open_dm_not_authorized_without_allowlist[Platform.WECOM]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_open_dm_not_authorized_without_allowlist[Platform.WEIXIN]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_open_dm_not_authorized_without_allowlist[Platform.YUANBAO]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_open_dm_not_authorized_without_allowlist[Platform.QQBOT]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_open_dm_not_authorized_without_allowlist[Platform.WHATSAPP]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_default_open_dm_is_fail_closed[Platform.WECOM]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_default_open_dm_is_fail_closed[Platform.WEIXIN]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_default_open_dm_is_fail_closed[Platform.YUANBAO]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_default_open_dm_is_fail_closed[Platform.QQBOT]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_default_open_dm_is_fail_closed[Platform.WHATSAPP]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_allowlist_authorized_for_group_chat[Platform.WECOM]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_allowlist_authorized_for_group_chat[Platform.WEIXIN]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_allowlist_authorized_for_group_chat[Platform.YUANBAO]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_allowlist_authorized_for_group_chat[Platform.QQBOT]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_allowlist_authorized_for_group_chat[Platform.WHATSAPP]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_open_group_not_authorized_without_allowlist[Platform.WECOM]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_open_group_not_authorized_without_allowlist[Platform.WEIXIN]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_open_group_not_authorized_without_allowlist[Platform.YUANBAO]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_open_group_not_authorized_without_allowlist[Platform.QQBOT]",
        "tests/gateway/test_config_driven_access_policy.py::test_own_policy_open_group_not_authorized_without_allowlist[Platform.WHATSAPP]",
        "tests/gateway/test_config_driven_access_policy.py::test_wecom_open_group_with_per_group_sender_allowlist_is_authorized",
        "tests/gateway/test_config_driven_access_policy.py::test_wecom_open_group_with_wildcard_sender_allowlist_is_authorized",
        "tests/gateway/test_config_driven_access_policy.py::test_non_owning_platform_still_default_denies",
        "tests/gateway/test_config_driven_access_policy.py::test_env_allowlist_still_takes_precedence_for_own_policy_platform",
        "tests/gateway/test_config_driven_access_policy.py::test_unknown_adapter_does_not_crash_trust_check",
        "tests/gateway/test_config_driven_access_policy.py::test_pairing_dm_policy_not_blanket_authorized[Platform.WECOM]",
        "tests/gateway/test_config_driven_access_policy.py::test_pairing_dm_policy_not_blanket_authorized[Platform.WEIXIN]",
        "tests/gateway/test_config_driven_access_policy.py::test_pairing_dm_policy_authorizes_paired_user",
        "tests/gateway/test_config_driven_access_policy.py::test_pairing_carveout_reads_adapter_when_env_set",
        "tests/gateway/test_config_driven_access_policy.py::test_pairing_dm_policy_group_chat_still_trusted",
        "tests/gateway/test_config_driven_access_policy.py::test_unauthorized_dm_behavior_follows_config_dm_policy[allowlist-ignore]",
        "tests/gateway/test_config_driven_access_policy.py::test_unauthorized_dm_behavior_follows_config_dm_policy[disabled-ignore]",
        "tests/gateway/test_config_driven_access_policy.py::test_unauthorized_dm_behavior_follows_config_dm_policy[pairing-pair]",
        "tests/gateway/test_config_driven_access_policy.py::test_unauthorized_dm_behavior_open_policy_keeps_default"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0040-test_config_driven_access_policy.py.log",
      "output_sha256": "e5532578656690ff90d8413e0eca662ec2379d87b83289159384e80728959550",
      "returncode": 0,
      "test_file": "tests/gateway/test_config_driven_access_policy.py",
      "test_file_sha256": "af66ec807040f81c5eb0aa62c592dafce17484c025168142197b3f78732c39ed"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0041",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_config_env_bridge_authority.py"
      ],
      "nodeids": [
        "tests/gateway/test_config_env_bridge_authority.py::test_config_max_turns_wins_over_stale_env",
        "tests/gateway/test_config_env_bridge_authority.py::test_config_gateway_timeout_wins_over_stale_env",
        "tests/gateway/test_config_env_bridge_authority.py::test_config_display_busy_input_mode_wins_over_stale_env",
        "tests/gateway/test_config_env_bridge_authority.py::test_config_display_busy_text_mode_wins_over_stale_env",
        "tests/gateway/test_config_env_bridge_authority.py::test_config_timezone_wins_over_stale_env",
        "tests/gateway/test_config_env_bridge_authority.py::test_env_value_survives_when_config_omits_key"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0041-test_config_env_bridge_authority.py.log",
      "output_sha256": "0604d5119ca89c440af64e3b47b5faf17b142cefbe65c57eece3f6f2d8a4432f",
      "returncode": 0,
      "test_file": "tests/gateway/test_config_env_bridge_authority.py",
      "test_file_sha256": "2a7072e61195b59e3431470be5b2441abc48886465617bf1b12ccbf3618d1102"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0042",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_cron_fire_webhook.py"
      ],
      "nodeids": [
        "tests/gateway/test_cron_fire_webhook.py::test_valid_token_accepts_and_fires",
        "tests/gateway/test_cron_fire_webhook.py::test_invalid_token_401_and_no_fire",
        "tests/gateway/test_cron_fire_webhook.py::test_missing_token_401",
        "tests/gateway/test_cron_fire_webhook.py::test_missing_job_id_400",
        "tests/gateway/test_cron_fire_webhook.py::test_fire_does_not_require_api_server_key"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0042-test_cron_fire_webhook.py.log",
      "output_sha256": "11bf1100f249bf54ffb15cd7a9563cd4995e9e12e959eeda7273c5caabab78a3",
      "returncode": 0,
      "test_file": "tests/gateway/test_cron_fire_webhook.py",
      "test_file_sha256": "799ce054356a77c0feda01c5cb7a23149118d1e2d5ff706072fe32e867369a07"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0043",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_debug_command.py"
      ],
      "nodeids": [
        "tests/gateway/test_debug_command.py::TestHandleDebugCommand::test_debug_sweeps_expired_pastes_before_upload",
        "tests/gateway/test_debug_command.py::TestHandleDebugCommand::test_debug_survives_sweep_failure"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0043-test_debug_command.py.log",
      "output_sha256": "99db4cdf0b5a44e66f0462258b9726ba8ecf1ffc2b9b62768bc731b7955477d6",
      "returncode": 0,
      "test_file": "tests/gateway/test_debug_command.py",
      "test_file_sha256": "ab3332ff8ab13d06344c891127d27bd84d4df47bc98ae367dbf60f84cb4b0628"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0044",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_delivery.py"
      ],
      "nodeids": [
        "tests/gateway/test_delivery.py::TestParseTargetPlatformChat::test_explicit_telegram_chat",
        "tests/gateway/test_delivery.py::TestParseTargetPlatformChat::test_platform_only_no_chat_id",
        "tests/gateway/test_delivery.py::TestParseTargetPlatformChat::test_local_target",
        "tests/gateway/test_delivery.py::TestParseTargetPlatformChat::test_origin_with_source",
        "tests/gateway/test_delivery.py::TestParseTargetPlatformChat::test_origin_without_source",
        "tests/gateway/test_delivery.py::TestParseTargetPlatformChat::test_unknown_platform",
        "tests/gateway/test_delivery.py::TestTargetToStringRoundtrip::test_origin_roundtrip",
        "tests/gateway/test_delivery.py::TestTargetToStringRoundtrip::test_local_roundtrip",
        "tests/gateway/test_delivery.py::TestTargetToStringRoundtrip::test_platform_only_roundtrip",
        "tests/gateway/test_delivery.py::TestTargetToStringRoundtrip::test_explicit_chat_roundtrip",
        "tests/gateway/test_delivery.py::TestCaseSensitiveChatIdParsing::test_slack_uppercase_chat_id_preserved",
        "tests/gateway/test_delivery.py::TestCaseSensitiveChatIdParsing::test_slack_chat_id_with_thread_preserved",
        "tests/gateway/test_delivery.py::TestCaseSensitiveChatIdParsing::test_matrix_room_id_preserved",
        "tests/gateway/test_delivery.py::TestCaseSensitiveChatIdParsing::test_mixed_case_chat_id_roundtrip",
        "tests/gateway/test_delivery.py::TestPlatformNameCaseInsensitivity::test_uppercase_platform_name",
        "tests/gateway/test_delivery.py::TestPlatformNameCaseInsensitivity::test_mixed_case_platform_name",
        "tests/gateway/test_delivery.py::test_explicit_telegram_private_thread_requires_reply_anchor",
        "tests/gateway/test_delivery.py::test_named_telegram_private_topic_is_created_before_delivery",
        "tests/gateway/test_delivery.py::test_named_telegram_private_topic_refreshes_stale_thread_id",
        "tests/gateway/test_delivery.py::test_explicit_telegram_private_thread_uses_reply_fallback_with_anchor",
        "tests/gateway/test_delivery.py::test_explicit_telegram_direct_messages_topic_metadata_is_respected",
        "tests/gateway/test_delivery.py::test_explicit_telegram_group_thread_does_not_mark_dm_fallback",
        "tests/gateway/test_delivery.py::test_platform_send_failure_raises_for_delivery_result"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0044-test_delivery.py.log",
      "output_sha256": "18028840ffe66009f784a21326dc302c7f48b46c401b4938f128c386a4a4f8d7",
      "returncode": 0,
      "test_file": "tests/gateway/test_delivery.py",
      "test_file_sha256": "2853c9dd9281be99b15e00e704948d83486a15fe9c13049b3b82c3f386037aee"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0045",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_delivery_silence_filter.py"
      ],
      "nodeids": [
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_positive[*(silent)*]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_positive[*Silence.*]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_positive[\\U0001f507]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_positive[.]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_positive[\\u2026]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_positive[...]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_positive[(silent)]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_positive[_silent_]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_positive[silent]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_positive[ *(silent)* ]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_positive[`silent`]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_positive[~silent~]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_positive[Silence]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_positive[no response]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_positive[No Reply.]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_negative[Silence is golden \\u2014 here is the plan...]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_negative[Silent install completed]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_negative[The deployment ran silently in the background]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_negative[ok]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_negative[\\U0001f44d]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_negative[Here is the result:\\n\\n- item one\\n- item two]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_negative[I have nothing to add, but here is why: the build is green.]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_negative[silently]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_negative[no responses were collected from the survey]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_negative[silent xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_negative[]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_negative[   ]",
        "tests/gateway/test_delivery_silence_filter.py::test_is_silence_narration_none_safe",
        "tests/gateway/test_delivery_silence_filter.py::test_length_guard_rejects_long_strings",
        "tests/gateway/test_delivery_silence_filter.py::test_silence_narration_dropped_pre_send",
        "tests/gateway/test_delivery_silence_filter.py::test_real_message_is_delivered",
        "tests/gateway/test_delivery_silence_filter.py::test_config_opt_out_lets_silence_through",
        "tests/gateway/test_delivery_silence_filter.py::test_env_override_disables_filter",
        "tests/gateway/test_delivery_silence_filter.py::test_env_override_enables_filter_over_config",
        "tests/gateway/test_delivery_silence_filter.py::test_local_delivery_not_filtered",
        "tests/gateway/test_delivery_silence_filter.py::test_config_flag_defaults_true",
        "tests/gateway/test_delivery_silence_filter.py::test_config_from_dict_parses_flag",
        "tests/gateway/test_delivery_silence_filter.py::test_config_to_dict_roundtrip"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0045-test_delivery_silence_filter.py.log",
      "output_sha256": "8f34d662465b220d0d92d73d997d6b3be45c0e666b25a29c052582601a7e7a1a",
      "returncode": 0,
      "test_file": "tests/gateway/test_delivery_silence_filter.py",
      "test_file_sha256": "70000cf67287525985f611e3e9b5adb9f4abbf3ef07b4342b8f0142e7dc39d1c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0046",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_destructive_slash_confirm.py"
      ],
      "nodeids": [
        "tests/gateway/test_destructive_slash_confirm.py::test_gate_off_runs_execute_immediately",
        "tests/gateway/test_destructive_slash_confirm.py::test_gate_on_text_fallback_returns_prompt_without_executing",
        "tests/gateway/test_destructive_slash_confirm.py::test_gate_on_pending_confirm_registered",
        "tests/gateway/test_destructive_slash_confirm.py::test_resolve_once_runs_execute_and_returns_result",
        "tests/gateway/test_destructive_slash_confirm.py::test_resolve_cancel_does_not_run_execute",
        "tests/gateway/test_destructive_slash_confirm.py::test_resolve_always_persists_opt_out_and_runs_execute"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0046-test_destructive_slash_confirm.py.log",
      "output_sha256": "bd8faee71e4cf03757f4071c9a5bd0472bd60776363ddd6ce47495250bc73e09",
      "returncode": 0,
      "test_file": "tests/gateway/test_destructive_slash_confirm.py",
      "test_file_sha256": "4beac1d2a4d1ffd65638ccbacf1ca8e7c3ad96412ee72bc9af95b1b4df606c4c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0047",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_diagnostic_isolation.py"
      ],
      "nodeids": [
        "tests/gateway/test_diagnostic_isolation.py::test_bootstrap_is_dormant_and_does_not_read_activation",
        "tests/gateway/test_diagnostic_isolation.py::test_pre_activation_delivery_fails_without_rows_or_provider",
        "tests/gateway/test_diagnostic_isolation.py::test_wrong_user_and_stale_generation_are_rejected_before_loader",
        "tests/gateway/test_diagnostic_isolation.py::test_restart_generation_cannot_activate_again",
        "tests/gateway/test_diagnostic_isolation.py::test_authenticated_activation_is_one_use_and_reaches_provider",
        "tests/gateway/test_diagnostic_isolation.py::test_spec_less_authority_is_rejected",
        "tests/gateway/test_diagnostic_isolation.py::test_public_generic_delivery_is_rejected_without_lifecycle",
        "tests/gateway/test_diagnostic_isolation.py::test_test_host_constructor_is_private_and_token_sealed",
        "tests/gateway/test_diagnostic_isolation.py::test_production_binding_rejects_untrusted_adapter_before_activation[none]",
        "tests/gateway/test_diagnostic_isolation.py::test_production_binding_rejects_untrusted_adapter_before_activation[simple_namespace]",
        "tests/gateway/test_diagnostic_isolation.py::test_production_binding_rejects_untrusted_adapter_before_activation[exact_adapter_fake_bot]",
        "tests/gateway/test_diagnostic_isolation.py::test_production_binding_rejects_untrusted_adapter_before_activation[subclass]",
        "tests/gateway/test_diagnostic_isolation.py::test_production_bootstrap_rejects_sealed_test_adapter",
        "tests/gateway/test_diagnostic_isolation.py::test_private_test_adapter_and_bootstrap_require_exact_token_and_type",
        "tests/gateway/test_diagnostic_isolation.py::test_diagnostic_controller_and_host_constructors_require_factory_tokens",
        "tests/gateway/test_diagnostic_isolation.py::test_transport_constructor_requires_factory_token_before_activation",
        "tests/gateway/test_diagnostic_isolation.py::test_untrusted_activate_argument_has_zero_routes_reservations_and_provider",
        "tests/gateway/test_diagnostic_isolation.py::test_activation_derives_customer_and_trainer_routes_from_registered_runtime",
        "tests/gateway/test_diagnostic_isolation.py::test_activation_rejects_caller_supplied_routes_before_rows_or_provider",
        "tests/gateway/test_diagnostic_isolation.py::test_bootstrap_control_must_match_registered_owner_before_activation[8--100-59]",
        "tests/gateway/test_diagnostic_isolation.py::test_bootstrap_control_must_match_registered_owner_before_activation[7--101-59]",
        "tests/gateway/test_diagnostic_isolation.py::test_bootstrap_control_must_match_registered_owner_before_activation[7--100-60]",
        "tests/gateway/test_diagnostic_isolation.py::test_active_host_rejects_post_activation_route_injection",
        "tests/gateway/test_diagnostic_isolation.py::test_durable_detach_revokes_cached_routes_before_ingress",
        "tests/gateway/test_diagnostic_isolation.py::test_sealed_activation_delivery_records_exact_terminal_destination_and_body",
        "tests/gateway/test_diagnostic_isolation.py::test_malformed_or_missing_message_id_is_unknown_and_never_resends[missing]",
        "tests/gateway/test_diagnostic_isolation.py::test_malformed_or_missing_message_id_is_unknown_and_never_resends[none]",
        "tests/gateway/test_diagnostic_isolation.py::test_malformed_or_missing_message_id_is_unknown_and_never_resends[boolean]",
        "tests/gateway/test_diagnostic_isolation.py::test_malformed_or_missing_message_id_is_unknown_and_never_resends[blank]",
        "tests/gateway/test_diagnostic_isolation.py::test_timeout_persists_one_unknown_terminal_and_reraises",
        "tests/gateway/test_diagnostic_isolation.py::test_cancellation_persists_one_unknown_terminal_and_reraises",
        "tests/gateway/test_diagnostic_isolation.py::test_close_first_admission_race_has_zero_reservation_and_provider_calls[close]",
        "tests/gateway/test_diagnostic_isolation.py::test_close_first_admission_race_has_zero_reservation_and_provider_calls[expire]",
        "tests/gateway/test_diagnostic_isolation.py::test_close_first_admission_race_has_zero_reservation_and_provider_calls[stop]",
        "tests/gateway/test_diagnostic_isolation.py::test_provider_first_admission_race_terminalizes_before_detach[close]",
        "tests/gateway/test_diagnostic_isolation.py::test_provider_first_admission_race_terminalizes_before_detach[expire]",
        "tests/gateway/test_diagnostic_isolation.py::test_provider_first_admission_race_terminalizes_before_detach[stop]",
        "tests/gateway/test_diagnostic_isolation.py::test_detach_fence_failure_revokes_local_routes_and_provider[close]",
        "tests/gateway/test_diagnostic_isolation.py::test_detach_fence_failure_revokes_local_routes_and_provider[expire]",
        "tests/gateway/test_diagnostic_isolation.py::test_detach_fence_failure_revokes_local_routes_and_provider[stop]",
        "tests/gateway/test_diagnostic_isolation.py::test_transport_mutation_before_provider_is_terminal_unknown_and_provider_zero[adapter]",
        "tests/gateway/test_diagnostic_isolation.py::test_transport_mutation_before_provider_is_terminal_unknown_and_provider_zero[bot]",
        "tests/gateway/test_diagnostic_isolation.py::test_transport_mutation_before_provider_is_terminal_unknown_and_provider_zero[object]",
        "tests/gateway/test_diagnostic_isolation.py::test_transport_mutation_before_provider_is_terminal_unknown_and_provider_zero[destination]",
        "tests/gateway/test_diagnostic_isolation.py::test_transport_mutation_before_provider_is_terminal_unknown_and_provider_zero[binding]",
        "tests/gateway/test_diagnostic_isolation.py::test_unknown_duplicate_mapping_is_exact_in_process_and_after_restart",
        "tests/gateway/test_diagnostic_isolation.py::test_audit_pending_duplicate_mapping_and_reconcile_are_exact_after_restart",
        "tests/gateway/test_diagnostic_isolation.py::test_sent_audited_duplicate_mapping_is_exact_in_process_and_after_restart",
        "tests/gateway/test_diagnostic_isolation.py::test_activation_record_replacement_after_activation_has_zero_provider_and_rows",
        "tests/gateway/test_diagnostic_isolation.py::test_activation_pin_body_destination_mutation_after_activation_has_zero_provider_and_rows[pin]",
        "tests/gateway/test_diagnostic_isolation.py::test_activation_pin_body_destination_mutation_after_activation_has_zero_provider_and_rows[body]",
        "tests/gateway/test_diagnostic_isolation.py::test_activation_pin_body_destination_mutation_after_activation_has_zero_provider_and_rows[destination]",
        "tests/gateway/test_diagnostic_isolation.py::test_role_route_rejects_every_wrong_identity_component[user_id]",
        "tests/gateway/test_diagnostic_isolation.py::test_role_route_rejects_every_wrong_identity_component[chat_id]",
        "tests/gateway/test_diagnostic_isolation.py::test_role_route_rejects_every_wrong_identity_component[topic_id]",
        "tests/gateway/test_diagnostic_isolation.py::test_role_route_rejects_every_wrong_identity_component[generation]",
        "tests/gateway/test_diagnostic_isolation.py::test_wrong_user_message_and_callback_ingress_have_zero_downstream[message]",
        "tests/gateway/test_diagnostic_isolation.py::test_wrong_user_message_and_callback_ingress_have_zero_downstream[callback]",
        "tests/gateway/test_diagnostic_isolation.py::test_diagnostic_process_fence_blocks_lazy_generic_coordinator",
        "tests/gateway/test_diagnostic_isolation.py::test_detached_diagnostic_spaces_never_fall_through_to_generic_ingress[message]",
        "tests/gateway/test_diagnostic_isolation.py::test_detached_diagnostic_spaces_never_fall_through_to_generic_ingress[callback]",
        "tests/gateway/test_diagnostic_isolation.py::test_activated_coordinator_constructor_is_sealed_before_inputs",
        "tests/gateway/test_diagnostic_isolation.py::test_candidate_provenance_requires_the_activated_child_instance"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0047-test_diagnostic_isolation.py.log",
      "output_sha256": "9b52dcc313e19b3556c27e68958101bdaa2083e0033504463be1aef3e14141ee",
      "returncode": 0,
      "test_file": "tests/gateway/test_diagnostic_isolation.py",
      "test_file_sha256": "7366a47f054222cd076755d679439458ea4410ff940bea1cec86fb3a238f3443"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0048",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_dingtalk.py"
      ],
      "nodeids": [
        "tests/gateway/test_dingtalk.py::TestDingTalkRequirements::test_returns_false_when_sdk_missing",
        "tests/gateway/test_dingtalk.py::TestDingTalkRequirements::test_returns_false_when_env_vars_missing",
        "tests/gateway/test_dingtalk.py::TestDingTalkRequirements::test_returns_true_when_all_available",
        "tests/gateway/test_dingtalk.py::TestDingTalkAdapterInit::test_reads_config_from_extra",
        "tests/gateway/test_dingtalk.py::TestDingTalkAdapterInit::test_falls_back_to_env_vars",
        "tests/gateway/test_dingtalk.py::TestExtractText::test_text_as_dict_legacy",
        "tests/gateway/test_dingtalk.py::TestExtractText::test_text_as_textcontent_object",
        "tests/gateway/test_dingtalk.py::TestExtractText::test_text_content_attr_with_empty_string",
        "tests/gateway/test_dingtalk.py::TestExtractText::test_rich_text_content_new_shape",
        "tests/gateway/test_dingtalk.py::TestExtractText::test_rich_text_legacy_shape",
        "tests/gateway/test_dingtalk.py::TestExtractText::test_empty_message",
        "tests/gateway/test_dingtalk.py::TestDeduplication::test_first_message_not_duplicate",
        "tests/gateway/test_dingtalk.py::TestDeduplication::test_second_same_message_is_duplicate",
        "tests/gateway/test_dingtalk.py::TestDeduplication::test_different_messages_not_duplicate",
        "tests/gateway/test_dingtalk.py::TestDeduplication::test_cache_cleanup_on_overflow",
        "tests/gateway/test_dingtalk.py::TestSend::test_send_posts_to_webhook",
        "tests/gateway/test_dingtalk.py::TestSend::test_send_fails_without_webhook",
        "tests/gateway/test_dingtalk.py::TestSend::test_send_uses_cached_webhook",
        "tests/gateway/test_dingtalk.py::TestSend::test_send_handles_http_error",
        "tests/gateway/test_dingtalk.py::TestSend::test_send_image_renders_markdown_image",
        "tests/gateway/test_dingtalk.py::TestSend::test_send_image_file_returns_explicit_unsupported_error",
        "tests/gateway/test_dingtalk.py::TestSend::test_send_document_returns_explicit_unsupported_error",
        "tests/gateway/test_dingtalk.py::TestConnect::test_disconnect_closes_session_websocket",
        "tests/gateway/test_dingtalk.py::TestConnect::test_connect_fails_without_sdk",
        "tests/gateway/test_dingtalk.py::TestConnect::test_connect_fails_without_credentials",
        "tests/gateway/test_dingtalk.py::TestConnect::test_disconnect_cleans_up",
        "tests/gateway/test_dingtalk.py::TestConnect::test_disconnect_finalizes_open_streaming_cards",
        "tests/gateway/test_dingtalk.py::TestWebhookDomainAllowlist::test_api_domain_accepted",
        "tests/gateway/test_dingtalk.py::TestWebhookDomainAllowlist::test_oapi_domain_accepted",
        "tests/gateway/test_dingtalk.py::TestWebhookDomainAllowlist::test_http_rejected",
        "tests/gateway/test_dingtalk.py::TestWebhookDomainAllowlist::test_suffix_attack_rejected",
        "tests/gateway/test_dingtalk.py::TestWebhookDomainAllowlist::test_unsanctioned_subdomain_rejected",
        "tests/gateway/test_dingtalk.py::TestHandlerProcessIsAsync::test_process_is_coroutine_function",
        "tests/gateway/test_dingtalk.py::TestExtractMedia::test_voice_rich_text_item_classified_as_voice",
        "tests/gateway/test_dingtalk.py::TestExtractMedia::test_audio_rich_text_item_stays_audio",
        "tests/gateway/test_dingtalk.py::TestAllowedUsersGate::test_empty_allowlist_allows_everyone",
        "tests/gateway/test_dingtalk.py::TestAllowedUsersGate::test_wildcard_allowlist_allows_everyone",
        "tests/gateway/test_dingtalk.py::TestAllowedUsersGate::test_matches_sender_id_case_insensitive",
        "tests/gateway/test_dingtalk.py::TestAllowedUsersGate::test_matches_staff_id",
        "tests/gateway/test_dingtalk.py::TestAllowedUsersGate::test_rejects_unknown_user",
        "tests/gateway/test_dingtalk.py::TestAllowedUsersGate::test_env_var_csv_populates_allowlist",
        "tests/gateway/test_dingtalk.py::TestMentionPatterns::test_empty_patterns_list",
        "tests/gateway/test_dingtalk.py::TestMentionPatterns::test_pattern_matches_text",
        "tests/gateway/test_dingtalk.py::TestMentionPatterns::test_pattern_is_case_insensitive",
        "tests/gateway/test_dingtalk.py::TestMentionPatterns::test_invalid_regex_is_skipped_not_raised",
        "tests/gateway/test_dingtalk.py::TestMentionPatterns::test_env_var_json_populates_patterns",
        "tests/gateway/test_dingtalk.py::TestMentionPatterns::test_env_var_newline_fallback_when_not_json",
        "tests/gateway/test_dingtalk.py::TestShouldProcessMessage::test_dm_always_accepted",
        "tests/gateway/test_dingtalk.py::TestShouldProcessMessage::test_group_rejected_when_require_mention_and_no_trigger",
        "tests/gateway/test_dingtalk.py::TestShouldProcessMessage::test_group_accepted_when_require_mention_disabled",
        "tests/gateway/test_dingtalk.py::TestShouldProcessMessage::test_group_accepted_when_bot_is_mentioned",
        "tests/gateway/test_dingtalk.py::TestShouldProcessMessage::test_group_accepted_when_text_matches_wake_word",
        "tests/gateway/test_dingtalk.py::TestShouldProcessMessage::test_group_accepted_when_chat_in_free_response_list",
        "tests/gateway/test_dingtalk.py::TestIncomingHandlerProcess::test_process_extracts_session_webhook",
        "tests/gateway/test_dingtalk.py::TestIncomingHandlerProcess::test_process_fallback_session_webhook_when_from_dict_misses_it",
        "tests/gateway/test_dingtalk.py::TestIncomingHandlerProcess::test_process_returns_ack_immediately",
        "tests/gateway/test_dingtalk.py::TestExtractTextMentions::test_preserves_at_mentions_in_text",
        "tests/gateway/test_dingtalk.py::TestExtractTextMentions::test_dingtalk_in_platform_enum",
        "tests/gateway/test_dingtalk.py::TestMessageContextIsolation::test_contexts_keyed_by_chat_id",
        "tests/gateway/test_dingtalk.py::TestCardLifecycle::test_final_reply_finalizes_card",
        "tests/gateway/test_dingtalk.py::TestCardLifecycle::test_intermediate_send_stays_streaming",
        "tests/gateway/test_dingtalk.py::TestCardLifecycle::test_done_fires_only_when_reply_to_is_set",
        "tests/gateway/test_dingtalk.py::TestCardLifecycle::test_edit_message_finalize_fires_done",
        "tests/gateway/test_dingtalk.py::TestCardLifecycle::test_edit_message_finalize_false_tracks_sibling",
        "tests/gateway/test_dingtalk.py::TestCardLifecycle::test_next_send_auto_closes_sibling_streaming_cards",
        "tests/gateway/test_dingtalk.py::TestCardLifecycle::test_edit_message_requires_message_id",
        "tests/gateway/test_dingtalk.py::TestCardLifecycle::test_fire_done_reaction_is_idempotent",
        "tests/gateway/test_dingtalk.py::TestDingTalkAdapterAICards::test_send_uses_ai_card_if_configured"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0048-test_dingtalk.py.log",
      "output_sha256": "1dd6bfb25602f45141948afb6d6c22b7c83d468894d60297628434f3f2b99031",
      "returncode": 0,
      "test_file": "tests/gateway/test_dingtalk.py",
      "test_file_sha256": "cedbad44c083d451027ad8841a8d85ceb411edb7c4d5a801c79de7589b9fec66"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0049",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_allowed_channels.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_allowed_channels.py::TestDiscordAllowedChannelsWildcard::test_empty_allowlist_allows_all",
        "tests/gateway/test_discord_allowed_channels.py::TestDiscordAllowedChannelsWildcard::test_exact_match_allowed",
        "tests/gateway/test_discord_allowed_channels.py::TestDiscordAllowedChannelsWildcard::test_non_matching_channel_blocked",
        "tests/gateway/test_discord_allowed_channels.py::TestDiscordAllowedChannelsWildcard::test_whitespace_only_entry_ignored",
        "tests/gateway/test_discord_allowed_channels.py::TestDiscordAllowedChannelsWildcard::test_wildcard_allows_any_channel",
        "tests/gateway/test_discord_allowed_channels.py::TestDiscordAllowedChannelsWildcard::test_wildcard_in_list_allows_any_channel",
        "tests/gateway/test_discord_allowed_channels.py::TestDiscordIgnoredChannelsWildcard::test_empty_ignored_list_silences_nothing",
        "tests/gateway/test_discord_allowed_channels.py::TestDiscordIgnoredChannelsWildcard::test_exact_match_is_ignored",
        "tests/gateway/test_discord_allowed_channels.py::TestDiscordIgnoredChannelsWildcard::test_non_match_not_ignored",
        "tests/gateway/test_discord_allowed_channels.py::TestDiscordIgnoredChannelsWildcard::test_wildcard_silences_every_channel",
        "tests/gateway/test_discord_allowed_channels.py::TestDiscordFreeResponseChannelsWildcard::test_empty_list_no_free_response",
        "tests/gateway/test_discord_allowed_channels.py::TestDiscordFreeResponseChannelsWildcard::test_exact_match_is_free_response",
        "tests/gateway/test_discord_allowed_channels.py::TestDiscordFreeResponseChannelsWildcard::test_non_match_not_free_response",
        "tests/gateway/test_discord_allowed_channels.py::TestDiscordFreeResponseChannelsWildcard::test_wildcard_in_list_applies_everywhere",
        "tests/gateway/test_discord_allowed_channels.py::TestDiscordFreeResponseChannelsWildcard::test_wildcard_makes_every_channel_free_response"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0049-test_discord_allowed_channels.py.log",
      "output_sha256": "38465d2f113c41374faba3a53822c26d83695927593b8bdb8a70c71114b4cb7a",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_allowed_channels.py",
      "test_file_sha256": "540f72ddeba38a25596d756c73cbcb8196655b50ed7fcb24349c005ea69b71d2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0050",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_allowed_mentions.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_allowed_mentions.py::test_safe_defaults_block_everyone_and_roles",
        "tests/gateway/test_discord_allowed_mentions.py::test_env_var_opts_back_into_everyone",
        "tests/gateway/test_discord_allowed_mentions.py::test_env_var_can_disable_users",
        "tests/gateway/test_discord_allowed_mentions.py::test_everyone_boolean_parsing[true-True]",
        "tests/gateway/test_discord_allowed_mentions.py::test_everyone_boolean_parsing[True-True]",
        "tests/gateway/test_discord_allowed_mentions.py::test_everyone_boolean_parsing[TRUE-True]",
        "tests/gateway/test_discord_allowed_mentions.py::test_everyone_boolean_parsing[1-True]",
        "tests/gateway/test_discord_allowed_mentions.py::test_everyone_boolean_parsing[yes-True]",
        "tests/gateway/test_discord_allowed_mentions.py::test_everyone_boolean_parsing[YES-True]",
        "tests/gateway/test_discord_allowed_mentions.py::test_everyone_boolean_parsing[on-True]",
        "tests/gateway/test_discord_allowed_mentions.py::test_everyone_boolean_parsing[false-False]",
        "tests/gateway/test_discord_allowed_mentions.py::test_everyone_boolean_parsing[False-False]",
        "tests/gateway/test_discord_allowed_mentions.py::test_everyone_boolean_parsing[0-False]",
        "tests/gateway/test_discord_allowed_mentions.py::test_everyone_boolean_parsing[no-False]",
        "tests/gateway/test_discord_allowed_mentions.py::test_everyone_boolean_parsing[off-False]",
        "tests/gateway/test_discord_allowed_mentions.py::test_everyone_boolean_parsing[-False]",
        "tests/gateway/test_discord_allowed_mentions.py::test_everyone_boolean_parsing[garbage-False]",
        "tests/gateway/test_discord_allowed_mentions.py::test_everyone_boolean_parsing[ true -True]",
        "tests/gateway/test_discord_allowed_mentions.py::test_all_four_knobs_together"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0050-test_discord_allowed_mentions.py.log",
      "output_sha256": "7c738480254472073447249ce8e14412462dc625990744dcd06e2bd1cde86443",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_allowed_mentions.py",
      "test_file_sha256": "4cdf786fa4608f3b87ed27367edf32eaadbbc5f84c8a10c5010a13eb4578c9f3"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0051",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_attachment_download.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_attachment_download.py::TestReadAttachmentBytes::test_returns_bytes_on_successful_read",
        "tests/gateway/test_discord_attachment_download.py::TestReadAttachmentBytes::test_returns_none_when_read_missing",
        "tests/gateway/test_discord_attachment_download.py::TestReadAttachmentBytes::test_returns_none_when_read_raises",
        "tests/gateway/test_discord_attachment_download.py::TestCacheDiscordImage::test_prefers_att_read_over_url",
        "tests/gateway/test_discord_attachment_download.py::TestCacheDiscordImage::test_falls_back_to_url_when_no_read",
        "tests/gateway/test_discord_attachment_download.py::TestCacheDiscordImage::test_falls_back_to_url_when_bytes_validator_rejects",
        "tests/gateway/test_discord_attachment_download.py::TestCacheDiscordAudio::test_prefers_att_read_over_url",
        "tests/gateway/test_discord_attachment_download.py::TestCacheDiscordAudio::test_falls_back_to_url_when_no_read",
        "tests/gateway/test_discord_attachment_download.py::TestCacheDiscordDocument::test_prefers_att_read_returns_bytes_directly",
        "tests/gateway/test_discord_attachment_download.py::TestCacheDiscordDocument::test_fallback_blocked_by_ssrf_guard",
        "tests/gateway/test_discord_attachment_download.py::TestCacheDiscordDocument::test_fallback_aiohttp_when_safe_url",
        "tests/gateway/test_discord_attachment_download.py::TestHandleMessageUsesAuthenticatedRead::test_image_downloads_via_att_read_not_url",
        "tests/gateway/test_discord_attachment_download.py::TestHandleMessageUsesAuthenticatedRead::test_native_voice_note_is_classified_as_voice",
        "tests/gateway/test_discord_attachment_download.py::TestHandleMessageUsesAuthenticatedRead::test_plain_audio_attachment_stays_audio"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0051-test_discord_attachment_download.py.log",
      "output_sha256": "eb263259c6df1215bfe538c7aab52ea087f0d058c4ee0eac151c65704cb1f67b",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_attachment_download.py",
      "test_file_sha256": "af02ee470c6c211935d9cf34302217a56e81d0002c1f0f965215262afa7d77e4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0052",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_bot_auth_bypass.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_bot_auth_bypass.py::test_discord_bot_authorized_when_allow_bots_mentions",
        "tests/gateway/test_discord_bot_auth_bypass.py::test_discord_bot_authorized_when_allow_bots_all",
        "tests/gateway/test_discord_bot_auth_bypass.py::test_discord_bot_NOT_authorized_when_allow_bots_none",
        "tests/gateway/test_discord_bot_auth_bypass.py::test_discord_bot_NOT_authorized_when_allow_bots_unset",
        "tests/gateway/test_discord_bot_auth_bypass.py::test_discord_human_still_checked_against_allowlist_when_bot_policy_set",
        "tests/gateway/test_discord_bot_auth_bypass.py::test_bot_bypass_does_not_leak_to_other_platforms",
        "tests/gateway/test_discord_bot_auth_bypass.py::test_discord_role_config_does_not_bypass_gateway_allowlist",
        "tests/gateway/test_discord_bot_auth_bypass.py::test_discord_user_allowlist_still_authorizes_when_role_is_also_configured",
        "tests/gateway/test_discord_bot_auth_bypass.py::test_discord_role_config_does_not_leak_to_other_platforms"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0052-test_discord_bot_auth_bypass.py.log",
      "output_sha256": "2ed3cb5a97118876c31db1020b40d0c81be35897a9f64e328b8d402527f81eda",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_bot_auth_bypass.py",
      "test_file_sha256": "5d5d2b1dba4a3166cef6857cad0582895d596f28b4e03bdfbde80ccc74feff88"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0053",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_bot_filter.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_bot_filter.py::TestDiscordBotFilter::test_allow_bots_all_accepts_bots",
        "tests/gateway/test_discord_bot_filter.py::TestDiscordBotFilter::test_allow_bots_mentions_accepts_with_mention",
        "tests/gateway/test_discord_bot_filter.py::TestDiscordBotFilter::test_allow_bots_mentions_rejects_without_mention",
        "tests/gateway/test_discord_bot_filter.py::TestDiscordBotFilter::test_allow_bots_none_rejects_bots",
        "tests/gateway/test_discord_bot_filter.py::TestDiscordBotFilter::test_case_insensitive",
        "tests/gateway/test_discord_bot_filter.py::TestDiscordBotFilter::test_default_is_none",
        "tests/gateway/test_discord_bot_filter.py::TestDiscordBotFilter::test_human_messages_always_accepted",
        "tests/gateway/test_discord_bot_filter.py::TestDiscordBotFilter::test_own_messages_always_ignored"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0053-test_discord_bot_filter.py.log",
      "output_sha256": "465a755c02575f252cc3e37e29e90e035d2e64e5c0c07a10dd74d5640dacb80a",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_bot_filter.py",
      "test_file_sha256": "842f31cff25f3b8e5f1d3b82d5c7c98c59fe241c20e8c742f65018163f4e43eb"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0054",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_channel_controls.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_channel_controls.py::test_ignored_channel_blocks_message",
        "tests/gateway/test_discord_channel_controls.py::test_ignored_channel_blocks_even_with_mention",
        "tests/gateway/test_discord_channel_controls.py::test_non_ignored_channel_processes_normally",
        "tests/gateway/test_discord_channel_controls.py::test_ignored_channels_csv_parsing",
        "tests/gateway/test_discord_channel_controls.py::test_ignored_channels_empty_string_ignores_nothing",
        "tests/gateway/test_discord_channel_controls.py::test_ignored_channel_thread_parent_match",
        "tests/gateway/test_discord_channel_controls.py::test_dms_unaffected_by_ignored_channels",
        "tests/gateway/test_discord_channel_controls.py::test_no_thread_channel_skips_auto_thread",
        "tests/gateway/test_discord_channel_controls.py::test_normal_channel_still_auto_threads",
        "tests/gateway/test_discord_channel_controls.py::test_no_thread_channels_csv_parsing",
        "tests/gateway/test_discord_channel_controls.py::test_no_thread_with_auto_thread_disabled_is_noop",
        "tests/gateway/test_discord_channel_controls.py::test_config_bridges_ignored_channels",
        "tests/gateway/test_discord_channel_controls.py::test_config_bridges_no_thread_channels",
        "tests/gateway/test_discord_channel_controls.py::test_config_env_var_takes_precedence"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0054-test_discord_channel_controls.py.log",
      "output_sha256": "d65943a6750991f0903c2ae27dea5cc0b7455e748913130c7ce9d0c35c59c7d6",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_channel_controls.py",
      "test_file_sha256": "d842af5eb09897240f9899172824df2f0a7289e207d222acf20faf74169e48a6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0055",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_channel_prompts.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_channel_prompts.py::TestResolveChannelPrompts::test_no_prompt_returns_none",
        "tests/gateway/test_discord_channel_prompts.py::TestResolveChannelPrompts::test_match_by_channel_id",
        "tests/gateway/test_discord_channel_prompts.py::TestResolveChannelPrompts::test_numeric_yaml_keys_normalized_at_config_load",
        "tests/gateway/test_discord_channel_prompts.py::TestResolveChannelPrompts::test_match_by_parent_id",
        "tests/gateway/test_discord_channel_prompts.py::TestResolveChannelPrompts::test_exact_channel_overrides_parent",
        "tests/gateway/test_discord_channel_prompts.py::TestResolveChannelPrompts::test_build_message_event_sets_channel_prompt",
        "tests/gateway/test_discord_channel_prompts.py::TestResolveChannelPrompts::test_dispatch_thread_session_inherits_parent_channel_prompt",
        "tests/gateway/test_discord_channel_prompts.py::TestResolveChannelPrompts::test_blank_prompts_are_ignored",
        "tests/gateway/test_discord_channel_prompts.py::test_retry_preserves_channel_prompt",
        "tests/gateway/test_discord_channel_prompts.py::test_run_agent_appends_channel_prompt_to_ephemeral_system_prompt"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0055-test_discord_channel_prompts.py.log",
      "output_sha256": "a2ba4e1e025701b2bd03ab609db4dc5fd6e4a67577323af69eb49a09c1e6b36d",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_channel_prompts.py",
      "test_file_sha256": "5cf6f409a8ce1bb1ef0c7a214e768c919ef34ec0c94a43f0702284ebc7ce8577"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0056",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_channel_skills.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_channel_skills.py::TestResolveChannelSkills::test_no_bindings_returns_none",
        "tests/gateway/test_discord_channel_skills.py::TestResolveChannelSkills::test_match_by_channel_id",
        "tests/gateway/test_discord_channel_skills.py::TestResolveChannelSkills::test_match_by_parent_id",
        "tests/gateway/test_discord_channel_skills.py::TestResolveChannelSkills::test_no_match_returns_none",
        "tests/gateway/test_discord_channel_skills.py::TestResolveChannelSkills::test_single_skill_string",
        "tests/gateway/test_discord_channel_skills.py::TestResolveChannelSkills::test_dedup_preserves_order"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0056-test_discord_channel_skills.py.log",
      "output_sha256": "badc3bc6e9d902f74e80803f3cc5cbd6fbf600dcd16a46e03ed327b555cfce88",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_channel_skills.py",
      "test_file_sha256": "9b2b8e56db206bb39be09620f6f800a5b4bd589b3c66ba56016a55e3b7345a89"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0057",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_clarify_buttons.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_clarify_buttons.py::TestClarifyChoiceViewConstruction::test_renders_n_choice_buttons_plus_other",
        "tests/gateway/test_discord_clarify_buttons.py::TestClarifyChoiceViewConstruction::test_caps_at_24_choices_plus_other",
        "tests/gateway/test_discord_clarify_buttons.py::TestClarifyChoiceViewConstruction::test_truncates_long_choice_label",
        "tests/gateway/test_discord_clarify_buttons.py::TestClarifyChoiceViewConstruction::test_truncates_long_choice_label_breaks_on_word_boundary",
        "tests/gateway/test_discord_clarify_buttons.py::TestClarifyChoiceViewConstruction::test_truncates_long_no_space_choice_on_soft_boundary",
        "tests/gateway/test_discord_clarify_buttons.py::TestClarifyChoiceResolve::test_choice_resolves_with_canonical_choice_text",
        "tests/gateway/test_discord_clarify_buttons.py::TestClarifyChoiceResolve::test_choice_falls_back_to_label_text_when_entry_missing",
        "tests/gateway/test_discord_clarify_buttons.py::TestClarifyChoiceResolve::test_already_resolved_sends_ephemeral_reply",
        "tests/gateway/test_discord_clarify_buttons.py::TestClarifyChoiceResolve::test_unauthorized_user_rejected",
        "tests/gateway/test_discord_clarify_buttons.py::TestClarifyOtherButton::test_other_flips_entry_to_awaiting_text",
        "tests/gateway/test_discord_clarify_buttons.py::TestClarifyOtherButton::test_other_unauthorized_user_rejected",
        "tests/gateway/test_discord_clarify_buttons.py::TestDiscordSendClarify::test_multi_choice_attaches_view",
        "tests/gateway/test_discord_clarify_buttons.py::TestDiscordSendClarify::test_open_ended_omits_view",
        "tests/gateway/test_discord_clarify_buttons.py::TestDiscordSendClarify::test_routes_to_thread_when_metadata_thread_id_set",
        "tests/gateway/test_discord_clarify_buttons.py::TestDiscordSendClarify::test_not_connected_returns_failure",
        "tests/gateway/test_discord_clarify_buttons.py::TestDiscordSendClarify::test_filters_empty_and_whitespace_choices",
        "tests/gateway/test_discord_clarify_buttons.py::TestDiscordSendClarify::test_unwraps_dict_choices_to_description",
        "tests/gateway/test_discord_clarify_buttons.py::TestDiscordSendClarify::test_unwrap_prefers_description_over_name_in_multi_key_dict",
        "tests/gateway/test_discord_clarify_buttons.py::TestDiscordSendClarify::test_unwrap_prefers_label_over_description",
        "tests/gateway/test_discord_clarify_buttons.py::TestDiscordSendClarify::test_unwrap_does_not_pick_value_or_name_alone"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0057-test_discord_clarify_buttons.py.log",
      "output_sha256": "ddc0481c175e5e675a31e48aed60970ade8716437383532a2a42cd2c0680b9d2",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_clarify_buttons.py",
      "test_file_sha256": "4a5cc4b7ab1b5c2eb62ce4653622a0c649b3b924b7c5bf0a9d8498b0070f8a07"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0058",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_component_auth.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_component_auth.py::test_component_check_empty_allowlists_rejects_by_default",
        "tests/gateway/test_discord_component_auth.py::test_component_check_explicit_allow_all_passes[DISCORD_ALLOW_ALL_USERS-true]",
        "tests/gateway/test_discord_component_auth.py::test_component_check_explicit_allow_all_passes[GATEWAY_ALLOW_ALL_USERS-yes]",
        "tests/gateway/test_discord_component_auth.py::test_component_check_user_in_user_allowlist_passes",
        "tests/gateway/test_discord_component_auth.py::test_component_check_user_not_in_user_allowlist_rejected",
        "tests/gateway/test_discord_component_auth.py::test_component_check_user_in_global_allowlist_passes",
        "tests/gateway/test_discord_component_auth.py::test_component_check_global_allowlist_without_match_rejects",
        "tests/gateway/test_discord_component_auth.py::test_component_check_wildcard_user_allowlist_passes",
        "tests/gateway/test_discord_component_auth.py::test_component_check_role_only_user_with_matching_role_passes",
        "tests/gateway/test_discord_component_auth.py::test_component_check_accepts_role_allowlist_sequences",
        "tests/gateway/test_discord_component_auth.py::test_component_check_role_only_user_without_matching_role_rejected",
        "tests/gateway/test_discord_component_auth.py::test_component_check_user_or_role_user_match",
        "tests/gateway/test_discord_component_auth.py::test_component_check_user_or_role_role_match",
        "tests/gateway/test_discord_component_auth.py::test_component_check_user_or_role_neither_match",
        "tests/gateway/test_discord_component_auth.py::test_component_check_role_policy_with_no_roles_attr_rejects",
        "tests/gateway/test_discord_component_auth.py::test_component_check_missing_user_with_allowlist_rejects",
        "tests/gateway/test_discord_component_auth.py::test_exec_approval_view_accepts_role_allowlist",
        "tests/gateway/test_discord_component_auth.py::test_exec_approval_view_role_default_is_empty_set",
        "tests/gateway/test_discord_component_auth.py::test_slash_confirm_view_accepts_role_allowlist",
        "tests/gateway/test_discord_component_auth.py::test_update_prompt_view_accepts_role_allowlist",
        "tests/gateway/test_discord_component_auth.py::test_model_picker_view_accepts_role_allowlist",
        "tests/gateway/test_discord_component_auth.py::test_clarify_choice_view_accepts_role_allowlist",
        "tests/gateway/test_discord_component_auth.py::test_views_empty_allowlists_reject_by_default[<lambda>0]",
        "tests/gateway/test_discord_component_auth.py::test_views_empty_allowlists_reject_by_default[<lambda>1]",
        "tests/gateway/test_discord_component_auth.py::test_views_empty_allowlists_reject_by_default[<lambda>2]",
        "tests/gateway/test_discord_component_auth.py::test_views_empty_allowlists_reject_by_default[<lambda>3]",
        "tests/gateway/test_discord_component_auth.py::test_model_picker_view_empty_allowlists_reject_by_default",
        "tests/gateway/test_discord_component_auth.py::test_view_empty_allowlists_allow_with_explicit_allow_all"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0058-test_discord_component_auth.py.log",
      "output_sha256": "5587b17ede943773b4cc71b94c37a20bbe39052c00a409c9da84e3b3c5d97efa",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_component_auth.py",
      "test_file_sha256": "43d9e241b46b8c5b924191199d5f558fb001098118672188c007a7a5339f4d6b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0059",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_connect.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_connect.py::test_connect_only_requests_members_intent_when_needed[769524422783664158-False]",
        "tests/gateway/test_discord_connect.py::test_connect_only_requests_members_intent_when_needed[abhey-gupta-True]",
        "tests/gateway/test_discord_connect.py::test_connect_only_requests_members_intent_when_needed[769524422783664158,abhey-gupta-True]",
        "tests/gateway/test_discord_connect.py::test_reconnect_closes_previous_client_to_prevent_zombie_websocket",
        "tests/gateway/test_discord_connect.py::test_connect_releases_token_lock_on_timeout",
        "tests/gateway/test_discord_connect.py::test_connect_timeout_cancels_bot_task",
        "tests/gateway/test_discord_connect.py::test_disconnect_cancels_running_bot_task",
        "tests/gateway/test_discord_connect.py::test_connect_does_not_wait_for_slash_sync",
        "tests/gateway/test_discord_connect.py::test_connect_respects_slash_commands_opt_out",
        "tests/gateway/test_discord_connect.py::test_safe_sync_slash_commands_only_mutates_diffs",
        "tests/gateway/test_discord_connect.py::test_safe_sync_slash_commands_recreates_metadata_only_diffs",
        "tests/gateway/test_discord_connect.py::test_post_connect_initialization_skips_sync_when_policy_off",
        "tests/gateway/test_discord_connect.py::test_post_connect_initialization_skips_same_fingerprint_after_success",
        "tests/gateway/test_discord_connect.py::test_post_connect_initialization_respects_discord_retry_after",
        "tests/gateway/test_discord_connect.py::test_post_connect_initialization_reraises_non_rate_limit_exceptions",
        "tests/gateway/test_discord_connect.py::test_safe_sync_slash_commands_paces_mutation_writes",
        "tests/gateway/test_discord_connect.py::test_safe_sync_reads_permission_attrs_from_existing_command",
        "tests/gateway/test_discord_connect.py::test_safe_sync_detects_contexts_drift"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0059-test_discord_connect.py.log",
      "output_sha256": "895f61d4da9059d2ec6916c8fafd5e03b90d003ddbca7b21b28b6f4c8cce48a8",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_connect.py",
      "test_file_sha256": "62faace0e96ceea3348b2af5e80faa4f8c19d0c9ca82c9ad55e4e17fbcec6057"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0060",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_document_handling.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_document_handling.py::TestIncomingDocumentHandling::test_pdf_document_cached",
        "tests/gateway/test_discord_document_handling.py::TestIncomingDocumentHandling::test_txt_content_injected",
        "tests/gateway/test_discord_document_handling.py::TestIncomingDocumentHandling::test_md_content_injected",
        "tests/gateway/test_discord_document_handling.py::TestIncomingDocumentHandling::test_log_content_injected",
        "tests/gateway/test_discord_document_handling.py::TestIncomingDocumentHandling::test_oversized_document_skipped",
        "tests/gateway/test_discord_document_handling.py::TestIncomingDocumentHandling::test_mid_sized_zip_under_32mb_is_cached",
        "tests/gateway/test_discord_document_handling.py::TestIncomingDocumentHandling::test_zip_document_cached",
        "tests/gateway/test_discord_document_handling.py::TestIncomingDocumentHandling::test_download_error_handled",
        "tests/gateway/test_discord_document_handling.py::TestIncomingDocumentHandling::test_large_txt_cached_not_injected",
        "tests/gateway/test_discord_document_handling.py::TestIncomingDocumentHandling::test_multiple_text_files_both_injected",
        "tests/gateway/test_discord_document_handling.py::TestIncomingDocumentHandling::test_image_attachment_unaffected",
        "tests/gateway/test_discord_document_handling.py::TestAllowAnyAttachment::test_unknown_type_skipped_by_default",
        "tests/gateway/test_discord_document_handling.py::TestAllowAnyAttachment::test_unknown_type_cached_when_flag_on",
        "tests/gateway/test_discord_document_handling.py::TestAllowAnyAttachment::test_unknown_type_no_content_type_becomes_octet_stream",
        "tests/gateway/test_discord_document_handling.py::TestAllowAnyAttachment::test_max_attachment_bytes_caps_uploads",
        "tests/gateway/test_discord_document_handling.py::TestAllowAnyAttachment::test_max_attachment_bytes_zero_means_unlimited",
        "tests/gateway/test_discord_document_handling.py::TestAllowAnyAttachment::test_allowlisted_doc_unchanged_when_flag_on",
        "tests/gateway/test_discord_document_handling.py::TestAllowAnyAttachment::test_helper_reads_env_fallback",
        "tests/gateway/test_discord_document_handling.py::TestAllowAnyAttachment::test_helper_config_overrides_env",
        "tests/gateway/test_discord_document_handling.py::TestAllowAnyAttachment::test_max_bytes_helper_invalid_value_falls_back"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0060-test_discord_document_handling.py.log",
      "output_sha256": "74d1c3ed454edc5810848659db7d4797542ffb9999d8cfdd3f136c877141f673",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_document_handling.py",
      "test_file_sha256": "c5f4d1c3300d4b640e3fb2625c10a9a14a11dc5b336332f018bd91e1cc86c0fe"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0061",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_free_response.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_free_response.py::test_discord_defaults_to_require_mention",
        "tests/gateway/test_discord_free_response.py::test_discord_free_response_in_server_channels",
        "tests/gateway/test_discord_free_response.py::test_discord_free_response_in_threads",
        "tests/gateway/test_discord_free_response.py::test_discord_forum_threads_are_handled_as_threads",
        "tests/gateway/test_discord_free_response.py::test_discord_can_still_require_mentions_when_enabled",
        "tests/gateway/test_discord_free_response.py::test_discord_free_response_channel_overrides_mention_requirement",
        "tests/gateway/test_discord_free_response.py::test_discord_free_response_channel_can_come_from_config_extra",
        "tests/gateway/test_discord_free_response.py::test_discord_free_response_channels_bare_int",
        "tests/gateway/test_discord_free_response.py::test_discord_free_response_channels_int_list",
        "tests/gateway/test_discord_free_response.py::test_discord_forum_parent_in_free_response_list_allows_forum_thread",
        "tests/gateway/test_discord_free_response.py::test_discord_accepts_and_strips_bot_mentions_when_required",
        "tests/gateway/test_discord_free_response.py::test_discord_dms_ignore_mention_requirement",
        "tests/gateway/test_discord_free_response.py::test_discord_auto_thread_enabled_by_default",
        "tests/gateway/test_discord_free_response.py::test_discord_reply_message_skips_auto_thread",
        "tests/gateway/test_discord_free_response.py::test_discord_auto_thread_can_be_disabled",
        "tests/gateway/test_discord_free_response.py::test_discord_bot_thread_skips_mention_requirement",
        "tests/gateway/test_discord_free_response.py::test_discord_unknown_thread_still_requires_mention",
        "tests/gateway/test_discord_free_response.py::test_discord_auto_thread_tracks_participation",
        "tests/gateway/test_discord_free_response.py::test_discord_thread_participation_tracked_on_dispatch",
        "tests/gateway/test_discord_free_response.py::test_discord_voice_linked_channel_skips_mention_requirement_and_auto_thread",
        "tests/gateway/test_discord_free_response.py::test_discord_free_response_channel_skips_auto_thread",
        "tests/gateway/test_discord_free_response.py::test_discord_voice_linked_parent_thread_still_requires_mention",
        "tests/gateway/test_discord_free_response.py::test_discord_thread_default_keeps_responding_after_participation",
        "tests/gateway/test_discord_free_response.py::test_discord_thread_require_mention_gates_followups",
        "tests/gateway/test_discord_free_response.py::test_discord_thread_require_mention_still_responds_when_mentioned",
        "tests/gateway/test_discord_free_response.py::test_discord_thread_require_mention_via_config_extra",
        "tests/gateway/test_discord_free_response.py::test_fetch_channel_context_stops_at_self_message_and_reverses_to_chronological_order",
        "tests/gateway/test_discord_free_response.py::test_fetch_channel_context_skips_self_improvement_boundary_message",
        "tests/gateway/test_discord_free_response.py::test_fetch_channel_context_hydrates_around_reply_target",
        "tests/gateway/test_discord_free_response.py::test_fetch_channel_context_reply_target_in_primary_window_not_duplicated",
        "tests/gateway/test_discord_free_response.py::test_nonconversational_fallback_requires_self_improvement_emoji",
        "tests/gateway/test_discord_free_response.py::test_fetch_channel_context_skips_other_bots_when_allow_bots_none",
        "tests/gateway/test_discord_free_response.py::test_fetch_channel_context_uses_cache_to_narrow_window",
        "tests/gateway/test_discord_free_response.py::test_fetch_channel_context_cache_uses_latest_window_when_after_set",
        "tests/gateway/test_discord_free_response.py::test_fetch_channel_context_ignores_stale_cache",
        "tests/gateway/test_discord_free_response.py::test_discord_send_does_not_cache_nonconversational_status_as_history_boundary",
        "tests/gateway/test_discord_free_response.py::test_discord_shared_channel_backfill_prepends_context",
        "tests/gateway/test_discord_free_response.py::test_discord_per_user_channel_backfills_too",
        "tests/gateway/test_discord_free_response.py::test_discord_participated_thread_backfills_without_mention",
        "tests/gateway/test_discord_free_response.py::test_discord_dm_does_not_backfill",
        "tests/gateway/test_discord_free_response.py::test_discord_auto_thread_skips_backfill",
        "tests/gateway/test_discord_free_response.py::test_discord_reply_in_free_channel_triggers_backfill",
        "tests/gateway/test_discord_free_response.py::test_discord_non_reply_free_channel_skips_backfill"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0061-test_discord_free_response.py.log",
      "output_sha256": "9e495d2a304445bad455181e63750631b75aeba83b5759ac56c645635095a191",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_free_response.py",
      "test_file_sha256": "597350f327dd45c911222014d2359415d036a6c29ebfb46a51261a286a473489"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0062",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_imports.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_imports.py::TestDiscordImportSafety::test_module_imports_even_when_discord_dependency_is_missing"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0062-test_discord_imports.py.log",
      "output_sha256": "3deb9d1d3183bb7a6d1acdd484c6a86dc68d83e8ab5e67323eb26c5406e7a307",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_imports.py",
      "test_file_sha256": "628c206f64ab8a3384785bbed161966ae516cc73255ae1b6cad0291f52d0b0eb"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0063",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_lazy_install_views.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_lazy_install_views.py::TestDefineDiscordViewClasses::test_registers_all_five_view_classes",
        "tests/gateway/test_discord_lazy_install_views.py::TestDefineDiscordViewClasses::test_check_discord_requirements_calls_define_on_lazy_install"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0063-test_discord_lazy_install_views.py.log",
      "output_sha256": "15fcaae3fdb02e561a95564f8eec56e7a993fa30f3ae73544850755f33cc1f35",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_lazy_install_views.py",
      "test_file_sha256": "c10dcbcdfef219570935d6a203204b2950efeb56415783ffe8e207d504b75fac"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0064",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_media_metadata.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_media_metadata.py::test_discord_media_methods_accept_metadata_kwarg"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0064-test_discord_media_metadata.py.log",
      "output_sha256": "3e9a3d6560dfa8581912ab22f8b6f27638d0cce0cf48fc4a987fb0768f01fa9f",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_media_metadata.py",
      "test_file_sha256": "11550711ea07e695efc1d655edfcd5a5a07e4899adee0529f53b65f538b14cc6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0065",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_model_picker.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_model_picker.py::test_model_picker_clears_controls_before_running_switch_callback",
        "tests/gateway/test_discord_model_picker.py::test_expensive_model_requires_confirmation"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0065-test_discord_model_picker.py.log",
      "output_sha256": "e350aef5cb707507ec00e7b32fc116eadfa0714a850f69f82ab17f728ba949d5",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_model_picker.py",
      "test_file_sha256": "6db9fe4887c53ff982a413dfbd20bb73188f4e30b0007deda46d336ad940042e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0066",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_opus.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_opus.py::TestOpusFindLibrary::test_uses_find_library_first",
        "tests/gateway/test_discord_opus.py::TestOpusFindLibrary::test_homebrew_fallback_is_conditional",
        "tests/gateway/test_discord_opus.py::TestOpusFindLibrary::test_windows_bundled_discord_opus_dll_is_discovered",
        "tests/gateway/test_discord_opus.py::TestOpusFindLibrary::test_opus_decode_error_logged"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0066-test_discord_opus.py.log",
      "output_sha256": "d30657c38e0e78b6e33b67721845653c069c8701e0088e64cddbe3489fec2229",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_opus.py",
      "test_file_sha256": "3c6ee325402146eb02bf9f0003d4e6b1dea9136264c3e056a449825cda02c914"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0067",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_race_polish.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_race_polish.py::test_concurrent_joins_do_not_double_connect"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0067-test_discord_race_polish.py.log",
      "output_sha256": "854ed5f261fee7f830b71bf1580643f31f886d92df9e758327d319a855dae0d5",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_race_polish.py",
      "test_file_sha256": "486d986e7bd6a2f5f0fe2d68add473dcd49eb318de3df89318a527f82c0dbd6a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0068",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_reactions.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_reactions.py::test_process_message_background_adds_and_swaps_reactions",
        "tests/gateway/test_discord_reactions.py::test_interaction_backed_events_do_not_attempt_reactions",
        "tests/gateway/test_discord_reactions.py::test_reaction_helper_failures_do_not_break_message_flow",
        "tests/gateway/test_discord_reactions.py::test_reactions_disabled_via_env",
        "tests/gateway/test_discord_reactions.py::test_reactions_disabled_via_env_zero",
        "tests/gateway/test_discord_reactions.py::test_reactions_enabled_by_default",
        "tests/gateway/test_discord_reactions.py::test_on_processing_complete_cancelled_removes_eyes_without_terminal_reaction"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0068-test_discord_reactions.py.log",
      "output_sha256": "ea707389e5c2842e979db744eae4c1b75ceaeeada60598f2f7c42fe774c081ab",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_reactions.py",
      "test_file_sha256": "d200c24e0c266da1af876db62589f61e09ab8714049ee23fa7b87d648557f6f6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0069",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_reply_mode.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_reply_mode.py::TestReplyToModeConfig::test_default_mode_is_first",
        "tests/gateway/test_discord_reply_mode.py::TestReplyToModeConfig::test_off_mode",
        "tests/gateway/test_discord_reply_mode.py::TestReplyToModeConfig::test_first_mode",
        "tests/gateway/test_discord_reply_mode.py::TestReplyToModeConfig::test_all_mode",
        "tests/gateway/test_discord_reply_mode.py::TestReplyToModeConfig::test_invalid_mode_stored_as_is",
        "tests/gateway/test_discord_reply_mode.py::TestReplyToModeConfig::test_none_mode_defaults_to_first",
        "tests/gateway/test_discord_reply_mode.py::TestReplyToModeConfig::test_empty_string_mode_defaults_to_first",
        "tests/gateway/test_discord_reply_mode.py::TestSendWithReplyToMode::test_off_mode_no_reply_reference",
        "tests/gateway/test_discord_reply_mode.py::TestSendWithReplyToMode::test_first_mode_only_first_chunk_references",
        "tests/gateway/test_discord_reply_mode.py::TestSendWithReplyToMode::test_all_mode_all_chunks_reference",
        "tests/gateway/test_discord_reply_mode.py::TestSendWithReplyToMode::test_no_reply_to_param_no_reference",
        "tests/gateway/test_discord_reply_mode.py::TestSendWithReplyToMode::test_single_chunk_respects_first_mode",
        "tests/gateway/test_discord_reply_mode.py::TestSendWithReplyToMode::test_single_chunk_off_mode",
        "tests/gateway/test_discord_reply_mode.py::TestSendWithReplyToMode::test_invalid_mode_falls_back_to_first_behavior",
        "tests/gateway/test_discord_reply_mode.py::TestConfigSerialization::test_to_dict_includes_reply_to_mode",
        "tests/gateway/test_discord_reply_mode.py::TestConfigSerialization::test_from_dict_loads_reply_to_mode",
        "tests/gateway/test_discord_reply_mode.py::TestConfigSerialization::test_from_dict_defaults_to_first",
        "tests/gateway/test_discord_reply_mode.py::TestEnvVarOverride::test_env_var_sets_off_mode",
        "tests/gateway/test_discord_reply_mode.py::TestEnvVarOverride::test_env_var_sets_all_mode",
        "tests/gateway/test_discord_reply_mode.py::TestEnvVarOverride::test_env_var_case_insensitive",
        "tests/gateway/test_discord_reply_mode.py::TestEnvVarOverride::test_env_var_invalid_value_ignored",
        "tests/gateway/test_discord_reply_mode.py::TestEnvVarOverride::test_env_var_empty_value_ignored",
        "tests/gateway/test_discord_reply_mode.py::TestEnvVarOverride::test_env_var_creates_platform_config_if_missing",
        "tests/gateway/test_discord_reply_mode.py::TestReplyToText::test_no_reference_both_none",
        "tests/gateway/test_discord_reply_mode.py::TestReplyToText::test_reference_without_resolved",
        "tests/gateway/test_discord_reply_mode.py::TestReplyToText::test_reference_with_resolved_content",
        "tests/gateway/test_discord_reply_mode.py::TestReplyToText::test_reference_with_empty_resolved_content",
        "tests/gateway/test_discord_reply_mode.py::TestReplyToText::test_reference_with_deleted_message",
        "tests/gateway/test_discord_reply_mode.py::TestYamlConfigLoading::test_top_level_reply_to_mode_off",
        "tests/gateway/test_discord_reply_mode.py::TestYamlConfigLoading::test_top_level_reply_to_mode_all",
        "tests/gateway/test_discord_reply_mode.py::TestYamlConfigLoading::test_extra_reply_to_mode_off",
        "tests/gateway/test_discord_reply_mode.py::TestYamlConfigLoading::test_env_var_takes_precedence_over_yaml",
        "tests/gateway/test_discord_reply_mode.py::TestYamlConfigLoading::test_top_level_takes_precedence_over_extra"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0069-test_discord_reply_mode.py.log",
      "output_sha256": "c5f0b540fb28ed7d054578549cbf99e13abaeffaf0c2073d0eaf751a66cf0b42",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_reply_mode.py",
      "test_file_sha256": "2ec8452ce516002d21bb2a89d8324497d141540c4e2368adb03a4d9936f4f152"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0070",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_roles_dm_scope.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_roles_dm_scope.py::test_dm_rejects_role_held_in_other_guild",
        "tests/gateway/test_discord_roles_dm_scope.py::test_dm_role_auth_requires_explicit_guild_optin",
        "tests/gateway/test_discord_roles_dm_scope.py::test_dm_role_auth_optin_rejects_when_not_member",
        "tests/gateway/test_discord_roles_dm_scope.py::test_guild_message_role_check_scoped_to_originating_guild",
        "tests/gateway/test_discord_roles_dm_scope.py::test_guild_message_role_check_allows_when_role_in_same_guild",
        "tests/gateway/test_discord_roles_dm_scope.py::test_guild_message_rejects_author_roles_from_different_guild",
        "tests/gateway/test_discord_roles_dm_scope.py::test_user_id_allowlist_works_in_dm",
        "tests/gateway/test_discord_roles_dm_scope.py::test_user_id_allowlist_works_in_guild",
        "tests/gateway/test_discord_roles_dm_scope.py::test_empty_allowlists_allow_everyone",
        "tests/gateway/test_discord_roles_dm_scope.py::test_slash_authorization_rejects_cross_guild_role_dm",
        "tests/gateway/test_discord_roles_dm_scope.py::test_slash_authorization_rejects_cross_guild_role_in_guild",
        "tests/gateway/test_discord_roles_dm_scope.py::test_slash_authorization_allows_in_scope_guild_role"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0070-test_discord_roles_dm_scope.py.log",
      "output_sha256": "350f92208806b8e01471fd17a31010b6bedc871ae44795528bc69101363157c2",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_roles_dm_scope.py",
      "test_file_sha256": "0e15dd1a1bcfaca6f2dd53971d348d6e19069c4d39a7b94bea43a5f9a232d55a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0071",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_send.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_send.py::test_send_retries_without_reference_when_reply_target_is_system_message",
        "tests/gateway/test_discord_send.py::test_send_retries_without_reference_when_reply_target_is_deleted",
        "tests/gateway/test_discord_send.py::test_send_does_not_retry_on_unrelated_errors",
        "tests/gateway/test_discord_send.py::TestIsForumParent::test_none_returns_false",
        "tests/gateway/test_discord_send.py::TestIsForumParent::test_forum_channel_class_instance",
        "tests/gateway/test_discord_send.py::TestIsForumParent::test_type_value_15",
        "tests/gateway/test_discord_send.py::TestIsForumParent::test_regular_channel_returns_false",
        "tests/gateway/test_discord_send.py::TestIsForumParent::test_thread_returns_false",
        "tests/gateway/test_discord_send.py::test_send_to_forum_creates_thread_post",
        "tests/gateway/test_discord_send.py::test_send_to_forum_sends_remaining_chunks",
        "tests/gateway/test_discord_send.py::test_send_to_forum_create_thread_failure",
        "tests/gateway/test_discord_send.py::test_send_to_forum_follow_up_chunk_failures_collected_as_warnings",
        "tests/gateway/test_discord_send.py::test_forum_post_file_creates_thread_with_attachment",
        "tests/gateway/test_discord_send.py::test_forum_post_file_uses_filename_when_no_content",
        "tests/gateway/test_discord_send.py::test_forum_post_file_creation_failure",
        "tests/gateway/test_discord_send.py::test_typing_task_removed_after_api_error",
        "tests/gateway/test_discord_send.py::test_typing_restartable_after_error",
        "tests/gateway/test_discord_send.py::test_typing_stop_cleans_up"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0071-test_discord_send.py.log",
      "output_sha256": "2eaec1e18dfcc3942f6c42abdd8d8a562e8886f80cb2b2ae2b3cc2331457a4f1",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_send.py",
      "test_file_sha256": "b501753c275b75f6e25a395327b78c2fc4fe4793d9e5a4800898fce05e9f91a4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0072",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_slash_auth.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_slash_auth.py::test_no_allowlist_allows_everyone",
        "tests/gateway/test_discord_slash_auth.py::test_no_allowlist_dm_also_allowed",
        "tests/gateway/test_discord_slash_auth.py::test_allowed_user_passes",
        "tests/gateway/test_discord_slash_auth.py::test_disallowed_user_rejected_with_ephemeral",
        "tests/gateway/test_discord_slash_auth.py::test_role_member_passes",
        "tests/gateway/test_discord_slash_auth.py::test_role_non_member_rejected",
        "tests/gateway/test_discord_slash_auth.py::test_channel_not_in_allowlist_rejected",
        "tests/gateway/test_discord_slash_auth.py::test_channel_in_allowlist_passes",
        "tests/gateway/test_discord_slash_auth.py::test_channel_allowlist_wildcard_passes",
        "tests/gateway/test_discord_slash_auth.py::test_channel_allowlist_does_not_apply_to_dms",
        "tests/gateway/test_discord_slash_auth.py::test_ignored_channel_rejected",
        "tests/gateway/test_discord_slash_auth.py::test_ignored_channel_wildcard_blocks_all",
        "tests/gateway/test_discord_slash_auth.py::test_unauthorized_attempt_notifies_telegram",
        "tests/gateway/test_discord_slash_auth.py::test_notify_silently_no_ops_without_runner",
        "tests/gateway/test_discord_slash_auth.py::test_notify_falls_back_to_slack_if_no_telegram",
        "tests/gateway/test_discord_slash_auth.py::test_visibility_hide_off_by_default_is_noop",
        "tests/gateway/test_discord_slash_auth.py::test_visibility_hide_helper_zeroes_perms",
        "tests/gateway/test_discord_slash_auth.py::test_visibility_hide_tolerates_unsetable_command",
        "tests/gateway/test_discord_slash_auth.py::test_missing_channel_id_rejected_when_channel_policy_configured",
        "tests/gateway/test_discord_slash_auth.py::test_missing_channel_id_allowed_when_no_channel_policy",
        "tests/gateway/test_discord_slash_auth.py::test_missing_user_rejected_when_allowlist_configured",
        "tests/gateway/test_discord_slash_auth.py::test_missing_user_allowed_when_no_allowlist_configured",
        "tests/gateway/test_discord_slash_auth.py::test_thread_parent_in_allowlist_passes",
        "tests/gateway/test_discord_slash_auth.py::test_thread_parent_in_ignorelist_rejects",
        "tests/gateway/test_discord_slash_auth.py::test_ignored_beats_allowed",
        "tests/gateway/test_discord_slash_auth.py::test_notify_falls_back_to_slack_on_telegram_soft_fail",
        "tests/gateway/test_discord_slash_auth.py::test_notify_returns_on_telegram_truthy_success",
        "tests/gateway/test_discord_slash_auth.py::test_skill_autocomplete_returns_empty_for_unauthorized",
        "tests/gateway/test_discord_slash_auth.py::test_skill_autocomplete_returns_choices_for_authorized",
        "tests/gateway/test_discord_slash_auth.py::test_skill_handler_rejects_before_dispatch_for_unauthorized",
        "tests/gateway/test_discord_slash_auth.py::test_skill_handler_known_and_unknown_produce_same_rejection",
        "tests/gateway/test_discord_slash_auth.py::test_skill_handler_dispatches_for_authorized"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0072-test_discord_slash_auth.py.log",
      "output_sha256": "3a00261b7629d23304a60a0d4735b2d132ae986999ddd13a43a347f8b465f1ab",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_slash_auth.py",
      "test_file_sha256": "f6ae01868639cfaf573afc1eca6b6484bc6d18cef5f34c2b0e686dc9da0b5876"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0073",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_slash_commands.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_slash_commands.py::test_registers_native_thread_slash_command",
        "tests/gateway/test_discord_slash_commands.py::test_registers_native_restart_slash_command",
        "tests/gateway/test_discord_slash_commands.py::test_auto_registers_missing_gateway_commands",
        "tests/gateway/test_discord_slash_commands.py::test_auto_registered_command_dispatches_correctly",
        "tests/gateway/test_discord_slash_commands.py::test_auto_registered_command_with_args",
        "tests/gateway/test_discord_slash_commands.py::test_auto_registers_plugin_commands_for_discord",
        "tests/gateway/test_discord_slash_commands.py::test_auto_registered_plugin_command_without_args_hint",
        "tests/gateway/test_discord_slash_commands.py::test_plugin_command_name_conflict_skipped",
        "tests/gateway/test_discord_slash_commands.py::test_slash_command_registration_stays_under_discord_limit",
        "tests/gateway/test_discord_slash_commands.py::test_handle_thread_create_slash_reports_success",
        "tests/gateway/test_discord_slash_commands.py::test_handle_thread_create_slash_dispatches_session_when_message_provided",
        "tests/gateway/test_discord_slash_commands.py::test_handle_thread_create_slash_no_dispatch_without_message",
        "tests/gateway/test_discord_slash_commands.py::test_handle_thread_create_slash_falls_back_to_seed_message",
        "tests/gateway/test_discord_slash_commands.py::test_handle_thread_create_slash_reports_failure",
        "tests/gateway/test_discord_slash_commands.py::test_dispatch_thread_session_builds_thread_event",
        "tests/gateway/test_discord_slash_commands.py::test_build_slash_event_preserves_thread_context",
        "tests/gateway/test_discord_slash_commands.py::test_build_slash_event_uses_group_context_for_channels",
        "tests/gateway/test_discord_slash_commands.py::test_auto_create_thread_uses_message_content_as_name",
        "tests/gateway/test_discord_slash_commands.py::test_auto_create_thread_strips_mention_syntax_from_name",
        "tests/gateway/test_discord_slash_commands.py::test_auto_create_thread_falls_back_to_hermes_when_only_mentions",
        "tests/gateway/test_discord_slash_commands.py::test_auto_create_thread_truncates_long_names",
        "tests/gateway/test_discord_slash_commands.py::test_auto_create_thread_falls_back_to_seed_message",
        "tests/gateway/test_discord_slash_commands.py::test_auto_create_thread_returns_none_when_direct_and_fallback_fail",
        "tests/gateway/test_discord_slash_commands.py::test_auto_thread_creates_thread_and_redirects",
        "tests/gateway/test_discord_slash_commands.py::test_auto_thread_enabled_by_default_slash_commands",
        "tests/gateway/test_discord_slash_commands.py::test_auto_thread_can_be_disabled",
        "tests/gateway/test_discord_slash_commands.py::test_auto_thread_skips_threads_and_dms",
        "tests/gateway/test_discord_slash_commands.py::test_discord_auto_thread_config_bridge",
        "tests/gateway/test_discord_slash_commands.py::test_register_skill_command_is_flat_not_nested",
        "tests/gateway/test_discord_slash_commands.py::test_register_skill_command_empty_skills_no_command",
        "tests/gateway/test_discord_slash_commands.py::test_register_skill_command_callback_dispatches_by_name",
        "tests/gateway/test_discord_slash_commands.py::test_register_skill_command_handles_unknown_skill_gracefully",
        "tests/gateway/test_discord_slash_commands.py::test_register_skill_command_payload_fits_discord_8kb_limit",
        "tests/gateway/test_discord_slash_commands.py::test_register_skill_command_autocomplete_filters_by_name_and_description"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0073-test_discord_slash_commands.py.log",
      "output_sha256": "e6b8dbf66eadbf15e2262eb4859847b0003b244e6be4b6840ba2e4564f209eee",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_slash_commands.py",
      "test_file_sha256": "c58e2513eb40e71d1c29b1a0cd71208576b2cc9efcab0cb0efeee9cc5761639b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0074",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_system_messages.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_system_messages.py::TestDiscordSystemMessageFilter::test_default_messages_accepted",
        "tests/gateway/test_discord_system_messages.py::TestDiscordSystemMessageFilter::test_new_member_ignored",
        "tests/gateway/test_discord_system_messages.py::TestDiscordSystemMessageFilter::test_own_default_messages_still_ignored",
        "tests/gateway/test_discord_system_messages.py::TestDiscordSystemMessageFilter::test_pins_add_ignored",
        "tests/gateway/test_discord_system_messages.py::TestDiscordSystemMessageFilter::test_premium_guild_subscription_ignored",
        "tests/gateway/test_discord_system_messages.py::TestDiscordSystemMessageFilter::test_recipient_add_ignored",
        "tests/gateway/test_discord_system_messages.py::TestDiscordSystemMessageFilter::test_reply_messages_accepted",
        "tests/gateway/test_discord_system_messages.py::TestDiscordSystemMessageFilter::test_thread_rename_ignored"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0074-test_discord_system_messages.py.log",
      "output_sha256": "adba229975d801504584f54250a8bdc090d67c756adb004ca7fa115b296da393",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_system_messages.py",
      "test_file_sha256": "1f7a5ad45b1d71384b491f2e295212eaf6a47125d01936d375892a3e334ce461"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0075",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_thread_persistence.py"
      ],
      "nodeids": [
        "tests/gateway/test_discord_thread_persistence.py::TestDiscordThreadPersistence::test_starts_empty_when_no_state_file",
        "tests/gateway/test_discord_thread_persistence.py::TestDiscordThreadPersistence::test_track_thread_persists_to_disk",
        "tests/gateway/test_discord_thread_persistence.py::TestDiscordThreadPersistence::test_threads_survive_restart",
        "tests/gateway/test_discord_thread_persistence.py::TestDiscordThreadPersistence::test_duplicate_track_does_not_double_save",
        "tests/gateway/test_discord_thread_persistence.py::TestDiscordThreadPersistence::test_caps_at_max_tracked_threads",
        "tests/gateway/test_discord_thread_persistence.py::TestDiscordThreadPersistence::test_capacity_keeps_newest_thread_when_existing_state_is_full",
        "tests/gateway/test_discord_thread_persistence.py::TestDiscordThreadPersistence::test_corrupted_state_file_falls_back_to_empty",
        "tests/gateway/test_discord_thread_persistence.py::TestDiscordThreadPersistence::test_missing_hermes_home_does_not_crash"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0075-test_discord_thread_persistence.py.log",
      "output_sha256": "651133741b036dfb4281c889556659f42c344aba6adafe6b8d74858dd6d5ea0c",
      "returncode": 0,
      "test_file": "tests/gateway/test_discord_thread_persistence.py",
      "test_file_sha256": "1cf1591ee4feb3e29d05c162007d480af9a67f8a48689755c985d0672b75b147"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0076",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_voice_mixer.py"
      ],
      "nodeids": [],
      "outcome": "collection_skip",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0076-test_discord_voice_mixer.py.log",
      "output_sha256": "1f1c40c442b1ae5e2da17e27547f69e8ad498b39c33e26680b01d2066776434b",
      "returncode": 5,
      "test_file": "tests/gateway/test_discord_voice_mixer.py",
      "test_file_sha256": "e81efd7462150d2b493b99c8e8bb01e7aa2304b8c7ec6db737e0aac7c3fb4f7f"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0077",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_display_config.py"
      ],
      "nodeids": [
        "tests/gateway/test_display_config.py::TestResolveDisplaySetting::test_explicit_platform_override_wins",
        "tests/gateway/test_display_config.py::TestResolveDisplaySetting::test_global_setting_when_no_platform_override",
        "tests/gateway/test_display_config.py::TestResolveDisplaySetting::test_platform_default_when_no_user_config",
        "tests/gateway/test_display_config.py::TestResolveDisplaySetting::test_global_default_for_unknown_platform",
        "tests/gateway/test_display_config.py::TestResolveDisplaySetting::test_fallback_parameter_used_last",
        "tests/gateway/test_display_config.py::TestResolveDisplaySetting::test_platform_override_only_affects_that_platform",
        "tests/gateway/test_display_config.py::TestBackwardCompat::test_legacy_overrides_read",
        "tests/gateway/test_display_config.py::TestBackwardCompat::test_new_platforms_takes_precedence_over_legacy",
        "tests/gateway/test_display_config.py::TestBackwardCompat::test_legacy_overrides_only_for_tool_progress",
        "tests/gateway/test_display_config.py::TestYAMLNormalisation::test_tool_progress_false_normalised_to_off",
        "tests/gateway/test_display_config.py::TestYAMLNormalisation::test_tool_progress_true_normalised_to_all",
        "tests/gateway/test_display_config.py::TestYAMLNormalisation::test_show_reasoning_string_true",
        "tests/gateway/test_display_config.py::TestYAMLNormalisation::test_tool_preview_length_string",
        "tests/gateway/test_display_config.py::TestYAMLNormalisation::test_platform_override_false_tool_progress",
        "tests/gateway/test_display_config.py::TestPlatformDefaults::test_high_tier_platforms",
        "tests/gateway/test_display_config.py::TestPlatformDefaults::test_medium_tier_platforms",
        "tests/gateway/test_display_config.py::TestPlatformDefaults::test_slack_defaults_tool_progress_off",
        "tests/gateway/test_display_config.py::TestPlatformDefaults::test_low_tier_platforms",
        "tests/gateway/test_display_config.py::TestPlatformDefaults::test_whatsapp_cloud_locked_to_low_tier_until_edit_message_lands",
        "tests/gateway/test_display_config.py::TestPlatformDefaults::test_minimal_tier_platforms",
        "tests/gateway/test_display_config.py::TestPlatformDefaults::test_low_tier_streaming_defaults_to_false",
        "tests/gateway/test_display_config.py::TestPlatformDefaults::test_high_tier_streaming_defaults_to_none",
        "tests/gateway/test_display_config.py::TestPlatformDefaults::test_telegram_mobile_chatter_defaults",
        "tests/gateway/test_display_config.py::TestPlatformDefaults::test_telegram_mobile_chatter_can_opt_in",
        "tests/gateway/test_display_config.py::TestConfigMigration::test_migration_creates_platforms_entries",
        "tests/gateway/test_display_config.py::TestConfigMigration::test_migration_preserves_existing_platforms_entries",
        "tests/gateway/test_display_config.py::TestStreamingPerPlatform::test_none_means_follow_global",
        "tests/gateway/test_display_config.py::TestStreamingPerPlatform::test_global_display_streaming_is_cli_only",
        "tests/gateway/test_display_config.py::TestStreamingPerPlatform::test_explicit_false_disables",
        "tests/gateway/test_display_config.py::TestStreamingPerPlatform::test_explicit_true_enables",
        "tests/gateway/test_display_config.py::TestCleanupProgress::test_default_off_for_all_platforms",
        "tests/gateway/test_display_config.py::TestCleanupProgress::test_global_true_applies_to_all_platforms",
        "tests/gateway/test_display_config.py::TestCleanupProgress::test_per_platform_override_wins",
        "tests/gateway/test_display_config.py::TestCleanupProgress::test_yaml_off_string_normalises_to_false",
        "tests/gateway/test_display_config.py::TestCleanupProgress::test_yaml_true_string_normalises_to_true",
        "tests/gateway/test_display_config.py::TestToolProgressGrouping::test_default_is_accumulate",
        "tests/gateway/test_display_config.py::TestToolProgressGrouping::test_global_separate",
        "tests/gateway/test_display_config.py::TestToolProgressGrouping::test_platform_override_wins",
        "tests/gateway/test_display_config.py::TestToolProgressGrouping::test_invalid_value_falls_back_to_accumulate",
        "tests/gateway/test_display_config.py::TestToolProgressGrouping::test_case_insensitive"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0077-test_display_config.py.log",
      "output_sha256": "59bd482876bdb8c3c6346c878b7a9c6675569304d47d59527fc69fd30831e7dd",
      "returncode": 0,
      "test_file": "tests/gateway/test_display_config.py",
      "test_file_sha256": "1cafa57d8126065c8e2d81fcdf19bbea33d9c3ab82ba612649557103e575fe42"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0078",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_dm_topics.py"
      ],
      "nodeids": [
        "tests/gateway/test_dm_topics.py::test_setup_dm_topics_loads_persisted_thread_ids",
        "tests/gateway/test_dm_topics.py::test_setup_dm_topics_creates_when_no_thread_id",
        "tests/gateway/test_dm_topics.py::test_setup_dm_topics_mixed_persisted_and_new",
        "tests/gateway/test_dm_topics.py::test_setup_dm_topics_skips_empty_config",
        "tests/gateway/test_dm_topics.py::test_setup_dm_topics_no_config",
        "tests/gateway/test_dm_topics.py::test_create_dm_topic_handles_duplicate_error",
        "tests/gateway/test_dm_topics.py::test_create_dm_topic_handles_generic_error",
        "tests/gateway/test_dm_topics.py::test_create_dm_topic_returns_none_without_bot",
        "tests/gateway/test_dm_topics.py::test_ensure_dm_topic_creates_on_demand_and_persists",
        "tests/gateway/test_dm_topics.py::test_ensure_dm_topic_force_create_replaces_persisted_thread_id",
        "tests/gateway/test_dm_topics.py::test_persist_dm_topic_thread_id_writes_config",
        "tests/gateway/test_dm_topics.py::test_persist_dm_topic_thread_id_skips_if_already_set",
        "tests/gateway/test_dm_topics.py::test_persist_dm_topic_thread_id_replaces_existing_when_requested",
        "tests/gateway/test_dm_topics.py::test_persist_dm_topic_thread_id_preserves_config_on_write_failure",
        "tests/gateway/test_dm_topics.py::test_get_dm_topic_info_finds_cached_topic",
        "tests/gateway/test_dm_topics.py::test_get_dm_topic_info_returns_none_for_unknown",
        "tests/gateway/test_dm_topics.py::test_get_dm_topic_info_returns_none_without_config",
        "tests/gateway/test_dm_topics.py::test_get_dm_topic_info_returns_none_for_none_thread",
        "tests/gateway/test_dm_topics.py::test_get_dm_topic_info_hot_reloads_from_config",
        "tests/gateway/test_dm_topics.py::test_cache_dm_topic_from_message",
        "tests/gateway/test_dm_topics.py::test_cache_dm_topic_from_message_no_overwrite",
        "tests/gateway/test_dm_topics.py::test_build_message_event_sets_auto_skill",
        "tests/gateway/test_dm_topics.py::test_build_message_event_no_auto_skill_without_binding",
        "tests/gateway/test_dm_topics.py::test_build_message_event_no_auto_skill_without_thread",
        "tests/gateway/test_dm_topics.py::test_build_message_event_filters_non_topic_dm_thread_id",
        "tests/gateway/test_dm_topics.py::test_build_message_event_preserves_true_dm_topic_thread_id",
        "tests/gateway/test_dm_topics.py::test_group_topic_skill_binding",
        "tests/gateway/test_dm_topics.py::test_group_topic_skill_binding_second_topic",
        "tests/gateway/test_dm_topics.py::test_group_topic_no_skill_binding",
        "tests/gateway/test_dm_topics.py::test_group_topic_unmapped_thread_id",
        "tests/gateway/test_dm_topics.py::test_group_topic_unmapped_chat_id",
        "tests/gateway/test_dm_topics.py::test_group_topic_no_config",
        "tests/gateway/test_dm_topics.py::test_group_topic_chat_id_int_string_coercion",
        "tests/gateway/test_dm_topics.py::test_build_message_event_dm_from_user_none_falls_back_to_chat_id",
        "tests/gateway/test_dm_topics.py::test_build_message_event_group_from_user_none_stays_none",
        "tests/gateway/test_dm_topics.py::test_build_message_event_dm_from_user_present_uses_user"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0078-test_dm_topics.py.log",
      "output_sha256": "9c9c801021c1d238d90ca86d783ac8ac3826de24185c07b158cbf06c0cf15f92",
      "returncode": 0,
      "test_file": "tests/gateway/test_dm_topics.py",
      "test_file_sha256": "a5e1c97817d44d85ac9786de2d3a15709ff1b2c843183c3e6362fb06882d9ecb"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0079",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_document_cache.py"
      ],
      "nodeids": [
        "tests/gateway/test_document_cache.py::TestGetDocumentCacheDir::test_creates_directory",
        "tests/gateway/test_document_cache.py::TestGetDocumentCacheDir::test_returns_existing_directory",
        "tests/gateway/test_document_cache.py::TestCacheDocumentFromBytes::test_basic_caching",
        "tests/gateway/test_document_cache.py::TestCacheDocumentFromBytes::test_filename_preserved_in_path",
        "tests/gateway/test_document_cache.py::TestCacheDocumentFromBytes::test_empty_filename_uses_fallback",
        "tests/gateway/test_document_cache.py::TestCacheDocumentFromBytes::test_unique_filenames",
        "tests/gateway/test_document_cache.py::TestCacheDocumentFromBytes::test_path_traversal_blocked",
        "tests/gateway/test_document_cache.py::TestCacheDocumentFromBytes::test_null_bytes_stripped",
        "tests/gateway/test_document_cache.py::TestCacheDocumentFromBytes::test_dot_dot_filename_handled",
        "tests/gateway/test_document_cache.py::TestCacheDocumentFromBytes::test_none_filename_uses_fallback",
        "tests/gateway/test_document_cache.py::TestCleanupDocumentCache::test_removes_old_files",
        "tests/gateway/test_document_cache.py::TestCleanupDocumentCache::test_keeps_recent_files",
        "tests/gateway/test_document_cache.py::TestCleanupDocumentCache::test_returns_removed_count",
        "tests/gateway/test_document_cache.py::TestCleanupDocumentCache::test_empty_cache_dir",
        "tests/gateway/test_document_cache.py::TestSupportedDocumentTypes::test_all_extensions_have_mime_types",
        "tests/gateway/test_document_cache.py::TestSupportedDocumentTypes::test_expected_extensions_present[.pdf]",
        "tests/gateway/test_document_cache.py::TestSupportedDocumentTypes::test_expected_extensions_present[.md]",
        "tests/gateway/test_document_cache.py::TestSupportedDocumentTypes::test_expected_extensions_present[.txt]",
        "tests/gateway/test_document_cache.py::TestSupportedDocumentTypes::test_expected_extensions_present[.zip]",
        "tests/gateway/test_document_cache.py::TestSupportedDocumentTypes::test_expected_extensions_present[.doc]",
        "tests/gateway/test_document_cache.py::TestSupportedDocumentTypes::test_expected_extensions_present[.docx]",
        "tests/gateway/test_document_cache.py::TestSupportedDocumentTypes::test_expected_extensions_present[.xls]",
        "tests/gateway/test_document_cache.py::TestSupportedDocumentTypes::test_expected_extensions_present[.xlsx]",
        "tests/gateway/test_document_cache.py::TestSupportedDocumentTypes::test_expected_extensions_present[.ppt]",
        "tests/gateway/test_document_cache.py::TestSupportedDocumentTypes::test_expected_extensions_present[.pptx]",
        "tests/gateway/test_document_cache.py::TestCacheMediaBytes::test_pdf_routes_to_document",
        "tests/gateway/test_document_cache.py::TestCacheMediaBytes::test_png_routes_to_image",
        "tests/gateway/test_document_cache.py::TestCacheMediaBytes::test_native_photo_without_filename_uses_default_kind",
        "tests/gateway/test_document_cache.py::TestCacheMediaBytes::test_mp4_routes_to_video",
        "tests/gateway/test_document_cache.py::TestCacheMediaBytes::test_mime_only_resolves_extension",
        "tests/gateway/test_document_cache.py::TestCacheMediaBytes::test_unsupported_document_returns_none",
        "tests/gateway/test_document_cache.py::TestCacheMediaBytes::test_invalid_image_returns_none"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0079-test_document_cache.py.log",
      "output_sha256": "5cf91ece961af4b52b1349251c98e7d97e6652050b5e7a43daf9bea2af52e1c3",
      "returncode": 0,
      "test_file": "tests/gateway/test_document_cache.py",
      "test_file_sha256": "376278eb52a327042f066de50d56038cf83e019c9357beed40fe17bf086ac5f3"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0080",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_document_context_note.py"
      ],
      "nodeids": [
        "tests/gateway/test_document_context_note.py::TestTextDocumentNote::test_text_note_mentions_included_content_and_path[text/plain]",
        "tests/gateway/test_document_context_note.py::TestTextDocumentNote::test_text_note_mentions_included_content_and_path[text/markdown]",
        "tests/gateway/test_document_context_note.py::TestTextDocumentNote::test_text_note_mentions_included_content_and_path[text/csv]",
        "tests/gateway/test_document_context_note.py::TestBinaryDocumentNote::test_binary_note_guides_extraction[application/pdf]",
        "tests/gateway/test_document_context_note.py::TestBinaryDocumentNote::test_binary_note_guides_extraction[application/vnd.openxmlformats-officedocument.wordprocessingml.document]",
        "tests/gateway/test_document_context_note.py::TestBinaryDocumentNote::test_binary_note_guides_extraction[application/vnd.openxmlformats-officedocument.spreadsheetml.sheet]",
        "tests/gateway/test_document_context_note.py::TestBinaryDocumentNote::test_binary_note_guides_extraction[application/octet-stream]",
        "tests/gateway/test_document_context_note.py::TestBinaryDocumentNote::test_binary_note_distinct_from_text_note"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0080-test_document_context_note.py.log",
      "output_sha256": "4e640995da3b96da1a9fa7909de1e0dee20be7c28b11da46ebc9659507c0f496",
      "returncode": 0,
      "test_file": "tests/gateway/test_document_context_note.py",
      "test_file_sha256": "034b04c2163cc31f0efc857311bd195edb2e5a49005b90c0b96eb98e223ff747"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0081",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_duplicate_reply_suppression.py"
      ],
      "nodeids": [
        "tests/gateway/test_duplicate_reply_suppression.py::TestBaseInterruptSuppression::test_stale_response_suppressed_when_interrupted",
        "tests/gateway/test_duplicate_reply_suppression.py::TestBaseInterruptSuppression::test_response_not_suppressed_without_interrupt",
        "tests/gateway/test_duplicate_reply_suppression.py::TestBaseInterruptSuppression::test_response_not_suppressed_with_interrupt_but_no_pending",
        "tests/gateway/test_duplicate_reply_suppression.py::TestOnlyFinalStreamDeliverySuppressesFinalSend::test_partial_stream_output_does_not_set_already_sent",
        "tests/gateway/test_duplicate_reply_suppression.py::TestOnlyFinalStreamDeliverySuppressesFinalSend::test_already_sent_not_set_when_nothing_sent",
        "tests/gateway/test_duplicate_reply_suppression.py::TestOnlyFinalStreamDeliverySuppressesFinalSend::test_already_sent_set_on_final_response_sent",
        "tests/gateway/test_duplicate_reply_suppression.py::TestOnlyFinalStreamDeliverySuppressesFinalSend::test_already_sent_not_set_on_failed_response",
        "tests/gateway/test_duplicate_reply_suppression.py::TestEmptyResponseNotSuppressed::test_empty_sentinel_not_suppressed_with_already_sent",
        "tests/gateway/test_duplicate_reply_suppression.py::TestEmptyResponseNotSuppressed::test_empty_string_not_suppressed_with_already_sent",
        "tests/gateway/test_duplicate_reply_suppression.py::TestEmptyResponseNotSuppressed::test_none_response_not_suppressed_with_already_sent",
        "tests/gateway/test_duplicate_reply_suppression.py::TestEmptyResponseNotSuppressed::test_real_response_still_suppressed_only_when_final_delivery_confirmed",
        "tests/gateway/test_duplicate_reply_suppression.py::TestEmptyResponseNotSuppressed::test_failed_empty_response_never_suppressed",
        "tests/gateway/test_duplicate_reply_suppression.py::TestQueuedMessageAlreadyStreamed::test_queued_path_only_skips_send_when_final_response_was_streamed",
        "tests/gateway/test_duplicate_reply_suppression.py::TestQueuedMessageAlreadyStreamed::test_queued_path_detects_confirmed_final_stream_delivery",
        "tests/gateway/test_duplicate_reply_suppression.py::TestQueuedMessageAlreadyStreamed::test_queued_path_detects_previewed_response_delivery",
        "tests/gateway/test_duplicate_reply_suppression.py::TestQueuedMessageAlreadyStreamed::test_queued_path_sends_when_not_streamed",
        "tests/gateway/test_duplicate_reply_suppression.py::TestQueuedMessageAlreadyStreamed::test_queued_path_with_no_stream_consumer",
        "tests/gateway/test_duplicate_reply_suppression.py::TestCancellationHandlerDeliveryConfirmation::test_partial_only_no_accumulated_stays_false",
        "tests/gateway/test_duplicate_reply_suppression.py::TestCancellationHandlerDeliveryConfirmation::test_best_effort_succeeds_sets_true",
        "tests/gateway/test_duplicate_reply_suppression.py::TestCancellationHandlerDeliveryConfirmation::test_best_effort_fails_stays_false",
        "tests/gateway/test_duplicate_reply_suppression.py::TestCancellationHandlerDeliveryConfirmation::test_preserves_existing_true",
        "tests/gateway/test_duplicate_reply_suppression.py::TestCancellationHandlerDeliveryConfirmation::test_old_behavior_would_have_promoted_partial",
        "tests/gateway/test_duplicate_reply_suppression.py::TestFinalContentDeliveredSuppression::test_content_delivered_but_final_edit_failed_suppresses",
        "tests/gateway/test_duplicate_reply_suppression.py::TestFinalContentDeliveredSuppression::test_intermediate_text_only_does_not_suppress"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0081-test_duplicate_reply_suppression.py.log",
      "output_sha256": "e261e6ebe3b5ba2f3b870c1f478a413af833c4f50ed14503914727135dd5812a",
      "returncode": 0,
      "test_file": "tests/gateway/test_duplicate_reply_suppression.py",
      "test_file_sha256": "5f97e270a5fabed54a12781f9baddda70bd1e23f14e468301af548538fcbe391"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0082",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_email.py"
      ],
      "nodeids": [
        "tests/gateway/test_email.py::TestConfigEnvOverrides::test_email_config_loaded_from_env",
        "tests/gateway/test_email.py::TestConfigEnvOverrides::test_email_home_channel_loaded",
        "tests/gateway/test_email.py::TestConfigEnvOverrides::test_email_not_loaded_without_env",
        "tests/gateway/test_email.py::TestCheckRequirements::test_requirements_empty_env",
        "tests/gateway/test_email.py::TestCheckRequirements::test_requirements_met",
        "tests/gateway/test_email.py::TestCheckRequirements::test_requirements_not_met",
        "tests/gateway/test_email.py::TestHelperFunctions::test_decode_header_encoded",
        "tests/gateway/test_email.py::TestHelperFunctions::test_decode_header_plain",
        "tests/gateway/test_email.py::TestHelperFunctions::test_extract_email_address_bare",
        "tests/gateway/test_email.py::TestHelperFunctions::test_extract_email_address_uppercase",
        "tests/gateway/test_email.py::TestHelperFunctions::test_extract_email_address_with_name",
        "tests/gateway/test_email.py::TestHelperFunctions::test_strip_html_basic",
        "tests/gateway/test_email.py::TestHelperFunctions::test_strip_html_br_tags",
        "tests/gateway/test_email.py::TestHelperFunctions::test_strip_html_entities",
        "tests/gateway/test_email.py::TestExtractTextBody::test_empty_body",
        "tests/gateway/test_email.py::TestExtractTextBody::test_html_body_fallback",
        "tests/gateway/test_email.py::TestExtractTextBody::test_multipart_html_only",
        "tests/gateway/test_email.py::TestExtractTextBody::test_multipart_prefers_plain",
        "tests/gateway/test_email.py::TestExtractTextBody::test_plain_text_body",
        "tests/gateway/test_email.py::TestExtractAttachments::test_document_attachment",
        "tests/gateway/test_email.py::TestExtractAttachments::test_image_attachment",
        "tests/gateway/test_email.py::TestExtractAttachments::test_no_attachments",
        "tests/gateway/test_email.py::TestDispatchMessage::test_allowlisted_sender_proceeds",
        "tests/gateway/test_email.py::TestDispatchMessage::test_document_attachment_sets_document_type",
        "tests/gateway/test_email.py::TestDispatchMessage::test_empty_allowlist_allows_all",
        "tests/gateway/test_email.py::TestDispatchMessage::test_empty_body_handled",
        "tests/gateway/test_email.py::TestDispatchMessage::test_image_attachment_sets_photo_type",
        "tests/gateway/test_email.py::TestDispatchMessage::test_mixed_image_and_document_prefers_document",
        "tests/gateway/test_email.py::TestDispatchMessage::test_non_allowlisted_sender_dropped",
        "tests/gateway/test_email.py::TestDispatchMessage::test_reply_subject_not_duplicated",
        "tests/gateway/test_email.py::TestDispatchMessage::test_self_message_filtered",
        "tests/gateway/test_email.py::TestDispatchMessage::test_source_built_correctly",
        "tests/gateway/test_email.py::TestDispatchMessage::test_subject_included_in_text",
        "tests/gateway/test_email.py::TestThreadContext::test_no_thread_context_uses_default_subject",
        "tests/gateway/test_email.py::TestThreadContext::test_reply_does_not_double_re",
        "tests/gateway/test_email.py::TestThreadContext::test_reply_uses_re_prefix",
        "tests/gateway/test_email.py::TestThreadContext::test_thread_context_stored_after_dispatch",
        "tests/gateway/test_email.py::TestSendMethods::test_get_chat_info",
        "tests/gateway/test_email.py::TestSendMethods::test_send_calls_smtp",
        "tests/gateway/test_email.py::TestSendMethods::test_send_document_with_attachment",
        "tests/gateway/test_email.py::TestSendMethods::test_send_failure_returns_error",
        "tests/gateway/test_email.py::TestSendMethods::test_send_image_includes_url",
        "tests/gateway/test_email.py::TestSendMethods::test_send_typing_is_noop",
        "tests/gateway/test_email.py::TestConnectDisconnect::test_connect_imap_failure",
        "tests/gateway/test_email.py::TestConnectDisconnect::test_connect_smtp_failure",
        "tests/gateway/test_email.py::TestConnectDisconnect::test_connect_success",
        "tests/gateway/test_email.py::TestConnectDisconnect::test_disconnect_cancels_poll",
        "tests/gateway/test_email.py::TestFetchNewMessages::test_fetch_extracts_sender_name",
        "tests/gateway/test_email.py::TestFetchNewMessages::test_fetch_handles_imap_error",
        "tests/gateway/test_email.py::TestFetchNewMessages::test_fetch_no_unseen_messages",
        "tests/gateway/test_email.py::TestFetchNewMessages::test_fetch_skips_seen_uids",
        "tests/gateway/test_email.py::TestPollLoop::test_check_inbox_dispatches_messages",
        "tests/gateway/test_email.py::TestSendEmailStandalone::test_send_email_tool_failure",
        "tests/gateway/test_email.py::TestSendEmailStandalone::test_send_email_tool_not_configured",
        "tests/gateway/test_email.py::TestSendEmailStandalone::test_send_email_tool_success",
        "tests/gateway/test_email.py::TestSmtpConnectionCleanup::test_smtp_close_called_when_quit_also_fails",
        "tests/gateway/test_email.py::TestSmtpConnectionCleanup::test_smtp_quit_called_on_send_message_failure",
        "tests/gateway/test_email.py::TestImapConnectionCleanup::test_imap_logout_called_on_early_return",
        "tests/gateway/test_email.py::TestImapConnectionCleanup::test_imap_logout_called_on_uid_fetch_failure",
        "tests/gateway/test_email.py::TestImapIdExtensionForNetEase::test_connect_sends_imap_id_after_login",
        "tests/gateway/test_email.py::TestImapIdExtensionForNetEase::test_fetch_new_messages_sends_imap_id_after_login",
        "tests/gateway/test_email.py::TestImapIdExtensionForNetEase::test_send_imap_id_swallows_errors_for_non_supporting_servers",
        "tests/gateway/test_email.py::TestConnectSmtp::test_ipv4_connection_does_not_mutate_global_resolver",
        "tests/gateway/test_email.py::TestConnectSmtp::test_ipv6_timeout_falls_back_to_ipv4",
        "tests/gateway/test_email.py::TestConnectSmtp::test_port_465_ipv6_fallback",
        "tests/gateway/test_email.py::TestConnectSmtp::test_port_465_uses_smtp_ssl",
        "tests/gateway/test_email.py::TestConnectSmtp::test_port_587_uses_smtp_with_starttls",
        "tests/gateway/test_email.py::TestConnectSmtp::test_tls_verification_error_does_not_retry_ipv4"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0082-test_email.py.log",
      "output_sha256": "4d602ab31eabb0a8eb91d70bdd37a93f3ba3991979d678820a443b00932ccd96",
      "returncode": 0,
      "test_file": "tests/gateway/test_email.py",
      "test_file_sha256": "3370551b33d4719670b5ca149924b5358b7972d1621bcbb6f1aeffae06717653"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0083",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_empty_model_recovery.py"
      ],
      "nodeids": [
        "tests/gateway/test_empty_model_recovery.py::test_normal_turn_caches_last_resolved_model",
        "tests/gateway/test_empty_model_recovery.py::test_empty_model_recovers_session_last_good",
        "tests/gateway/test_empty_model_recovery.py::test_empty_model_new_session_recovers_global_last_good",
        "tests/gateway/test_empty_model_recovery.py::test_cold_start_empty_model_does_not_crash",
        "tests/gateway/test_empty_model_recovery.py::test_bare_runner_without_cache_attr_does_not_crash",
        "tests/gateway/test_empty_model_recovery.py::test_has_pending_fallback_empty_chain",
        "tests/gateway/test_empty_model_recovery.py::test_has_pending_fallback_with_chain",
        "tests/gateway/test_empty_model_recovery.py::test_has_pending_fallback_exhausted_chain",
        "tests/gateway/test_empty_model_recovery.py::test_has_pending_fallback_missing_attrs"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0083-test_empty_model_recovery.py.log",
      "output_sha256": "a6c0da9e28a55e51d94edd8270d487eb695ac5208f829ce550c35ff3292cbb1e",
      "returncode": 0,
      "test_file": "tests/gateway/test_empty_model_recovery.py",
      "test_file_sha256": "b4b757919728b0d43eda0980a786f6f2557eb074b82f135ba92aa2e693ae21c1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0084",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_ephemeral_reply.py"
      ],
      "nodeids": [
        "tests/gateway/test_ephemeral_reply.py::test_unwrap_plain_string_is_passthrough",
        "tests/gateway/test_ephemeral_reply.py::test_unwrap_none_is_passthrough",
        "tests/gateway/test_ephemeral_reply.py::test_unwrap_ephemeral_explicit_ttl_on_capable_adapter",
        "tests/gateway/test_ephemeral_reply.py::test_unwrap_ephemeral_zeros_ttl_on_incapable_adapter",
        "tests/gateway/test_ephemeral_reply.py::test_unwrap_ephemeral_default_ttl_from_config",
        "tests/gateway/test_ephemeral_reply.py::test_unwrap_ephemeral_default_ttl_zero_disables",
        "tests/gateway/test_ephemeral_reply.py::test_unwrap_ephemeral_handles_unreadable_config",
        "tests/gateway/test_ephemeral_reply.py::test_schedule_ephemeral_delete_calls_delete_after_ttl",
        "tests/gateway/test_ephemeral_reply.py::test_schedule_ephemeral_delete_swallows_errors",
        "tests/gateway/test_ephemeral_reply.py::test_schedule_ephemeral_delete_outside_event_loop_is_noop",
        "tests/gateway/test_ephemeral_reply.py::test_process_message_unwraps_ephemeral_before_send",
        "tests/gateway/test_ephemeral_reply.py::test_process_message_ephemeral_reply_does_not_auto_upload_bare_paths",
        "tests/gateway/test_ephemeral_reply.py::test_process_message_incapable_platform_does_not_schedule_delete",
        "tests/gateway/test_ephemeral_reply.py::test_process_message_plain_string_behaves_unchanged"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0084-test_ephemeral_reply.py.log",
      "output_sha256": "6772b0d47a8b179cac14e56f752eb8c3852dbc312311e21f63dbdee76c6634f1",
      "returncode": 0,
      "test_file": "tests/gateway/test_ephemeral_reply.py",
      "test_file_sha256": "bb5a96c6ca8e49c5210e405e5ca0a4e20bf7000e53d1fbd25fb31ab24ebc49f1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0085",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_extract_local_files.py"
      ],
      "nodeids": [
        "tests/gateway/test_extract_local_files.py::TestBasicDetection::test_absolute_path_image",
        "tests/gateway/test_extract_local_files.py::TestBasicDetection::test_tilde_path_image",
        "tests/gateway/test_extract_local_files.py::TestBasicDetection::test_video_extensions",
        "tests/gateway/test_extract_local_files.py::TestBasicDetection::test_image_extensions",
        "tests/gateway/test_extract_local_files.py::TestBasicDetection::test_document_extensions",
        "tests/gateway/test_extract_local_files.py::TestBasicDetection::test_spreadsheet_and_data_extensions",
        "tests/gateway/test_extract_local_files.py::TestBasicDetection::test_presentation_extensions",
        "tests/gateway/test_extract_local_files.py::TestBasicDetection::test_audio_extensions",
        "tests/gateway/test_extract_local_files.py::TestBasicDetection::test_archive_extensions",
        "tests/gateway/test_extract_local_files.py::TestBasicDetection::test_html_extension",
        "tests/gateway/test_extract_local_files.py::TestBasicDetection::test_chart_pdf_path",
        "tests/gateway/test_extract_local_files.py::TestBasicDetection::test_case_insensitive_extension",
        "tests/gateway/test_extract_local_files.py::TestBasicDetection::test_multiple_paths",
        "tests/gateway/test_extract_local_files.py::TestBasicDetection::test_path_at_line_start",
        "tests/gateway/test_extract_local_files.py::TestBasicDetection::test_path_at_end_of_line",
        "tests/gateway/test_extract_local_files.py::TestBasicDetection::test_path_with_dots_in_directory",
        "tests/gateway/test_extract_local_files.py::TestBasicDetection::test_path_with_hyphens",
        "tests/gateway/test_extract_local_files.py::TestIsfileGuard::test_nonexistent_path_skipped",
        "tests/gateway/test_extract_local_files.py::TestIsfileGuard::test_only_existing_paths_extracted",
        "tests/gateway/test_extract_local_files.py::TestURLRejection::test_https_url_not_matched",
        "tests/gateway/test_extract_local_files.py::TestURLRejection::test_http_url_not_matched",
        "tests/gateway/test_extract_local_files.py::TestURLRejection::test_file_url_not_matched",
        "tests/gateway/test_extract_local_files.py::TestCodeBlockExclusion::test_fenced_code_block_skipped",
        "tests/gateway/test_extract_local_files.py::TestCodeBlockExclusion::test_inline_code_skipped",
        "tests/gateway/test_extract_local_files.py::TestCodeBlockExclusion::test_path_outside_code_block_still_matched",
        "tests/gateway/test_extract_local_files.py::TestCodeBlockExclusion::test_mixed_inline_code_and_bare_path",
        "tests/gateway/test_extract_local_files.py::TestCodeBlockExclusion::test_multiline_fenced_block",
        "tests/gateway/test_extract_local_files.py::TestDeduplication::test_duplicate_paths_deduplicated",
        "tests/gateway/test_extract_local_files.py::TestDeduplication::test_tilde_and_expanded_same_file",
        "tests/gateway/test_extract_local_files.py::TestTextCleanup::test_path_removed_from_text",
        "tests/gateway/test_extract_local_files.py::TestTextCleanup::test_excessive_blank_lines_collapsed",
        "tests/gateway/test_extract_local_files.py::TestTextCleanup::test_no_paths_text_unchanged",
        "tests/gateway/test_extract_local_files.py::TestTextCleanup::test_tilde_form_cleaned_from_text",
        "tests/gateway/test_extract_local_files.py::TestTextCleanup::test_only_path_in_text",
        "tests/gateway/test_extract_local_files.py::TestEdgeCases::test_empty_string",
        "tests/gateway/test_extract_local_files.py::TestEdgeCases::test_no_media_extensions",
        "tests/gateway/test_extract_local_files.py::TestEdgeCases::test_path_with_spaces_not_matched",
        "tests/gateway/test_extract_local_files.py::TestEdgeCases::test_windows_drive_letter_paths_matched[See C:\\\\Users\\\\test\\\\image.png here-C:\\\\Users\\\\test\\\\image.png]",
        "tests/gateway/test_extract_local_files.py::TestEdgeCases::test_windows_drive_letter_paths_matched[See C:/Users/test/image.png here-C:/Users/test/image.png]",
        "tests/gateway/test_extract_local_files.py::TestEdgeCases::test_windows_drive_letter_paths_matched[Video at D:/data/clip.mp4 ready-D:/data/clip.mp4]",
        "tests/gateway/test_extract_local_files.py::TestEdgeCases::test_windows_drive_letter_paths_matched[Path e:/audio/track.mp3 done-e:/audio/track.mp3]",
        "tests/gateway/test_extract_local_files.py::TestEdgeCases::test_relative_windows_path_not_matched",
        "tests/gateway/test_extract_local_files.py::TestEdgeCases::test_relative_path_not_matched",
        "tests/gateway/test_extract_local_files.py::TestEdgeCases::test_bare_filename_not_matched",
        "tests/gateway/test_extract_local_files.py::TestEdgeCases::test_path_followed_by_punctuation",
        "tests/gateway/test_extract_local_files.py::TestEdgeCases::test_path_in_parentheses",
        "tests/gateway/test_extract_local_files.py::TestEdgeCases::test_path_in_quotes",
        "tests/gateway/test_extract_local_files.py::TestEdgeCases::test_deep_nested_path"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0085-test_extract_local_files.py.log",
      "output_sha256": "63719a60800efb2388f9825d16baba568948c1fd55da3e9d0b7dac5f817f54f1",
      "returncode": 0,
      "test_file": "tests/gateway/test_extract_local_files.py",
      "test_file_sha256": "68b5e3d110ef340d1d94e07aec6a8c4a528b7de424131613c0e781e8cc51c42d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0086",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_fallback_eviction.py"
      ],
      "nodeids": [
        "tests/gateway/test_fallback_eviction.py::TestFallbackEvictionGating::test_failed_run_does_not_evict_cached_agent",
        "tests/gateway/test_fallback_eviction.py::TestFallbackEvictionGating::test_successful_run_allows_eviction",
        "tests/gateway/test_fallback_eviction.py::TestFallbackEvictionGating::test_none_result_treated_as_not_failed",
        "tests/gateway/test_fallback_eviction.py::TestFallbackEvictionGating::test_missing_failed_key_treated_as_not_failed"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0086-test_fallback_eviction.py.log",
      "output_sha256": "7d4161901e27105e558dd0e20a6b1f94701ad0380a4b68493bfb1f829d846130",
      "returncode": 0,
      "test_file": "tests/gateway/test_fallback_eviction.py",
      "test_file_sha256": "2c424f4eb75817d93013c610f27cfec4f93b18fea52739da03dd438d70e5f41e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0087",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_fast_command.py"
      ],
      "nodeids": [
        "tests/gateway/test_fast_command.py::test_turn_route_injects_priority_processing_without_changing_runtime",
        "tests/gateway/test_fast_command.py::test_turn_route_skips_priority_processing_for_unsupported_models",
        "tests/gateway/test_fast_command.py::test_handle_fast_command_persists_config",
        "tests/gateway/test_fast_command.py::test_run_agent_passes_priority_processing_to_gateway_agent"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0087-test_fast_command.py.log",
      "output_sha256": "c8a1392bc757e6b663b9e5baaba549b34730ce63d60753b160e5bf685944d0fb",
      "returncode": 0,
      "test_file": "tests/gateway/test_fast_command.py",
      "test_file_sha256": "790ead6f6570d429fbfb656bd36909586f71ddd25631b00702bcd70ecd0b6b46"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0088",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_feishu.py"
      ],
      "nodeids": [
        "tests/gateway/test_feishu.py::TestConfigEnvOverrides::test_feishu_config_loaded_from_env",
        "tests/gateway/test_feishu.py::TestConfigEnvOverrides::test_feishu_home_channel_loaded",
        "tests/gateway/test_feishu.py::TestConfigEnvOverrides::test_feishu_in_connected_platforms",
        "tests/gateway/test_feishu.py::TestFeishuMessageNormalization::test_normalize_interactive_card_preserves_title_body_and_actions",
        "tests/gateway/test_feishu.py::TestFeishuMessageNormalization::test_normalize_merge_forward_preserves_summary_lines",
        "tests/gateway/test_feishu.py::TestFeishuMessageNormalization::test_normalize_share_chat_exposes_summary_and_metadata",
        "tests/gateway/test_feishu.py::TestFeishuAdapterMessaging::test_connect_acquires_scoped_lock_and_disconnect_releases_it",
        "tests/gateway/test_feishu.py::TestFeishuAdapterMessaging::test_connect_rejects_existing_app_lock",
        "tests/gateway/test_feishu.py::TestFeishuAdapterMessaging::test_connect_retries_transient_startup_failure",
        "tests/gateway/test_feishu.py::TestFeishuAdapterMessaging::test_connect_webhook_mode_starts_local_server",
        "tests/gateway/test_feishu.py::TestFeishuAdapterMessaging::test_edit_message_falls_back_to_text_when_post_update_is_rejected",
        "tests/gateway/test_feishu.py::TestFeishuAdapterMessaging::test_edit_message_updates_existing_feishu_message",
        "tests/gateway/test_feishu.py::TestFeishuAdapterMessaging::test_get_chat_info_uses_real_feishu_chat_api",
        "tests/gateway/test_feishu.py::TestAdapterModule::test_load_settings_accepts_custom_ws_ping_values",
        "tests/gateway/test_feishu.py::TestAdapterModule::test_load_settings_accepts_custom_ws_reconnect_values",
        "tests/gateway/test_feishu.py::TestAdapterModule::test_load_settings_ignores_invalid_ws_ping_values",
        "tests/gateway/test_feishu.py::TestAdapterModule::test_load_settings_uses_sdk_defaults_for_invalid_ws_reconnect_values",
        "tests/gateway/test_feishu.py::TestAdapterModule::test_runtime_ws_overrides_reapply_after_sdk_configure",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_bot_origin_reactions_are_dropped_to_avoid_feedback_loops",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_build_event_handler_registers_reaction_and_card_processors",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_build_post_payload_extracts_title_and_links",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_build_post_payload_keeps_fence_like_code_lines_inside_code_block",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_build_post_payload_keeps_full_markdown_text",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_build_post_payload_preserves_trailing_spaces_in_code_block",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_build_post_payload_splits_multiple_fenced_code_blocks",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_build_post_payload_wraps_markdown_in_md_tag",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_dedup_state_persists_across_adapter_restart",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_default_group_policy_fallback_for_chats_without_explicit_rule",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_download_remote_document_reads_response_before_httpx_client_closes",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_extract_audio_message_downloads_and_caches",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_extract_file_message_downloads_and_caches",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_extract_image_message_downloads_and_caches",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_extract_interactive_message_as_text_summary",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_extract_media_message_with_image_mime_becomes_photo",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_extract_media_message_with_video_mime_becomes_video",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_extract_merge_forward_message_as_text_summary",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_extract_post_message_as_text",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_extract_post_message_downloads_embedded_resources",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_extract_post_message_uses_first_available_language_block",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_extract_post_message_with_rich_elements_does_not_drop_content",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_extract_share_chat_message_as_text_summary",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_extract_text_file_injects_content",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_extract_text_from_raw_content_uses_relation_message_fallbacks",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_extract_text_message_starting_with_slash_becomes_command",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_global_admins_bypass_all_group_rules",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_group_message_allowlist_and_mention_both_required",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_group_message_matches_bot_name_when_only_name_available",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_group_message_matches_bot_open_id_when_configured",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_group_message_requires_mentions_even_when_policy_open",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_group_message_with_other_user_mention_is_rejected_when_bot_identity_unknown",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_media_batch_merges_rapid_photo_messages",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_message_event_submits_to_adapter_loop",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_per_group_admin_only_policy_requires_admin",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_per_group_allowlist_policy_gates_by_sender",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_per_group_blacklist_policy_blocks_specific_users",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_per_group_disabled_policy_blocks_all",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_process_inbound_group_message_keeps_group_type_when_chat_lookup_falls_back",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_process_inbound_message_fetches_reply_to_text",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_process_inbound_message_uses_event_sender_identity_only",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_reaction_on_our_own_bot_message_is_routed",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_reaction_on_peer_bot_message_is_not_routed",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_send_animation_degrades_to_document_send",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_send_document_reply_uses_thread_flag",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_send_document_uploads_file_and_sends_file_message",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_send_document_with_caption_uses_single_post_message",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_send_does_not_retry_deterministic_api_failure",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_send_falls_back_to_text_when_post_payload_is_rejected",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_send_falls_back_to_text_when_post_response_is_unsuccessful",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_send_image_downloads_then_uses_native_image_send",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_send_image_file_uploads_image_and_sends_image_message",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_send_image_file_with_caption_uses_single_post_message",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_send_replies_in_thread_when_thread_metadata_present",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_send_retries_transient_failure",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_send_splits_fenced_code_blocks_into_separate_post_rows",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_send_uses_metadata_reply_target_for_threaded_feishu_topic",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_send_uses_post_for_advanced_markdown_lines",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_send_uses_post_for_inline_markdown",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_send_video_uploads_file_and_sends_media_message",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_send_voice_uploads_opus_and_sends_audio_message",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_text_batch_flushes_when_message_count_limit_is_hit",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_text_batch_merges_rapid_messages_into_single_event",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_url_verification_requires_configured_verification_token",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_user_reaction_with_managed_emoji_is_still_routed",
        "tests/gateway/test_feishu.py::TestAdapterBehavior::test_webhook_request_uses_same_message_dispatch_path",
        "tests/gateway/test_feishu.py::TestHydrateBotIdentity::test_hydration_overwrites_stale_env_open_id",
        "tests/gateway/test_feishu.py::TestHydrateBotIdentity::test_hydration_populates_open_id_from_bot_info",
        "tests/gateway/test_feishu.py::TestHydrateBotIdentity::test_hydration_preserves_env_values_when_bot_info_probe_fails",
        "tests/gateway/test_feishu.py::TestHydrateBotIdentity::test_hydration_refreshes_env_values_when_bot_info_available",
        "tests/gateway/test_feishu.py::TestHydrateBotIdentity::test_hydration_tolerates_probe_failure_and_falls_back_to_app_info",
        "tests/gateway/test_feishu.py::TestPendingInboundQueue::test_drainer_drops_queue_when_adapter_shuts_down",
        "tests/gateway/test_feishu.py::TestPendingInboundQueue::test_drainer_replays_queued_events_when_loop_becomes_ready",
        "tests/gateway/test_feishu.py::TestPendingInboundQueue::test_event_queued_when_loop_not_ready",
        "tests/gateway/test_feishu.py::TestPendingInboundQueue::test_normal_path_unchanged_when_loop_ready",
        "tests/gateway/test_feishu.py::TestPendingInboundQueue::test_queue_cap_evicts_oldest_beyond_max_depth",
        "tests/gateway/test_feishu.py::TestWebhookSecurity::test_rate_limit_allows_requests_within_window",
        "tests/gateway/test_feishu.py::TestWebhookSecurity::test_rate_limit_blocks_after_exceeding_max",
        "tests/gateway/test_feishu.py::TestWebhookSecurity::test_rate_limit_resets_after_window_expires",
        "tests/gateway/test_feishu.py::TestWebhookSecurity::test_signature_invalid_rejected",
        "tests/gateway/test_feishu.py::TestWebhookSecurity::test_signature_missing_headers_rejected",
        "tests/gateway/test_feishu.py::TestWebhookSecurity::test_signature_valid_passes",
        "tests/gateway/test_feishu.py::TestWebhookSecurity::test_webhook_connect_requires_inbound_auth_secret",
        "tests/gateway/test_feishu.py::TestWebhookSecurity::test_webhook_loads_auth_secrets_from_platform_extra",
        "tests/gateway/test_feishu.py::TestWebhookSecurity::test_webhook_request_rejects_bad_signature",
        "tests/gateway/test_feishu.py::TestWebhookSecurity::test_webhook_request_rejects_invalid_json",
        "tests/gateway/test_feishu.py::TestWebhookSecurity::test_webhook_request_rejects_oversized_body",
        "tests/gateway/test_feishu.py::TestWebhookSecurity::test_webhook_url_verification_challenge_passes_without_signature",
        "tests/gateway/test_feishu.py::TestDedupTTL::test_duplicate_within_ttl_is_rejected",
        "tests/gateway/test_feishu.py::TestDedupTTL::test_expired_entry_is_not_considered_duplicate",
        "tests/gateway/test_feishu.py::TestDedupTTL::test_load_backward_compat_list_format",
        "tests/gateway/test_feishu.py::TestDedupTTL::test_load_tolerates_malformed_timestamp_values",
        "tests/gateway/test_feishu.py::TestDedupTTL::test_persist_saves_timestamps_as_dict",
        "tests/gateway/test_feishu.py::TestGroupMentionAtAll::test_at_all_in_content_accepts_without_explicit_bot_mention",
        "tests/gateway/test_feishu.py::TestGroupMentionAtAll::test_at_all_still_requires_policy_gate",
        "tests/gateway/test_feishu.py::TestSenderNameResolution::test_api_failure_returns_none_without_raising",
        "tests/gateway/test_feishu.py::TestSenderNameResolution::test_expired_cache_triggers_new_api_call",
        "tests/gateway/test_feishu.py::TestSenderNameResolution::test_fetches_and_caches_name_from_api",
        "tests/gateway/test_feishu.py::TestSenderNameResolution::test_returns_cached_name_within_ttl",
        "tests/gateway/test_feishu.py::TestSenderNameResolution::test_returns_none_when_client_is_none",
        "tests/gateway/test_feishu.py::TestBotNameResolution::test_api_failure_returns_none_and_does_not_poison_cache",
        "tests/gateway/test_feishu.py::TestBotNameResolution::test_bot_absent_from_response_is_not_cached",
        "tests/gateway/test_feishu.py::TestBotNameResolution::test_empty_name_in_response_is_negative_cached",
        "tests/gateway/test_feishu.py::TestBotNameResolution::test_fetches_and_caches_bot_name",
        "tests/gateway/test_feishu.py::TestBotNameResolution::test_non_zero_code_returns_none",
        "tests/gateway/test_feishu.py::TestBotNameResolution::test_returns_cached_bot_name_without_api_call",
        "tests/gateway/test_feishu.py::TestProcessingReactions::test_cache_evicts_oldest_entry_beyond_size_limit",
        "tests/gateway/test_feishu.py::TestProcessingReactions::test_cancelled_removes_typing_and_adds_nothing",
        "tests/gateway/test_feishu.py::TestProcessingReactions::test_delete_failure_on_failure_outcome_skips_cross_mark",
        "tests/gateway/test_feishu.py::TestProcessingReactions::test_delete_failure_on_success_outcome_retains_handle",
        "tests/gateway/test_feishu.py::TestProcessingReactions::test_env_disable_short_circuits_both_hooks",
        "tests/gateway/test_feishu.py::TestProcessingReactions::test_failure_removes_typing_then_adds_cross_mark",
        "tests/gateway/test_feishu.py::TestProcessingReactions::test_failure_without_preceding_start_still_adds_cross_mark",
        "tests/gateway/test_feishu.py::TestProcessingReactions::test_start_adds_typing_and_caches_reaction_id",
        "tests/gateway/test_feishu.py::TestProcessingReactions::test_start_does_not_cache_when_create_fails",
        "tests/gateway/test_feishu.py::TestProcessingReactions::test_start_is_idempotent_for_same_message_id",
        "tests/gateway/test_feishu.py::TestProcessingReactions::test_success_removes_typing_and_adds_nothing",
        "tests/gateway/test_feishu.py::TestProcessingReactions::test_success_without_preceding_start_is_full_noop",
        "tests/gateway/test_feishu.py::TestFeishuMentionMap::test_build_mentions_map_falls_back_to_name_when_bot_open_id_not_hydrated",
        "tests/gateway/test_feishu.py::TestFeishuMentionMap::test_build_mentions_map_handles_at_all",
        "tests/gateway/test_feishu.py::TestFeishuMentionMap::test_build_mentions_map_marks_self_by_name_fallback",
        "tests/gateway/test_feishu.py::TestFeishuMentionMap::test_build_mentions_map_marks_self_by_open_id",
        "tests/gateway/test_feishu.py::TestFeishuMentionMap::test_build_mentions_map_name_match_does_not_override_mismatching_open_id",
        "tests/gateway/test_feishu.py::TestFeishuMentionMap::test_build_mentions_map_non_self_user",
        "tests/gateway/test_feishu.py::TestFeishuMentionMap::test_build_mentions_map_returns_empty_for_none_input",
        "tests/gateway/test_feishu.py::TestFeishuMentionMap::test_build_mentions_map_tolerates_missing_id_object",
        "tests/gateway/test_feishu.py::TestFeishuMentionHint::test_hint_at_all",
        "tests/gateway/test_feishu.py::TestFeishuMentionHint::test_hint_dedupes_repeated_at_all",
        "tests/gateway/test_feishu.py::TestFeishuMentionHint::test_hint_dedupes_repeated_user",
        "tests/gateway/test_feishu.py::TestFeishuMentionHint::test_hint_falls_back_when_open_id_missing",
        "tests/gateway/test_feishu.py::TestFeishuMentionHint::test_hint_filters_self_mentions",
        "tests/gateway/test_feishu.py::TestFeishuMentionHint::test_hint_multiple_users",
        "tests/gateway/test_feishu.py::TestFeishuMentionHint::test_hint_returns_empty_for_no_refs",
        "tests/gateway/test_feishu.py::TestFeishuMentionHint::test_hint_returns_empty_when_only_self",
        "tests/gateway/test_feishu.py::TestFeishuMentionHint::test_hint_single_user",
        "tests/gateway/test_feishu.py::TestFeishuMentionHint::test_hint_uses_unknown_placeholder_when_name_missing",
        "tests/gateway/test_feishu.py::TestFeishuStripLeadingSelf::test_preserves_mid_text_self",
        "tests/gateway/test_feishu.py::TestFeishuStripLeadingSelf::test_preserves_trailing_self_before_non_terminal_char",
        "tests/gateway/test_feishu.py::TestFeishuStripLeadingSelf::test_returns_input_when_no_self_refs",
        "tests/gateway/test_feishu.py::TestFeishuStripLeadingSelf::test_returns_input_when_refs_empty",
        "tests/gateway/test_feishu.py::TestFeishuStripLeadingSelf::test_stops_at_first_non_self_token",
        "tests/gateway/test_feishu.py::TestFeishuStripLeadingSelf::test_strips_consecutive_leading_self",
        "tests/gateway/test_feishu.py::TestFeishuStripLeadingSelf::test_strips_leading_self",
        "tests/gateway/test_feishu.py::TestFeishuStripLeadingSelf::test_strips_trailing_self_at_end_of_text",
        "tests/gateway/test_feishu.py::TestFeishuStripLeadingSelf::test_strips_trailing_self_with_terminal_punct",
        "tests/gateway/test_feishu.py::TestFeishuStripLeadingSelf::test_uses_open_id_fallback_when_name_missing",
        "tests/gateway/test_feishu.py::TestFeishuStripLeadingSelf::test_word_boundary_prevents_prefix_collision",
        "tests/gateway/test_feishu.py::TestFeishuNormalizeText::test_at_all_rendered_as_english_literal",
        "tests/gateway/test_feishu.py::TestFeishuNormalizeText::test_backward_compatible_without_map",
        "tests/gateway/test_feishu.py::TestFeishuNormalizeText::test_mention_for_missing_map_entry_degrades_to_space",
        "tests/gateway/test_feishu.py::TestFeishuNormalizeText::test_renders_mention_with_display_name",
        "tests/gateway/test_feishu.py::TestFeishuNormalizeText::test_renders_self_mention_with_name",
        "tests/gateway/test_feishu.py::TestFeishuNormalizeText::test_unknown_placeholder_degrades_to_space",
        "tests/gateway/test_feishu.py::TestFeishuPostMentionParsing::test_post_at_all_tag_renders_as_at_all",
        "tests/gateway/test_feishu.py::TestFeishuPostMentionParsing::test_post_at_tag_falls_back_to_inline_user_name_when_map_misses",
        "tests/gateway/test_feishu.py::TestFeishuPostMentionParsing::test_post_at_tag_renders_via_mentions_map",
        "tests/gateway/test_feishu.py::TestFeishuNormalizeWithMentions::test_post_message_marks_self_via_mentions_map_lookup",
        "tests/gateway/test_feishu.py::TestFeishuNormalizeWithMentions::test_text_message_at_all_in_text_without_mentions_payload",
        "tests/gateway/test_feishu.py::TestFeishuNormalizeWithMentions::test_text_message_at_all_not_synthesized_if_absent_from_text",
        "tests/gateway/test_feishu.py::TestFeishuNormalizeWithMentions::test_text_message_at_all_surfaces_ref",
        "tests/gateway/test_feishu.py::TestFeishuNormalizeWithMentions::test_text_message_marks_bot_self_mention",
        "tests/gateway/test_feishu.py::TestFeishuNormalizeWithMentions::test_text_message_renders_mention_by_name",
        "tests/gateway/test_feishu.py::TestFeishuNormalizeWithMentions::test_text_message_without_mentions_param_is_backward_compatible",
        "tests/gateway/test_feishu.py::TestFeishuPostMentionsBot::test_post_mentions_bot_empty_returns_false",
        "tests/gateway/test_feishu.py::TestFeishuPostMentionsBot::test_post_mentions_bot_uses_is_self_flag",
        "tests/gateway/test_feishu.py::TestFeishuExtractMessageContent::test_returns_empty_mentions_when_missing",
        "tests/gateway/test_feishu.py::TestFeishuExtractMessageContent::test_returns_five_tuple_with_mentions",
        "tests/gateway/test_feishu.py::TestFeishuProcessInboundMessage::test_command_message_never_injects_hint",
        "tests/gateway/test_feishu.py::TestFeishuProcessInboundMessage::test_leading_self_mention_stripped_for_command",
        "tests/gateway/test_feishu.py::TestFeishuProcessInboundMessage::test_mid_text_self_mention_preserved",
        "tests/gateway/test_feishu.py::TestFeishuProcessInboundMessage::test_non_command_message_with_mentions_injects_hint",
        "tests/gateway/test_feishu.py::TestFeishuProcessInboundMessage::test_pure_self_mention_message_is_ignored",
        "tests/gateway/test_feishu.py::TestFeishuFetchMessageText::test_build_mentions_map_string_id_shape",
        "tests/gateway/test_feishu.py::TestFeishuFetchMessageText::test_extract_text_from_raw_content_accepts_mentions_kwarg",
        "tests/gateway/test_feishu.py::TestFeishuFetchMessageText::test_fetch_message_text_marks_is_self_via_string_id_shape",
        "tests/gateway/test_feishu.py::TestFeishuFetchMessageText::test_fetch_message_text_renders_mentions_without_hint_prefix",
        "tests/gateway/test_feishu.py::TestFeishuMentionEndToEnd::test_scenario_at_all_announcement",
        "tests/gateway/test_feishu.py::TestFeishuMentionEndToEnd::test_scenario_bot_plus_alice_plus_bob_build_group",
        "tests/gateway/test_feishu.py::TestFeishuMentionEndToEnd::test_scenario_mid_text_self_mention_preserved",
        "tests/gateway/test_feishu.py::TestFeishuMentionEndToEnd::test_scenario_no_mentions_zero_regression",
        "tests/gateway/test_feishu.py::TestFeishuMentionEndToEnd::test_scenario_post_at_alice_exposes_open_id",
        "tests/gateway/test_feishu.py::TestFeishuMentionEndToEnd::test_scenario_post_bot_plus_alice_filters_self_from_hint",
        "tests/gateway/test_feishu.py::TestFeishuMentionEndToEnd::test_scenario_trailing_self_mention_stripped",
        "tests/gateway/test_feishu.py::TestChatLockEviction::test_chat_locks_is_ordered_dict",
        "tests/gateway/test_feishu.py::TestChatLockEviction::test_eviction_skips_held_locks",
        "tests/gateway/test_feishu.py::TestChatLockEviction::test_lru_eviction_respects_recent_access",
        "tests/gateway/test_feishu.py::TestChatLockEviction::test_same_id_returns_same_lock_and_stays_bounded"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0088-test_feishu.py.log",
      "output_sha256": "79edb8b13a54cc765100dfb30d5d08a9d0373e1068728cd2283cc8676bfec738",
      "returncode": 0,
      "test_file": "tests/gateway/test_feishu.py",
      "test_file_sha256": "a0dac12859bf565460b96c8a603e3a43752eb1bfa5b5e10b09be183c3da481ef"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0089",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_feishu_approval_buttons.py"
      ],
      "nodeids": [
        "tests/gateway/test_feishu_approval_buttons.py::TestFeishuExecApproval::test_sends_interactive_card",
        "tests/gateway/test_feishu_approval_buttons.py::TestFeishuExecApproval::test_stores_approval_state",
        "tests/gateway/test_feishu_approval_buttons.py::TestFeishuExecApproval::test_not_connected",
        "tests/gateway/test_feishu_approval_buttons.py::TestFeishuExecApproval::test_truncates_long_command",
        "tests/gateway/test_feishu_approval_buttons.py::TestFeishuExecApproval::test_multiple_approvals_get_unique_ids",
        "tests/gateway/test_feishu_approval_buttons.py::TestFeishuUpdatePrompt::test_sends_interactive_card",
        "tests/gateway/test_feishu_approval_buttons.py::TestFeishuUpdatePrompt::test_stores_prompt_state",
        "tests/gateway/test_feishu_approval_buttons.py::TestFeishuUpdatePrompt::test_not_connected",
        "tests/gateway/test_feishu_approval_buttons.py::TestFeishuUpdatePrompt::test_send_failure_returns_error",
        "tests/gateway/test_feishu_approval_buttons.py::TestResolveApproval::test_resolves_once",
        "tests/gateway/test_feishu_approval_buttons.py::TestResolveApproval::test_resolves_deny",
        "tests/gateway/test_feishu_approval_buttons.py::TestResolveApproval::test_resolves_session",
        "tests/gateway/test_feishu_approval_buttons.py::TestResolveApproval::test_resolves_always",
        "tests/gateway/test_feishu_approval_buttons.py::TestResolveApproval::test_already_resolved_drops_silently",
        "tests/gateway/test_feishu_approval_buttons.py::TestResolveApproval::test_unauthorized_click_does_not_resolve",
        "tests/gateway/test_feishu_approval_buttons.py::TestResolveApproval::test_chat_mismatch_does_not_resolve",
        "tests/gateway/test_feishu_approval_buttons.py::TestNonApprovalCardAction::test_routes_as_synthetic_command",
        "tests/gateway/test_feishu_approval_buttons.py::TestCardActionCallbackResponse::test_drops_action_when_loop_not_ready",
        "tests/gateway/test_feishu_approval_buttons.py::TestCardActionCallbackResponse::test_returns_card_for_approve_action",
        "tests/gateway/test_feishu_approval_buttons.py::TestCardActionCallbackResponse::test_returns_card_for_deny_action",
        "tests/gateway/test_feishu_approval_buttons.py::TestCardActionCallbackResponse::test_ignores_missing_approval_id",
        "tests/gateway/test_feishu_approval_buttons.py::TestCardActionCallbackResponse::test_no_card_for_non_approval_action",
        "tests/gateway/test_feishu_approval_buttons.py::TestCardActionCallbackResponse::test_falls_back_to_open_id_when_name_not_cached",
        "tests/gateway/test_feishu_approval_buttons.py::TestCardActionCallbackResponse::test_ignores_expired_cached_name",
        "tests/gateway/test_feishu_approval_buttons.py::TestCardActionCallbackResponse::test_rejects_approval_click_from_unauthorized_user",
        "tests/gateway/test_feishu_approval_buttons.py::TestCardActionCallbackResponse::test_rejects_approval_click_when_callback_chat_mismatches",
        "tests/gateway/test_feishu_approval_buttons.py::TestCardActionCallbackResponse::test_returns_card_for_update_prompt_yes",
        "tests/gateway/test_feishu_approval_buttons.py::TestCardActionCallbackResponse::test_returns_card_for_update_prompt_no",
        "tests/gateway/test_feishu_approval_buttons.py::TestCardActionCallbackResponse::test_ignores_missing_update_prompt_id",
        "tests/gateway/test_feishu_approval_buttons.py::TestCardActionCallbackResponse::test_already_resolved_update_prompt_returns_no_card",
        "tests/gateway/test_feishu_approval_buttons.py::TestCardActionCallbackResponse::test_update_prompt_schedule_failure_returns_no_card",
        "tests/gateway/test_feishu_approval_buttons.py::TestCardActionCallbackResponse::test_update_prompt_unauthorized_operator_returns_no_card",
        "tests/gateway/test_feishu_approval_buttons.py::TestCardActionCallbackResponse::test_update_prompt_empty_allowlists_fail_closed",
        "tests/gateway/test_feishu_approval_buttons.py::TestCardActionCallbackResponse::test_update_prompt_chat_mismatch_returns_no_card",
        "tests/gateway/test_feishu_approval_buttons.py::TestResolveUpdatePrompt::test_writes_response_file",
        "tests/gateway/test_feishu_approval_buttons.py::TestResolveUpdatePrompt::test_overwrites_existing_response_file",
        "tests/gateway/test_feishu_approval_buttons.py::TestResolveUpdatePrompt::test_unknown_prompt_id_drops_silently",
        "tests/gateway/test_feishu_approval_buttons.py::TestResolveUpdatePrompt::test_chat_mismatch_does_not_write_response_file"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0089-test_feishu_approval_buttons.py.log",
      "output_sha256": "33d19a0a8e12c577a5c9315dad9a806d4b52c1283018d58b2a8db5a6c1181150",
      "returncode": 0,
      "test_file": "tests/gateway/test_feishu_approval_buttons.py",
      "test_file_sha256": "49c978faab6b16efa9a48e2cc43bcb0374a76e18588b199264d750f6b8470ca2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0090",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_feishu_bot_admission.py"
      ],
      "nodeids": [
        "tests/gateway/test_feishu_bot_admission.py::test_feishu_load_settings_populates_allow_bots[none-none]",
        "tests/gateway/test_feishu_bot_admission.py::test_feishu_load_settings_populates_allow_bots[mentions-mentions]",
        "tests/gateway/test_feishu_bot_admission.py::test_feishu_load_settings_populates_allow_bots[all-all]",
        "tests/gateway/test_feishu_bot_admission.py::test_feishu_load_settings_populates_allow_bots[  Mentions  -mentions]",
        "tests/gateway/test_feishu_bot_admission.py::test_feishu_load_settings_allow_bots_defaults_to_none",
        "tests/gateway/test_feishu_bot_admission.py::test_feishu_load_settings_ignores_extra_allow_bots",
        "tests/gateway/test_feishu_bot_admission.py::test_feishu_load_settings_falls_back_to_env_when_extra_missing",
        "tests/gateway/test_feishu_bot_admission.py::test_feishu_load_settings_warns_on_unknown_allow_bots",
        "tests/gateway/test_feishu_bot_admission.py::test_feishu_load_settings_require_mention[None-extra0-True]",
        "tests/gateway/test_feishu_bot_admission.py::test_feishu_load_settings_require_mention[false-extra1-False]",
        "tests/gateway/test_feishu_bot_admission.py::test_feishu_load_settings_require_mention[true-extra2-True]",
        "tests/gateway/test_feishu_bot_admission.py::test_feishu_load_settings_require_mention[true-extra3-False]",
        "tests/gateway/test_feishu_bot_admission.py::test_feishu_load_settings_parses_per_group_require_mention",
        "tests/gateway/test_feishu_bot_admission.py::test_sender_identity_collects_every_non_empty_id_variant",
        "tests/gateway/test_feishu_bot_admission.py::test_sender_identity_handles_missing_sender_id",
        "tests/gateway/test_feishu_bot_admission.py::test_is_bot_sender_treats_bot_and_app_as_bot_origin[bot]",
        "tests/gateway/test_feishu_bot_admission.py::test_is_bot_sender_treats_bot_and_app_as_bot_origin[app]",
        "tests/gateway/test_feishu_bot_admission.py::test_is_bot_sender_rejects_non_bot_origin[user]",
        "tests/gateway/test_feishu_bot_admission.py::test_is_bot_sender_rejects_non_bot_origin[]",
        "tests/gateway/test_feishu_bot_admission.py::test_is_bot_sender_rejects_non_bot_origin[None]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[self_echo:open_id_under_all_mode]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[self_echo:user_id_only]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[self_echo:mixed_ids]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[self_echo:user_id_when_bot_user_id_set]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[bots_disabled:mode_none]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[bots_disabled:mode_empty]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[bots_disabled:mode_unknown_value]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[bots_disabled:wins_over_self_ids_unknown]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[self_ids_unknown:bot_sender_no_self_ids]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[self_ids_unknown:app_sender_no_self_ids]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[self_ids_unknown:no_sender_ids]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[mentions_mode:not_mentioned_dm]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[mentions_mode:mentioned_dm]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[all_mode:not_mentioned_dm]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[all_mode:mentioned_dm]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[human:dm_admitted_regardless_of_allow_bots]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[human:p2p_admitted]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[require_mention_false:group_human_no_mention_admitted]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[require_mention_false:group_bot_all_mode_admitted]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_pipeline[require_mention_false:group_bot_mentions_mode_still_gated]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_skips_mention_check_under_all_mode",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_group_mention_checked_once_per_call",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_per_group_require_mention_overrides_global",
        "tests/gateway/test_feishu_bot_admission.py::test_hydrate_bot_identity_populates_self_ids_from_bot_v3_info",
        "tests/gateway/test_feishu_bot_admission.py::test_resolve_sender_profile_uses_open_id_for_bot_name_lookup",
        "tests/gateway/test_feishu_bot_admission.py::test_allow_group_message_matrix[bot:bypasses_default_allowlist]",
        "tests/gateway/test_feishu_bot_admission.py::test_allow_group_message_matrix[human:gated_by_default_allowlist]",
        "tests/gateway/test_feishu_bot_admission.py::test_allow_group_message_matrix[bot:admin_short_circuit]",
        "tests/gateway/test_feishu_bot_admission.py::test_allow_group_message_matrix[human:admin_via_user_id]",
        "tests/gateway/test_feishu_bot_admission.py::test_allow_group_message_matrix[bot:allowlist_skipped]",
        "tests/gateway/test_feishu_bot_admission.py::test_allow_group_message_matrix[app:allowlist_skipped]",
        "tests/gateway/test_feishu_bot_admission.py::test_allow_group_message_channel_locks_apply_to_bots[bot:disabled_policy_blocks_even_with_bypass]",
        "tests/gateway/test_feishu_bot_admission.py::test_allow_group_message_channel_locks_apply_to_bots[app:disabled_policy_blocks_even_with_bypass]",
        "tests/gateway/test_feishu_bot_admission.py::test_allow_group_message_channel_locks_apply_to_bots[bot:admin_only_policy_blocks_non_admin]",
        "tests/gateway/test_feishu_bot_admission.py::test_allow_group_message_channel_locks_apply_to_bots[app:admin_only_policy_blocks_non_admin]",
        "tests/gateway/test_feishu_bot_admission.py::test_allow_group_message_blacklist_is_human_scope_only[bot]",
        "tests/gateway/test_feishu_bot_admission.py::test_allow_group_message_blacklist_is_human_scope_only[app]",
        "tests/gateway/test_feishu_bot_admission.py::test_admit_accepts_realistic_bot_at_bot_group_event",
        "tests/gateway/test_feishu_bot_admission.py::test_handle_message_event_data_drops_bot_sender_by_default",
        "tests/gateway/test_feishu_bot_admission.py::test_handle_message_event_data_forwards_sender_when_admitted"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0090-test_feishu_bot_admission.py.log",
      "output_sha256": "ae3191bbc2d1fc67a684a87584cbd2d73e5a9d28dc862c0541fa4884bd7be4c1",
      "returncode": 0,
      "test_file": "tests/gateway/test_feishu_bot_admission.py",
      "test_file_sha256": "16700c4adc69167894f272dbc10c6061fea6ee6a1f1dedd00b04405c1e15fc08"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0091",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_feishu_bot_auth_bypass.py"
      ],
      "nodeids": [
        "tests/gateway/test_feishu_bot_auth_bypass.py::test_feishu_bot_authorized_when_allow_bots_mentions",
        "tests/gateway/test_feishu_bot_auth_bypass.py::test_feishu_bot_authorized_when_allow_bots_all",
        "tests/gateway/test_feishu_bot_auth_bypass.py::test_feishu_bot_NOT_authorized_when_allow_bots_none",
        "tests/gateway/test_feishu_bot_auth_bypass.py::test_feishu_bot_NOT_authorized_when_allow_bots_unset",
        "tests/gateway/test_feishu_bot_auth_bypass.py::test_feishu_human_still_checked_against_allowlist_when_bot_policy_set",
        "tests/gateway/test_feishu_bot_auth_bypass.py::test_feishu_bot_bypass_does_not_leak_to_other_platforms"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0091-test_feishu_bot_auth_bypass.py.log",
      "output_sha256": "469936208bc6ffd60b43179458503ec146deedf3deafc08327391b140eccc4b4",
      "returncode": 0,
      "test_file": "tests/gateway/test_feishu_bot_auth_bypass.py",
      "test_file_sha256": "c537a2e17d92fe0554947c94ca5b215236ebfd18e23d3a241fe7d57614f839f7"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0092",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_feishu_comment.py"
      ],
      "nodeids": [
        "tests/gateway/test_feishu_comment.py::TestParseEvent::test_parse_missing_event_attr",
        "tests/gateway/test_feishu_comment.py::TestParseEvent::test_parse_none_event",
        "tests/gateway/test_feishu_comment.py::TestParseEvent::test_parse_valid_event",
        "tests/gateway/test_feishu_comment.py::TestEventFiltering::test_allowed_notice_types",
        "tests/gateway/test_feishu_comment.py::TestEventFiltering::test_empty_to_open_id_filtered",
        "tests/gateway/test_feishu_comment.py::TestEventFiltering::test_invalid_notice_type_filtered",
        "tests/gateway/test_feishu_comment.py::TestEventFiltering::test_self_reply_filtered",
        "tests/gateway/test_feishu_comment.py::TestEventFiltering::test_wrong_receiver_filtered",
        "tests/gateway/test_feishu_comment.py::TestAccessControlIntegration::test_denied_user_no_side_effects",
        "tests/gateway/test_feishu_comment.py::TestAccessControlIntegration::test_disabled_comment_skipped",
        "tests/gateway/test_feishu_comment.py::TestSanitizeCommentText::test_ampersand_escaped_first",
        "tests/gateway/test_feishu_comment.py::TestSanitizeCommentText::test_ampersand_not_double_escaped",
        "tests/gateway/test_feishu_comment.py::TestSanitizeCommentText::test_angle_brackets_escaped",
        "tests/gateway/test_feishu_comment.py::TestSanitizeCommentText::test_code_snippet",
        "tests/gateway/test_feishu_comment.py::TestSanitizeCommentText::test_empty_string",
        "tests/gateway/test_feishu_comment.py::TestSanitizeCommentText::test_plain_text_unchanged",
        "tests/gateway/test_feishu_comment.py::TestWikiReverseLookup::test_reverse_lookup_not_wiki",
        "tests/gateway/test_feishu_comment.py::TestWikiReverseLookup::test_reverse_lookup_service_error",
        "tests/gateway/test_feishu_comment.py::TestWikiReverseLookup::test_reverse_lookup_success",
        "tests/gateway/test_feishu_comment.py::TestWikiReverseLookup::test_wiki_lookup_triggered_when_no_exact_match"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0092-test_feishu_comment.py.log",
      "output_sha256": "7076646827eec265807f1f92a1b57b0d64cdd3ff3c162ecaa909b1eb52667924",
      "returncode": 0,
      "test_file": "tests/gateway/test_feishu_comment.py",
      "test_file_sha256": "06bbffd03bb16907472a6190337884b8ffce309f66bd1d911dbca333ae888e29"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0093",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_feishu_comment_rules.py"
      ],
      "nodeids": [
        "tests/gateway/test_feishu_comment_rules.py::TestCommentDocumentRuleParsing::test_invalid_policy_ignored",
        "tests/gateway/test_feishu_comment_rules.py::TestCommentDocumentRuleParsing::test_parse_empty_rule",
        "tests/gateway/test_feishu_comment_rules.py::TestCommentDocumentRuleParsing::test_parse_full_rule",
        "tests/gateway/test_feishu_comment_rules.py::TestCommentDocumentRuleParsing::test_parse_partial_rule",
        "tests/gateway/test_feishu_comment_rules.py::TestResolveRule::test_default_config",
        "tests/gateway/test_feishu_comment_rules.py::TestResolveRule::test_exact_match",
        "tests/gateway/test_feishu_comment_rules.py::TestResolveRule::test_exact_overrides_wildcard",
        "tests/gateway/test_feishu_comment_rules.py::TestResolveRule::test_exact_takes_priority_over_wiki",
        "tests/gateway/test_feishu_comment_rules.py::TestResolveRule::test_explicit_empty_allow_from_does_not_fall_through",
        "tests/gateway/test_feishu_comment_rules.py::TestResolveRule::test_field_by_field_fallback",
        "tests/gateway/test_feishu_comment_rules.py::TestResolveRule::test_top_level_fallback",
        "tests/gateway/test_feishu_comment_rules.py::TestResolveRule::test_wiki_token_match",
        "tests/gateway/test_feishu_comment_rules.py::TestResolveRule::test_wildcard_match",
        "tests/gateway/test_feishu_comment_rules.py::TestHasWikiKeys::test_empty_documents",
        "tests/gateway/test_feishu_comment_rules.py::TestHasWikiKeys::test_has_wiki_keys",
        "tests/gateway/test_feishu_comment_rules.py::TestHasWikiKeys::test_no_wiki_keys",
        "tests/gateway/test_feishu_comment_rules.py::TestIsUserAllowed::test_allowlist_allows_listed",
        "tests/gateway/test_feishu_comment_rules.py::TestIsUserAllowed::test_allowlist_denies_unlisted",
        "tests/gateway/test_feishu_comment_rules.py::TestIsUserAllowed::test_allowlist_empty_denies_all",
        "tests/gateway/test_feishu_comment_rules.py::TestIsUserAllowed::test_pairing_allows_in_allow_from",
        "tests/gateway/test_feishu_comment_rules.py::TestIsUserAllowed::test_pairing_checks_store",
        "tests/gateway/test_feishu_comment_rules.py::TestMtimeCache::test_reads_file_and_caches",
        "tests/gateway/test_feishu_comment_rules.py::TestMtimeCache::test_reloads_on_mtime_change",
        "tests/gateway/test_feishu_comment_rules.py::TestMtimeCache::test_returns_empty_dict_for_missing_file",
        "tests/gateway/test_feishu_comment_rules.py::TestLoadConfig::test_load_missing_file_returns_defaults",
        "tests/gateway/test_feishu_comment_rules.py::TestLoadConfig::test_load_with_documents",
        "tests/gateway/test_feishu_comment_rules.py::TestPairingStore::test_add_and_list",
        "tests/gateway/test_feishu_comment_rules.py::TestPairingStore::test_add_duplicate",
        "tests/gateway/test_feishu_comment_rules.py::TestPairingStore::test_remove",
        "tests/gateway/test_feishu_comment_rules.py::TestPairingStore::test_remove_nonexistent"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0093-test_feishu_comment_rules.py.log",
      "output_sha256": "7c7555fc3e5f4c03bb4e685dda0feb9799fc4df41e0702fcc2b631ed1899c3fe",
      "returncode": 0,
      "test_file": "tests/gateway/test_feishu_comment_rules.py",
      "test_file_sha256": "e0f9cc84b458cada7fea1e0c5852498cea505c6a73c42c1b09a913a803ecc9ae"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0094",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_feishu_meeting_invite.py"
      ],
      "nodeids": [
        "tests/gateway/test_feishu_meeting_invite.py::TestMeetingInviteParsing::test_parse_actual_payload_string_int64_fields",
        "tests/gateway/test_feishu_meeting_invite.py::TestMeetingInviteParsing::test_parse_body_content_payload",
        "tests/gateway/test_feishu_meeting_invite.py::TestMeetingInviteParsing::test_parse_requires_inviter",
        "tests/gateway/test_feishu_meeting_invite.py::TestMeetingInviteParsing::test_parse_requires_meeting_no",
        "tests/gateway/test_feishu_meeting_invite.py::TestMeetingInviteParsing::test_prompt_contains_meeting_and_inviter_context",
        "tests/gateway/test_feishu_meeting_invite.py::TestMeetingInviteHandler::test_duplicate_event_is_dropped",
        "tests/gateway/test_feishu_meeting_invite.py::TestMeetingInviteHandler::test_inviter_without_open_id_is_dropped",
        "tests/gateway/test_feishu_meeting_invite.py::TestMeetingInviteHandler::test_routes_as_synthetic_message_to_inviter_open_id",
        "tests/gateway/test_feishu_meeting_invite.py::TestMeetingInviteSendRouting::test_feishu_user_id_prefix_sends_with_user_id_receive_type"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0094-test_feishu_meeting_invite.py.log",
      "output_sha256": "6aa23e3b2122303775262771155d49726326467250cd6bff2429df2d426f6b44",
      "returncode": 0,
      "test_file": "tests/gateway/test_feishu_meeting_invite.py",
      "test_file_sha256": "69fb2d9c3c4ab90dbdf3cb568f319c2d43b3cafd65b373af83a33af490cd28eb"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0095",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_feishu_onboard.py"
      ],
      "nodeids": [
        "tests/gateway/test_feishu_onboard.py::TestPostRegistration::test_post_registration_returns_parsed_json",
        "tests/gateway/test_feishu_onboard.py::TestPostRegistration::test_post_registration_sends_form_encoded_body",
        "tests/gateway/test_feishu_onboard.py::TestInitRegistration::test_init_succeeds_when_client_secret_supported",
        "tests/gateway/test_feishu_onboard.py::TestInitRegistration::test_init_raises_when_client_secret_not_supported",
        "tests/gateway/test_feishu_onboard.py::TestInitRegistration::test_init_uses_lark_url_for_lark_domain",
        "tests/gateway/test_feishu_onboard.py::TestBeginRegistration::test_begin_returns_device_code_and_qr_url",
        "tests/gateway/test_feishu_onboard.py::TestBeginRegistration::test_begin_sends_correct_archetype",
        "tests/gateway/test_feishu_onboard.py::TestPollRegistration::test_poll_returns_credentials_on_success",
        "tests/gateway/test_feishu_onboard.py::TestPollRegistration::test_poll_switches_domain_on_lark_tenant_brand",
        "tests/gateway/test_feishu_onboard.py::TestPollRegistration::test_poll_success_with_lark_brand_in_same_response",
        "tests/gateway/test_feishu_onboard.py::TestPollRegistration::test_poll_returns_none_on_access_denied",
        "tests/gateway/test_feishu_onboard.py::TestPollRegistration::test_poll_returns_none_on_timeout",
        "tests/gateway/test_feishu_onboard.py::TestPollRegistration::test_poll_timeout_uses_monotonic_clock",
        "tests/gateway/test_feishu_onboard.py::TestRenderQr::test_render_qr_returns_true_on_success",
        "tests/gateway/test_feishu_onboard.py::TestRenderQr::test_render_qr_returns_false_when_qrcode_missing",
        "tests/gateway/test_feishu_onboard.py::TestProbeBot::test_probe_returns_bot_info_on_success",
        "tests/gateway/test_feishu_onboard.py::TestProbeBot::test_probe_returns_none_on_failure",
        "tests/gateway/test_feishu_onboard.py::TestProbeBot::test_http_fallback_when_sdk_unavailable",
        "tests/gateway/test_feishu_onboard.py::TestProbeBot::test_http_fallback_returns_none_on_network_error",
        "tests/gateway/test_feishu_onboard.py::TestQrRegister::test_qr_register_success_flow",
        "tests/gateway/test_feishu_onboard.py::TestQrRegister::test_qr_register_returns_none_on_init_failure",
        "tests/gateway/test_feishu_onboard.py::TestQrRegister::test_qr_register_returns_none_on_poll_failure",
        "tests/gateway/test_feishu_onboard.py::TestQrRegister::test_qr_register_returns_none_on_network_error",
        "tests/gateway/test_feishu_onboard.py::TestQrRegister::test_qr_register_returns_none_on_json_error",
        "tests/gateway/test_feishu_onboard.py::TestQrRegister::test_qr_register_propagates_unexpected_errors",
        "tests/gateway/test_feishu_onboard.py::TestQrRegister::test_qr_register_returns_none_when_begin_missing_device_code",
        "tests/gateway/test_feishu_onboard.py::TestQrRegister::test_qr_register_succeeds_even_when_probe_fails"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0095-test_feishu_onboard.py.log",
      "output_sha256": "fc5528e1ce0bdefc17aedbf9045d7bf1729b66f11dbc21500273cf75cf97cd56",
      "returncode": 0,
      "test_file": "tests/gateway/test_feishu_onboard.py",
      "test_file_sha256": "1af1f468ed7e48175f66581921d226a6efcba7b390ddeaf5dcaafb00eff8cc3b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0096",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_fresh_reset_skill_injection.py"
      ],
      "nodeids": [
        "tests/gateway/test_fresh_reset_skill_injection.py::TestResetSessionStampsFreshReset::test_reset_session_sets_is_fresh_reset_true",
        "tests/gateway/test_fresh_reset_skill_injection.py::TestResetSessionStampsFreshReset::test_reset_session_unknown_key_returns_none",
        "tests/gateway/test_fresh_reset_skill_injection.py::TestResetSessionStampsFreshReset::test_fresh_session_does_not_have_is_fresh_reset",
        "tests/gateway/test_fresh_reset_skill_injection.py::TestIsNewSessionSurvivesUpdatedAtBump::test_is_new_session_true_after_reset_then_next_message",
        "tests/gateway/test_fresh_reset_skill_injection.py::TestIsNewSessionSurvivesUpdatedAtBump::test_flag_consumed_after_first_read",
        "tests/gateway/test_fresh_reset_skill_injection.py::TestVanillaBehaviorUnaffected::test_ongoing_session_not_flagged_as_new",
        "tests/gateway/test_fresh_reset_skill_injection.py::TestVanillaBehaviorUnaffected::test_idle_auto_reset_does_not_set_is_fresh_reset",
        "tests/gateway/test_fresh_reset_skill_injection.py::TestPersistence::test_is_fresh_reset_survives_to_dict_from_dict",
        "tests/gateway/test_fresh_reset_skill_injection.py::TestPersistence::test_default_false_when_missing_from_dict"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0096-test_fresh_reset_skill_injection.py.log",
      "output_sha256": "bbf7ed91de0358b28e43f433d59c9e19719a1ae6a8e2e06830ac39638cfcb49a",
      "returncode": 0,
      "test_file": "tests/gateway/test_fresh_reset_skill_injection.py",
      "test_file_sha256": "ccf6e9bc7ff8dccf0a1124da0b87cc01672d0c30c52c336aecc15f143a725c82"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0097",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_gateway_command_help.py"
      ],
      "nodeids": [
        "tests/gateway/test_gateway_command_help.py::test_start_is_known_gateway_command",
        "tests/gateway/test_gateway_command_help.py::test_help_sanitizes_slash_command_mentions_for_telegram",
        "tests/gateway/test_gateway_command_help.py::test_commands_sanitizes_slash_command_mentions_for_telegram",
        "tests/gateway/test_gateway_command_help.py::test_help_keeps_non_telegram_slash_command_mentions_unchanged"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0097-test_gateway_command_help.py.log",
      "output_sha256": "20a0704f61f451c649c4befd27e799b4266a51dd51909672c332826a2d487d17",
      "returncode": 0,
      "test_file": "tests/gateway/test_gateway_command_help.py",
      "test_file_sha256": "2b7bc88acba08b7171ecd81591712e080a3f17189dbd5c66847141f3c30eaa0b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0098",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_gateway_command_line_matcher.py"
      ],
      "nodeids": [
        "tests/gateway/test_gateway_command_line_matcher.py::test_accepts_real_gateway_run[pythonw.exe -m hermes_cli.main gateway run]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_accepts_real_gateway_run[C:\\\\Users\\\\me\\\\hermes\\\\venv\\\\Scripts\\\\pythonw.exe -m hermes_cli.main gateway run]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_accepts_real_gateway_run[python -m hermes_cli.main --profile work gateway run]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_accepts_real_gateway_run[python -m hermes_cli.main gateway run --replace]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_accepts_real_gateway_run[python -m hermes_cli/main.py gateway run]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_accepts_real_gateway_run[python gateway/run.py]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_accepts_real_gateway_run[hermes-gateway.exe]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_accepts_real_gateway_run[hermes gateway]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_accepts_real_gateway_run[hermes gateway run]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_accepts_real_gateway_run[hermes gateway --profile work run]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_accepts_real_gateway_run[python -m hermes_cli.main gateway -p work run]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_accepts_real_gateway_run[hermes gateway --profile=work run]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_accepts_real_gateway_run[hermes -p gateway gateway run]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_accepts_real_gateway_run[python -m hermes_cli.main --profile gateway gateway run]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_accepts_real_gateway_run[\"C:\\\\Program Files\\\\Hermes\\\\hermes-gateway.exe\"]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_accepts_real_gateway_run[\"C:\\\\Program Files\\\\Hermes\\\\gateway\\\\run.py\" run]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_accepts_real_gateway_run[\"C:\\\\Program Files\\\\Py\\\\pythonw.exe\" -m hermes_cli.main gateway run]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_rejects_non_gateway_run[python -m tui_gateway]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_rejects_non_gateway_run[python -m hermes_cli.main gateway status]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_rejects_non_gateway_run[python -m hermes_cli.main gateway restart]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_rejects_non_gateway_run[python -m hermes_cli.main gateway stop]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_rejects_non_gateway_run[python -m hermes_cli.main --profile x dashboard]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_rejects_non_gateway_run[some random python -m mygateway thing]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_rejects_non_gateway_run[]",
        "tests/gateway/test_gateway_command_line_matcher.py::test_rejects_non_gateway_run[None]"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0098-test_gateway_command_line_matcher.py.log",
      "output_sha256": "d166ed6068ff5994516cbce1e70bb00049a6b6176f2e580fb5668ca7fe6449e9",
      "returncode": 0,
      "test_file": "tests/gateway/test_gateway_command_line_matcher.py",
      "test_file_sha256": "6b4bcd5f113b52d7ad30bf88ac546f3262da555f6f7b6a9ecb507dd1d33ffa7a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0099",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_gateway_inactivity_timeout.py"
      ],
      "nodeids": [
        "tests/gateway/test_gateway_inactivity_timeout.py::TestStagedInactivityWarning::test_warning_fires_once_before_timeout",
        "tests/gateway/test_gateway_inactivity_timeout.py::TestStagedInactivityWarning::test_warning_disabled_when_zero",
        "tests/gateway/test_gateway_inactivity_timeout.py::TestStagedInactivityWarning::test_warning_fires_only_once",
        "tests/gateway/test_gateway_inactivity_timeout.py::TestStagedInactivityWarning::test_full_timeout_still_fires_after_warning",
        "tests/gateway/test_gateway_inactivity_timeout.py::TestStagedInactivityWarning::test_warning_env_var_respected",
        "tests/gateway/test_gateway_inactivity_timeout.py::TestStagedInactivityWarning::test_warning_zero_means_disabled",
        "tests/gateway/test_gateway_inactivity_timeout.py::TestStagedInactivityWarning::test_unlimited_timeout_no_warning",
        "tests/gateway/test_gateway_inactivity_timeout.py::TestWarningThresholdBelowTimeout::test_warning_at_half_timeout"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0099-test_gateway_inactivity_timeout.py.log",
      "output_sha256": "202b8df8a5bee4399fbfd5ec9eaaa39c285334b7499e40a1229dc992609a8e70",
      "returncode": 0,
      "test_file": "tests/gateway/test_gateway_inactivity_timeout.py",
      "test_file_sha256": "18bc058d6cd27242a7f3e319f35df45c537fca74fde3a844debb814e6fb9fe9a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0100",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_gateway_shutdown.py"
      ],
      "nodeids": [
        "tests/gateway/test_gateway_shutdown.py::test_cancel_background_tasks_cancels_inflight_message_processing",
        "tests/gateway/test_gateway_shutdown.py::test_cleanup_agent_resources_reaps_stale_aux_clients",
        "tests/gateway/test_gateway_shutdown.py::test_gateway_stop_interrupts_running_agents_and_cancels_adapter_tasks",
        "tests/gateway/test_gateway_shutdown.py::test_gateway_stop_drains_running_agents_before_disconnect",
        "tests/gateway/test_gateway_shutdown.py::test_gateway_stop_interrupts_after_drain_timeout",
        "tests/gateway/test_gateway_shutdown.py::test_gateway_stop_systemd_service_restart_exits_cleanly",
        "tests/gateway/test_gateway_shutdown.py::test_gateway_stop_launchd_service_restart_keeps_nonzero_exit",
        "tests/gateway/test_gateway_shutdown.py::test_restart_shutdown_warning_uses_restart_command_reply_anchor_for_active_session",
        "tests/gateway/test_gateway_shutdown.py::test_in_chat_restart_skips_home_shutdown_even_with_active_session",
        "tests/gateway/test_gateway_shutdown.py::test_idle_in_chat_restart_does_not_send_interruption_warning",
        "tests/gateway/test_gateway_shutdown.py::test_in_chat_restart_does_not_write_home_startup_marker",
        "tests/gateway/test_gateway_shutdown.py::test_drain_active_agents_throttles_status_updates",
        "tests/gateway/test_gateway_shutdown.py::test_gateway_stop_kills_tool_subprocesses_before_adapter_disconnect_on_timeout",
        "tests/gateway/test_gateway_shutdown.py::test_gateway_stop_kills_tool_subprocesses_on_graceful_path",
        "tests/gateway/test_gateway_shutdown.py::test_signal_initiated_shutdown_persists_running_not_stopped",
        "tests/gateway/test_gateway_shutdown.py::test_operator_initiated_stop_persists_stopped",
        "tests/gateway/test_gateway_shutdown.py::test_signal_initiated_restart_still_persists_stopped"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0100-test_gateway_shutdown.py.log",
      "output_sha256": "4ed6fd03d8b958bfc0a7d4974f9ed0e6d0ba2fb5b4e0853f6acce43ca852f199",
      "returncode": 0,
      "test_file": "tests/gateway/test_gateway_shutdown.py",
      "test_file_sha256": "687a7af7bc9cf1c74db19a3f95cbd1996fa3b92688bff3c2750bc44215f67e34"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0101",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_gateway_silence_tokens.py"
      ],
      "nodeids": [
        "tests/gateway/test_gateway_silence_tokens.py::test_exact_silence_tokens_are_intentional_silence",
        "tests/gateway/test_gateway_silence_tokens.py::test_blank_and_prose_mentions_are_not_silence",
        "tests/gateway/test_gateway_silence_tokens.py::test_failed_agent_result_never_counts_as_intentional_silence",
        "tests/gateway/test_gateway_silence_tokens.py::test_silence_token_suppresses_delivery_but_preserves_transcript",
        "tests/gateway/test_gateway_silence_tokens.py::test_empty_success_still_gets_empty_response_warning",
        "tests/gateway/test_gateway_silence_tokens.py::test_prose_mentioning_silence_token_is_delivered"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0101-test_gateway_silence_tokens.py.log",
      "output_sha256": "506feb881051e27c31d0bfcd4fa5331c79b608f21e9c36b9020bbacdfd50b166",
      "returncode": 0,
      "test_file": "tests/gateway/test_gateway_silence_tokens.py",
      "test_file_sha256": "0b306c78b7294d6e738609795517ac2c3ffe86c8bda382469fd083508cb6a6a6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0102",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_goal_max_turns_config.py"
      ],
      "nodeids": [
        "tests/gateway/test_goal_max_turns_config.py::test_gateway_goal_uses_goals_max_turns_from_full_config"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0102-test_goal_max_turns_config.py.log",
      "output_sha256": "b298d602bdd701b703dca7d885284175affab778eaeb6259df19b1ff57cbbabc",
      "returncode": 0,
      "test_file": "tests/gateway/test_goal_max_turns_config.py",
      "test_file_sha256": "fdf1fbce1642520c562b9e96882be35d03db7e699dbba29795571dfe54136b81"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0103",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_goal_status_notice.py"
      ],
      "nodeids": [
        "tests/gateway/test_goal_status_notice.py::test_goal_status_notice_uses_adapter_send_with_thread_metadata",
        "tests/gateway/test_goal_status_notice.py::test_goal_status_notice_defers_until_post_delivery_callback",
        "tests/gateway/test_goal_status_notice.py::test_clear_goal_pending_continuations_removes_slot_and_overflow_only"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0103-test_goal_status_notice.py.log",
      "output_sha256": "bb8328e72294b1ddc191e8cc686c4a35aa6cc825667ec13f92b0addd1e397bea",
      "returncode": 0,
      "test_file": "tests/gateway/test_goal_status_notice.py",
      "test_file_sha256": "fe3e9cb8bbf1921420143d9fe331bf5b8a851b316aef9593d5b77c8d2d35958b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0104",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_goal_verdict_send.py"
      ],
      "nodeids": [
        "tests/gateway/test_goal_verdict_send.py::test_goal_verdict_done_sent_via_adapter_send",
        "tests/gateway/test_goal_verdict_send.py::test_goal_verdict_continue_enqueues_continuation",
        "tests/gateway/test_goal_verdict_send.py::test_goal_verdict_budget_exhausted_sends_pause",
        "tests/gateway/test_goal_verdict_send.py::test_goal_verdict_skipped_when_no_active_goal",
        "tests/gateway/test_goal_verdict_send.py::test_goal_verdict_survives_adapter_without_send"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0104-test_goal_verdict_send.py.log",
      "output_sha256": "33854849192dc6be24ac39239f03db29cd9b57f047d2ba63f1f0d76e38ed6484",
      "returncode": 0,
      "test_file": "tests/gateway/test_goal_verdict_send.py",
      "test_file_sha256": "995db4c33d3540b39703ef124874b3c56450473576c3505aa4403e35489085d4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0105",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_google_chat.py"
      ],
      "nodeids": [
        "tests/gateway/test_google_chat.py::TestPlatformRegistration::test_enum_value",
        "tests/gateway/test_google_chat.py::TestPlatformRegistration::test_requirements_check_returns_true_when_available",
        "tests/gateway/test_google_chat.py::TestEnvConfigLoading::test_missing_subscription_does_not_enable",
        "tests/gateway/test_google_chat.py::TestEnvConfigLoading::test_missing_project_does_not_enable",
        "tests/gateway/test_google_chat.py::TestHelpers::test_mime_image_maps_to_photo",
        "tests/gateway/test_google_chat.py::TestHelpers::test_mime_audio_maps_to_audio",
        "tests/gateway/test_google_chat.py::TestHelpers::test_mime_video_maps_to_video",
        "tests/gateway/test_google_chat.py::TestHelpers::test_mime_other_maps_to_document",
        "tests/gateway/test_google_chat.py::TestHelpers::test_mime_empty_maps_to_document",
        "tests/gateway/test_google_chat.py::TestRedactSensitive::test_redacts_subscription_path",
        "tests/gateway/test_google_chat.py::TestRedactSensitive::test_redacts_topic_path",
        "tests/gateway/test_google_chat.py::TestRedactSensitive::test_redacts_service_account_email",
        "tests/gateway/test_google_chat.py::TestRedactSensitive::test_empty_text_passes_through",
        "tests/gateway/test_google_chat.py::TestGoogleOwnedHost::test_accepts_google_hosts[https://chat.googleapis.com/v1/x]",
        "tests/gateway/test_google_chat.py::TestGoogleOwnedHost::test_accepts_google_hosts[https://www.googleapis.com/upload/chat/v1/x]",
        "tests/gateway/test_google_chat.py::TestGoogleOwnedHost::test_accepts_google_hosts[https://drive.google.com/file/d/abc]",
        "tests/gateway/test_google_chat.py::TestGoogleOwnedHost::test_accepts_google_hosts[https://lh3.googleusercontent.com/photo.jpg]",
        "tests/gateway/test_google_chat.py::TestGoogleOwnedHost::test_rejects_non_google_or_insecure[https://evil.com/foo]",
        "tests/gateway/test_google_chat.py::TestGoogleOwnedHost::test_rejects_non_google_or_insecure[https://169.254.169.254/latest/meta-data/]",
        "tests/gateway/test_google_chat.py::TestGoogleOwnedHost::test_rejects_non_google_or_insecure[https://metadata.internal/computeMetadata/v1/]",
        "tests/gateway/test_google_chat.py::TestGoogleOwnedHost::test_rejects_non_google_or_insecure[https://chat.google.com.attacker.example/]",
        "tests/gateway/test_google_chat.py::TestGoogleOwnedHost::test_rejects_non_google_or_insecure[http://chat.googleapis.com/]",
        "tests/gateway/test_google_chat.py::TestGoogleOwnedHost::test_rejects_non_google_or_insecure[ftp://drive.google.com/x]",
        "tests/gateway/test_google_chat.py::TestGoogleOwnedHost::test_rejects_non_google_or_insecure[not a url]",
        "tests/gateway/test_google_chat.py::TestValidateConfig::test_missing_project_raises",
        "tests/gateway/test_google_chat.py::TestValidateConfig::test_missing_subscription_raises",
        "tests/gateway/test_google_chat.py::TestValidateConfig::test_subscription_format_rejected",
        "tests/gateway/test_google_chat.py::TestValidateConfig::test_subscription_project_mismatch_rejected",
        "tests/gateway/test_google_chat.py::TestValidateConfig::test_validate_config_happy",
        "tests/gateway/test_google_chat.py::TestChunkText::test_empty_returns_empty_list",
        "tests/gateway/test_google_chat.py::TestChunkText::test_short_returns_single_chunk",
        "tests/gateway/test_google_chat.py::TestChunkText::test_long_splits_into_multiple",
        "tests/gateway/test_google_chat.py::TestChunkText::test_splits_on_newline_near_boundary",
        "tests/gateway/test_google_chat.py::TestOnPubsubMessage::test_shutting_down_nacks",
        "tests/gateway/test_google_chat.py::TestOnPubsubMessage::test_malformed_json_acks_without_dispatch",
        "tests/gateway/test_google_chat.py::TestOnPubsubMessage::test_membership_created_caches_bot_user_id",
        "tests/gateway/test_google_chat.py::TestOnPubsubMessage::test_membership_deleted_acks_no_dispatch",
        "tests/gateway/test_google_chat.py::TestOnPubsubMessage::test_bot_sender_is_filtered",
        "tests/gateway/test_google_chat.py::TestOnPubsubMessage::test_relay_flat_bot_sender_is_filtered_end_to_end",
        "tests/gateway/test_google_chat.py::TestOnPubsubMessage::test_relay_flat_human_sender_dispatches",
        "tests/gateway/test_google_chat.py::TestOnPubsubMessage::test_duplicate_message_dropped",
        "tests/gateway/test_google_chat.py::TestOnPubsubMessage::test_text_message_submits_to_loop",
        "tests/gateway/test_google_chat.py::TestOnPubsubMessage::test_callback_exception_does_not_escape",
        "tests/gateway/test_google_chat.py::TestExtractMessagePayload::test_native_chat_api_format_extracts_msg_and_space",
        "tests/gateway/test_google_chat.py::TestExtractMessagePayload::test_native_chat_api_format_drops_non_message_events",
        "tests/gateway/test_google_chat.py::TestExtractMessagePayload::test_relay_flat_format_synthesizes_chat_api_shape",
        "tests/gateway/test_google_chat.py::TestExtractMessagePayload::test_relay_flat_honors_declared_sender_type_bot",
        "tests/gateway/test_google_chat.py::TestExtractMessagePayload::test_relay_flat_defaults_sender_type_human_when_absent",
        "tests/gateway/test_google_chat.py::TestExtractMessagePayload::test_relay_flat_coerces_unknown_sender_type_to_human",
        "tests/gateway/test_google_chat.py::TestExtractMessagePayload::test_unrecognized_envelope_returns_none",
        "tests/gateway/test_google_chat.py::TestBuildMessageEvent::test_dm_first_message_in_thread_is_main_flow",
        "tests/gateway/test_google_chat.py::TestBuildMessageEvent::test_dm_second_message_in_same_thread_is_side_thread",
        "tests/gateway/test_google_chat.py::TestBuildMessageEvent::test_dm_side_thread_caches_thread_for_outbound",
        "tests/gateway/test_google_chat.py::TestBuildMessageEvent::test_dm_main_flow_after_side_thread_clears_cache",
        "tests/gateway/test_google_chat.py::TestBuildMessageEvent::test_dm_different_top_level_threads_share_session",
        "tests/gateway/test_google_chat.py::TestBuildMessageEvent::test_group_keeps_thread_id_on_source",
        "tests/gateway/test_google_chat.py::TestBuildMessageEvent::test_slash_command_yields_command_type",
        "tests/gateway/test_google_chat.py::TestBuildMessageEvent::test_attachment_image_triggers_download",
        "tests/gateway/test_google_chat.py::TestSend::test_text_send_creates_message",
        "tests/gateway/test_google_chat.py::TestSend::test_create_message_passes_messageReplyOption_when_thread_set",
        "tests/gateway/test_google_chat.py::TestSend::test_create_message_omits_messageReplyOption_when_no_thread",
        "tests/gateway/test_google_chat.py::TestSend::test_with_typing_card_patches_instead_of_creating",
        "tests/gateway/test_google_chat.py::TestSend::test_long_text_splits_and_sends_multiple",
        "tests/gateway/test_google_chat.py::TestSend::test_403_sets_fatal_error",
        "tests/gateway/test_google_chat.py::TestSend::test_404_returns_target_not_found",
        "tests/gateway/test_google_chat.py::TestSend::test_429_increments_rate_limit_counter_and_raises",
        "tests/gateway/test_google_chat.py::TestTypingLifecycle::test_send_typing_posts_and_tracks",
        "tests/gateway/test_google_chat.py::TestTypingLifecycle::test_send_typing_skips_when_already_tracking",
        "tests/gateway/test_google_chat.py::TestTypingLifecycle::test_send_typing_inherits_inbound_thread",
        "tests/gateway/test_google_chat.py::TestTypingLifecycle::test_send_typing_no_thread_when_cache_empty",
        "tests/gateway/test_google_chat.py::TestTypingLifecycle::test_send_typing_concurrent_calls_create_only_one_card",
        "tests/gateway/test_google_chat.py::TestTypingLifecycle::test_send_typing_survives_caller_cancellation",
        "tests/gateway/test_google_chat.py::TestTypingLifecycle::test_orphan_typing_cards_reaped_on_completion",
        "tests/gateway/test_google_chat.py::TestTypingLifecycle::test_stop_typing_is_noop_for_live_card",
        "tests/gateway/test_google_chat.py::TestTypingLifecycle::test_stop_typing_pops_sentinel",
        "tests/gateway/test_google_chat.py::TestTypingLifecycle::test_stop_typing_noop_when_nothing_tracked",
        "tests/gateway/test_google_chat.py::TestTypingLifecycle::test_on_processing_complete_pops_sentinel_on_success",
        "tests/gateway/test_google_chat.py::TestTypingLifecycle::test_on_processing_complete_patches_stranded_card",
        "tests/gateway/test_google_chat.py::TestEditMessage::test_edit_message_patches_via_messages_patch",
        "tests/gateway/test_google_chat.py::TestEditMessage::test_edit_message_truncates_overlong_text",
        "tests/gateway/test_google_chat.py::TestEditMessage::test_edit_message_missing_id_returns_failure",
        "tests/gateway/test_google_chat.py::TestEditMessage::test_edit_message_429_increments_rate_limit_counter",
        "tests/gateway/test_google_chat.py::TestEditMessage::test_edit_message_overrides_base_so_progress_pipeline_runs",
        "tests/gateway/test_google_chat.py::TestDeleteMessage::test_delete_message_calls_api",
        "tests/gateway/test_google_chat.py::TestDeleteMessage::test_delete_message_swallows_404",
        "tests/gateway/test_google_chat.py::TestDeleteMessage::test_delete_message_missing_id_returns_false",
        "tests/gateway/test_google_chat.py::TestNativeAttachmentDelivery::test_send_file_posts_setup_notice_when_no_user_oauth",
        "tests/gateway/test_google_chat.py::TestNativeAttachmentDelivery::test_send_file_two_step_native_upload_when_user_oauth_ready",
        "tests/gateway/test_google_chat.py::TestNativeAttachmentDelivery::test_send_file_falls_back_to_notice_on_401",
        "tests/gateway/test_google_chat.py::TestNativeAttachmentDelivery::test_send_file_returns_error_on_unrelated_http_error",
        "tests/gateway/test_google_chat.py::TestSetupFilesSlashCommand::test_slash_command_intercepted_before_agent",
        "tests/gateway/test_google_chat.py::TestSetupFilesSlashCommand::test_no_arg_status_when_unconfigured",
        "tests/gateway/test_google_chat.py::TestSetupFilesSlashCommand::test_revoke_clears_in_memory_creds",
        "tests/gateway/test_google_chat.py::TestUserOAuthHelper::test_load_user_credentials_returns_none_when_no_token",
        "tests/gateway/test_google_chat.py::TestUserOAuthHelper::test_load_user_credentials_returns_none_on_corrupt_token",
        "tests/gateway/test_google_chat.py::TestUserOAuthHelper::test_scopes_are_minimal",
        "tests/gateway/test_google_chat.py::TestUserOAuthHelper::test_sanitize_email_lowercases_and_replaces_unsafe_chars",
        "tests/gateway/test_google_chat.py::TestUserOAuthHelper::test_per_user_token_path_isolated_from_legacy",
        "tests/gateway/test_google_chat.py::TestUserOAuthHelper::test_load_user_credentials_per_email_returns_none_when_missing",
        "tests/gateway/test_google_chat.py::TestUserOAuthHelper::test_list_authorized_emails_lists_per_user_files",
        "tests/gateway/test_google_chat.py::TestUserOAuthHelper::test_list_authorized_emails_empty_when_dir_missing",
        "tests/gateway/test_google_chat.py::TestUserOAuthHelper::test_pending_auth_path_is_per_user_when_email_given",
        "tests/gateway/test_google_chat.py::TestUserOAuthHelper::test_persist_credentials_writes_private_json",
        "tests/gateway/test_google_chat.py::TestUserOAuthHelper::test_store_client_secret_writes_private_json",
        "tests/gateway/test_google_chat.py::TestUserOAuthHelper::test_save_pending_auth_writes_private_json",
        "tests/gateway/test_google_chat.py::TestPerUserAttachmentRouting::test_build_message_event_caches_sender_email",
        "tests/gateway/test_google_chat.py::TestPerUserAttachmentRouting::test_send_file_uses_per_user_token_when_sender_known",
        "tests/gateway/test_google_chat.py::TestPerUserAttachmentRouting::test_send_file_falls_back_to_legacy_when_per_user_missing",
        "tests/gateway/test_google_chat.py::TestPerUserAttachmentRouting::test_send_file_no_creds_anywhere_posts_setup_notice",
        "tests/gateway/test_google_chat.py::TestPerUserAttachmentRouting::test_send_file_per_user_401_evicts_only_that_user",
        "tests/gateway/test_google_chat.py::TestPerUserAttachmentRouting::test_setup_files_writes_to_per_user_path",
        "tests/gateway/test_google_chat.py::TestPerUserAttachmentRouting::test_setup_files_revoke_drops_only_that_user",
        "tests/gateway/test_google_chat.py::TestThreadCountStore::test_missing_file_returns_zero_counts",
        "tests/gateway/test_google_chat.py::TestThreadCountStore::test_corrupt_json_treated_as_empty",
        "tests/gateway/test_google_chat.py::TestThreadCountStore::test_incr_returns_pre_increment_value",
        "tests/gateway/test_google_chat.py::TestThreadCountStore::test_round_trip_persists_across_load",
        "tests/gateway/test_google_chat.py::TestThreadCountStore::test_invalid_shape_dropped_silently",
        "tests/gateway/test_google_chat.py::TestThreadCountStore::test_outbound_thread_tracked_for_user_reply_in_bot_thread",
        "tests/gateway/test_google_chat.py::TestThreadCountStore::test_side_thread_detection_survives_restart",
        "tests/gateway/test_google_chat.py::TestAttachmentSSRFGuard::test_drive_picker_only_skipped_when_no_resource_name",
        "tests/gateway/test_google_chat.py::TestAttachmentSSRFGuard::test_drive_file_with_resource_name_uses_bot_path",
        "tests/gateway/test_google_chat.py::TestAttachmentSSRFGuard::test_rejects_non_google_host",
        "tests/gateway/test_google_chat.py::TestAttachmentSSRFGuard::test_rejects_metadata_endpoint",
        "tests/gateway/test_google_chat.py::TestOutboundThreadRouting::test_resolve_uses_metadata_thread_id",
        "tests/gateway/test_google_chat.py::TestOutboundThreadRouting::test_resolve_falls_back_to_cached_thread_for_dm",
        "tests/gateway/test_google_chat.py::TestOutboundThreadRouting::test_resolve_metadata_overrides_cache",
        "tests/gateway/test_google_chat.py::TestOutboundThreadRouting::test_resolve_returns_none_when_no_inputs",
        "tests/gateway/test_google_chat.py::TestMediaDelegation::test_send_voice_delegates_to_document_with_audio_mime",
        "tests/gateway/test_google_chat.py::TestMediaDelegation::test_send_video_delegates_with_video_mime",
        "tests/gateway/test_google_chat.py::TestMediaDelegation::test_send_animation_delegates_to_image",
        "tests/gateway/test_google_chat.py::TestMediaDelegation::test_send_file_missing_path_returns_error",
        "tests/gateway/test_google_chat.py::TestOutboundRetry::test_retries_on_503_then_succeeds",
        "tests/gateway/test_google_chat.py::TestOutboundRetry::test_gives_up_after_max_attempts",
        "tests/gateway/test_google_chat.py::TestOutboundRetry::test_does_not_retry_on_400",
        "tests/gateway/test_google_chat.py::TestOutboundRetry::test_is_retryable_error_classifier",
        "tests/gateway/test_google_chat.py::TestFormatMessage::test_bold_double_asterisk_to_single",
        "tests/gateway/test_google_chat.py::TestFormatMessage::test_bold_italic_combo_to_chat_dialect",
        "tests/gateway/test_google_chat.py::TestFormatMessage::test_markdown_link_to_chat_anglebracket",
        "tests/gateway/test_google_chat.py::TestFormatMessage::test_header_to_bold_at_line_start_only",
        "tests/gateway/test_google_chat.py::TestFormatMessage::test_fenced_code_block_protected",
        "tests/gateway/test_google_chat.py::TestFormatMessage::test_inline_code_protected",
        "tests/gateway/test_google_chat.py::TestFormatMessage::test_url_with_parens_in_path",
        "tests/gateway/test_google_chat.py::TestFormatMessage::test_mixed_bold_italic_orderings",
        "tests/gateway/test_google_chat.py::TestFormatMessage::test_strips_zwj_and_variation_selector",
        "tests/gateway/test_google_chat.py::TestFormatMessage::test_strips_bom_and_bidi_marks",
        "tests/gateway/test_google_chat.py::TestFormatMessage::test_empty_and_none_safe",
        "tests/gateway/test_google_chat.py::TestFormatMessage::test_unmatched_asterisks_left_alone",
        "tests/gateway/test_google_chat.py::TestADCFallback::test_load_credentials_uses_adc_when_no_sa_path",
        "tests/gateway/test_google_chat.py::TestADCFallback::test_load_credentials_raises_when_no_sa_and_adc_unavailable",
        "tests/gateway/test_google_chat.py::TestGoogleChatInteractiveSetup::test_interactive_setup_uses_shared_cli_prompt_helpers",
        "tests/gateway/test_google_chat.py::TestSupervisorReconnect::test_fatal_after_max_retries",
        "tests/gateway/test_google_chat.py::TestAuthorizationEmailMatch::test_allowlist_matches_when_user_id_is_email",
        "tests/gateway/test_google_chat.py::TestAuthorizationEmailMatch::test_allowlist_denies_wrong_email",
        "tests/gateway/test_google_chat.py::TestAuthorizationEmailMatch::test_allowlist_falls_back_to_resource_name_when_no_email",
        "tests/gateway/test_google_chat.py::TestCronSchedulerRegistry::test_google_chat_is_known_delivery_platform",
        "tests/gateway/test_google_chat.py::TestCronSchedulerRegistry::test_google_chat_home_env_var_resolves",
        "tests/gateway/test_google_chat.py::TestGoogleChatStandaloneSend::test_standalone_send_refreshes_token_and_posts_message",
        "tests/gateway/test_google_chat.py::TestGoogleChatStandaloneSend::test_standalone_send_returns_error_on_invalid_chat_id",
        "tests/gateway/test_google_chat.py::TestGoogleChatStandaloneSend::test_standalone_send_propagates_api_failure",
        "tests/gateway/test_google_chat.py::TestGoogleChatStandaloneSend::test_standalone_send_rejects_chat_id_with_path_traversal"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0105-test_google_chat.py.log",
      "output_sha256": "5f00ce4ff0705f4a2150c223beab4d02a1be979be8d7471936cb90139f93b6b4",
      "returncode": 0,
      "test_file": "tests/gateway/test_google_chat.py",
      "test_file_sha256": "be5c20aa8ae3657f35ec67ffd5fda29f7459d1c5bfb175724f7a6fca019b0447"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0106",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_home_target_env_var.py"
      ],
      "nodeids": [
        "tests/gateway/test_home_target_env_var.py::test_matrix_home_target_env_var_uses_home_room",
        "tests/gateway/test_home_target_env_var.py::test_email_home_target_env_var_uses_home_address",
        "tests/gateway/test_home_target_env_var.py::test_telegram_home_target_env_var_uses_home_channel",
        "tests/gateway/test_home_target_env_var.py::test_discord_home_target_env_var_uses_home_channel",
        "tests/gateway/test_home_target_env_var.py::test_unknown_platform_home_target_env_var_falls_back_to_home_channel",
        "tests/gateway/test_home_target_env_var.py::test_case_insensitive_platform_name",
        "tests/gateway/test_home_target_env_var.py::test_home_thread_env_var_uses_home_target_name_plus_thread_id"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0106-test_home_target_env_var.py.log",
      "output_sha256": "4d5e94ce59653c3d9bade49fffdfa44fd1fa0edacaa2f4ed18d3456f9b73959d",
      "returncode": 0,
      "test_file": "tests/gateway/test_home_target_env_var.py",
      "test_file_sha256": "3dfde539e7d8412923ef09926265fec455ede6a79f93ef0cb99b7b163aabe736"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0107",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_homeassistant.py"
      ],
      "nodeids": [
        "tests/gateway/test_homeassistant.py::TestCheckRequirements::test_returns_false_without_token",
        "tests/gateway/test_homeassistant.py::TestCheckRequirements::test_returns_true_with_token",
        "tests/gateway/test_homeassistant.py::TestCheckRequirements::test_returns_false_without_aiohttp",
        "tests/gateway/test_homeassistant.py::TestFormatStateChange::test_climate_includes_temperatures",
        "tests/gateway/test_homeassistant.py::TestFormatStateChange::test_sensor_includes_unit",
        "tests/gateway/test_homeassistant.py::TestFormatStateChange::test_sensor_without_unit",
        "tests/gateway/test_homeassistant.py::TestFormatStateChange::test_binary_sensor_on",
        "tests/gateway/test_homeassistant.py::TestFormatStateChange::test_binary_sensor_off",
        "tests/gateway/test_homeassistant.py::TestFormatStateChange::test_light_turned_on",
        "tests/gateway/test_homeassistant.py::TestFormatStateChange::test_switch_turned_off",
        "tests/gateway/test_homeassistant.py::TestFormatStateChange::test_fan_domain_uses_light_switch_branch",
        "tests/gateway/test_homeassistant.py::TestFormatStateChange::test_alarm_panel",
        "tests/gateway/test_homeassistant.py::TestFormatStateChange::test_generic_domain_includes_entity_id",
        "tests/gateway/test_homeassistant.py::TestFormatStateChange::test_same_state_returns_none",
        "tests/gateway/test_homeassistant.py::TestFormatStateChange::test_empty_new_state_returns_none",
        "tests/gateway/test_homeassistant.py::TestFormatStateChange::test_no_old_state_uses_unknown",
        "tests/gateway/test_homeassistant.py::TestFormatStateChange::test_uses_entity_id_when_no_friendly_name",
        "tests/gateway/test_homeassistant.py::TestAdapterInit::test_url_and_token_from_config_extra",
        "tests/gateway/test_homeassistant.py::TestAdapterInit::test_url_fallback_to_env",
        "tests/gateway/test_homeassistant.py::TestAdapterInit::test_trailing_slash_stripped",
        "tests/gateway/test_homeassistant.py::TestAdapterInit::test_watch_filters_parsed",
        "tests/gateway/test_homeassistant.py::TestAdapterInit::test_watch_all_parsed",
        "tests/gateway/test_homeassistant.py::TestAdapterInit::test_defaults_when_no_extra",
        "tests/gateway/test_homeassistant.py::TestEventFilteringPipeline::test_ignored_entity_not_forwarded",
        "tests/gateway/test_homeassistant.py::TestEventFilteringPipeline::test_unwatched_domain_not_forwarded",
        "tests/gateway/test_homeassistant.py::TestEventFilteringPipeline::test_watched_domain_forwarded",
        "tests/gateway/test_homeassistant.py::TestEventFilteringPipeline::test_watched_entity_forwarded",
        "tests/gateway/test_homeassistant.py::TestEventFilteringPipeline::test_no_filters_blocks_everything",
        "tests/gateway/test_homeassistant.py::TestEventFilteringPipeline::test_watch_all_passes_everything",
        "tests/gateway/test_homeassistant.py::TestEventFilteringPipeline::test_same_state_not_forwarded",
        "tests/gateway/test_homeassistant.py::TestEventFilteringPipeline::test_empty_entity_id_skipped",
        "tests/gateway/test_homeassistant.py::TestEventFilteringPipeline::test_message_event_has_correct_source",
        "tests/gateway/test_homeassistant.py::TestCooldown::test_cooldown_blocks_rapid_events",
        "tests/gateway/test_homeassistant.py::TestCooldown::test_cooldown_expires",
        "tests/gateway/test_homeassistant.py::TestCooldown::test_different_entities_independent_cooldowns",
        "tests/gateway/test_homeassistant.py::TestCooldown::test_zero_cooldown_passes_all",
        "tests/gateway/test_homeassistant.py::TestConfigIntegration::test_env_override_creates_ha_platform",
        "tests/gateway/test_homeassistant.py::TestConfigIntegration::test_no_env_no_platform",
        "tests/gateway/test_homeassistant.py::TestConfigIntegration::test_config_roundtrip_preserves_extra",
        "tests/gateway/test_homeassistant.py::TestSendViaRestApi::test_send_success",
        "tests/gateway/test_homeassistant.py::TestSendViaRestApi::test_send_http_error",
        "tests/gateway/test_homeassistant.py::TestSendViaRestApi::test_send_truncates_long_message",
        "tests/gateway/test_homeassistant.py::TestSendViaRestApi::test_send_does_not_use_websocket",
        "tests/gateway/test_homeassistant.py::TestWsUrlConstruction::test_http_to_ws",
        "tests/gateway/test_homeassistant.py::TestWsUrlConstruction::test_https_to_wss"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0107-test_homeassistant.py.log",
      "output_sha256": "fb9b638d832fcb2427c98bec1e670e28cc7a954d23e6b3285a4d18f6e66467b2",
      "returncode": 0,
      "test_file": "tests/gateway/test_homeassistant.py",
      "test_file_sha256": "6b30cf359f3f065c82563fa2f9b2ed30e949d55c0af5fe2656b1b1bf4b70683b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0108",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_hooks.py"
      ],
      "nodeids": [
        "tests/gateway/test_hooks.py::TestHookRegistryInit::test_empty_registry",
        "tests/gateway/test_hooks.py::TestDiscoverAndLoad::test_loads_valid_hook",
        "tests/gateway/test_hooks.py::TestDiscoverAndLoad::test_skips_missing_hook_yaml",
        "tests/gateway/test_hooks.py::TestDiscoverAndLoad::test_skips_missing_handler_py",
        "tests/gateway/test_hooks.py::TestDiscoverAndLoad::test_skips_no_events",
        "tests/gateway/test_hooks.py::TestDiscoverAndLoad::test_skips_no_handle_function",
        "tests/gateway/test_hooks.py::TestDiscoverAndLoad::test_nonexistent_hooks_dir",
        "tests/gateway/test_hooks.py::TestDiscoverAndLoad::test_multiple_hooks",
        "tests/gateway/test_hooks.py::TestEmit::test_emit_calls_sync_handler",
        "tests/gateway/test_hooks.py::TestEmit::test_emit_calls_async_handler",
        "tests/gateway/test_hooks.py::TestEmit::test_wildcard_matching",
        "tests/gateway/test_hooks.py::TestEmit::test_no_handlers_for_event",
        "tests/gateway/test_hooks.py::TestEmit::test_handler_error_does_not_propagate",
        "tests/gateway/test_hooks.py::TestEmit::test_emit_default_context",
        "tests/gateway/test_hooks.py::TestEmitCollect::test_collects_sync_return_values",
        "tests/gateway/test_hooks.py::TestEmitCollect::test_collects_async_return_values",
        "tests/gateway/test_hooks.py::TestEmitCollect::test_drops_none_return_values",
        "tests/gateway/test_hooks.py::TestEmitCollect::test_handler_exception_does_not_abort_chain",
        "tests/gateway/test_hooks.py::TestEmitCollect::test_wildcard_match_also_collected",
        "tests/gateway/test_hooks.py::TestEmitCollect::test_no_handlers_returns_empty_list",
        "tests/gateway/test_hooks.py::TestEmitCollect::test_default_context"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0108-test_hooks.py.log",
      "output_sha256": "0eaa269f755676d16a1189b50dd66bbac3827bd8a8d8c056b517c9c4b92e623f",
      "returncode": 0,
      "test_file": "tests/gateway/test_hooks.py",
      "test_file_sha256": "4550b6a3043701ac575cc1367b80f654340b4c62ebdcf9f43f309d8dbca32883"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0109",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_insights_unicode_flags.py"
      ],
      "nodeids": [
        "tests/gateway/test_insights_unicode_flags.py::TestInsightsUnicodeDashFlags::test_unicode_dash_normalized[--days 7---days 7]",
        "tests/gateway/test_insights_unicode_flags.py::TestInsightsUnicodeDashFlags::test_unicode_dash_normalized[--source telegram---source telegram]",
        "tests/gateway/test_insights_unicode_flags.py::TestInsightsUnicodeDashFlags::test_unicode_dash_normalized[\\u2014days 7---days 7]",
        "tests/gateway/test_insights_unicode_flags.py::TestInsightsUnicodeDashFlags::test_unicode_dash_normalized[\\u2014source telegram---source telegram]",
        "tests/gateway/test_insights_unicode_flags.py::TestInsightsUnicodeDashFlags::test_unicode_dash_normalized[\\u2013days 7---days 7]",
        "tests/gateway/test_insights_unicode_flags.py::TestInsightsUnicodeDashFlags::test_unicode_dash_normalized[\\u2013source telegram---source telegram]",
        "tests/gateway/test_insights_unicode_flags.py::TestInsightsUnicodeDashFlags::test_unicode_dash_normalized[\\u2012days 7---days 7]",
        "tests/gateway/test_insights_unicode_flags.py::TestInsightsUnicodeDashFlags::test_unicode_dash_normalized[\\u2015days 7---days 7]",
        "tests/gateway/test_insights_unicode_flags.py::TestInsightsUnicodeDashFlags::test_unicode_dash_normalized[\\u2014days 30 \\u2014source cli---days 30 --source cli]",
        "tests/gateway/test_insights_unicode_flags.py::TestInsightsUnicodeDashFlags::test_regular_hyphens_unaffected",
        "tests/gateway/test_insights_unicode_flags.py::TestInsightsUnicodeDashFlags::test_bare_number_still_works",
        "tests/gateway/test_insights_unicode_flags.py::TestInsightsUnicodeDashFlags::test_no_flags_unchanged"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0109-test_insights_unicode_flags.py.log",
      "output_sha256": "2d5f020c3f45863699eb251280ed2da291e8b2c3192ff347580947ef90045db3",
      "returncode": 0,
      "test_file": "tests/gateway/test_insights_unicode_flags.py",
      "test_file_sha256": "6d35b503a05a5d5a6d5f2b245012da91482614e150e174e8504ccb414b7ce02a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0110",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_internal_event_bypass_pairing.py"
      ],
      "nodeids": [
        "tests/gateway/test_internal_event_bypass_pairing.py::test_notify_on_complete_sets_internal_flag",
        "tests/gateway/test_internal_event_bypass_pairing.py::test_internal_event_bypasses_authorization",
        "tests/gateway/test_internal_event_bypass_pairing.py::test_internal_event_does_not_trigger_pairing",
        "tests/gateway/test_internal_event_bypass_pairing.py::test_notify_on_complete_preserves_user_identity",
        "tests/gateway/test_internal_event_bypass_pairing.py::test_notify_on_complete_uses_session_store_origin_for_group_topic",
        "tests/gateway/test_internal_event_bypass_pairing.py::test_none_user_id_skips_pairing",
        "tests/gateway/test_internal_event_bypass_pairing.py::test_none_user_id_does_not_generate_pairing_code",
        "tests/gateway/test_internal_event_bypass_pairing.py::test_non_internal_event_without_user_triggers_pairing"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0110-test_internal_event_bypass_pairing.py.log",
      "output_sha256": "3b452e002605fef64b80b61c66b1acecf57e0ed4ad87291fdd6a20af6f3f8019",
      "returncode": 0,
      "test_file": "tests/gateway/test_internal_event_bypass_pairing.py",
      "test_file_sha256": "db56957db6ba9cc03999bb2634599cc3150c8814b8ab24c00551f98149fe33e1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0111",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_interrupt_key_match.py"
      ],
      "nodeids": [
        "tests/gateway/test_interrupt_key_match.py::TestInterruptKeyConsistency::test_session_key_differs_from_chat_id_for_dm",
        "tests/gateway/test_interrupt_key_match.py::TestInterruptKeyConsistency::test_session_key_differs_from_chat_id_for_group",
        "tests/gateway/test_interrupt_key_match.py::TestInterruptKeyConsistency::test_has_pending_interrupt_requires_session_key",
        "tests/gateway/test_interrupt_key_match.py::TestInterruptKeyConsistency::test_get_pending_message_requires_session_key",
        "tests/gateway/test_interrupt_key_match.py::TestInterruptKeyConsistency::test_handle_message_stores_under_session_key",
        "tests/gateway/test_interrupt_key_match.py::TestInterruptKeyConsistency::test_photo_followup_is_queued_without_interrupt"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0111-test_interrupt_key_match.py.log",
      "output_sha256": "567a9efcabeb63a6dddc7a3cf150cb18011bc4fff318da6358a6f50b74121b0f",
      "returncode": 0,
      "test_file": "tests/gateway/test_interrupt_key_match.py",
      "test_file_sha256": "2dbf9c7b56c4d0c39137bd922ffb130379bd377431eb2fbffcbeab320bb22cb8"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0112",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_irc_adapter.py"
      ],
      "nodeids": [
        "tests/gateway/test_irc_adapter.py::TestIRCProtocolHelpers::test_parse_simple_command",
        "tests/gateway/test_irc_adapter.py::TestIRCProtocolHelpers::test_parse_prefixed_message",
        "tests/gateway/test_irc_adapter.py::TestIRCProtocolHelpers::test_parse_numeric_reply",
        "tests/gateway/test_irc_adapter.py::TestIRCProtocolHelpers::test_parse_nick_collision",
        "tests/gateway/test_irc_adapter.py::TestIRCProtocolHelpers::test_extract_nick_full_prefix",
        "tests/gateway/test_irc_adapter.py::TestIRCProtocolHelpers::test_extract_nick_bare",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterInit::test_init_from_env",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterInit::test_init_from_config_extra",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterInit::test_env_overrides_config",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterSend::test_send_not_connected",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterSend::test_send_success",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterSend::test_send_splits_long_messages",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_handle_ping",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_handle_welcome",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_handle_nick_collision",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_handle_addressed_channel_message",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_ignores_unaddressed_channel_message",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_handle_dm",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_ignores_own_messages",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_ctcp_action_converted",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_allowed_users_case_insensitive",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_unauthorized_user_blocked",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_nick_collision_retry",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterSplitting::test_split_respects_byte_limit",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterSplitting::test_split_prefers_word_boundary",
        "tests/gateway/test_irc_adapter.py::TestIRCProtocolHelpersExtra::test_parse_malformed_no_space",
        "tests/gateway/test_irc_adapter.py::TestIRCProtocolHelpersExtra::test_parse_empty",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterMarkdown::test_strip_bold",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterMarkdown::test_strip_italic",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterMarkdown::test_strip_code",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterMarkdown::test_strip_link",
        "tests/gateway/test_irc_adapter.py::TestIRCAdapterMarkdown::test_strip_image",
        "tests/gateway/test_irc_adapter.py::TestIRCRequirements::test_check_requirements_with_env",
        "tests/gateway/test_irc_adapter.py::TestIRCRequirements::test_check_requirements_missing_server",
        "tests/gateway/test_irc_adapter.py::TestIRCRequirements::test_check_requirements_missing_channel",
        "tests/gateway/test_irc_adapter.py::TestIRCRequirements::test_validate_config_from_extra",
        "tests/gateway/test_irc_adapter.py::TestIRCRequirements::test_validate_config_missing",
        "tests/gateway/test_irc_adapter.py::TestIRCPluginRegistration::test_register_adds_to_registry",
        "tests/gateway/test_irc_adapter.py::TestIRCStandaloneSend::test_standalone_send_completes_handshake_and_sends_privmsg",
        "tests/gateway/test_irc_adapter.py::TestIRCStandaloneSend::test_standalone_send_returns_error_when_unconfigured",
        "tests/gateway/test_irc_adapter.py::TestIRCStandaloneSend::test_standalone_send_returns_error_on_registration_timeout",
        "tests/gateway/test_irc_adapter.py::TestIRCStandaloneSend::test_standalone_send_rejects_crlf_in_chat_id",
        "tests/gateway/test_irc_adapter.py::TestIRCStandaloneSend::test_standalone_send_strips_crlf_from_message_body",
        "tests/gateway/test_irc_adapter.py::TestIRCStandaloneSend::test_standalone_send_joins_channel_before_privmsg"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0112-test_irc_adapter.py.log",
      "output_sha256": "8d757e513c72baab09dccf56ff81a8c2275285cda222619636ace9164815d399",
      "returncode": 0,
      "test_file": "tests/gateway/test_irc_adapter.py",
      "test_file_sha256": "ba575132623c186e10332449f233f0f28eef2a33ce6785ccb35ef2f3b7465992"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0113",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_kanban_notifier.py"
      ],
      "nodeids": [
        "tests/gateway/test_kanban_notifier.py::test_kanban_notifier_dedupes_board_slugs_pointing_to_same_db",
        "tests/gateway/test_kanban_notifier.py::test_kanban_notifier_claim_prevents_second_watcher_send",
        "tests/gateway/test_kanban_notifier.py::test_kanban_notifier_rewinds_claim_if_adapter_disconnects",
        "tests/gateway/test_kanban_notifier.py::test_kanban_db_path_is_test_isolated_from_real_home",
        "tests/gateway/test_kanban_notifier.py::test_kanban_notifier_rewinds_claim_on_send_exception",
        "tests/gateway/test_kanban_notifier.py::test_notifier_redelivers_same_kind_on_dispatch_cycle"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0113-test_kanban_notifier.py.log",
      "output_sha256": "024a00faaa7624741accc94232bed6a9987d39370e3269a79b8ecaee6694eae7",
      "returncode": 0,
      "test_file": "tests/gateway/test_kanban_notifier.py",
      "test_file_sha256": "ea78a9f1d63843771ff6989571d80d11eec5520e184f0f9b888fb6c91535e8c5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0114",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_kanban_notifier_watcher_dispatch_gate.py"
      ],
      "nodeids": [
        "tests/gateway/test_kanban_notifier_watcher_dispatch_gate.py::test_notifier_watcher_skips_when_dispatch_disabled",
        "tests/gateway/test_kanban_notifier_watcher_dispatch_gate.py::test_notifier_watcher_env_override_disables",
        "tests/gateway/test_kanban_notifier_watcher_dispatch_gate.py::test_notifier_watcher_runs_when_dispatch_enabled"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0114-test_kanban_notifier_watcher_dispatch_gate.py.log",
      "output_sha256": "5b48b8cf26dbfa798ce737ed50c92cec240da1830bb917ec5513bd1e78687a8b",
      "returncode": 0,
      "test_file": "tests/gateway/test_kanban_notifier_watcher_dispatch_gate.py",
      "test_file_sha256": "10fc79b63f8e16ed20b94ac2ca83c166d707cb737657aab0c822701d0d9ffe3b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0115",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_kanban_watchers_mixin.py"
      ],
      "nodeids": [
        "tests/gateway/test_kanban_watchers_mixin.py::test_mixin_defines_kanban_methods",
        "tests/gateway/test_kanban_watchers_mixin.py::test_gateway_runner_inherits_mixin",
        "tests/gateway/test_kanban_watchers_mixin.py::test_watcher_loops_are_coroutines",
        "tests/gateway/test_kanban_watchers_mixin.py::test_singleton_dispatcher_lock_is_exclusive"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0115-test_kanban_watchers_mixin.py.log",
      "output_sha256": "6fd6987a4c4ad22858d25c0f5fe5ef67a1b958f33136817b2ed9aa6da33da6e3",
      "returncode": 0,
      "test_file": "tests/gateway/test_kanban_watchers_mixin.py",
      "test_file_sha256": "4d780d2671b2c1bf612074bf9632ea0e3cd1219c610642a8eb986dca9c8f89e9"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0116",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_keep_typing_timeout.py"
      ],
      "nodeids": [
        "tests/gateway/test_keep_typing_timeout.py::TestKeepTypingTimeoutPerTick::test_slow_send_typing_does_not_block_cadence",
        "tests/gateway/test_keep_typing_timeout.py::TestKeepTypingTimeoutPerTick::test_fast_send_typing_still_gets_awaited",
        "tests/gateway/test_keep_typing_timeout.py::TestKeepTypingTimeoutPerTick::test_send_typing_exception_does_not_kill_loop",
        "tests/gateway/test_keep_typing_timeout.py::TestKeepTypingTimeoutPerTick::test_paused_chat_skips_send_typing",
        "tests/gateway/test_keep_typing_timeout.py::TestKeepTypingTimeoutPerTick::test_stop_typing_refresh_blocks_late_cancel_tick"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0116-test_keep_typing_timeout.py.log",
      "output_sha256": "663a599e0ddd8fbf40f17647e7d08570b37f4eff85a495ab98236a91fd08e244",
      "returncode": 0,
      "test_file": "tests/gateway/test_keep_typing_timeout.py",
      "test_file_sha256": "b577798913b47142efd61950c320b1529a4c88bccabefd4cdd646d8f2dc31e88"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0117",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_korean_humanizer.py"
      ],
      "nodeids": [
        "tests/gateway/test_korean_humanizer.py::test_daily_accepts_natural_prose_and_preserves_locked_copy",
        "tests/gateway/test_korean_humanizer.py::test_weekly_rewrites_only_interpretation_and_rationale",
        "tests/gateway/test_korean_humanizer.py::test_adaptive_rewrites_review_copy_but_not_decision_or_delivery_state",
        "tests/gateway/test_korean_humanizer.py::test_new_number_or_internal_code_rejects_the_whole_response",
        "tests/gateway/test_korean_humanizer.py::test_malformed_or_partial_response_falls_back_exactly",
        "tests/gateway/test_korean_humanizer.py::test_humanize_makes_one_request_and_provider_failure_is_canonical",
        "tests/gateway/test_korean_humanizer.py::test_finite_pipeline_allows_three_to_five_approved_principles[3]",
        "tests/gateway/test_korean_humanizer.py::test_finite_pipeline_allows_three_to_five_approved_principles[4]",
        "tests/gateway/test_korean_humanizer.py::test_finite_pipeline_allows_three_to_five_approved_principles[5]",
        "tests/gateway/test_korean_humanizer.py::test_finite_pipeline_rejects_principle_counts_outside_bounds[2]",
        "tests/gateway/test_korean_humanizer.py::test_finite_pipeline_rejects_principle_counts_outside_bounds[6]",
        "tests/gateway/test_korean_humanizer.py::test_forged_finite_ids_fail_closed_without_retry[coach-atom_ids]",
        "tests/gateway/test_korean_humanizer.py::test_forged_finite_ids_fail_closed_without_retry[coach-principle_ids]",
        "tests/gateway/test_korean_humanizer.py::test_forged_finite_ids_fail_closed_without_retry[polish-variant_id]",
        "tests/gateway/test_korean_humanizer.py::test_oversized_stage_json_fails_closed[coach]",
        "tests/gateway/test_korean_humanizer.py::test_oversized_stage_json_fails_closed[polish]",
        "tests/gateway/test_korean_humanizer.py::test_stage_one_exception_returns_canonical_without_retry",
        "tests/gateway/test_korean_humanizer.py::test_stage_two_exception_returns_validated_coach_without_retry",
        "tests/gateway/test_korean_humanizer.py::test_processing_gate_revocation_between_stages_returns_canonical",
        "tests/gateway/test_korean_humanizer.py::test_processing_gate_revocation_before_final_output_returns_canonical",
        "tests/gateway/test_korean_humanizer.py::test_pipeline_receipt_contains_only_opaque_ids_and_digests",
        "tests/gateway/test_korean_humanizer.py::test_stage_one_response_template_requires_exact_hard_identity_copy",
        "tests/gateway/test_korean_humanizer.py::test_stage_one_requires_exact_hard_identity_field[missing]",
        "tests/gateway/test_korean_humanizer.py::test_stage_one_requires_exact_hard_identity_field[alias]",
        "tests/gateway/test_korean_humanizer.py::test_stage_two_exception_rechecks_final_processing_gate",
        "tests/gateway/test_korean_humanizer.py::test_unbounded_receipt_ids_fail_before_model_calls",
        "tests/gateway/test_korean_humanizer.py::test_extra_stage_slot_is_rejected",
        "tests/gateway/test_korean_humanizer.py::test_mismatched_playbook_or_revision_is_zero_call_canonical[surface]",
        "tests/gateway/test_korean_humanizer.py::test_mismatched_playbook_or_revision_is_zero_call_canonical[revision]",
        "tests/gateway/test_korean_humanizer.py::test_malformed_surrogate_response_falls_back_without_raising",
        "tests/gateway/test_korean_humanizer.py::test_external_revision_binding_is_explicit_and_exact[None]",
        "tests/gateway/test_korean_humanizer.py::test_external_revision_binding_is_explicit_and_exact[]",
        "tests/gateway/test_korean_humanizer.py::test_external_revision_binding_is_explicit_and_exact[external_binding2]",
        "tests/gateway/test_korean_humanizer.py::test_external_revision_binding_is_explicit_and_exact[1]",
        "tests/gateway/test_korean_humanizer.py::test_external_revision_binding_is_explicit_and_exact[bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb]",
        "tests/gateway/test_korean_humanizer.py::test_malformed_grounding_fields_fail_closed_without_hashing_or_calls[approved_principles-None]",
        "tests/gateway/test_korean_humanizer.py::test_malformed_grounding_fields_fail_closed_without_hashing_or_calls[verified_memory-None]",
        "tests/gateway/test_korean_humanizer.py::test_malformed_grounding_fields_fail_closed_without_hashing_or_calls[source_cluster_ids-value2]",
        "tests/gateway/test_korean_humanizer.py::test_malformed_grounding_fields_fail_closed_without_hashing_or_calls[excluded_risk_ids-None]",
        "tests/gateway/test_korean_humanizer.py::test_malformed_grounding_fields_fail_closed_without_hashing_or_calls[revision_binding_digest-None]",
        "tests/gateway/test_korean_humanizer.py::test_malformed_grounding_fields_fail_closed_without_hashing_or_calls[decision_id-customer_001]",
        "tests/gateway/test_korean_humanizer.py::test_malformed_grounding_fields_fail_closed_without_hashing_or_calls[playbook_id-None]",
        "tests/gateway/test_korean_humanizer.py::test_verified_memory_temporal_grammar_requires_real_iso_values[memory0]",
        "tests/gateway/test_korean_humanizer.py::test_verified_memory_temporal_grammar_requires_real_iso_values[memory1]",
        "tests/gateway/test_korean_humanizer.py::test_verified_memory_temporal_grammar_requires_real_iso_values[memory2]",
        "tests/gateway/test_korean_humanizer.py::test_verified_memory_temporal_grammar_requires_real_iso_values[memory3]",
        "tests/gateway/test_korean_humanizer.py::test_verified_memory_temporal_grammar_requires_real_iso_values[memory4]",
        "tests/gateway/test_korean_humanizer.py::test_adaptive_projection_requires_the_exact_frozen_class_identity",
        "tests/gateway/test_korean_humanizer.py::test_adaptive_projection_allows_optional_averages_and_rate_to_be_none",
        "tests/gateway/test_korean_humanizer.py::test_adaptive_projection_rejects_forged_field_types_and_revision[updates0]",
        "tests/gateway/test_korean_humanizer.py::test_adaptive_projection_rejects_forged_field_types_and_revision[updates1]",
        "tests/gateway/test_korean_humanizer.py::test_adaptive_projection_rejects_forged_field_types_and_revision[updates2]",
        "tests/gateway/test_korean_humanizer.py::test_adaptive_projection_rejects_forged_field_types_and_revision[updates3]",
        "tests/gateway/test_korean_humanizer.py::test_adaptive_projection_rejects_forged_field_types_and_revision[updates4]",
        "tests/gateway/test_korean_humanizer.py::test_adaptive_projection_rejects_forged_field_types_and_revision[updates5]",
        "tests/gateway/test_korean_humanizer.py::test_adaptive_projection_rejects_forged_field_types_and_revision[updates6]",
        "tests/gateway/test_korean_humanizer.py::test_invalid_surface_or_canonical_is_canonical_with_zero_calls[None-\\uc624\\ub298 \\uccb4\\ud06c\\uc778 \\uc644\\ub8cc\\n\\n- \\uccb4\\uc911: 78.10kg\\n- \\uc12d\\ucde8: 2,310kcal\\n\\n\\uc800\\uc7a5\\ub41c \\uc624\\ub298 \\uae30\\ub85d\\uc744 \\ud655\\uc778\\ud588\\uc2b5\\ub2c8\\ub2e4.\\n\\n\\uc624\\ub298 \\ud560 \\uc77c\\n\\n- \\ud604\\uc7ac \\uc2dd\\uc0ac\\ub7c9 \\uc720\\uc9c0]",
        "tests/gateway/test_korean_humanizer.py::test_invalid_surface_or_canonical_is_canonical_with_zero_calls[daily-None]",
        "tests/gateway/test_korean_humanizer.py::test_invalid_surface_or_canonical_is_canonical_with_zero_calls[daily-canonical2]",
        "tests/gateway/test_korean_humanizer.py::test_invalid_surface_or_canonical_is_canonical_with_zero_calls[unknown-\\uc624\\ub298 \\uccb4\\ud06c\\uc778 \\uc644\\ub8cc\\n\\n- \\uccb4\\uc911: 78.10kg\\n- \\uc12d\\ucde8: 2,310kcal\\n\\n\\uc800\\uc7a5\\ub41c \\uc624\\ub298 \\uae30\\ub85d\\uc744 \\ud655\\uc778\\ud588\\uc2b5\\ub2c8\\ub2e4.\\n\\n\\uc624\\ub298 \\ud560 \\uc77c\\n\\n- \\ud604\\uc7ac \\uc2dd\\uc0ac\\ub7c9 \\uc720\\uc9c0]"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0117-test_korean_humanizer.py.log",
      "output_sha256": "5989ad1cb9aa4a467b204301f667ce702ae1f99aa0909ecf747a3f8ec55c3fc4",
      "returncode": 0,
      "test_file": "tests/gateway/test_korean_humanizer.py",
      "test_file_sha256": "472e4550cb194bdb48d8c676e4daa67fb6cfd3f69fcd59c8665d3f16bb9a85a3"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0118",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_line_plugin.py"
      ],
      "nodeids": [
        "tests/gateway/test_line_plugin.py::TestSignature::test_valid_signature_passes",
        "tests/gateway/test_line_plugin.py::TestSignature::test_tampered_body_rejected",
        "tests/gateway/test_line_plugin.py::TestSignature::test_wrong_secret_rejected",
        "tests/gateway/test_line_plugin.py::TestSignature::test_empty_signature_rejected",
        "tests/gateway/test_line_plugin.py::TestSignature::test_empty_secret_rejected",
        "tests/gateway/test_line_plugin.py::TestSignature::test_garbage_signature_rejected",
        "tests/gateway/test_line_plugin.py::TestSourceResolution::test_user_source",
        "tests/gateway/test_line_plugin.py::TestSourceResolution::test_group_source",
        "tests/gateway/test_line_plugin.py::TestSourceResolution::test_room_source",
        "tests/gateway/test_line_plugin.py::TestSourceResolution::test_unknown_source_falls_back_to_dm",
        "tests/gateway/test_line_plugin.py::TestSourceResolution::test_empty_source",
        "tests/gateway/test_line_plugin.py::TestAllowlist::test_allow_all_short_circuits",
        "tests/gateway/test_line_plugin.py::TestAllowlist::test_user_in_allowlist_passes",
        "tests/gateway/test_line_plugin.py::TestAllowlist::test_user_not_in_allowlist_rejected",
        "tests/gateway/test_line_plugin.py::TestAllowlist::test_group_uses_group_list_not_user_list",
        "tests/gateway/test_line_plugin.py::TestAllowlist::test_room_uses_room_list",
        "tests/gateway/test_line_plugin.py::TestAllowlist::test_unknown_type_rejected",
        "tests/gateway/test_line_plugin.py::TestDedup::test_first_event_not_duplicate",
        "tests/gateway/test_line_plugin.py::TestDedup::test_repeat_event_marked_duplicate",
        "tests/gateway/test_line_plugin.py::TestDedup::test_blank_id_not_treated_as_duplicate",
        "tests/gateway/test_line_plugin.py::TestDedup::test_lru_eviction_under_pressure",
        "tests/gateway/test_line_plugin.py::TestRequestCache::test_register_pending_is_pending",
        "tests/gateway/test_line_plugin.py::TestRequestCache::test_set_ready_transitions",
        "tests/gateway/test_line_plugin.py::TestRequestCache::test_set_error_transitions",
        "tests/gateway/test_line_plugin.py::TestRequestCache::test_mark_delivered_from_ready",
        "tests/gateway/test_line_plugin.py::TestRequestCache::test_mark_delivered_from_error",
        "tests/gateway/test_line_plugin.py::TestRequestCache::test_set_ready_on_delivered_is_noop",
        "tests/gateway/test_line_plugin.py::TestRequestCache::test_find_pending_for_chat",
        "tests/gateway/test_line_plugin.py::TestMarkdownAndChunking::test_bold_stripped",
        "tests/gateway/test_line_plugin.py::TestMarkdownAndChunking::test_italic_stripped",
        "tests/gateway/test_line_plugin.py::TestMarkdownAndChunking::test_inline_code_unfenced",
        "tests/gateway/test_line_plugin.py::TestMarkdownAndChunking::test_link_preserved_with_url",
        "tests/gateway/test_line_plugin.py::TestMarkdownAndChunking::test_heading_prefix_stripped",
        "tests/gateway/test_line_plugin.py::TestMarkdownAndChunking::test_bullet_marker_replaced",
        "tests/gateway/test_line_plugin.py::TestMarkdownAndChunking::test_code_fence_content_kept",
        "tests/gateway/test_line_plugin.py::TestMarkdownAndChunking::test_split_short_returns_single_chunk",
        "tests/gateway/test_line_plugin.py::TestMarkdownAndChunking::test_split_long_chunks_at_paragraph_boundary",
        "tests/gateway/test_line_plugin.py::TestMarkdownAndChunking::test_split_caps_at_five_chunks",
        "tests/gateway/test_line_plugin.py::TestSendRouting::test_system_bypass_recognized",
        "tests/gateway/test_line_plugin.py::TestSendRouting::test_send_uses_reply_when_token_present",
        "tests/gateway/test_line_plugin.py::TestSendRouting::test_send_falls_back_to_push_when_no_token",
        "tests/gateway/test_line_plugin.py::TestSendRouting::test_send_falls_back_to_push_when_reply_fails",
        "tests/gateway/test_line_plugin.py::TestSendRouting::test_send_returns_failure_when_push_fails",
        "tests/gateway/test_line_plugin.py::TestSendRouting::test_send_pending_button_caches_response",
        "tests/gateway/test_line_plugin.py::TestSendRouting::test_send_system_bypass_skips_postback_cache",
        "tests/gateway/test_line_plugin.py::TestSendRouting::test_send_caps_messages_per_call_at_five",
        "tests/gateway/test_line_plugin.py::TestSendRouting::test_format_message_strips_markdown",
        "tests/gateway/test_line_plugin.py::TestRegister::test_register_calls_register_platform",
        "tests/gateway/test_line_plugin.py::TestRegister::test_register_advertises_required_env",
        "tests/gateway/test_line_plugin.py::TestRegister::test_register_wires_allowlist_envs",
        "tests/gateway/test_line_plugin.py::TestRegister::test_register_wires_cron_home_channel",
        "tests/gateway/test_line_plugin.py::TestRegister::test_register_provides_standalone_sender",
        "tests/gateway/test_line_plugin.py::TestRegister::test_register_provides_env_enablement",
        "tests/gateway/test_line_plugin.py::TestRegister::test_register_factory_yields_line_adapter",
        "tests/gateway/test_line_plugin.py::TestRegister::test_max_message_length_below_line_per_bubble_limit",
        "tests/gateway/test_line_plugin.py::TestEnvEnablement::test_returns_none_without_credentials",
        "tests/gateway/test_line_plugin.py::TestEnvEnablement::test_returns_dict_with_credentials",
        "tests/gateway/test_line_plugin.py::TestEnvEnablement::test_seeds_port_from_env",
        "tests/gateway/test_line_plugin.py::TestEnvEnablement::test_seeds_public_url",
        "tests/gateway/test_line_plugin.py::TestStandaloneSend::test_missing_token_returns_error",
        "tests/gateway/test_line_plugin.py::TestStandaloneSend::test_missing_chat_id_returns_error",
        "tests/gateway/test_line_plugin.py::TestStandaloneSend::test_pushes_via_client_when_credentials_present",
        "tests/gateway/test_line_plugin.py::TestPostbackButtonShape::test_template_buttons_structure",
        "tests/gateway/test_line_plugin.py::TestPostbackButtonShape::test_text_truncated_to_160",
        "tests/gateway/test_line_plugin.py::TestPostbackButtonShape::test_alt_text_truncated_to_400",
        "tests/gateway/test_line_plugin.py::TestCheckRequirements::test_rejects_without_token",
        "tests/gateway/test_line_plugin.py::TestCheckRequirements::test_rejects_without_secret",
        "tests/gateway/test_line_plugin.py::TestValidateConfig::test_validates_from_extra",
        "tests/gateway/test_line_plugin.py::TestValidateConfig::test_rejects_empty_config",
        "tests/gateway/test_line_plugin.py::TestAdapterInit::test_init_from_config_extra",
        "tests/gateway/test_line_plugin.py::TestAdapterInit::test_env_overrides_extra",
        "tests/gateway/test_line_plugin.py::TestAdapterInit::test_csv_allowlist_parsed",
        "tests/gateway/test_line_plugin.py::TestAdapterInit::test_get_chat_info_infers_type_from_prefix",
        "tests/gateway/test_line_plugin.py::TestMessageTypeMapping::test_image_event_not_attributeerror_regression",
        "tests/gateway/test_line_plugin.py::TestMessageTypeMapping::test_every_line_type_maps_to_correct_enum",
        "tests/gateway/test_line_plugin.py::TestMessageTypeMapping::test_unknown_type_falls_back_to_text"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0118-test_line_plugin.py.log",
      "output_sha256": "a53711f11e77743e99dd8ebb1a73f72f86cbfbc129a555a6e0f055d7d105115d",
      "returncode": 0,
      "test_file": "tests/gateway/test_line_plugin.py",
      "test_file_sha256": "3e9fa81911ef6c5d874fd2b9eb498d0bf54094ed15c084bf3183a08de0886edf"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0119",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_load_transcript_db_only.py"
      ],
      "nodeids": [
        "tests/gateway/test_load_transcript_db_only.py::test_load_transcript_returns_db_messages_when_no_jsonl"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0119-test_load_transcript_db_only.py.log",
      "output_sha256": "6c695161ed2c7992c3af4a1e9f8e4c0f0de654d318f47b8cf2189e25eec49be8",
      "returncode": 0,
      "test_file": "tests/gateway/test_load_transcript_db_only.py",
      "test_file_sha256": "8ac4b2a29a5eca7d3a6d3e0dd4eb16bbec4aa025d3955e9473159a29bae03f0e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0120",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_loop_exception_handler.py"
      ],
      "nodeids": [
        "tests/gateway/test_loop_exception_handler.py::test_transient_classifier_matches_known_network_errors[TimedOut]",
        "tests/gateway/test_loop_exception_handler.py::test_transient_classifier_matches_known_network_errors[NetworkError]",
        "tests/gateway/test_loop_exception_handler.py::test_transient_classifier_matches_known_network_errors[ConnectError]",
        "tests/gateway/test_loop_exception_handler.py::test_transient_classifier_matches_known_network_errors[ReadTimeout]",
        "tests/gateway/test_loop_exception_handler.py::test_transient_classifier_matches_known_network_errors[PoolTimeout]",
        "tests/gateway/test_loop_exception_handler.py::test_transient_classifier_matches_known_network_errors[ClientConnectorError]",
        "tests/gateway/test_loop_exception_handler.py::test_transient_classifier_rejects_unrelated_errors",
        "tests/gateway/test_loop_exception_handler.py::test_transient_classifier_unwraps_cause_chain",
        "tests/gateway/test_loop_exception_handler.py::test_transient_classifier_unwraps_context_chain",
        "tests/gateway/test_loop_exception_handler.py::test_transient_classifier_does_not_infinite_loop_on_cyclic_cause",
        "tests/gateway/test_loop_exception_handler.py::test_handler_swallows_transient_error_and_logs_warning",
        "tests/gateway/test_loop_exception_handler.py::test_handler_delegates_unknown_errors_to_default",
        "tests/gateway/test_loop_exception_handler.py::test_handler_tolerates_missing_exception_key",
        "tests/gateway/test_loop_exception_handler.py::test_unhandled_transient_error_in_task_does_not_propagate_to_loop"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0120-test_loop_exception_handler.py.log",
      "output_sha256": "d769aa3bf90f27178274faf4f7a0a1d407143bbac60c45343b3228db83aabeec",
      "returncode": 0,
      "test_file": "tests/gateway/test_loop_exception_handler.py",
      "test_file_sha256": "8fbbd24e81df0fdac16405aeee006d2e3e75cdf4197db6351c39b7dc220f4c3b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0121",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_matrix.py"
      ],
      "nodeids": [
        "tests/gateway/test_matrix.py::TestMatrixConfigLoading::test_apply_env_overrides_with_access_token",
        "tests/gateway/test_matrix.py::TestMatrixConfigLoading::test_apply_env_overrides_with_password",
        "tests/gateway/test_matrix.py::TestMatrixConfigLoading::test_matrix_not_loaded_without_creds",
        "tests/gateway/test_matrix.py::TestMatrixConfigLoading::test_matrix_encryption_flag",
        "tests/gateway/test_matrix.py::TestMatrixConfigLoading::test_matrix_e2ee_mode_optional_sets_config",
        "tests/gateway/test_matrix.py::TestMatrixConfigLoading::test_matrix_encryption_default_off",
        "tests/gateway/test_matrix.py::TestMatrixConfigLoading::test_matrix_home_room",
        "tests/gateway/test_matrix.py::TestMatrixConfigLoading::test_matrix_user_id_stored_in_extra",
        "tests/gateway/test_matrix.py::TestMatrixTypingIndicator::test_stop_typing_clears_matrix_typing_state",
        "tests/gateway/test_matrix.py::TestMatrixTypingIndicator::test_stop_typing_no_client_is_noop",
        "tests/gateway/test_matrix.py::TestMatrixTypingIndicator::test_stop_typing_suppresses_exceptions",
        "tests/gateway/test_matrix.py::TestMatrixMxcToHttp::test_basic_mxc_conversion",
        "tests/gateway/test_matrix.py::TestMatrixMxcToHttp::test_mxc_with_different_server",
        "tests/gateway/test_matrix.py::TestMatrixMxcToHttp::test_non_mxc_url_passthrough",
        "tests/gateway/test_matrix.py::TestMatrixMxcToHttp::test_mxc_uses_client_v1_endpoint",
        "tests/gateway/test_matrix.py::TestMatrixDmDetection::test_room_in_m_direct_is_dm",
        "tests/gateway/test_matrix.py::TestMatrixDmDetection::test_unknown_room_not_in_cache",
        "tests/gateway/test_matrix.py::TestMatrixDmDetection::test_refresh_dm_cache_with_m_direct",
        "tests/gateway/test_matrix.py::TestMatrixDmDetection::test_m_direct_room_is_dm",
        "tests/gateway/test_matrix.py::TestMatrixDmDetection::test_named_two_member_room_is_not_dm",
        "tests/gateway/test_matrix.py::TestMatrixDmDetection::test_named_room_overrides_stale_dm_cache",
        "tests/gateway/test_matrix.py::TestMatrixDmDetection::test_canonical_alias_used_when_name_missing",
        "tests/gateway/test_matrix.py::TestMatrixDmDetection::test_non_string_m_direct_entries_ignored",
        "tests/gateway/test_matrix.py::TestMatrixReplyFallbackStripping::test_simple_reply_fallback",
        "tests/gateway/test_matrix.py::TestMatrixReplyFallbackStripping::test_multiline_reply_fallback",
        "tests/gateway/test_matrix.py::TestMatrixReplyFallbackStripping::test_no_reply_fallback_preserved",
        "tests/gateway/test_matrix.py::TestMatrixReplyFallbackStripping::test_quote_without_reply_preserved",
        "tests/gateway/test_matrix.py::TestMatrixReplyFallbackStripping::test_empty_fallback_separator",
        "tests/gateway/test_matrix.py::TestMatrixReplyFallbackStripping::test_multiline_response_after_fallback",
        "tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_known_bang_command_normalizes_to_slash_command",
        "tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_unknown_bang_text_is_not_treated_as_command",
        "tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_bang_model_reaches_gateway_as_slash_command",
        "tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_bang_queue_preserves_arguments",
        "tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_unknown_bang_text_stays_normal_text",
        "tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_bang_command_bypasses_room_mention_requirement",
        "tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_slash_command_bypasses_room_mention_requirement",
        "tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_unknown_bang_text_does_not_bypass_room_mention_requirement",
        "tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_bang_alias_underscore_resolves_to_hyphen_form",
        "tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_bang_skill_command_normalizes",
        "tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_bang_command_in_quoted_reply_normalizes",
        "tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_slash_command_in_quoted_reply_normalizes",
        "tests/gateway/test_matrix.py::TestMatrixThreadDetection::test_thread_id_from_m_relates_to",
        "tests/gateway/test_matrix.py::TestMatrixThreadDetection::test_no_thread_for_reply",
        "tests/gateway/test_matrix.py::TestMatrixThreadDetection::test_no_thread_for_edit",
        "tests/gateway/test_matrix.py::TestMatrixThreadDetection::test_empty_relates_to",
        "tests/gateway/test_matrix.py::TestMatrixFormatMessage::test_image_markdown_stripped",
        "tests/gateway/test_matrix.py::TestMatrixFormatMessage::test_regular_markdown_preserved",
        "tests/gateway/test_matrix.py::TestMatrixFormatMessage::test_plain_text_unchanged",
        "tests/gateway/test_matrix.py::TestMatrixFormatMessage::test_multiple_images_stripped",
        "tests/gateway/test_matrix.py::TestMatrixRenderingPayloads::test_render_plain_and_html_body",
        "tests/gateway/test_matrix.py::TestMatrixRenderingPayloads::test_thread_payload_uses_m_thread_with_reply_fallback",
        "tests/gateway/test_matrix.py::TestMatrixRenderingPayloads::test_thread_payload_preserves_explicit_reply_target",
        "tests/gateway/test_matrix.py::TestMatrixRenderingPayloads::test_edit_payload_uses_m_replace",
        "tests/gateway/test_matrix.py::TestMatrixRenderingPayloads::test_long_response_split_preserves_thread_context",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_bold_conversion",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_italic_conversion",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_inline_code",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_plain_text_returns_html",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_matrix_markdown_strips_script_tag",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_matrix_markdown_strips_inline_event_handlers",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_matrix_markdown_rejects_javascript_links",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_matrix_markdown_rejects_file_links",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_matrix_markdown_rejects_ftp_links",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_matrix_markdown_rejects_blob_links",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_matrix_markdown_rejects_obfuscated_javascript_links",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_matrix_markdown_preserves_code_fences",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_matrix_markdown_preserves_table_structure",
        "tests/gateway/test_matrix.py::TestMatrixDisplayName::test_get_display_name_from_state_store",
        "tests/gateway/test_matrix.py::TestMatrixDisplayName::test_get_display_name_fallback_to_localpart",
        "tests/gateway/test_matrix.py::TestMatrixDisplayName::test_get_display_name_no_client",
        "tests/gateway/test_matrix.py::TestMatrixModuleImport::test_module_importable_without_mautrix",
        "tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_requirements_with_token",
        "tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_requirements_without_creds",
        "tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_requirements_without_homeserver",
        "tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_requirements_encryption_true_no_e2ee_deps",
        "tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_requirements_e2ee_optional_no_deps_ok",
        "tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_requirements_encryption_false_no_e2ee_deps_ok",
        "tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_requirements_encryption_true_with_e2ee_deps",
        "tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_e2ee_deps_requires_asyncpg",
        "tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_e2ee_deps_requires_aiosqlite",
        "tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_requirements_runs_lazy_install_when_partial",
        "tests/gateway/test_matrix.py::TestMatrixAccessTokenAuth::test_connect_with_access_token_and_encryption",
        "tests/gateway/test_matrix.py::TestDeviceKeyReVerification::test_verify_fails_when_server_keys_mismatch_after_upload",
        "tests/gateway/test_matrix.py::TestMatrixE2EEHardFail::test_connect_fails_when_encryption_true_but_no_e2ee_deps",
        "tests/gateway/test_matrix.py::TestMatrixE2EEHardFail::test_connect_continues_when_e2ee_optional_but_no_deps",
        "tests/gateway/test_matrix.py::TestMatrixE2EEHardFail::test_connect_fails_when_crypto_setup_raises",
        "tests/gateway/test_matrix.py::TestMatrixDeviceId::test_device_id_from_config_extra",
        "tests/gateway/test_matrix.py::TestMatrixDeviceId::test_device_id_from_env",
        "tests/gateway/test_matrix.py::TestMatrixDeviceId::test_device_id_config_takes_precedence_over_env",
        "tests/gateway/test_matrix.py::TestMatrixDeviceId::test_connect_uses_configured_device_id_over_whoami",
        "tests/gateway/test_matrix.py::TestMatrixPasswordLoginDeviceId::test_password_login_uses_device_id",
        "tests/gateway/test_matrix.py::TestMatrixDeviceIdConfig::test_device_id_in_config_extra",
        "tests/gateway/test_matrix.py::TestMatrixDeviceIdConfig::test_device_id_not_set_when_env_empty",
        "tests/gateway/test_matrix.py::TestMatrixSyncLoop::test_sync_loop_dispatches_events_and_stores_token",
        "tests/gateway/test_matrix.py::TestMatrixSyncLoop::test_sync_loop_reconciles_pending_invites",
        "tests/gateway/test_matrix.py::TestMatrixSyncLoop::test_dispatch_sync_accepts_async_handle_sync",
        "tests/gateway/test_matrix.py::TestMatrixSyncLoop::test_sync_loop_dispatches_registered_room_message_handler",
        "tests/gateway/test_matrix.py::TestMatrixSyncLoop::test_connect_receives_dm_from_initial_sync_dispatch",
        "tests/gateway/test_matrix.py::TestMatrixSyncLoop::test_room_message_after_invite_join_is_received",
        "tests/gateway/test_matrix.py::TestMatrixSyncLoop::test_seconds_timestamp_is_not_treated_as_milliseconds",
        "tests/gateway/test_matrix.py::TestMatrixUploadAndSend::test_upload_unencrypted_room_uses_plain_url",
        "tests/gateway/test_matrix.py::TestMatrixUploadAndSend::test_upload_encrypted_room_uses_file_payload",
        "tests/gateway/test_matrix.py::TestMatrixUploadAndSend::test_upload_rejects_oversized_file",
        "tests/gateway/test_matrix.py::TestMatrixUploadAndSend::test_media_preserves_caption_and_thread",
        "tests/gateway/test_matrix.py::TestMatrixUploadAndSend::test_send_multiple_images_preserves_logical_batch_order_and_thread",
        "tests/gateway/test_matrix.py::TestMatrixDiagnostics::test_diagnostics_redacts_credentials_and_reports_status",
        "tests/gateway/test_matrix.py::TestMatrixDiagnostics::test_matrix_recovery_key_is_never_logged",
        "tests/gateway/test_matrix.py::TestMatrixDiagnostics::test_matrix_recovery_key_output_file_is_0600",
        "tests/gateway/test_matrix.py::TestMatrixDiagnostics::test_matrix_recovery_key_bootstrap_skips_without_output_file",
        "tests/gateway/test_matrix.py::TestMatrixDiagnostics::test_matrix_recovery_key_bootstrap_skips_existing_output_file",
        "tests/gateway/test_matrix.py::TestMatrixDiagnostics::test_matrix_diagnostics_redacts_recovery_key",
        "tests/gateway/test_matrix.py::TestMatrixDiagnostics::test_capability_matrix_is_declared_for_docs",
        "tests/gateway/test_matrix.py::TestMatrixDiagnostics::test_matrix_capability_claims_match_adapter_surfaces",
        "tests/gateway/test_matrix.py::TestMatrixDiagnostics::test_matrix_docs_capability_table_matches_declaration",
        "tests/gateway/test_matrix.py::TestMatrixEncryptedSendFallback::test_send_retries_after_e2ee_error",
        "tests/gateway/test_matrix.py::TestJoinedRoomsReference::test_joined_rooms_reference_preserved_after_reassignment",
        "tests/gateway/test_matrix.py::TestMatrixEncryptedEventHandler::test_connect_registers_encrypted_event_handler_when_encryption_on",
        "tests/gateway/test_matrix.py::TestMatrixEncryptedEventHandler::test_connect_fails_on_stale_otk_conflict",
        "tests/gateway/test_matrix.py::TestMatrixDisconnect::test_disconnect_closes_api_session",
        "tests/gateway/test_matrix.py::TestMatrixDisconnect::test_disconnect_handles_session_close_failure",
        "tests/gateway/test_matrix.py::TestMatrixDisconnect::test_disconnect_without_client",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_script_injection_in_header",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_script_injection_in_plain_text",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_img_onerror_in_blockquote",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_script_in_list_item",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_script_in_ordered_list",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_javascript_uri_blocked",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_data_uri_blocked",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_vbscript_uri_blocked",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_link_text_html_injection",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_link_href_attribute_breakout",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_html_injection_in_bold",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_html_injection_in_italic",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_fenced_code_block",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_fenced_code_block_no_lang",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_code_block_html_escaped",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_headers",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_unordered_list",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_ordered_list",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_blockquote",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_horizontal_rule",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_strikethrough",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_links_preserved",
        "tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_complex_mixed_document",
        "tests/gateway/test_matrix.py::TestMatrixLinkSanitization::test_safe_https_url",
        "tests/gateway/test_matrix.py::TestMatrixLinkSanitization::test_javascript_blocked",
        "tests/gateway/test_matrix.py::TestMatrixLinkSanitization::test_data_blocked",
        "tests/gateway/test_matrix.py::TestMatrixLinkSanitization::test_vbscript_blocked",
        "tests/gateway/test_matrix.py::TestMatrixLinkSanitization::test_quotes_escaped",
        "tests/gateway/test_matrix.py::TestMatrixReactions::test_send_reaction",
        "tests/gateway/test_matrix.py::TestMatrixReactions::test_send_reaction_no_client",
        "tests/gateway/test_matrix.py::TestMatrixReactions::test_on_processing_start_sends_eyes",
        "tests/gateway/test_matrix.py::TestMatrixReactions::test_on_processing_complete_sends_check",
        "tests/gateway/test_matrix.py::TestMatrixReactions::test_on_processing_complete_sends_cross_on_failure",
        "tests/gateway/test_matrix.py::TestMatrixReactions::test_on_processing_complete_cancelled_sends_no_terminal_reaction",
        "tests/gateway/test_matrix.py::TestMatrixReactions::test_on_processing_complete_no_pending_reaction",
        "tests/gateway/test_matrix.py::TestMatrixReactions::test_approval_reaction_cleanup_is_delayed",
        "tests/gateway/test_matrix.py::TestMatrixReactions::test_reactions_disabled",
        "tests/gateway/test_matrix.py::TestMatrixReadReceipts::test_accepted_message_schedules_read_receipt",
        "tests/gateway/test_matrix.py::TestMatrixReadReceipts::test_send_read_receipt",
        "tests/gateway/test_matrix.py::TestMatrixReadReceipts::test_send_read_receipt_falls_back_to_receipt_only",
        "tests/gateway/test_matrix.py::TestMatrixReadReceipts::test_read_receipt_no_client",
        "tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_image_only_filename_body_is_not_forwarded_as_text",
        "tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_image_caption_text_is_preserved",
        "tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_inbound_oversized_media_is_rejected",
        "tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_external_media_download_rejects_oversized_content_length",
        "tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_external_media_download_rejects_oversized_stream",
        "tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_external_media_download_rejects_unsafe_redirect",
        "tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_external_media_download_rejects_unsafe_initial_url",
        "tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_external_media_download_rejects_non_image_content_type",
        "tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_send_image_failure_log_redacts_signed_url",
        "tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_send_image_failure_response_does_not_expose_signed_url_query",
        "tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_send_image_failure_response_does_not_expose_signed_url_fragment",
        "tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_send_image_failure_response_preserves_caption",
        "tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_send_image_failure_log_still_redacts_signed_url",
        "tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_inbound_non_mxc_media_url_is_rejected",
        "tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_inbound_encrypted_non_mxc_media_url_is_rejected",
        "tests/gateway/test_matrix.py::TestMatrixRedaction::test_redact_message",
        "tests/gateway/test_matrix.py::TestMatrixRedaction::test_redact_no_client",
        "tests/gateway/test_matrix.py::TestMatrixRoomManagement::test_create_room",
        "tests/gateway/test_matrix.py::TestMatrixRoomManagement::test_invite_user",
        "tests/gateway/test_matrix.py::TestMatrixRoomManagement::test_create_room_no_client",
        "tests/gateway/test_matrix.py::TestMatrixPresence::test_set_presence_valid",
        "tests/gateway/test_matrix.py::TestMatrixPresence::test_set_presence_invalid_state",
        "tests/gateway/test_matrix.py::TestMatrixPresence::test_set_presence_no_client",
        "tests/gateway/test_matrix.py::TestMatrixSelfSenderFilter::test_exact_match_is_self",
        "tests/gateway/test_matrix.py::TestMatrixSelfSenderFilter::test_case_insensitive_match_is_self",
        "tests/gateway/test_matrix.py::TestMatrixSelfSenderFilter::test_whitespace_trimmed",
        "tests/gateway/test_matrix.py::TestMatrixSelfSenderFilter::test_different_user_is_not_self",
        "tests/gateway/test_matrix.py::TestMatrixSelfSenderFilter::test_empty_user_id_is_treated_as_self",
        "tests/gateway/test_matrix.py::TestMatrixSystemBridgeFilter::test_appservice_underscore_prefix_is_bridge",
        "tests/gateway/test_matrix.py::TestMatrixSystemBridgeFilter::test_empty_localpart_is_system",
        "tests/gateway/test_matrix.py::TestMatrixSystemBridgeFilter::test_empty_sender_is_system",
        "tests/gateway/test_matrix.py::TestMatrixSystemBridgeFilter::test_regular_user_is_not_bridge",
        "tests/gateway/test_matrix.py::TestMatrixSystemBridgeFilter::test_bot_account_is_not_bridge",
        "tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_own_sender_case_insensitive_dropped",
        "tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_bridge_sender_dropped_before_pairing",
        "tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_empty_sender_dropped",
        "tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_self_with_unresolved_user_id_dropped",
        "tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_regular_user_reaches_text_handler",
        "tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_unauthorized_user_reaches_text_handler",
        "tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_authorized_user_reaches_text_handler",
        "tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_unauthorized_room_is_dropped",
        "tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_dm_room_bypasses_allowed_room_gate",
        "tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_configured_bridge_pattern_is_dropped",
        "tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_notice_message_is_dropped_by_default",
        "tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_notice_message_can_be_enabled",
        "tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_duplicate_event_id_dropped",
        "tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_old_startup_event_dropped",
        "tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_seconds_timestamp_reaches_text_handler",
        "tests/gateway/test_matrix.py::TestMatrixRequireMention::test_require_mention_from_config_extra_false",
        "tests/gateway/test_matrix.py::TestMatrixRequireMention::test_require_mention_from_env_when_extra_unset",
        "tests/gateway/test_matrix.py::TestMatrixRequireMention::test_require_mention_config_takes_precedence_over_env",
        "tests/gateway/test_matrix.py::TestMatrixRequireMention::test_require_mention_false_allows_unmentioned_group_message",
        "tests/gateway/test_matrix.py::TestMatrixFreeResponsePolicy::test_free_response_room_allows_unmentioned_message",
        "tests/gateway/test_matrix.py::TestMatrixFreeResponsePolicy::test_non_free_room_requires_mention",
        "tests/gateway/test_matrix.py::TestMatrixClockSkewWarning::test_late_drops_emit_one_shot_clock_skew_warning",
        "tests/gateway/test_matrix.py::TestMatrixClockSkewWarning::test_initial_sync_drops_do_not_warn",
        "tests/gateway/test_matrix.py::TestMatrixClockSkewWarning::test_fewer_than_three_late_drops_do_not_warn",
        "tests/gateway/test_matrix.py::TestMatrixClockSkewWarning::test_varied_backfill_skews_do_not_warn",
        "tests/gateway/test_matrix.py::TestMatrixClockSkewWarning::test_state_reset_allows_warning_to_fire_again",
        "tests/gateway/test_matrix.py::TestMatrixDmAutoThread::test_dm_auto_thread_enabled_creates_thread",
        "tests/gateway/test_matrix.py::TestMatrixDmAutoThread::test_dm_auto_thread_disabled_no_thread",
        "tests/gateway/test_matrix.py::TestMatrixProxyConfig::test_no_proxy_by_default",
        "tests/gateway/test_matrix.py::TestMatrixProxyConfig::test_matrix_proxy_env_var",
        "tests/gateway/test_matrix.py::TestMatrixProxyConfig::test_generic_proxy_fallback",
        "tests/gateway/test_matrix.py::TestMatrixProxyConfig::test_matrix_proxy_takes_priority",
        "tests/gateway/test_matrix.py::TestCreateMatrixSession::test_no_proxy_returns_trust_env_session",
        "tests/gateway/test_matrix.py::TestCreateMatrixSession::test_http_proxy_sets_default_proxy",
        "tests/gateway/test_matrix.py::TestCreateMatrixSession::test_socks_proxy_uses_connector"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0121-test_matrix.py.log",
      "output_sha256": "85dfb83d0177252a81e2e07638d5b74690c0e796d6e63cfa1cc6d1a600bfba30",
      "returncode": 0,
      "test_file": "tests/gateway/test_matrix.py",
      "test_file_sha256": "54c16ca94dc882a27247375905f9545c9d1b0971c6469250a263d3ba21447b16"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0122",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_matrix_approval_reaction_fail_closed.py"
      ],
      "nodeids": [
        "tests/gateway/test_matrix_approval_reaction_fail_closed.py::TestApprovalReactionFailClosed::test_no_allowlist_no_allow_all_denies",
        "tests/gateway/test_matrix_approval_reaction_fail_closed.py::TestApprovalReactionFailClosed::test_no_allowlist_allow_all_permits",
        "tests/gateway/test_matrix_approval_reaction_fail_closed.py::TestApprovalReactionFailClosed::test_listed_sender_permits",
        "tests/gateway/test_matrix_approval_reaction_fail_closed.py::TestApprovalReactionFailClosed::test_unlisted_sender_denies"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0122-test_matrix_approval_reaction_fail_closed.py.log",
      "output_sha256": "3b3c9e600d08b48ea0714f5bab3f6d81ba80133bd36c9ce2c4911a3f93b1e303",
      "returncode": 0,
      "test_file": "tests/gateway/test_matrix_approval_reaction_fail_closed.py",
      "test_file_sha256": "07e36146f6f0ed1d532e7a83854a2a04e2ae2559f8b3e086301dae2c745d7d87"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0123",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_matrix_exec_approval.py"
      ],
      "nodeids": [
        "tests/gateway/test_matrix_exec_approval.py::TestMatrixExecApprovalReactions::test_send_exec_approval_registers_prompt_and_seeds_reactions",
        "tests/gateway/test_matrix_exec_approval.py::TestMatrixExecApprovalReactions::test_reaction_resolves_pending_approval"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0123-test_matrix_exec_approval.py.log",
      "output_sha256": "319299b195362caa566e756c667921131522a0363cc9a320e9cdee0310d5837b",
      "returncode": 0,
      "test_file": "tests/gateway/test_matrix_exec_approval.py",
      "test_file_sha256": "20eafc693c087d22fc42832e2241f002099ef4e645146f69038d5179995e3ac8"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0124",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_matrix_mention.py"
      ],
      "nodeids": [
        "tests/gateway/test_matrix_mention.py::TestIsBotMentioned::test_full_user_id_in_body",
        "tests/gateway/test_matrix_mention.py::TestIsBotMentioned::test_localpart_in_body",
        "tests/gateway/test_matrix_mention.py::TestIsBotMentioned::test_localpart_case_insensitive",
        "tests/gateway/test_matrix_mention.py::TestIsBotMentioned::test_matrix_pill_in_formatted_body",
        "tests/gateway/test_matrix_mention.py::TestIsBotMentioned::test_no_mention",
        "tests/gateway/test_matrix_mention.py::TestIsBotMentioned::test_empty_body",
        "tests/gateway/test_matrix_mention.py::TestIsBotMentioned::test_partial_localpart_no_match",
        "tests/gateway/test_matrix_mention.py::TestIsBotMentioned::test_m_mentions_user_ids_authoritative",
        "tests/gateway/test_matrix_mention.py::TestIsBotMentioned::test_m_mentions_user_ids_with_body_mention",
        "tests/gateway/test_matrix_mention.py::TestIsBotMentioned::test_m_mentions_user_ids_other_user_only",
        "tests/gateway/test_matrix_mention.py::TestIsBotMentioned::test_m_mentions_user_ids_empty_list",
        "tests/gateway/test_matrix_mention.py::TestIsBotMentioned::test_m_mentions_user_ids_none",
        "tests/gateway/test_matrix_mention.py::TestStripMention::test_strip_full_user_id",
        "tests/gateway/test_matrix_mention.py::TestStripMention::test_localpart_preserved",
        "tests/gateway/test_matrix_mention.py::TestStripMention::test_localpart_in_path_preserved",
        "tests/gateway/test_matrix_mention.py::TestStripMention::test_strip_localpart_when_explicit_at_mention",
        "tests/gateway/test_matrix_mention.py::TestStripMention::test_does_not_strip_bare_localpart_word",
        "tests/gateway/test_matrix_mention.py::TestStripMention::test_strip_returns_empty_for_mention_only",
        "tests/gateway/test_matrix_mention.py::TestOutboundMentions::test_send_adds_matrix_mentions_and_formatted_body",
        "tests/gateway/test_matrix_mention.py::TestOutboundMentions::test_send_dedupes_mentions_and_ignores_code_spans",
        "tests/gateway/test_matrix_mention.py::TestOutboundMentions::test_edit_message_preserves_mentions",
        "tests/gateway/test_matrix_mention.py::TestOutboundMentions::test_send_simple_notice_adds_mentions",
        "tests/gateway/test_matrix_mention.py::test_require_mention_default_ignores_unmentioned",
        "tests/gateway/test_matrix_mention.py::test_require_mention_default_processes_mentioned",
        "tests/gateway/test_matrix_mention.py::test_require_mention_html_pill",
        "tests/gateway/test_matrix_mention.py::test_require_mention_m_mentions_user_ids",
        "tests/gateway/test_matrix_mention.py::test_require_mention_m_mentions_other_user_ignored",
        "tests/gateway/test_matrix_mention.py::test_require_mention_dm_always_responds",
        "tests/gateway/test_matrix_mention.py::test_dm_strips_full_mxid",
        "tests/gateway/test_matrix_mention.py::test_dm_preserves_localpart_in_body",
        "tests/gateway/test_matrix_mention.py::test_bare_mention_passes_empty_string",
        "tests/gateway/test_matrix_mention.py::test_require_mention_free_response_room",
        "tests/gateway/test_matrix_mention.py::test_require_mention_bot_participated_thread",
        "tests/gateway/test_matrix_mention.py::test_require_mention_disabled",
        "tests/gateway/test_matrix_mention.py::test_require_mention_disabled_skips_stripping",
        "tests/gateway/test_matrix_mention.py::test_auto_thread_default_creates_thread",
        "tests/gateway/test_matrix_mention.py::test_auto_thread_preserves_existing_thread",
        "tests/gateway/test_matrix_mention.py::test_auto_thread_skips_dm",
        "tests/gateway/test_matrix_mention.py::test_auto_thread_disabled",
        "tests/gateway/test_matrix_mention.py::test_auto_thread_tracks_participation",
        "tests/gateway/test_matrix_mention.py::TestThreadPersistence::test_empty_state_file",
        "tests/gateway/test_matrix_mention.py::TestThreadPersistence::test_track_thread_persists",
        "tests/gateway/test_matrix_mention.py::TestThreadPersistence::test_threads_survive_reload",
        "tests/gateway/test_matrix_mention.py::TestThreadPersistence::test_cap_max_tracked_threads",
        "tests/gateway/test_matrix_mention.py::test_dm_mention_thread_disabled_by_default",
        "tests/gateway/test_matrix_mention.py::test_dm_mention_thread_creates_thread",
        "tests/gateway/test_matrix_mention.py::test_dm_mention_thread_no_mention_no_thread",
        "tests/gateway/test_matrix_mention.py::test_dm_mention_thread_preserves_existing_thread",
        "tests/gateway/test_matrix_mention.py::test_dm_mention_thread_tracks_participation",
        "tests/gateway/test_matrix_mention.py::TestMatrixConfigBridge::test_yaml_bridge_sets_env_vars",
        "tests/gateway/test_matrix_mention.py::TestMatrixConfigBridge::test_yaml_bridge_sets_dm_mention_threads",
        "tests/gateway/test_matrix_mention.py::TestMatrixConfigBridge::test_env_vars_take_precedence_over_yaml"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0124-test_matrix_mention.py.log",
      "output_sha256": "b2e0799f20438d095fd3e36613651b5403d8b673874f06fe4ada685f38d524ac",
      "returncode": 0,
      "test_file": "tests/gateway/test_matrix_mention.py",
      "test_file_sha256": "5aa642ec8cbf1176d343a15bf3d148a271e3847bce46d481d6b12e67a5e91050"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0125",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_matrix_project_context_isolation.py"
      ],
      "nodeids": [
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_source_includes_room_name_topic_and_message_id",
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_project_a_and_project_b_have_distinct_session_keys",
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_project_b_prompt_contains_project_b_not_project_a",
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_project_context_survives_sequential_messages",
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_session_scope_auto_and_thread_preserve_synthetic_threads",
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_project_context_survives_concurrent_messages",
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_inbound_handler_emits_project_b_metadata_not_project_a",
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_inbound_handler_keeps_project_a_and_b_distinct",
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_room_scope_group_sessions_per_user_true_separates_users",
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_room_scope_group_sessions_per_user_false_shares_room",
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_status_reports_current_matrix_room_scope",
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_resume_does_not_cross_rooms_by_default",
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_resume_allows_same_room_session",
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_resume_quoted_title_same_room",
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_resume_quoted_title_cross_room_blocked",
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_resume_malformed_quote_returns_helpful_error",
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_resume_cross_room_requires_explicit_flag_and_warns",
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_resume_lists_only_current_room_by_default",
        "tests/gateway/test_matrix_project_context_isolation.py::test_matrix_resume_all_lists_room_names"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0125-test_matrix_project_context_isolation.py.log",
      "output_sha256": "f937fdc62dfaee54ef47e87eca678ca267b7511351ea4cbbb73a4d6db7f40685",
      "returncode": 0,
      "test_file": "tests/gateway/test_matrix_project_context_isolation.py",
      "test_file_sha256": "dce708a5773633ff99a2528d8d58ad8fa235d28190dbcf88a3f3bbe81af83e17"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0126",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_matrix_voice.py"
      ],
      "nodeids": [],
      "outcome": "collection_skip",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0126-test_matrix_voice.py.log",
      "output_sha256": "927f1ef5da3a025c11516edc6ad92fe9f29b1500cb20b842b6700d18a2566ebb",
      "returncode": 5,
      "test_file": "tests/gateway/test_matrix_voice.py",
      "test_file_sha256": "aaa706cf60dd5bb08ded0d610755da2d0c8f50ea7d96722b21f406223103c1c1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0127",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_mattermost.py"
      ],
      "nodeids": [
        "tests/gateway/test_mattermost.py::TestMattermostProgressThreadRouting::test_top_level_mattermost_progress_uses_event_message_id",
        "tests/gateway/test_mattermost.py::TestMattermostProgressThreadRouting::test_threaded_mattermost_progress_prefers_existing_thread_root",
        "tests/gateway/test_mattermost.py::TestMattermostProgressThreadRouting::test_telegram_progress_does_not_use_message_id_as_thread_id",
        "tests/gateway/test_mattermost.py::TestMattermostDisplayHygiene::test_mattermost_requires_platform_opt_in_for_interim_assistant_messages",
        "tests/gateway/test_mattermost.py::TestMattermostDisplayHygiene::test_mattermost_platform_opt_in_can_enable_interim_assistant_messages",
        "tests/gateway/test_mattermost.py::TestMattermostDisplayHygiene::test_mattermost_requires_platform_opt_in_for_thinking_progress",
        "tests/gateway/test_mattermost.py::TestMattermostDisplayHygiene::test_mattermost_requires_platform_opt_in_for_show_reasoning",
        "tests/gateway/test_mattermost.py::TestMattermostDisplayHygiene::test_mattermost_platform_opt_in_can_enable_show_reasoning",
        "tests/gateway/test_mattermost.py::TestMattermostDisplayHygiene::test_global_thinking_progress_still_applies_to_other_platforms",
        "tests/gateway/test_mattermost.py::TestMattermostConfigLoading::test_apply_env_overrides_mattermost",
        "tests/gateway/test_mattermost.py::TestMattermostConfigLoading::test_mattermost_not_loaded_without_token",
        "tests/gateway/test_mattermost.py::TestMattermostConfigLoading::test_mattermost_home_channel",
        "tests/gateway/test_mattermost.py::TestMattermostConfigLoading::test_mattermost_url_warning_without_url",
        "tests/gateway/test_mattermost.py::TestMattermostFormatMessage::test_image_markdown_to_url",
        "tests/gateway/test_mattermost.py::TestMattermostFormatMessage::test_image_markdown_strips_alt_text",
        "tests/gateway/test_mattermost.py::TestMattermostFormatMessage::test_regular_markdown_preserved",
        "tests/gateway/test_mattermost.py::TestMattermostFormatMessage::test_regular_links_preserved",
        "tests/gateway/test_mattermost.py::TestMattermostFormatMessage::test_plain_text_unchanged",
        "tests/gateway/test_mattermost.py::TestMattermostFormatMessage::test_multiple_images",
        "tests/gateway/test_mattermost.py::TestMattermostTruncateMessage::test_short_message_single_chunk",
        "tests/gateway/test_mattermost.py::TestMattermostTruncateMessage::test_long_message_splits",
        "tests/gateway/test_mattermost.py::TestMattermostTruncateMessage::test_custom_max_length",
        "tests/gateway/test_mattermost.py::TestMattermostTruncateMessage::test_exactly_at_limit",
        "tests/gateway/test_mattermost.py::TestMattermostSend::test_send_calls_api_post",
        "tests/gateway/test_mattermost.py::TestMattermostSend::test_send_empty_content_succeeds",
        "tests/gateway/test_mattermost.py::TestMattermostSend::test_send_with_thread_reply",
        "tests/gateway/test_mattermost.py::TestMattermostSend::test_send_without_thread_no_root_id",
        "tests/gateway/test_mattermost.py::TestMattermostSend::test_send_uses_metadata_thread_id_for_progress_messages",
        "tests/gateway/test_mattermost.py::TestMattermostSend::test_progress_send_with_invalid_thread_root_never_falls_back_flat",
        "tests/gateway/test_mattermost.py::TestMattermostSend::test_notify_send_with_invalid_thread_root_falls_back_flat_with_warning",
        "tests/gateway/test_mattermost.py::TestMattermostSend::test_notify_send_with_server_error_does_not_fall_back_flat",
        "tests/gateway/test_mattermost.py::TestMattermostSend::test_send_api_failure",
        "tests/gateway/test_mattermost.py::TestMattermostWebSocketParsing::test_parse_posted_event",
        "tests/gateway/test_mattermost.py::TestMattermostWebSocketParsing::test_ignore_own_messages",
        "tests/gateway/test_mattermost.py::TestMattermostWebSocketParsing::test_ignore_non_posted_events",
        "tests/gateway/test_mattermost.py::TestMattermostWebSocketParsing::test_ignore_system_posts",
        "tests/gateway/test_mattermost.py::TestMattermostWebSocketParsing::test_channel_type_mapping",
        "tests/gateway/test_mattermost.py::TestMattermostWebSocketParsing::test_thread_id_from_root_id",
        "tests/gateway/test_mattermost.py::TestMattermostWebSocketParsing::test_invalid_post_json_ignored",
        "tests/gateway/test_mattermost.py::TestMattermostMentionBehavior::test_require_mention_true_skips_without_mention",
        "tests/gateway/test_mattermost.py::TestMattermostMentionBehavior::test_require_mention_false_responds_to_all",
        "tests/gateway/test_mattermost.py::TestMattermostMentionBehavior::test_free_response_channel_responds_without_mention",
        "tests/gateway/test_mattermost.py::TestMattermostMentionBehavior::test_non_free_channel_still_requires_mention",
        "tests/gateway/test_mattermost.py::TestMattermostMentionBehavior::test_dm_always_responds",
        "tests/gateway/test_mattermost.py::TestMattermostMentionBehavior::test_mention_stripped_from_text",
        "tests/gateway/test_mattermost.py::TestMattermostFileUpload::test_send_image_downloads_and_uploads",
        "tests/gateway/test_mattermost.py::TestMattermostDedup::test_duplicate_post_ignored",
        "tests/gateway/test_mattermost.py::TestMattermostDedup::test_different_post_ids_both_processed",
        "tests/gateway/test_mattermost.py::TestMattermostDedup::test_prune_seen_clears_expired",
        "tests/gateway/test_mattermost.py::TestMattermostDedup::test_seen_cache_tracks_post_ids",
        "tests/gateway/test_mattermost.py::TestMattermostRequirements::test_check_requirements_with_token_and_url",
        "tests/gateway/test_mattermost.py::TestMattermostRequirements::test_check_requirements_without_token",
        "tests/gateway/test_mattermost.py::TestMattermostRequirements::test_check_requirements_without_url",
        "tests/gateway/test_mattermost.py::TestMattermostMediaTypes::test_image_media_type_is_full_mime",
        "tests/gateway/test_mattermost.py::TestMattermostMediaTypes::test_audio_media_type_is_full_mime",
        "tests/gateway/test_mattermost.py::TestMattermostMediaTypes::test_document_media_type_is_full_mime",
        "tests/gateway/test_mattermost.py::test_mattermost_top_level_channel_post_is_thread_root",
        "tests/gateway/test_mattermost.py::test_mattermost_dm_post_does_not_seed_thread_root"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0127-test_mattermost.py.log",
      "output_sha256": "1dd31cf76379a3bb5865b3ccfc4d12e0107c49d42ebddb174c160d45e6d166ef",
      "returncode": 0,
      "test_file": "tests/gateway/test_mattermost.py",
      "test_file_sha256": "c5bcfc8110822ee823b7d5c3b1896b208482763548feb88070d673293d776bf5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0128",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_max_concurrent_sessions.py"
      ],
      "nodeids": [
        "tests/gateway/test_max_concurrent_sessions.py::test_new_session_gets_clean_error_at_active_session_limit",
        "tests/gateway/test_max_concurrent_sessions.py::test_existing_active_session_uses_busy_handling_at_limit",
        "tests/gateway/test_max_concurrent_sessions.py::test_new_session_can_start_after_active_session_released",
        "tests/gateway/test_max_concurrent_sessions.py::test_status_command_bypasses_active_session_limit",
        "tests/gateway/test_max_concurrent_sessions.py::test_skill_command_that_would_start_agent_is_blocked_at_limit"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0128-test_max_concurrent_sessions.py.log",
      "output_sha256": "886124546f7f7a71bcf9e992940620b591a22e22e363e16d359851f066f6ab27",
      "returncode": 0,
      "test_file": "tests/gateway/test_max_concurrent_sessions.py",
      "test_file_sha256": "eab78cdf3211b8e67298a63ff0cbbd1a28e6aa28e9a9d2d93d9b57428c8dea99"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0129",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_max_tokens_propagation.py"
      ],
      "nodeids": [
        "tests/gateway/test_max_tokens_propagation.py::test_top_level_max_tokens_propagates",
        "tests/gateway/test_max_tokens_propagation.py::test_per_provider_max_output_tokens_fallback",
        "tests/gateway/test_max_tokens_propagation.py::test_global_max_tokens_beats_per_provider",
        "tests/gateway/test_max_tokens_propagation.py::test_env_override_beats_everything",
        "tests/gateway/test_max_tokens_propagation.py::test_no_config_leaves_max_tokens_none",
        "tests/gateway/test_max_tokens_propagation.py::test_lift_helper_accepts_alias_and_rejects_garbage"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0129-test_max_tokens_propagation.py.log",
      "output_sha256": "077753e580f28000dbc469078b583db575c8217e3abb5f09f32cdb614e176559",
      "returncode": 0,
      "test_file": "tests/gateway/test_max_tokens_propagation.py",
      "test_file_sha256": "5b3f9ce8585b5342a2b704cf0265028ba7823072c1801d60b78421a3448a738a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0130",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_mcp_reload_refreshes_cached_agents.py"
      ],
      "nodeids": [
        "tests/gateway/test_mcp_reload_refreshes_cached_agents.py::test_reload_mcp_refreshes_cached_agent_tools",
        "tests/gateway/test_mcp_reload_refreshes_cached_agents.py::test_reload_mcp_handles_empty_agent_cache",
        "tests/gateway/test_mcp_reload_refreshes_cached_agents.py::test_reload_mcp_preserves_per_agent_toolset_overrides"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0130-test_mcp_reload_refreshes_cached_agents.py.log",
      "output_sha256": "244337f58998bb5af58a552f2e0b37c2f3a2c90872ac72d4dabb5baec0c09c69",
      "returncode": 0,
      "test_file": "tests/gateway/test_mcp_reload_refreshes_cached_agents.py",
      "test_file_sha256": "e60c26718cbfe9a9c0a2933faba8e68a12fca971139b5b9b69d2d4272020b684"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0131",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_media_download_retry.py"
      ],
      "nodeids": [
        "tests/gateway/test_media_download_retry.py::TestCacheImageFromBytes::test_caches_valid_jpeg",
        "tests/gateway/test_media_download_retry.py::TestCacheImageFromBytes::test_caches_valid_png",
        "tests/gateway/test_media_download_retry.py::TestCacheImageFromBytes::test_rejects_html_content",
        "tests/gateway/test_media_download_retry.py::TestCacheImageFromBytes::test_rejects_empty_data",
        "tests/gateway/test_media_download_retry.py::TestCacheImageFromBytes::test_rejects_plain_text",
        "tests/gateway/test_media_download_retry.py::TestCacheImageFromUrl::test_success_on_first_attempt",
        "tests/gateway/test_media_download_retry.py::TestCacheImageFromUrl::test_retries_on_timeout_then_succeeds",
        "tests/gateway/test_media_download_retry.py::TestCacheImageFromUrl::test_retries_on_429_then_succeeds",
        "tests/gateway/test_media_download_retry.py::TestCacheImageFromUrl::test_raises_after_max_retries_exhausted",
        "tests/gateway/test_media_download_retry.py::TestCacheImageFromUrl::test_non_retryable_4xx_raises_immediately",
        "tests/gateway/test_media_download_retry.py::TestCacheAudioFromUrl::test_success_on_first_attempt",
        "tests/gateway/test_media_download_retry.py::TestCacheAudioFromUrl::test_retries_on_timeout_then_succeeds",
        "tests/gateway/test_media_download_retry.py::TestCacheAudioFromUrl::test_retries_on_429_then_succeeds",
        "tests/gateway/test_media_download_retry.py::TestCacheAudioFromUrl::test_retries_on_500_then_succeeds",
        "tests/gateway/test_media_download_retry.py::TestCacheAudioFromUrl::test_raises_after_max_retries_exhausted",
        "tests/gateway/test_media_download_retry.py::TestCacheAudioFromUrl::test_non_retryable_4xx_raises_immediately",
        "tests/gateway/test_media_download_retry.py::TestSSRFRedirectGuard::test_image_blocks_private_redirect",
        "tests/gateway/test_media_download_retry.py::TestSSRFRedirectGuard::test_audio_blocks_private_redirect",
        "tests/gateway/test_media_download_retry.py::TestSSRFRedirectGuard::test_safe_redirect_allowed",
        "tests/gateway/test_media_download_retry.py::TestSlackAttachmentDiagnostics::test_missing_scope_error_returns_actionable_notice",
        "tests/gateway/test_media_download_retry.py::TestSlackAttachmentDiagnostics::test_download_failure_403_returns_permission_notice",
        "tests/gateway/test_media_download_retry.py::TestSlackDownloadSlackFile::test_success_on_first_attempt",
        "tests/gateway/test_media_download_retry.py::TestSlackDownloadSlackFile::test_rejects_html_response",
        "tests/gateway/test_media_download_retry.py::TestSlackDownloadSlackFile::test_retries_on_timeout_then_succeeds",
        "tests/gateway/test_media_download_retry.py::TestSlackDownloadSlackFile::test_raises_after_max_retries",
        "tests/gateway/test_media_download_retry.py::TestSlackDownloadSlackFile::test_non_retryable_403_raises_immediately",
        "tests/gateway/test_media_download_retry.py::TestSlackDownloadSlackFileBytes::test_success_returns_bytes",
        "tests/gateway/test_media_download_retry.py::TestSlackDownloadSlackFileBytes::test_rejects_html_response",
        "tests/gateway/test_media_download_retry.py::TestSlackDownloadSlackFileBytes::test_retries_on_429_then_succeeds",
        "tests/gateway/test_media_download_retry.py::TestSlackDownloadSlackFileBytes::test_raises_after_max_retries",
        "tests/gateway/test_media_download_retry.py::TestMattermostSendUrlAsFile::test_success_on_first_attempt",
        "tests/gateway/test_media_download_retry.py::TestMattermostSendUrlAsFile::test_retries_on_429_then_succeeds",
        "tests/gateway/test_media_download_retry.py::TestMattermostSendUrlAsFile::test_retries_on_500_then_succeeds",
        "tests/gateway/test_media_download_retry.py::TestMattermostSendUrlAsFile::test_falls_back_to_text_after_max_retries_on_5xx",
        "tests/gateway/test_media_download_retry.py::TestMattermostSendUrlAsFile::test_falls_back_on_client_error",
        "tests/gateway/test_media_download_retry.py::TestMattermostSendUrlAsFile::test_non_retryable_404_falls_back_immediately"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0131-test_media_download_retry.py.log",
      "output_sha256": "8b2bc731056c4acabe3c96035867838d272111b3abb3bc4795c299a4ecd7a7a0",
      "returncode": 0,
      "test_file": "tests/gateway/test_media_download_retry.py",
      "test_file_sha256": "d6e738529ef5ddb65e7d3eb8f9e4855033897ea9d90a3ed3c64b77d7da5ab213"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0132",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_media_extraction.py"
      ],
      "nodeids": [
        "tests/gateway/test_media_extraction.py::TestMediaExtraction::test_gateway_auto_append_ignores_media_examples_in_skill_docs",
        "tests/gateway/test_media_extraction.py::TestMediaExtraction::test_gateway_auto_append_keeps_real_tts_media_tag",
        "tests/gateway/test_media_extraction.py::TestMediaExtraction::test_gateway_auto_append_image_generate_json_path",
        "tests/gateway/test_media_extraction.py::TestMediaExtraction::test_gateway_auto_append_image_generate_prefers_host_path",
        "tests/gateway/test_media_extraction.py::TestMediaExtraction::test_gateway_auto_append_image_generate_failure_and_url_ignored",
        "tests/gateway/test_media_extraction.py::TestMediaExtraction::test_gateway_auto_append_image_generate_dedupes_history",
        "tests/gateway/test_media_extraction.py::TestMediaExtraction::test_media_tags_not_extracted_from_history",
        "tests/gateway/test_media_extraction.py::TestMediaExtraction::test_media_tags_extracted_from_current_turn",
        "tests/gateway/test_media_extraction.py::TestMediaExtraction::test_multiple_tts_calls_in_history_not_accumulated",
        "tests/gateway/test_media_extraction.py::TestMediaExtraction::test_deduplication_within_current_turn",
        "tests/gateway/test_media_extraction.py::TestStaleToolMediaLeak::test_stale_execute_code_media_not_attached_to_text_only_reply",
        "tests/gateway/test_media_extraction.py::TestStaleToolMediaLeak::test_current_turn_media_still_attached_when_dedup_set_empty",
        "tests/gateway/test_media_extraction.py::TestStaleToolMediaLeak::test_compression_shrink_falls_back_to_path_dedup"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0132-test_media_extraction.py.log",
      "output_sha256": "7e339fdc6570cdae24210be51d21da4ded189acd2f63c5a7448943d9d6b21e94",
      "returncode": 0,
      "test_file": "tests/gateway/test_media_extraction.py",
      "test_file_sha256": "f45019ac1a6001b132d1889cbf411eae6aca53cca588e7c4ce7df3552d4551ac"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0133",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_media_metadata_contract.py"
      ],
      "nodeids": [
        "tests/gateway/test_media_metadata_contract.py::test_send_image_accepts_metadata[gateway.platforms.whatsapp-WhatsAppAdapter]",
        "tests/gateway/test_media_metadata_contract.py::test_send_image_accepts_metadata[gateway.platforms.email-EmailAdapter]",
        "tests/gateway/test_media_metadata_contract.py::test_all_adapters_send_image_metadata_sweep[gateway.platforms.bluebubbles-BlueBubblesAdapter]",
        "tests/gateway/test_media_metadata_contract.py::test_all_adapters_send_image_metadata_sweep[gateway.platforms.dingtalk-DingTalkAdapter]",
        "tests/gateway/test_media_metadata_contract.py::test_all_adapters_send_image_metadata_sweep[gateway.platforms.discord-DiscordAdapter]",
        "tests/gateway/test_media_metadata_contract.py::test_all_adapters_send_image_metadata_sweep[gateway.platforms.email-EmailAdapter]",
        "tests/gateway/test_media_metadata_contract.py::test_all_adapters_send_image_metadata_sweep[gateway.platforms.feishu-FeishuAdapter]",
        "tests/gateway/test_media_metadata_contract.py::test_all_adapters_send_image_metadata_sweep[gateway.platforms.matrix-MatrixAdapter]",
        "tests/gateway/test_media_metadata_contract.py::test_all_adapters_send_image_metadata_sweep[gateway.platforms.mattermost-MattermostAdapter]",
        "tests/gateway/test_media_metadata_contract.py::test_all_adapters_send_image_metadata_sweep[gateway.platforms.signal-SignalAdapter]",
        "tests/gateway/test_media_metadata_contract.py::test_all_adapters_send_image_metadata_sweep[gateway.platforms.slack-SlackAdapter]",
        "tests/gateway/test_media_metadata_contract.py::test_all_adapters_send_image_metadata_sweep[gateway.platforms.telegram-TelegramAdapter]",
        "tests/gateway/test_media_metadata_contract.py::test_all_adapters_send_image_metadata_sweep[gateway.platforms.wecom-WeComAdapter]",
        "tests/gateway/test_media_metadata_contract.py::test_all_adapters_send_image_metadata_sweep[gateway.platforms.weixin-WeixinAdapter]",
        "tests/gateway/test_media_metadata_contract.py::test_all_adapters_send_image_metadata_sweep[gateway.platforms.whatsapp-WhatsAppAdapter]",
        "tests/gateway/test_media_metadata_contract.py::test_all_adapters_send_image_metadata_sweep[gateway.platforms.yuanbao-YuanbaoAdapter]"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0133-test_media_metadata_contract.py.log",
      "output_sha256": "3c2f43661494517d322f03cc58b64f4d01ec8a06198be4d86d3b1e53936849be",
      "returncode": 0,
      "test_file": "tests/gateway/test_media_metadata_contract.py",
      "test_file_sha256": "3075818213340192d1a41203c6b3ae694f3e5e187098708fc1d6e597a265b249"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0134",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_memory_monitor.py"
      ],
      "nodeids": [
        "tests/gateway/test_memory_monitor.py::test_log_memory_usage_emits_memory_line",
        "tests/gateway/test_memory_monitor.py::test_log_memory_usage_has_grep_friendly_format",
        "tests/gateway/test_memory_monitor.py::test_log_memory_usage_with_prefix",
        "tests/gateway/test_memory_monitor.py::test_start_logs_baseline_and_returns_true",
        "tests/gateway/test_memory_monitor.py::test_double_start_is_noop",
        "tests/gateway/test_memory_monitor.py::test_stop_logs_shutdown_snapshot",
        "tests/gateway/test_memory_monitor.py::test_stop_without_start_is_noop",
        "tests/gateway/test_memory_monitor.py::test_periodic_timer_fires",
        "tests/gateway/test_memory_monitor.py::test_thread_is_daemon",
        "tests/gateway/test_memory_monitor.py::test_unavailable_rss_warns_and_does_not_start"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0134-test_memory_monitor.py.log",
      "output_sha256": "5c5ce5c5f60aa8d2a9003bd37f5a5a745d13ced5357aca7582b6e5b726f7637b",
      "returncode": 0,
      "test_file": "tests/gateway/test_memory_monitor.py",
      "test_file_sha256": "8226cbe5b9fc557b5cdaffb966ab6af64c8cd4d1422e707b0a400b069b94f827"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0135",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_message_deduplicator.py"
      ],
      "nodeids": [
        "tests/gateway/test_message_deduplicator.py::TestMessageDeduplicatorTTL::test_duplicate_within_ttl",
        "tests/gateway/test_message_deduplicator.py::TestMessageDeduplicatorTTL::test_not_duplicate_after_ttl_expires",
        "tests/gateway/test_message_deduplicator.py::TestMessageDeduplicatorTTL::test_expired_entry_gets_refreshed",
        "tests/gateway/test_message_deduplicator.py::TestMessageDeduplicatorTTL::test_different_messages_not_confused",
        "tests/gateway/test_message_deduplicator.py::TestMessageDeduplicatorTTL::test_empty_id_never_duplicate",
        "tests/gateway/test_message_deduplicator.py::TestMessageDeduplicatorTTL::test_max_size_eviction_prunes_expired",
        "tests/gateway/test_message_deduplicator.py::TestMessageDeduplicatorTTL::test_max_size_eviction_caps_fresh_entries",
        "tests/gateway/test_message_deduplicator.py::TestMessageDeduplicatorTTL::test_ttl_zero_means_no_dedup"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0135-test_message_deduplicator.py.log",
      "output_sha256": "272e19f4cd04136ed4e50de7ab9f3ffcc97ad76bfc8cae990efa4ec4d2841f35",
      "returncode": 0,
      "test_file": "tests/gateway/test_message_deduplicator.py",
      "test_file_sha256": "e2e2ad51cfe5adcc709c08d9d77de2a00274a988a4feec189bd9508bde6cb49d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0136",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_message_timestamps.py"
      ],
      "nodeids": [
        "tests/gateway/test_message_timestamps.py::test_render_user_content_adds_single_context_timestamp",
        "tests/gateway/test_message_timestamps.py::test_render_user_content_deduplicates_existing_timestamp_and_preserves_embedded_time",
        "tests/gateway/test_message_timestamps.py::test_strip_leading_message_timestamps_removes_multiple_prefixes_and_prefers_inner_time",
        "tests/gateway/test_message_timestamps.py::test_coerce_message_timestamp_accepts_datetime_and_epoch",
        "tests/gateway/test_message_timestamps.py::test_persist_user_message_override_keeps_clean_content_and_timestamp_metadata",
        "tests/gateway/test_message_timestamps.py::test_message_timestamps_enabled_defaults_off",
        "tests/gateway/test_message_timestamps.py::test_message_timestamps_enabled_when_opted_in",
        "tests/gateway/test_message_timestamps.py::test_build_history_injects_only_when_enabled"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0136-test_message_timestamps.py.log",
      "output_sha256": "0a84a44b1aa09e3e382d5c42cf57280b0280cee50e1574967a82b36829d9a40f",
      "returncode": 0,
      "test_file": "tests/gateway/test_message_timestamps.py",
      "test_file_sha256": "6b49c9f0526ef2431da65cd8a886e622a47a77eaffc630399e9d3c12a493daec"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0137",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_mirror.py"
      ],
      "nodeids": [
        "tests/gateway/test_mirror.py::TestFindSessionId::test_finds_matching_session",
        "tests/gateway/test_mirror.py::TestFindSessionId::test_returns_most_recent",
        "tests/gateway/test_mirror.py::TestFindSessionId::test_thread_id_disambiguates_same_chat",
        "tests/gateway/test_mirror.py::TestFindSessionId::test_user_id_disambiguates_same_group_chat",
        "tests/gateway/test_mirror.py::TestFindSessionId::test_ambiguous_same_group_chat_without_user_id_returns_none",
        "tests/gateway/test_mirror.py::TestFindSessionId::test_no_match_returns_none",
        "tests/gateway/test_mirror.py::TestFindSessionId::test_missing_sessions_file",
        "tests/gateway/test_mirror.py::TestFindSessionId::test_platform_case_insensitive",
        "tests/gateway/test_mirror.py::TestMirrorToSession::test_successful_mirror",
        "tests/gateway/test_mirror.py::TestMirrorToSession::test_successful_mirror_uses_thread_id",
        "tests/gateway/test_mirror.py::TestMirrorToSession::test_successful_mirror_uses_user_id_for_group_session",
        "tests/gateway/test_mirror.py::TestMirrorToSession::test_no_matching_session",
        "tests/gateway/test_mirror.py::TestMirrorToSession::test_error_returns_false",
        "tests/gateway/test_mirror.py::TestAppendToSqlite::test_connection_is_closed_after_use",
        "tests/gateway/test_mirror.py::TestAppendToSqlite::test_connection_closed_even_on_error"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0137-test_mirror.py.log",
      "output_sha256": "72a734bc2cd0d27f6c00f94d41a7db62179c8b27123de85ba71ea9fe350f3c17",
      "returncode": 0,
      "test_file": "tests/gateway/test_mirror.py",
      "test_file_sha256": "da1966af8ebf20afce0aab880a905b6a233fa7dac0816ee147539e502330a39c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0138",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_model_command_custom_providers.py"
      ],
      "nodeids": [
        "tests/gateway/test_model_command_custom_providers.py::test_handle_model_command_lists_saved_custom_provider"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0138-test_model_command_custom_providers.py.log",
      "output_sha256": "2a29168979730b0e2d66cb1bd8a555026232aab394cf1c6ace3348a1a1fedce8",
      "returncode": 0,
      "test_file": "tests/gateway/test_model_command_custom_providers.py",
      "test_file_sha256": "05e557cf99191b7fc119650fef14fd58e9c6ed41192019b2463371670c10e75f"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0139",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_model_command_expensive_confirm.py"
      ],
      "nodeids": [
        "tests/gateway/test_model_command_expensive_confirm.py::test_typed_model_expensive_prompts_instead_of_switching",
        "tests/gateway/test_model_command_expensive_confirm.py::test_typed_model_expensive_confirm_once_applies_switch",
        "tests/gateway/test_model_command_expensive_confirm.py::test_typed_model_expensive_cancel_keeps_current_model",
        "tests/gateway/test_model_command_expensive_confirm.py::test_typed_model_cheap_switches_without_prompt"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0139-test_model_command_expensive_confirm.py.log",
      "output_sha256": "6a6bac098794f816a1cdba6da69dab7b67e00bdb1da118198db895b0001c5c96",
      "returncode": 0,
      "test_file": "tests/gateway/test_model_command_expensive_confirm.py",
      "test_file_sha256": "a0bb4b38fef4230b692bacd60c16a233bfa46aefe62add0fe8d8fb0d2fea8de2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0140",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_model_command_flat_string_config.py"
      ],
      "nodeids": [
        "tests/gateway/test_model_command_flat_string_config.py::test_model_global_persists_when_config_has_flat_string_model",
        "tests/gateway/test_model_command_flat_string_config.py::test_model_global_persists_when_config_has_missing_model",
        "tests/gateway/test_model_command_flat_string_config.py::test_model_global_persists_when_config_has_proper_dict_model",
        "tests/gateway/test_model_command_flat_string_config.py::test_model_no_flag_persists_by_default",
        "tests/gateway/test_model_command_flat_string_config.py::test_model_session_flag_does_not_persist"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0140-test_model_command_flat_string_config.py.log",
      "output_sha256": "7ec34adf35bb45d140114bf3cc046a63e4278c2e74e5d6670870dca229cb6f77",
      "returncode": 0,
      "test_file": "tests/gateway/test_model_command_flat_string_config.py",
      "test_file_sha256": "ad823261e9916d026d25d58f709ac2aa9e8f46c536b93187da60b16f4b7b4e03"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0141",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_model_picker_persist.py"
      ],
      "nodeids": [
        "tests/gateway/test_model_picker_persist.py::test_picker_tap_persists_by_default[nested-dict]",
        "tests/gateway/test_model_picker_persist.py::test_picker_tap_persists_by_default[flat-string]",
        "tests/gateway/test_model_picker_persist.py::test_picker_tap_session_flag_does_not_persist"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0141-test_model_picker_persist.py.log",
      "output_sha256": "8f3cf5460504b4c3998d4ec1d50769e331a98e4e9b184befbc5c7cb23683e996",
      "returncode": 0,
      "test_file": "tests/gateway/test_model_picker_persist.py",
      "test_file_sha256": "3cdbe961011bf10321c92c80a4eb4006d7d40031dfc9a8510f21f066e7dc9c81"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0142",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_model_switch_persistence.py"
      ],
      "nodeids": [
        "tests/gateway/test_model_switch_persistence.py::TestApplySessionModelOverride::test_override_replaces_all_fields",
        "tests/gateway/test_model_switch_persistence.py::TestApplySessionModelOverride::test_no_override_returns_originals",
        "tests/gateway/test_model_switch_persistence.py::TestApplySessionModelOverride::test_none_values_do_not_overwrite",
        "tests/gateway/test_model_switch_persistence.py::TestApplySessionModelOverride::test_empty_string_overwrites",
        "tests/gateway/test_model_switch_persistence.py::TestApplySessionModelOverride::test_different_session_key_not_affected",
        "tests/gateway/test_model_switch_persistence.py::TestIsIntentionalModelSwitch::test_matches_override",
        "tests/gateway/test_model_switch_persistence.py::TestIsIntentionalModelSwitch::test_no_override_returns_false",
        "tests/gateway/test_model_switch_persistence.py::TestIsIntentionalModelSwitch::test_different_model_returns_false",
        "tests/gateway/test_model_switch_persistence.py::TestIsIntentionalModelSwitch::test_wrong_session_key"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0142-test_model_switch_persistence.py.log",
      "output_sha256": "f72454133843a916d55c8e8aee7d6739c0a6772bb97cb58c3442611601d1d6eb",
      "returncode": 0,
      "test_file": "tests/gateway/test_model_switch_persistence.py",
      "test_file_sha256": "4305866b92987dce5bd050276eadc329a9137ed0717ff337b309fb91ee1809a2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0143",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_msgraph_webhook.py"
      ],
      "nodeids": [
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphWebhookConfig::test_gateway_config_accepts_msgraph_webhook_platform",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphWebhookConfig::test_env_overrides_apply_to_existing_msgraph_webhook_platform",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphValidationHandshake::test_connect_requires_client_state[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphValidationHandshake::test_connect_requires_source_allowlist_on_public_bind[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphValidationHandshake::test_connect_allows_loopback_without_source_allowlist[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphValidationHandshake::test_validation_token_echo_on_get[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphValidationHandshake::test_bare_get_without_validation_token_rejected[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphValidationHandshake::test_post_with_validation_token_still_echoes[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphNotifications::test_missing_client_state_is_auth_rejected[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphNotifications::test_valid_notification_accepted_and_scheduled[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphNotifications::test_bad_client_state_rejected_as_auth_failure[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphNotifications::test_client_state_compare_is_timing_safe[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphNotifications::test_duplicate_notification_deduped[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphNotifications::test_notifications_without_id_are_not_deduped[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphNotifications::test_resource_patterns_accept_leading_slash[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphNotifications::test_resource_not_in_allowlist_returns_400[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphNotifications::test_malformed_body_returns_400[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphNotifications::test_missing_value_array_returns_400[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphNotifications::test_seen_receipts_are_bounded[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphSourceIPAllowlist::test_public_bind_without_allowlist_fails_closed[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphSourceIPAllowlist::test_loopback_bind_without_allowlist_still_accepts_local_requests[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphSourceIPAllowlist::test_post_from_disallowed_ip_rejected[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphSourceIPAllowlist::test_post_from_allowed_ip_accepted[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphSourceIPAllowlist::test_validation_handshake_also_respects_allowlist[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphSourceIPAllowlist::test_health_endpoint_also_respects_allowlist[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphSourceIPAllowlist::test_invalid_cidr_entries_are_ignored_at_init[asyncio]",
        "tests/gateway/test_msgraph_webhook.py::TestMSGraphSourceIPAllowlist::test_cidr_list_accepts_comma_string[asyncio]"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0143-test_msgraph_webhook.py.log",
      "output_sha256": "522e722d5fb22f4d2ef07463577a74123999f4f030c4aa9374cad60f09386c1f",
      "returncode": 0,
      "test_file": "tests/gateway/test_msgraph_webhook.py",
      "test_file_sha256": "902dbe5b36d30458ec370c3cc48d554343be5765085281cf802263b55dfdd43e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0144",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_multiplex_adapter_registry.py"
      ],
      "nodeids": [
        "tests/gateway/test_multiplex_adapter_registry.py::TestCredentialFingerprint::test_none_without_token",
        "tests/gateway/test_multiplex_adapter_registry.py::TestCredentialFingerprint::test_stable_and_log_safe",
        "tests/gateway/test_multiplex_adapter_registry.py::TestCredentialFingerprint::test_distinct_tokens_distinct_fp",
        "tests/gateway/test_multiplex_adapter_registry.py::TestCredentialFingerprint::test_reads_alt_attrs",
        "tests/gateway/test_multiplex_adapter_registry.py::TestProfileMessageHandler::test_stamps_profile_on_unstamped_source",
        "tests/gateway/test_multiplex_adapter_registry.py::TestProfileMessageHandler::test_does_not_override_existing_profile",
        "tests/gateway/test_multiplex_adapter_registry.py::TestPortBindingHardError::test_secondary_webhook_raises",
        "tests/gateway/test_multiplex_adapter_registry.py::TestPortBindingHardError::test_secondary_non_binding_platform_ok",
        "tests/gateway/test_multiplex_adapter_registry.py::TestPortBindingHardError::test_port_binding_set_covers_known_listeners"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0144-test_multiplex_adapter_registry.py.log",
      "output_sha256": "2458278587b8cfd16f31f29c429df519ddb2c6f9b589f494159a770c5057a74a",
      "returncode": 0,
      "test_file": "tests/gateway/test_multiplex_adapter_registry.py",
      "test_file_sha256": "8e152a907abf533fb475702ba655332d5e658afc44fc26780fc65f557d3ff050"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0145",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_multiplex_credential_isolation.py"
      ],
      "nodeids": [
        "tests/gateway/test_multiplex_credential_isolation.py::TestRuntimeProviderUsesScope::test_getenv_reads_scope_under_multiplex",
        "tests/gateway/test_multiplex_credential_isolation.py::TestRuntimeProviderUsesScope::test_getenv_two_profiles_isolated",
        "tests/gateway/test_multiplex_credential_isolation.py::TestRuntimeProviderUsesScope::test_getenv_fails_closed_unscoped",
        "tests/gateway/test_multiplex_credential_isolation.py::TestRuntimeProviderUsesScope::test_getenv_global_var_still_reads_environ",
        "tests/gateway/test_multiplex_credential_isolation.py::TestMcpInterpolationUsesScope::test_interpolation_reads_scope",
        "tests/gateway/test_multiplex_credential_isolation.py::TestMcpInterpolationUsesScope::test_interpolation_unset_keeps_placeholder",
        "tests/gateway/test_multiplex_credential_isolation.py::TestMcpInterpolationUsesScope::test_interpolation_off_reads_environ"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0145-test_multiplex_credential_isolation.py.log",
      "output_sha256": "9651a474f75f7e3d4d5263223285820dc3d83085526c597e57c4c018833ea433",
      "returncode": 0,
      "test_file": "tests/gateway/test_multiplex_credential_isolation.py",
      "test_file_sha256": "382969680547ae60d64e30d610ced2b47206c76b647b0c3610c981aa581d1116"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0146",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_multiplex_http_routing.py"
      ],
      "nodeids": [
        "tests/gateway/test_multiplex_http_routing.py::TestSessionSourceProfileField::test_profile_roundtrips",
        "tests/gateway/test_multiplex_http_routing.py::TestSessionSourceProfileField::test_profile_absent_not_serialized",
        "tests/gateway/test_multiplex_http_routing.py::TestSessionSourceProfileField::test_source_profile_drives_session_key_namespace",
        "tests/gateway/test_multiplex_http_routing.py::TestWebhookProfileResolution::test_no_prefix_returns_none",
        "tests/gateway/test_multiplex_http_routing.py::TestWebhookProfileResolution::test_prefix_ignored_when_multiplex_off",
        "tests/gateway/test_multiplex_http_routing.py::TestWebhookProfileResolution::test_known_profile_accepted",
        "tests/gateway/test_multiplex_http_routing.py::TestWebhookProfileResolution::test_unknown_profile_rejected"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0146-test_multiplex_http_routing.py.log",
      "output_sha256": "7d3a068f89515816e4a8ebf6f82287142f1113021e8dc612a1a02b3cf69bf700",
      "returncode": 0,
      "test_file": "tests/gateway/test_multiplex_http_routing.py",
      "test_file_sha256": "601a52f2013511c94c968c6d0a75e7a7edfa01053d00f1099e8a8230af6b24d5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0147",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_multiplex_lifecycle.py"
      ],
      "nodeids": [
        "tests/gateway/test_multiplex_lifecycle.py::TestServedProfilesStatus::test_write_and_read_served_profiles",
        "tests/gateway/test_multiplex_lifecycle.py::TestServedProfilesStatus::test_served_profiles_absent_by_default",
        "tests/gateway/test_multiplex_lifecycle.py::TestNamedProfileMultiplexerGuard::test_inert_for_default_profile",
        "tests/gateway/test_multiplex_lifecycle.py::TestNamedProfileMultiplexerGuard::test_force_bypasses",
        "tests/gateway/test_multiplex_lifecycle.py::TestNamedProfileMultiplexerGuard::test_inert_when_no_default_gateway_running"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0147-test_multiplex_lifecycle.py.log",
      "output_sha256": "7fa4a7839edaf3f4ef929165ec19ea8f926df5532acb213312e65839d506e0df",
      "returncode": 0,
      "test_file": "tests/gateway/test_multiplex_lifecycle.py",
      "test_file_sha256": "7dea96b63cd800671cd263f8aef3016b211cc7d0db9212f0b89d5b330a34484c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0148",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_multiplex_phase0.py"
      ],
      "nodeids": [
        "tests/gateway/test_multiplex_phase0.py::TestSessionKeyByteIdenticalWhenOff::test_dm_with_chat_id[None]",
        "tests/gateway/test_multiplex_phase0.py::TestSessionKeyByteIdenticalWhenOff::test_dm_with_chat_id[default]",
        "tests/gateway/test_multiplex_phase0.py::TestSessionKeyByteIdenticalWhenOff::test_dm_with_thread[None]",
        "tests/gateway/test_multiplex_phase0.py::TestSessionKeyByteIdenticalWhenOff::test_dm_with_thread[default]",
        "tests/gateway/test_multiplex_phase0.py::TestSessionKeyByteIdenticalWhenOff::test_dm_without_chat_id_falls_back_to_user[None]",
        "tests/gateway/test_multiplex_phase0.py::TestSessionKeyByteIdenticalWhenOff::test_dm_without_chat_id_falls_back_to_user[default]",
        "tests/gateway/test_multiplex_phase0.py::TestSessionKeyByteIdenticalWhenOff::test_group_per_user[None]",
        "tests/gateway/test_multiplex_phase0.py::TestSessionKeyByteIdenticalWhenOff::test_group_per_user[default]",
        "tests/gateway/test_multiplex_phase0.py::TestSessionKeyByteIdenticalWhenOff::test_group_shared_when_disabled[None]",
        "tests/gateway/test_multiplex_phase0.py::TestSessionKeyByteIdenticalWhenOff::test_group_shared_when_disabled[default]",
        "tests/gateway/test_multiplex_phase0.py::TestSessionKeyNamespacedWhenOn::test_named_profile_dm",
        "tests/gateway/test_multiplex_phase0.py::TestSessionKeyNamespacedWhenOn::test_named_profile_group_per_user",
        "tests/gateway/test_multiplex_phase0.py::TestSessionKeyNamespacedWhenOn::test_two_profiles_same_chat_do_not_collide",
        "tests/gateway/test_multiplex_phase0.py::TestSessionKeyNamespacedWhenOn::test_positional_layout_preserved_for_parsers",
        "tests/gateway/test_multiplex_phase0.py::TestSessionKeyNamespacedWhenOn::test_default_namespace_layout_matches_named",
        "tests/gateway/test_multiplex_phase0.py::TestMultiplexConfigFlag::test_default_is_false",
        "tests/gateway/test_multiplex_phase0.py::TestMultiplexConfigFlag::test_to_dict_includes_flag",
        "tests/gateway/test_multiplex_phase0.py::TestMultiplexConfigFlag::test_from_dict_top_level",
        "tests/gateway/test_multiplex_phase0.py::TestMultiplexConfigFlag::test_from_dict_nested_gateway",
        "tests/gateway/test_multiplex_phase0.py::TestMultiplexConfigFlag::test_from_dict_coerces_truthy_string",
        "tests/gateway/test_multiplex_phase0.py::TestMultiplexConfigFlag::test_roundtrip",
        "tests/gateway/test_multiplex_phase0.py::TestSessionStoreProfileResolution::test_flag_off_uses_legacy_namespace",
        "tests/gateway/test_multiplex_phase0.py::TestSessionStoreProfileResolution::test_flag_off_resolve_profile_is_none",
        "tests/gateway/test_multiplex_phase0.py::TestSessionStoreProfileResolution::test_flag_on_uses_active_profile_namespace",
        "tests/gateway/test_multiplex_phase0.py::TestSessionStoreProfileResolution::test_flag_on_default_profile_stays_legacy"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0148-test_multiplex_phase0.py.log",
      "output_sha256": "4933955f18355a5eb33134d5028a299a0e904a8bd5554d888250d133cb37a438",
      "returncode": 0,
      "test_file": "tests/gateway/test_multiplex_phase0.py",
      "test_file_sha256": "b5972c62ac9ea30f290573e339a05e0dc2b97504da0c0b103ad543b7bf8268c1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0149",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_native_image_buffer_isolation.py"
      ],
      "nodeids": [
        "tests/gateway/test_native_image_buffer_isolation.py::test_native_image_buffer_isolated_per_session",
        "tests/gateway/test_native_image_buffer_isolation.py::test_native_image_buffer_not_cleared_by_other_sessions_without_images"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0149-test_native_image_buffer_isolation.py.log",
      "output_sha256": "7719506d8bc129aa199c6c498cf81e246bf6ed992a8ae8c2cf8c8f0f0c06da56",
      "returncode": 0,
      "test_file": "tests/gateway/test_native_image_buffer_isolation.py",
      "test_file_sha256": "62f7c0c482ec1b50feaf28e966dac0b6b5b5392a59d1b280425b07f5f90f8993"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0150",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_notice_delivery.py"
      ],
      "nodeids": [
        "tests/gateway/test_notice_delivery.py::test_deliver_platform_notice_uses_private_delivery_when_configured",
        "tests/gateway/test_notice_delivery.py::test_deliver_platform_notice_falls_back_to_public_when_private_fails",
        "tests/gateway/test_notice_delivery.py::test_deliver_platform_notice_uses_public_delivery_by_default"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0150-test_notice_delivery.py.log",
      "output_sha256": "c5f76e591a9c589acf96d5c0932a0fa4c0f523a4dc692b4f69f07b87f114f0c1",
      "returncode": 0,
      "test_file": "tests/gateway/test_notice_delivery.py",
      "test_file_sha256": "bfd82ddc9ec1b34bdd2acbddc258821a784855718df4bada1b052e4c7b6c2155"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0151",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_notice_rendering.py"
      ],
      "nodeids": [
        "tests/gateway/test_notice_rendering.py::TestRenderNoticeLine::test_returns_text_verbatim_with_its_baked_glyph",
        "tests/gateway/test_notice_rendering.py::TestRenderNoticeLine::test_does_not_prepend_a_second_glyph",
        "tests/gateway/test_notice_rendering.py::TestRenderNoticeLine::test_text_is_stripped",
        "tests/gateway/test_notice_rendering.py::TestRenderNoticeLine::test_empty_text_returns_empty_string",
        "tests/gateway/test_notice_rendering.py::TestRenderNoticeLine::test_malformed_notice_does_not_raise",
        "tests/gateway/test_notice_rendering.py::test_real_policy_notices_render_without_doubling",
        "tests/gateway/test_notice_rendering.py::TestDeliverNoticeLine::test_public_delivery_sends_rendered_line",
        "tests/gateway/test_notice_rendering.py::TestDeliverNoticeLine::test_private_delivery_prefers_private_notice",
        "tests/gateway/test_notice_rendering.py::TestDeliverNoticeLine::test_no_adapter_is_a_noop"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0151-test_notice_rendering.py.log",
      "output_sha256": "b995ef70e41c53d876792b9a1bc89557a6695f26973f37752e1077bdd97fd5bd",
      "returncode": 0,
      "test_file": "tests/gateway/test_notice_rendering.py",
      "test_file_sha256": "3bb5fbafa8fdddfbc89010b28fb3ced35ff19c196224d7779538157528d02aef"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0152",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_ntfy_plugin.py"
      ],
      "nodeids": [
        "tests/gateway/test_ntfy_plugin.py::test_platform_enum_resolves_via_plugin_scan",
        "tests/gateway/test_ntfy_plugin.py::TestNtfyRequirements::test_returns_false_when_httpx_unavailable",
        "tests/gateway/test_ntfy_plugin.py::TestNtfyRequirements::test_returns_false_when_topic_not_set",
        "tests/gateway/test_ntfy_plugin.py::TestNtfyRequirements::test_returns_true_when_topic_set_via_env",
        "tests/gateway/test_ntfy_plugin.py::TestNtfyRequirements::test_validate_config_requires_topic",
        "tests/gateway/test_ntfy_plugin.py::TestNtfyRequirements::test_is_connected_from_extra",
        "tests/gateway/test_ntfy_plugin.py::TestNtfyRequirements::test_is_connected_from_env",
        "tests/gateway/test_ntfy_plugin.py::TestNtfyAdapterInit::test_default_server_url",
        "tests/gateway/test_ntfy_plugin.py::TestNtfyAdapterInit::test_topic_read_from_extra",
        "tests/gateway/test_ntfy_plugin.py::TestNtfyAdapterInit::test_topic_read_from_env",
        "tests/gateway/test_ntfy_plugin.py::TestNtfyAdapterInit::test_publish_topic_falls_back_to_topic",
        "tests/gateway/test_ntfy_plugin.py::TestNtfyAdapterInit::test_publish_topic_uses_extra_value",
        "tests/gateway/test_ntfy_plugin.py::TestNtfyAdapterInit::test_token_read_from_extra",
        "tests/gateway/test_ntfy_plugin.py::TestNtfyAdapterInit::test_token_read_from_env",
        "tests/gateway/test_ntfy_plugin.py::TestNtfyAdapterInit::test_server_trailing_slash_stripped",
        "tests/gateway/test_ntfy_plugin.py::TestNtfyAdapterInit::test_initial_state",
        "tests/gateway/test_ntfy_plugin.py::TestAuthHeaders::test_no_token_returns_empty_dict",
        "tests/gateway/test_ntfy_plugin.py::TestAuthHeaders::test_bearer_token_for_plain_token",
        "tests/gateway/test_ntfy_plugin.py::TestAuthHeaders::test_basic_auth_for_user_colon_password",
        "tests/gateway/test_ntfy_plugin.py::TestAuthHeaders::test_bearer_token_used_when_no_colon",
        "tests/gateway/test_ntfy_plugin.py::TestAuthHeaders::test_auth_header_key_is_authorization",
        "tests/gateway/test_ntfy_plugin.py::TestDeduplication::test_first_message_not_duplicate",
        "tests/gateway/test_ntfy_plugin.py::TestDeduplication::test_second_occurrence_is_duplicate",
        "tests/gateway/test_ntfy_plugin.py::TestDeduplication::test_different_ids_not_duplicate",
        "tests/gateway/test_ntfy_plugin.py::TestDeduplication::test_many_messages_recorded",
        "tests/gateway/test_ntfy_plugin.py::TestDeduplication::test_cache_pruned_on_overflow",
        "tests/gateway/test_ntfy_plugin.py::TestDeduplication::test_expired_id_can_be_seen_again",
        "tests/gateway/test_ntfy_plugin.py::TestConnect::test_connect_fails_when_httpx_unavailable",
        "tests/gateway/test_ntfy_plugin.py::TestConnect::test_connect_fails_when_no_topic",
        "tests/gateway/test_ntfy_plugin.py::TestConnect::test_connect_starts_stream_task",
        "tests/gateway/test_ntfy_plugin.py::TestConnect::test_disconnect_clears_state",
        "tests/gateway/test_ntfy_plugin.py::TestConnect::test_disconnect_cancels_stream_task",
        "tests/gateway/test_ntfy_plugin.py::TestSend::test_send_fails_without_http_client",
        "tests/gateway/test_ntfy_plugin.py::TestSend::test_send_posts_to_publish_topic",
        "tests/gateway/test_ntfy_plugin.py::TestSend::test_send_falls_back_to_subscribe_topic",
        "tests/gateway/test_ntfy_plugin.py::TestSend::test_send_uses_metadata_publish_topic",
        "tests/gateway/test_ntfy_plugin.py::TestSend::test_send_handles_http_error_status",
        "tests/gateway/test_ntfy_plugin.py::TestSend::test_send_handles_timeout",
        "tests/gateway/test_ntfy_plugin.py::TestSend::test_send_truncates_to_max_length",
        "tests/gateway/test_ntfy_plugin.py::TestSend::test_send_typing_is_noop",
        "tests/gateway/test_ntfy_plugin.py::TestSend::test_get_chat_info_returns_dict",
        "tests/gateway/test_ntfy_plugin.py::TestSend::test_send_includes_bearer_auth_header",
        "tests/gateway/test_ntfy_plugin.py::TestSend::test_send_emits_markdown_header_when_enabled",
        "tests/gateway/test_ntfy_plugin.py::TestSend::test_send_omits_markdown_header_when_disabled",
        "tests/gateway/test_ntfy_plugin.py::TestSend::test_send_emits_echo_tag_header",
        "tests/gateway/test_ntfy_plugin.py::TestOnMessage::test_message_dispatched_to_handler",
        "tests/gateway/test_ntfy_plugin.py::TestOnMessage::test_empty_message_skipped",
        "tests/gateway/test_ntfy_plugin.py::TestOnMessage::test_duplicate_message_skipped",
        "tests/gateway/test_ntfy_plugin.py::TestOnMessage::test_own_tagged_message_skipped",
        "tests/gateway/test_ntfy_plugin.py::TestOnMessage::test_message_with_other_tags_still_dispatched",
        "tests/gateway/test_ntfy_plugin.py::TestOnMessage::test_timestamp_parsed_from_event",
        "tests/gateway/test_ntfy_plugin.py::TestOnMessage::test_message_id_set_from_event",
        "tests/gateway/test_ntfy_plugin.py::TestOnMessage::test_title_not_used_as_user_id",
        "tests/gateway/test_ntfy_plugin.py::TestOnMessage::test_unknown_publisher_cannot_impersonate_allowed_user",
        "tests/gateway/test_ntfy_plugin.py::TestOnMessage::test_source_chat_id_is_topic",
        "tests/gateway/test_ntfy_plugin.py::TestEnvEnablement::test_returns_none_without_topic",
        "tests/gateway/test_ntfy_plugin.py::TestEnvEnablement::test_seeds_topic_and_server",
        "tests/gateway/test_ntfy_plugin.py::TestEnvEnablement::test_custom_server_url",
        "tests/gateway/test_ntfy_plugin.py::TestEnvEnablement::test_publish_topic_seeded",
        "tests/gateway/test_ntfy_plugin.py::TestEnvEnablement::test_token_seeded",
        "tests/gateway/test_ntfy_plugin.py::TestEnvEnablement::test_markdown_truthy_values",
        "tests/gateway/test_ntfy_plugin.py::TestEnvEnablement::test_markdown_falsy_values",
        "tests/gateway/test_ntfy_plugin.py::TestEnvEnablement::test_home_channel_defaults_to_topic",
        "tests/gateway/test_ntfy_plugin.py::TestEnvEnablement::test_home_channel_override",
        "tests/gateway/test_ntfy_plugin.py::TestStandaloneSend::test_errors_without_topic",
        "tests/gateway/test_ntfy_plugin.py::TestStandaloneSend::test_posts_to_server",
        "tests/gateway/test_ntfy_plugin.py::TestStandaloneSend::test_emits_echo_tag_header",
        "tests/gateway/test_ntfy_plugin.py::TestStandaloneSend::test_emits_bearer_token_when_configured",
        "tests/gateway/test_ntfy_plugin.py::TestStandaloneSend::test_basic_auth_when_token_has_colon",
        "tests/gateway/test_ntfy_plugin.py::TestStandaloneSend::test_returns_error_on_http_failure",
        "tests/gateway/test_ntfy_plugin.py::test_register_calls_register_platform",
        "tests/gateway/test_ntfy_plugin.py::test_adapter_factory_returns_ntfy_adapter",
        "tests/gateway/test_ntfy_plugin.py::TestTokenHygiene::test_trailing_whitespace_stripped",
        "tests/gateway/test_ntfy_plugin.py::TestTokenHygiene::test_trailing_newline_stripped",
        "tests/gateway/test_ntfy_plugin.py::TestTokenHygiene::test_whitespace_only_returns_empty",
        "tests/gateway/test_ntfy_plugin.py::TestTokenHygiene::test_basic_auth_token_also_stripped",
        "tests/gateway/test_ntfy_plugin.py::TestTokenHygiene::test_adapter_strips_token_via_helper",
        "tests/gateway/test_ntfy_plugin.py::TestFatalErrorPropagation::test_401_sets_fatal_unauthorized",
        "tests/gateway/test_ntfy_plugin.py::TestFatalErrorPropagation::test_404_sets_fatal_topic_not_found",
        "tests/gateway/test_ntfy_plugin.py::TestTruncateHelper::test_short_message_passes_through",
        "tests/gateway/test_ntfy_plugin.py::TestTruncateHelper::test_long_message_truncated",
        "tests/gateway/test_ntfy_plugin.py::TestTruncateHelper::test_unicode_message_encoded"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0152-test_ntfy_plugin.py.log",
      "output_sha256": "e4aec3c07b26b3993ecea67970959ecf90a3074fd5ba204c0ecbb36f3b49ba5f",
      "returncode": 0,
      "test_file": "tests/gateway/test_ntfy_plugin.py",
      "test_file_sha256": "30f92933d947da0ceb7eb028855e9f835814a1525f7d84dcb1b33b5634405a03"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0153",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutricoach_v140_disposable_e2e.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutricoach_v140_disposable_e2e.py::test_weekly_operations_disposable_cli_drives_real_telegram_surface"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0153-test_nutricoach_v140_disposable_e2e.py.log",
      "output_sha256": "db584f57831c30725008e06d8f46363bb602d86d4343563be2e87a43ea4275e1",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutricoach_v140_disposable_e2e.py",
      "test_file_sha256": "ed2b96d35f26383bc4ef80ac0ca05b97808f6f112a7c97e6da19f43f88647eed"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0154",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutricoach_v140_golden_path.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutricoach_v140_golden_path.py::test_seven_day_driver_emits_exact_receipt_when_network_is_disabled",
        "tests/gateway/test_nutricoach_v140_golden_path.py::test_seven_day_receipt_is_byte_identical_across_clean_roots",
        "tests/gateway/test_nutricoach_v140_golden_path.py::test_seven_day_driver_rejects_network_enabled_surface"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0154-test_nutricoach_v140_golden_path.py.log",
      "output_sha256": "252cd37e1fb1ad92b344a7130c3ee363d39c01cbf63a6dfec62377960caedb55",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutricoach_v140_golden_path.py",
      "test_file_sha256": "969479cdfaff8c050c7fc8db0249061b151400f67d6e64f24783541c06a45b2c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0155",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutricoach_v140_golden_path_r2.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutricoach_v140_golden_path_r2.py::test_driver_has_no_test_imports_when_production_path_is_required",
        "tests/gateway/test_nutricoach_v140_golden_path_r2.py::test_driver_uses_production_tick_without_constructing_schedule_tasks",
        "tests/gateway/test_nutricoach_v140_golden_path_r2.py::test_completed_artifact_verifier_rejects_each_tamper_class",
        "tests/gateway/test_nutricoach_v140_golden_path_r2.py::test_fault_matrix_executes_every_observed_weekly_boundary",
        "tests/gateway/test_nutricoach_v140_golden_path_r2.py::test_receipt_records_observed_fresh_child_restarts"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0155-test_nutricoach_v140_golden_path_r2.py.log",
      "output_sha256": "433439ea604e03b6a84a3d2a1713ebd5be1a45da6e1b7daa0dc0d7f0dc3d5eac",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutricoach_v140_golden_path_r2.py",
      "test_file_sha256": "57403a66ec76ca6770d43b76a9d98e087bb6f99b473d2dfadc096c18f79e9326"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0156",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutricoach_v140_golden_path_r3.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutricoach_v140_golden_path_r3.py::test_fault_results_are_exhaustive_and_bind_authoritative_rows",
        "tests/gateway/test_nutricoach_v140_golden_path_r3.py::test_sentinel_render_produces_positive_scan_and_fails_artifact_verification"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0156-test_nutricoach_v140_golden_path_r3.py.log",
      "output_sha256": "666dc14a28cf89a621b6c0ea8bf07e04fb2c5f7dab060edf6578a33bacdee58b",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutricoach_v140_golden_path_r3.py",
      "test_file_sha256": "17dd6649f4aa30ed0295033d6d19ce3c773849ac9084c193edd925d508c3593f"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0157",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_coaching.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_coaching.py::test_nutrition_startup_rejects_manual_enable_without_committed_receipt",
        "tests/gateway/test_nutrition_coaching.py::test_nutrition_startup_accepts_committed_receipt_and_canonical_path",
        "tests/gateway/test_nutrition_coaching.py::test_nutrition_live_reload_rejects_manual_enable_without_committed_receipt",
        "tests/gateway/test_nutrition_coaching.py::test_nutrition_live_reload_keeps_disable_and_revoke_live",
        "tests/gateway/test_nutrition_coaching.py::test_disabled_customer_is_not_routable",
        "tests/gateway/test_nutrition_coaching.py::test_customer_route_requires_exact_submitter_chat_and_topic",
        "tests/gateway/test_nutrition_coaching.py::test_customer_space_is_reserved_even_for_an_unregistered_sender",
        "tests/gateway/test_nutrition_coaching.py::test_saved_customer_checkin_creates_owner_only_draft_request",
        "tests/gateway/test_nutrition_coaching.py::test_typed_weekly_source_reuses_owner_draft_lifecycle",
        "tests/gateway/test_nutrition_coaching.py::test_urgent_customer_note_notifies_owner_without_draft_token",
        "tests/gateway/test_nutrition_coaching.py::test_gateway_ac21_safety_matrix[SF-S1-C]",
        "tests/gateway/test_nutrition_coaching.py::test_gateway_ac21_safety_matrix[SF-S2-C]",
        "tests/gateway/test_nutrition_coaching.py::test_gateway_ac21_safety_matrix[SF-S3-C]",
        "tests/gateway/test_nutrition_coaching.py::test_gateway_ac21_safety_matrix[SF-S4-C]",
        "tests/gateway/test_nutrition_coaching.py::test_gateway_ac21_safety_matrix[SF-S5-C]",
        "tests/gateway/test_nutrition_coaching.py::test_gateway_ac21_safety_matrix[SF-S6-C]",
        "tests/gateway/test_nutrition_coaching.py::test_safety_completion_is_sent_to_owner_without_draft_button",
        "tests/gateway/test_nutrition_coaching.py::test_due_tick_sends_one_customer_launcher_and_claims_the_day",
        "tests/gateway/test_nutrition_coaching.py::test_weekday_due_tick_sends_customer_launcher",
        "tests/gateway/test_nutrition_coaching.py::test_due_tick_sends_weekly_summary_only_to_owner_during_pilot",
        "tests/gateway/test_nutrition_coaching.py::test_coaching_id_command_reports_only_the_callers_current_address",
        "tests/gateway/test_nutrition_coaching.py::test_delivery_claim_defaults_to_injected_generation_clock",
        "tests/gateway/test_nutrition_coaching.py::test_disposable_controller_issuance_enables_approved_transport",
        "tests/gateway/test_nutrition_coaching.py::test_owner_draft_lifecycle_is_canonical_and_preapproval_send_is_rejected",
        "tests/gateway/test_nutrition_coaching.py::test_corrupt_draft_ledger_blocks_create_without_overwriting_the_file",
        "tests/gateway/test_nutrition_coaching.py::test_trainer_route_is_exactly_isolated_from_customer_and_reserved_spaces",
        "tests/gateway/test_nutrition_coaching.py::test_private_trainer_menu_uses_live_assignment_and_opaque_customer_callback",
        "tests/gateway/test_nutrition_coaching.py::test_private_trainer_selection_rejects_group_and_wrong_trainer",
        "tests/gateway/test_nutrition_coaching.py::test_trainer_launcher_accepts_human_friendly_commands_and_shows_customer_date[\\uc624\\ub298 PT \\uae30\\ub85d]",
        "tests/gateway/test_nutrition_coaching.py::test_trainer_launcher_accepts_human_friendly_commands_and_shows_customer_date[\\uae30\\ub85d \\uc2dc\\uc791]",
        "tests/gateway/test_nutrition_coaching.py::test_trainer_launcher_accepts_human_friendly_commands_and_shows_customer_date[\\ud2b8\\ub808\\uc774\\ub108 \\uae30\\ub85d \\uc2dc\\uc791]",
        "tests/gateway/test_nutrition_coaching.py::test_trainer_launcher_accepts_human_friendly_commands_and_shows_customer_date[\\ud2b8\\ub808\\uc774\\ub108\\uae30\\ub85d\\uc2dc\\uc791]",
        "tests/gateway/test_nutrition_coaching.py::test_trainer_launcher_accepts_human_friendly_commands_and_shows_customer_date[\\uc6b4\\ub3d9 \\uae30\\ub85d \\uc2dc\\uc791]",
        "tests/gateway/test_nutrition_coaching.py::test_trainer_launcher_accepts_human_friendly_commands_and_shows_customer_date[PT \\uae30\\ub85d \\uc2dc\\uc791]",
        "tests/gateway/test_nutrition_coaching.py::test_trainer_launcher_accepts_human_friendly_commands_and_shows_customer_date[\\ud2b8\\ub808\\uc774\\ub108 \\uc138\\uc158 \\uc2dc\\uc791]",
        "tests/gateway/test_nutrition_coaching.py::test_trainer_launcher_accepts_human_friendly_commands_and_shows_customer_date[\\uace0\\uac1d 001 \\uae30\\ub85d \\uc2dc\\uc791]",
        "tests/gateway/test_nutrition_coaching.py::test_trainer_launcher_accepts_human_friendly_commands_and_shows_customer_date[client_001 \\uae30\\ub85d \\uc2dc\\uc791]",
        "tests/gateway/test_nutrition_coaching.py::test_registry_trainer_bridge_opens_scoped_trainer_session",
        "tests/gateway/test_nutrition_coaching.py::test_delivery_intent_is_pending_before_transport_and_retry_never_resends",
        "tests/gateway/test_nutrition_coaching.py::test_delivered_receipt_retries_audit_without_duplicate_transport",
        "tests/gateway/test_nutrition_coaching.py::test_pending_delivery_requires_explicit_receipt_reconciliation",
        "tests/gateway/test_nutrition_coaching.py::test_corrupt_delivery_ledger_fails_closed_without_transport",
        "tests/gateway/test_nutrition_coaching.py::test_approved_edit_creates_child_revision_and_requires_reapproval",
        "tests/gateway/test_nutrition_coaching.py::test_sent_audit_write_failure_leaves_receipt_for_retry_without_resend",
        "tests/gateway/test_nutrition_coaching.py::test_corrupt_request_ledger_blocks_delivery_preparation",
        "tests/gateway/test_nutrition_coaching.py::test_production_console_factory_rejects_unpinned_approval_and_transport",
        "tests/gateway/test_nutrition_coaching.py::test_consent_revocation_is_rechecked_at_draft_lifecycle_boundaries",
        "tests/gateway/test_nutrition_coaching.py::test_safety_hold_on_existing_draft_blocks_delivery_reservation",
        "tests/gateway/test_nutrition_coaching.py::test_approved_revision_and_canonical_evidence_are_required",
        "tests/gateway/test_nutrition_coaching.py::test_concurrent_delivery_reservation_allows_only_one_transport",
        "tests/gateway/test_nutrition_coaching.py::test_telegram_utf16_limit_is_checked_before_coach_review[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-True]",
        "tests/gateway/test_nutrition_coaching.py::test_telegram_utf16_limit_is_checked_before_coach_review[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-False]",
        "tests/gateway/test_nutrition_coaching.py::test_telegram_utf16_limit_is_checked_before_coach_review[\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600-True]",
        "tests/gateway/test_nutrition_coaching.py::test_telegram_utf16_limit_is_checked_before_coach_review[\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600\\U0001f600a-False]",
        "tests/gateway/test_nutrition_coaching.py::test_console_transport_revalidates_after_reservation[consent-revoked]",
        "tests/gateway/test_nutrition_coaching.py::test_console_transport_revalidates_after_reservation[safety-held]",
        "tests/gateway/test_nutrition_coaching.py::test_customer_start_callback_is_stable_opaque_and_telegram_sized",
        "tests/gateway/test_nutrition_coaching.py::test_customer_start_callback_resolves_only_exact_live_customer_route",
        "tests/gateway/test_nutrition_coaching.py::test_manual_customer_aliases_render_one_reusable_card_with_stable_callback",
        "tests/gateway/test_nutrition_coaching.py::test_daily_bodyweight_advances_when_onboarding_authority_is_stale",
        "tests/gateway/test_nutrition_coaching.py::test_scheduled_customer_card_reuses_stable_callback_without_opening_session",
        "tests/gateway/test_nutrition_coaching.py::test_customer_start_callback_click_binds_clicked_card_and_resumes_open_draft",
        "tests/gateway/test_nutrition_coaching.py::test_completed_customer_day_is_terminal_without_new_session_or_event",
        "tests/gateway/test_nutrition_coaching.py::test_weekly_destination_pin_precedes_revision_authority_gate",
        "tests/gateway/test_nutrition_coaching.py::test_adaptive_config_requires_explicit_schedule_confirmation_enablement",
        "tests/gateway/test_nutrition_coaching.py::test_schedule_confirm_integration_gateway_request_replays_one_canonical_and_projection",
        "tests/gateway/test_nutrition_coaching.py::test_schedule_confirm_integration_rejects_stale_reference_and_wrong_review_authority",
        "tests/gateway/test_nutrition_coaching.py::test_approval_continuity_uses_authoritative_customer_body",
        "tests/gateway/test_nutrition_coaching.py::test_approve_and_send_uses_fresh_action_capabilities_and_stops_on_failure",
        "tests/gateway/test_nutrition_coaching.py::test_schedule_confirm_callback_claims_once_and_rejects_invalid_authority",
        "tests/gateway/test_nutrition_coaching.py::test_schedule_confirm_replay_recovers_after_consume_before_confirm_crash",
        "tests/gateway/test_nutrition_coaching.py::test_dual_coach_review_cards_are_customer_local_and_deterministic",
        "tests/gateway/test_nutrition_coaching.py::test_dual_coach_review_journal_failure_returns_bounded_operator_diagnostic",
        "tests/gateway/test_nutrition_coaching.py::test_dual_coach_review_publication_claim_is_append_only_across_restart"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0157-test_nutrition_coaching.py.log",
      "output_sha256": "486b3219c89e258c41bf4ece911b5abbbd4b98d3ceb7d5dd953d480a6bee28aa",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_coaching.py",
      "test_file_sha256": "6a9ab280bc351b2f25a30d3dcccd4fc788d1d5f4c16d52bbd075a2d4384c0033"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0158",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_dispatcher.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_dispatcher.py::test_authorized_tick_dispatches_enabled_weekly_operations_before_generic_work"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0158-test_nutrition_weekly_dispatcher.py.log",
      "output_sha256": "0b0ba942e5ac1b414c0b947d852b18128e018d0bb080174ee487b3b78c1f4b30",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_dispatcher.py",
      "test_file_sha256": "eabf7e1fa1fb83a14d84ccd3555fc51c57fa468e6d51b29c67a3f4621eec30f6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0159",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_dispatcher_epoch2.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_dispatcher_epoch2.py::test_absent_sunday_daily_task_retains_legacy_weekday_guard",
        "tests/gateway/test_nutrition_weekly_dispatcher_epoch2.py::test_absent_schedule_policy_imports_zero_weekly_modules",
        "tests/gateway/test_nutrition_weekly_dispatcher_epoch2.py::test_reminder_config_off_after_snapshot_blocks_provider",
        "tests/gateway/test_nutrition_weekly_dispatcher_epoch2.py::test_reminder_mutable_authority_drift_blocks_provider[candidate]",
        "tests/gateway/test_nutrition_weekly_dispatcher_epoch2.py::test_reminder_mutable_authority_drift_blocks_provider[config]",
        "tests/gateway/test_nutrition_weekly_dispatcher_epoch2.py::test_reminder_mutable_authority_drift_blocks_provider[authority_owner]",
        "tests/gateway/test_nutrition_weekly_dispatcher_epoch2.py::test_reminder_mutable_authority_drift_blocks_provider[route]",
        "tests/gateway/test_nutrition_weekly_dispatcher_epoch2.py::test_reminder_mutable_authority_drift_blocks_provider[consent]",
        "tests/gateway/test_nutrition_weekly_dispatcher_epoch2.py::test_reminder_provider_outcome_is_terminal_on_real_host_replay[ProviderMode.KNOWN]",
        "tests/gateway/test_nutrition_weekly_dispatcher_epoch2.py::test_reminder_provider_outcome_is_terminal_on_real_host_replay[ProviderMode.UNKNOWN]",
        "tests/gateway/test_nutrition_weekly_dispatcher_epoch2.py::test_feature_absent_authorized_host_is_inert"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0159-test_nutrition_weekly_dispatcher_epoch2.py.log",
      "output_sha256": "dd414d17cedca18be3c5074a3022c3d913ef8fdd3df33310ed0b7d2093d7a6d3",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_dispatcher_epoch2.py",
      "test_file_sha256": "ea943f130b7c923e678eb8066ae20c01997fb124d9351d92f96be45b9b3032d8"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0160",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_dispatcher_host_matrix.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_dispatcher_host_matrix.py::test_corrupt_reminder_ledger_fails_before_every_provider_and_projection",
        "tests/gateway/test_nutrition_weekly_dispatcher_host_matrix.py::test_corrupt_topic59_ledger_retains_cutoff_but_blocks_card_provider",
        "tests/gateway/test_nutrition_weekly_dispatcher_host_matrix.py::test_canonical_sidecar_disagreement_fails_with_exact_zero_new_counts",
        "tests/gateway/test_nutrition_weekly_dispatcher_host_matrix.py::test_response_race_at_pre_io_rebind_makes_valid_status_win",
        "tests/gateway/test_nutrition_weekly_dispatcher_host_matrix.py::test_monday_draft_is_owner_dm_only_and_topic59_has_no_approval_controls"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0160-test_nutrition_weekly_dispatcher_host_matrix.py.log",
      "output_sha256": "101000a9f3526ad2b43929f1184993d2da4117cc499eb2d142824c3f9547520d",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_dispatcher_host_matrix.py",
      "test_file_sha256": "a50d4046ffe5236f750ef4237ef8068657a282dbe250c05192c876c4911c6abc"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0161",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_dispatcher_lifecycle.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_dispatcher_lifecycle.py::test_real_authorized_tick_projects_cutoff_once_across_restart",
        "tests/gateway/test_nutrition_weekly_dispatcher_lifecycle.py::test_toggle_off_after_snapshot_blocks_topic59_provider",
        "tests/gateway/test_nutrition_weekly_dispatcher_lifecycle.py::test_wrong_topic_fails_planning_without_sidecar_or_provider",
        "tests/gateway/test_nutrition_weekly_dispatcher_lifecycle.py::test_concurrent_ticks_share_one_topic59_provider_authority[asyncio]"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0161-test_nutrition_weekly_dispatcher_lifecycle.py.log",
      "output_sha256": "c38eede4ad799ce34bed46a249b424a9cd6001346ce4508183c394d638dc5a39",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_dispatcher_lifecycle.py",
      "test_file_sha256": "3d6ee37a07af84f78e32bb4073641585b38647e98b6150e95c82e7e802b0f595"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0162",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_host_refactor.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_host_refactor.py::test_weekly_owner_host_module_owns_weekly_lifecycle"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0162-test_nutrition_weekly_host_refactor.py.log",
      "output_sha256": "f0b5f122539821704fb1c652b43361c40daa48f9e96f5f79606d5e37217bec36",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_host_refactor.py",
      "test_file_sha256": "0164c984065527a53183f196fdeff16dda3b3ad8a7effd38d754c60e56ea9e69"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0163",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_operations.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_operations.py::test_baseline_schedule_is_unchanged_when_weekly_operations_is_absent",
        "tests/gateway/test_nutrition_weekly_operations.py::test_config_defaults_off_with_stable_kst_schedule_when_absent",
        "tests/gateway/test_nutrition_weekly_operations.py::test_config_binds_only_the_existing_topic_59_review_route",
        "tests/gateway/test_nutrition_weekly_operations.py::test_config_rejects_missing_naive_and_absolute_recurring_times[reminder_time-None]",
        "tests/gateway/test_nutrition_weekly_operations.py::test_config_rejects_missing_naive_and_absolute_recurring_times[reminder_time-20:00]",
        "tests/gateway/test_nutrition_weekly_operations.py::test_config_rejects_missing_naive_and_absolute_recurring_times[reminder_time-20:00+00:00]",
        "tests/gateway/test_nutrition_weekly_operations.py::test_config_rejects_missing_naive_and_absolute_recurring_times[missed_cutoff_time-2026-08-24T23:00:00+09:00]",
        "tests/gateway/test_nutrition_weekly_operations.py::test_config_rejects_reminder_at_or_after_cutoff_and_wrong_route",
        "tests/gateway/test_nutrition_weekly_operations.py::test_config_authority_requires_compiled_configured_authorized_and_consented",
        "tests/gateway/test_nutrition_weekly_operations.py::test_config_authority_fails_closed_for_every_binding[candidate_digest-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc]",
        "tests/gateway/test_nutrition_weekly_operations.py::test_config_authority_fails_closed_for_every_binding[config_digest-dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd]",
        "tests/gateway/test_nutrition_weekly_operations.py::test_config_authority_fails_closed_for_every_binding[enabled_customer_keys-value2]",
        "tests/gateway/test_nutrition_weekly_operations.py::test_config_authority_fails_closed_for_every_binding[owner-value3]",
        "tests/gateway/test_nutrition_weekly_operations.py::test_config_authority_fails_closed_for_every_binding[owner-value4]",
        "tests/gateway/test_nutrition_weekly_operations.py::test_config_authority_fails_closed_for_every_binding[consent_digest-eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee]",
        "tests/gateway/test_nutrition_weekly_operations.py::test_config_authority_fails_closed_for_every_binding[feature_epoch-weekly-operations-v2]",
        "tests/gateway/test_nutrition_weekly_operations.py::test_config_authority_rejects_stale_and_expired_receipts[2026-08-24T00:45:00+09:00-2026-08-24T01:45:00+09:00]",
        "tests/gateway/test_nutrition_weekly_operations.py::test_config_authority_rejects_stale_and_expired_receipts[2026-08-23T23:00:00+09:00-2026-08-24T00:00:00+09:00]",
        "tests/gateway/test_nutrition_weekly_operations.py::test_config_authority_rejects_missing_or_naive_issue_expiry",
        "tests/gateway/test_nutrition_weekly_operations.py::test_enabled_authority_requires_sealed_registry_identity",
        "tests/gateway/test_nutrition_weekly_operations.py::test_authority_integrity_digest_binds_registry_identity_stably",
        "tests/gateway/test_nutrition_weekly_operations.py::test_enabled_config_requires_registry_identity_binding_digest"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0163-test_nutrition_weekly_operations.py.log",
      "output_sha256": "982b5a2d457303c38d95086bb4781ea069ecb35db4745f5663547ba204afd3c5",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_operations.py",
      "test_file_sha256": "134ac8a3d0326507c20c52f47d456cb1040f29f8fe2845a0867f5690355cab54"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0164",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_operations_registry_identity_r7.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_operations_registry_identity_r7.py::test_identity_is_issued_from_exact_private_no_follow_inode",
        "tests/gateway/test_nutrition_weekly_operations_registry_identity_r7.py::test_identity_issuance_rejects_unsafe_registry_name[symlink]",
        "tests/gateway/test_nutrition_weekly_operations_registry_identity_r7.py::test_identity_issuance_rejects_unsafe_registry_name[hardlink]",
        "tests/gateway/test_nutrition_weekly_operations_registry_identity_r7.py::test_identity_issuance_rejects_unsafe_registry_name[mode]",
        "tests/gateway/test_nutrition_weekly_operations_registry_identity_r7.py::test_identity_issuance_rejects_unsafe_registry_name[fifo]",
        "tests/gateway/test_nutrition_weekly_operations_registry_identity_r7.py::test_gateway_registry_boundary_exposes_no_runtime_issuer"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0164-test_nutrition_weekly_operations_registry_identity_r7.py.log",
      "output_sha256": "cde2870bd2d11068836a77f7a9a7c27f01ef731f922c89a2391c6ba131b2e8b6",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_operations_registry_identity_r7.py",
      "test_file_sha256": "114f649db73940a6d153f5c3e78165cfc65672e59beb42259e6fa89f889a8162"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0165",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_operations_topic59.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_operations_topic59.py::test_topic59_projector_exposes_one_customer_day_publication_binding",
        "tests/gateway/test_nutrition_weekly_operations_topic59.py::test_seven_kst_days_create_seven_logical_cards",
        "tests/gateway/test_nutrition_weekly_operations_topic59.py::test_missed_to_late_submitted_edits_the_persisted_message",
        "tests/gateway/test_nutrition_weekly_operations_topic59.py::test_restart_and_duplicate_tick_do_not_repeat_a_send",
        "tests/gateway/test_nutrition_weekly_operations_topic59.py::test_rendered_and_durable_payloads_match_the_machine_whitelist",
        "tests/gateway/test_nutrition_weekly_operations_topic59.py::test_sidecar_extra_health_fields_cannot_cross_the_topic59_whitelist"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0165-test_nutrition_weekly_operations_topic59.py.log",
      "output_sha256": "b833e9cfa53ae8da245494a723c26b2dc7e7dea4e50250cc73eed4bc1e26cf9e",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_operations_topic59.py",
      "test_file_sha256": "3b54e2058086a5516525843e44d840dc181903814f25d5d0118c93af6759be2c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0166",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_operations_topic59_failures.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_operations_topic59_failures.py::test_wrong_topic_is_rejected_before_the_projector_can_call_a_provider",
        "tests/gateway/test_nutrition_weekly_operations_topic59_failures.py::test_wrong_user_chat_config_or_authority_make_zero_provider_calls",
        "tests/gateway/test_nutrition_weekly_operations_topic59_failures.py::test_unknown_and_known_send_outcomes_are_terminal_without_replacement",
        "tests/gateway/test_nutrition_weekly_operations_topic59_failures.py::test_unknown_and_known_edit_outcomes_are_terminal_without_replacement",
        "tests/gateway/test_nutrition_weekly_operations_topic59_failures.py::test_unresolved_reservation_is_an_incident_not_a_blind_new_send",
        "tests/gateway/test_nutrition_weekly_operations_topic59_failures.py::test_corrupt_ledger_becomes_an_incident_without_a_provider_call",
        "tests/gateway/test_nutrition_weekly_operations_topic59_failures.py::test_malformed_sidecar_is_rejected_before_a_provider_call"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0166-test_nutrition_weekly_operations_topic59_failures.py.log",
      "output_sha256": "81614cafd04ace29a3cc663a1aad03c57afcc7ce6621cfed212a89fd907fe057",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_operations_topic59_failures.py",
      "test_file_sha256": "0e3570a667adcceea3099910550dce888daccc556a466b8c40c8af75a122697c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0167",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_operations_topic59_r2.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_operations_topic59_r2.py::test_all_raw_sidecar_sentinels_are_absent_from_every_topic59_surface",
        "tests/gateway/test_nutrition_weekly_operations_topic59_r2.py::test_opaque_ids_are_deterministic_nonreversible_and_value_validation_is_exhaustive"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0167-test_nutrition_weekly_operations_topic59_r2.py.log",
      "output_sha256": "17bc5d7f50327a7c949f9c0d6b5d2fc841d81215700464ef745e94ea2fc558f5",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_operations_topic59_r2.py",
      "test_file_sha256": "1eb4967c527c310d3a0333973cf911e48513afc06dc79793a75f2db051e7994e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0168",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_operations_topic59_r2_slots.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_operations_topic59_r2_slots.py::test_candidate_config_and_route_drift_are_terminal_slot_incidents",
        "tests/gateway/test_nutrition_weekly_operations_topic59_r2_slots.py::test_malformed_stored_slot_is_an_incident_without_provider_replacement",
        "tests/gateway/test_nutrition_weekly_operations_topic59_r2_slots.py::test_concurrent_differing_pins_preserve_one_slot_and_one_initial_send"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0168-test_nutrition_weekly_operations_topic59_r2_slots.py.log",
      "output_sha256": "ca94122e1aa921c8cfc5e02340afd2f13e41a1458786aa1a10278955d552ea2b",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_operations_topic59_r2_slots.py",
      "test_file_sha256": "1d87c3f528f2af12b143e0b31958f7d54ebc6e71113294b53dfe31c270eaec30"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0169",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_operations_topic59_telegram.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_operations_topic59_telegram.py::test_real_adapter_uses_strict_topic59_send_then_edits_the_persisted_message"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0169-test_nutrition_weekly_operations_topic59_telegram.py.log",
      "output_sha256": "e6feadf49eefbf593eed369bf0527f50a8b4cc087879270a0fb34e9460a92150",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_operations_topic59_telegram.py",
      "test_file_sha256": "358d9365895c4f7caddf0104d47f734ccf78b00eab094f527574423b51f6090d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0170",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_owner_draft.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_owner_draft.py::test_concurrent_restart_owner_edit_and_approval_use_one_generation",
        "tests/gateway/test_nutrition_weekly_owner_draft.py::test_direct_tampered_source_fails_before_draft_mutation"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0170-test_nutrition_weekly_owner_draft.py.log",
      "output_sha256": "18ba35eb8808d1d667c93a29f1257cf5a1ad3b38468ce135ce5fedbc10c9678c",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_owner_draft.py",
      "test_file_sha256": "db3b57ddd0e9d331bc83cecf55c438399211707ab6c0aa507e3d968c4b9d37c9"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0171",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_owner_draft_authority.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_owner_draft_authority.py::test_wrong_authority_and_stale_grounding_fail_before_provider[day]",
        "tests/gateway/test_nutrition_weekly_owner_draft_authority.py::test_wrong_authority_and_stale_grounding_fail_before_provider[owner]",
        "tests/gateway/test_nutrition_weekly_owner_draft_authority.py::test_wrong_authority_and_stale_grounding_fail_before_provider[consent]",
        "tests/gateway/test_nutrition_weekly_owner_draft_authority.py::test_wrong_authority_and_stale_grounding_fail_before_provider[candidate]",
        "tests/gateway/test_nutrition_weekly_owner_draft_authority.py::test_wrong_authority_and_stale_grounding_fail_before_provider[customer]",
        "tests/gateway/test_nutrition_weekly_owner_draft_authority.py::test_wrong_authority_and_stale_grounding_fail_before_provider[stale]"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0171-test_nutrition_weekly_owner_draft_authority.py.log",
      "output_sha256": "1e79e2ccf1d08ce2052c80d925a8a1388d363482d155e6950b2bdf6d6f0b8096",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_owner_draft_authority.py",
      "test_file_sha256": "4b8852b108c80157de2edb9c40d4c7ed0cbb90e264adaab21ebca8ceaa6d67a5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0172",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_owner_draft_model.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_owner_draft_model.py::test_valid_replay_has_one_total_provider_call_and_private_ledger",
        "tests/gateway/test_nutrition_weekly_owner_draft_model.py::test_invalid_first_uses_one_correction_and_never_a_third_call",
        "tests/gateway/test_nutrition_weekly_owner_draft_model.py::test_outage_and_two_invalid_results_use_deterministic_fallback[outcome0]",
        "tests/gateway/test_nutrition_weekly_owner_draft_model.py::test_outage_and_two_invalid_results_use_deterministic_fallback[outcome1]",
        "tests/gateway/test_nutrition_weekly_owner_draft_model.py::test_outage_and_two_invalid_results_use_deterministic_fallback[outcome2]",
        "tests/gateway/test_nutrition_weekly_owner_draft_model.py::test_outage_and_two_invalid_results_use_deterministic_fallback[outcome3]",
        "tests/gateway/test_nutrition_weekly_owner_draft_model.py::test_outage_and_two_invalid_results_use_deterministic_fallback[outcome4]",
        "tests/gateway/test_nutrition_weekly_owner_draft_model.py::test_provider_request_ledger_source_and_draft_exclude_all_sentinels",
        "tests/gateway/test_nutrition_weekly_owner_draft_model.py::test_interrupted_sending_is_terminal_fallback_without_provider_retry",
        "tests/gateway/test_nutrition_weekly_owner_draft_model.py::test_tampered_source_and_ledger_corruption_fail_closed"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0172-test_nutrition_weekly_owner_draft_model.py.log",
      "output_sha256": "8723459befe4774a64d588fbcf32474c18653ee155e33a1ce0f183fb9edca8c9",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_owner_draft_model.py",
      "test_file_sha256": "d7ba31af679c38103a0a42df388f92f6ea1f670b1f2f21aa30a900a51da3635b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0173",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_owner_draft_r3.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_fact_model_copy_rejects_arbitrary_finite_field_even_with_digest[RAW-MEAL]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_fact_model_copy_rejects_arbitrary_finite_field_even_with_digest[RAW-SYMPTOM]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_fact_model_copy_rejects_arbitrary_finite_field_even_with_digest[RAW-FREE-TEXT]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_fact_model_copy_rejects_arbitrary_finite_field_even_with_digest[RAW-HEALTH]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_fact_model_copy_rejects_arbitrary_finite_field_even_with_digest[CUSTOMER-NAME]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_fact_model_copy_rejects_arbitrary_finite_field_even_with_digest[CUSTOMER-KEY]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_fact_model_copy_rejects_arbitrary_finite_field_even_with_digest[TELEGRAM-USER]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_fact_model_copy_rejects_arbitrary_finite_field_even_with_digest[TELEGRAM-CHAT]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_fact_model_copy_rejects_arbitrary_finite_field_even_with_digest[WEIGHT-RAW]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_fact_model_copy_rejects_arbitrary_finite_field_even_with_digest[CALORIE-RAW]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_fact_model_copy_rejects_arbitrary_finite_field_even_with_digest[DIGESTION-RAW]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_unverified_direct_knowledge_never_reaches_provider_request[RAW-MEAL]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_unverified_direct_knowledge_never_reaches_provider_request[RAW-SYMPTOM]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_unverified_direct_knowledge_never_reaches_provider_request[RAW-FREE-TEXT]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_unverified_direct_knowledge_never_reaches_provider_request[RAW-HEALTH]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_unverified_direct_knowledge_never_reaches_provider_request[CUSTOMER-NAME]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_unverified_direct_knowledge_never_reaches_provider_request[CUSTOMER-KEY]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_unverified_direct_knowledge_never_reaches_provider_request[TELEGRAM-USER]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_unverified_direct_knowledge_never_reaches_provider_request[TELEGRAM-CHAT]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_unverified_direct_knowledge_never_reaches_provider_request[WEIGHT-RAW]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_unverified_direct_knowledge_never_reaches_provider_request[CALORIE-RAW]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_unverified_direct_knowledge_never_reaches_provider_request[DIGESTION-RAW]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_unknown_initial_is_terminal_across_restart_and_concurrency",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_unknown_correction_is_terminal_without_third_call",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_current_todo7_authority_is_final_fenced_before_draft_persistence",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_self_hashed_forged_bound_row_is_typed_request_conflict[_forge_customer]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_self_hashed_forged_bound_row_is_typed_request_conflict[_forge_week]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_self_hashed_forged_bound_row_is_typed_request_conflict[_forge_route]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_self_hashed_forged_bound_row_is_typed_request_conflict[_forge_aggregate]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_self_hashed_forged_bound_row_is_typed_request_conflict[_forge_source]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_self_hashed_forged_bound_row_is_typed_request_conflict[_forge_request]",
        "tests/gateway/test_nutrition_weekly_owner_draft_r3.py::test_cross_root_request_and_inode_swap_fail_before_provider"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0173-test_nutrition_weekly_owner_draft_r3.py.log",
      "output_sha256": "51e96242ed27e5cacb987ffb69e141e8464a92abed17a7adafcba53aee06197e",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_owner_draft_r3.py",
      "test_file_sha256": "a32d880763901023eec44b6f680ac18f5eab5c0895b73691f62ed300d53490c2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0174",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_allocation_r10.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_reminder_allocation_r10.py::test_bootstrap_allocating_factories_require_registrar_and_no_post_return_adopt",
        "tests/gateway/test_nutrition_weekly_reminder_allocation_r10.py::test_success_allocation_deltas_and_idempotent_reverse_close",
        "tests/gateway/test_nutrition_weekly_reminder_allocation_r10.py::test_every_executed_allocation_factory_line_unwinds_exactly"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0174-test_nutrition_weekly_reminder_allocation_r10.py.log",
      "output_sha256": "0947f734c1f6761aff61c3f4a76fcfddc1add15f35415fa48a07b6a3cdc07dbf",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_allocation_r10.py",
      "test_file_sha256": "5f0e13ffc5970aca8a1542058bc0df6757e77e4cd2d90b2fa4de13dc9eed1ce9"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0175",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_bootstrap_boundary_r7.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_reminder_bootstrap_boundary_r7.py::test_default_bootstrap_rejects_unsealed_registry_attachment[symlink_identical]",
        "tests/gateway/test_nutrition_weekly_reminder_bootstrap_boundary_r7.py::test_default_bootstrap_rejects_unsealed_registry_attachment[inode_identical]",
        "tests/gateway/test_nutrition_weekly_reminder_bootstrap_boundary_r7.py::test_default_bootstrap_rejects_unsealed_registry_attachment[route_replacement]",
        "tests/gateway/test_nutrition_weekly_reminder_bootstrap_boundary_r7.py::test_default_bootstrap_rejects_unsealed_registry_attachment[hardlink_replacement]",
        "tests/gateway/test_nutrition_weekly_reminder_bootstrap_boundary_r7.py::test_default_bootstrap_rejects_unsealed_registry_attachment[fifo]",
        "tests/gateway/test_nutrition_weekly_reminder_bootstrap_boundary_r7.py::test_default_bootstrap_rejects_unsealed_registry_attachment[directory]",
        "tests/gateway/test_nutrition_weekly_reminder_bootstrap_boundary_r7.py::test_default_bootstrap_rejects_unsealed_registry_attachment[mode]",
        "tests/gateway/test_nutrition_weekly_reminder_bootstrap_boundary_r7.py::test_default_bootstrap_rejects_unsealed_registry_attachment[link_count]"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0175-test_nutrition_weekly_reminder_bootstrap_boundary_r7.py.log",
      "output_sha256": "9b7ca9d4201ca73c139538eaeca5afcedb9961c9e7cbaf4267f1175e4bc1f3ed",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_bootstrap_boundary_r7.py",
      "test_file_sha256": "ceca79d563c4a33a8b67f8adcb34abd2c249dc7b1a3397b41e3e6a0181a2be64"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0176",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_bootstrap_r6.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_reminder_bootstrap_r6.py::test_default_adapter_bootstrap_opens_existing_capabilities_and_sends_once",
        "tests/gateway/test_nutrition_weekly_reminder_bootstrap_r6.py::test_default_adapter_bootstrap_fails_typed_before_provider_call[missing]",
        "tests/gateway/test_nutrition_weekly_reminder_bootstrap_r6.py::test_default_adapter_bootstrap_fails_typed_before_provider_call[stale]",
        "tests/gateway/test_nutrition_weekly_reminder_bootstrap_r6.py::test_default_adapter_off_is_inert_without_profile_root"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0176-test_nutrition_weekly_reminder_bootstrap_r6.py.log",
      "output_sha256": "78887096eb291774e148c4fdb062addcf1b99b6faba70c5a84352d48e51abc69",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_bootstrap_r6.py",
      "test_file_sha256": "40a6b457d921a1be3eb9995313d777478a4807907c2f498f91f2073ed612c1c0"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0177",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_bootstrap_race_r7.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_reminder_bootstrap_race_r7.py::test_registry_swap_during_bootstrap_fails_after_retained_fd_recheck[1]",
        "tests/gateway/test_nutrition_weekly_reminder_bootstrap_race_r7.py::test_registry_swap_during_bootstrap_fails_after_retained_fd_recheck[2]"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0177-test_nutrition_weekly_reminder_bootstrap_race_r7.py.log",
      "output_sha256": "0013e6925ea1d3594f5b06759ac221ecf6af9c123f73abdc4af13be34570d83f",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_bootstrap_race_r7.py",
      "test_file_sha256": "99087c0db25473559bd4cb4deb9cce01fe2e46e29a9845d24407c4903a5d64d3"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0178",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_boundaries.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_reminder_boundaries.py::test_enabled_missing_external_schedule_policy_is_typed_incident",
        "tests/gateway/test_nutrition_weekly_reminder_boundaries.py::test_invalid_owner_protocol_is_typed_before_provider"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0178-test_nutrition_weekly_reminder_boundaries.py.log",
      "output_sha256": "3d3814c8fb9952193bb03f1a5496ef4ada78e05f0a69ba33523b723d206ec205",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_boundaries.py",
      "test_file_sha256": "22bd9d494c3717526ec671006dad366a6b9923c2b74702a402f4188874791ebc"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0179",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_close_r11.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_reminder_close_r11.py::test_every_owned_fd_close_line_and_opcode_boundary_is_safe",
        "tests/gateway/test_nutrition_weekly_reminder_close_r11.py::test_repeated_interruptions_preserve_the_first_pending_exception",
        "tests/gateway/test_nutrition_weekly_reminder_close_r11.py::test_concurrent_registrar_close_cannot_hit_reused_descriptor"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0179-test_nutrition_weekly_reminder_close_r11.py.log",
      "output_sha256": "e34a0d6ed873b1409639455fd5bbece50bb8522ead5d477b6d7a1c3e3810b4b3",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_close_r11.py",
      "test_file_sha256": "f54e2691b9c65f22414c6fe2a737dcc58b744d9a743e4d76da042e2409b31646"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0180",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_ownership_r8.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_reminder_ownership_r8.py::test_successful_adapter_close_restores_exact_fd_baseline",
        "tests/gateway/test_nutrition_weekly_reminder_ownership_r8.py::test_second_customer_failure_closes_every_partial_capability[1]",
        "tests/gateway/test_nutrition_weekly_reminder_ownership_r8.py::test_second_customer_failure_closes_every_partial_capability[2]",
        "tests/gateway/test_nutrition_weekly_reminder_ownership_r8.py::test_owner_construction_failure_closes_transferred_capabilities",
        "tests/gateway/test_nutrition_weekly_reminder_ownership_r8.py::test_interruption_after_customer_construction_unwinds_exact_fds[KeyboardInterrupt]",
        "tests/gateway/test_nutrition_weekly_reminder_ownership_r8.py::test_interruption_after_customer_construction_unwinds_exact_fds[SystemExit]"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0180-test_nutrition_weekly_reminder_ownership_r8.py.log",
      "output_sha256": "d90ae867d85ed4e29c145f065c45b04c1ca654584a98a497e7b37a3875329ce1",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_ownership_r8.py",
      "test_file_sha256": "39de693edfb918e4d61ac9e49d0bd271a2936ea0f599c95bc8e111ce99e45135"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0181",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_runtime.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_reminder_runtime.py::test_registered_owner_drives_reminder_and_cutoff",
        "tests/gateway/test_nutrition_weekly_reminder_runtime.py::test_registry_route_drift_twice_is_zero_call_one_incident",
        "tests/gateway/test_nutrition_weekly_reminder_runtime.py::test_merged_coordinator_constructs_reminder_owner_beside_todo8",
        "tests/gateway/test_nutrition_weekly_reminder_runtime.py::test_merged_coordinator_off_remains_typed_and_inert",
        "tests/gateway/test_nutrition_weekly_reminder_runtime.py::test_merged_coordinator_rejects_missing_or_stale_owner_zero_call[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]",
        "tests/gateway/test_nutrition_weekly_reminder_runtime.py::test_merged_coordinator_rejects_missing_or_stale_owner_zero_call[ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff]"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0181-test_nutrition_weekly_reminder_runtime.py.log",
      "output_sha256": "a64725c00a6f3022a2c31679160f5acda5e4a7e2e5a2ada94b2035127221fef7",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_runtime.py",
      "test_file_sha256": "dbfb75fcfc0d3ee83245a72ab4c753d9f8001ed9c1d97d287f7f7a318e4e1266"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0182",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_threat_boundary_r8.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_reminder_threat_boundary_r8.py::test_runtime_exposes_no_registry_or_receipt_issuer",
        "tests/gateway/test_nutrition_weekly_reminder_threat_boundary_r8.py::test_operator_input_is_captured_once_and_candidate_fields_are_exact",
        "tests/gateway/test_nutrition_weekly_reminder_threat_boundary_r8.py::test_simultaneous_trusted_source_rewrite_is_explicitly_out_of_scope",
        "tests/gateway/test_nutrition_weekly_reminder_threat_boundary_r8.py::test_operator_snapshot_drift_after_customer_construction_closes_all_fds[1]",
        "tests/gateway/test_nutrition_weekly_reminder_threat_boundary_r8.py::test_operator_snapshot_drift_after_customer_construction_closes_all_fds[2]",
        "tests/gateway/test_nutrition_weekly_reminder_threat_boundary_r8.py::test_enabled_bootstrap_requires_operator_authority_source_before_profile_open"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0182-test_nutrition_weekly_reminder_threat_boundary_r8.py.log",
      "output_sha256": "f9f0aa5a64424bf3576730bc1535a676103bed14979b35c7986f2c0ceaddfa8d",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_threat_boundary_r8.py",
      "test_file_sha256": "0543552f82503cf4a5bfcebce63bebf532daf564c38d25a3a9ee9d20f8327dfa"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0183",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py"
      ],
      "nodeids": [
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-KeyboardInterrupt-nutricoach.weekly_reminder.last_child_entered_inner_stack]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-KeyboardInterrupt-nutricoach.weekly_reminder.owned_container_before_construction]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-KeyboardInterrupt-nutricoach.weekly_reminder.owned_container_after_construction]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-KeyboardInterrupt-nutricoach.weekly_reminder.owned_container_return_boundary]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-KeyboardInterrupt-nutricoach.weekly_reminder.caller_received_before_outer_enter]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-KeyboardInterrupt-nutricoach.weekly_reminder.after_outer_enter]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-KeyboardInterrupt-nutricoach.weekly_reminder.before_adapter_attribute_assignment]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-KeyboardInterrupt-nutricoach.weekly_reminder.after_adapter_attribute_assignment]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-KeyboardInterrupt-nutricoach.weekly_reminder.before_outer_pop]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-KeyboardInterrupt-nutricoach.weekly_reminder.after_outer_pop]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-SystemExit-nutricoach.weekly_reminder.last_child_entered_inner_stack]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-SystemExit-nutricoach.weekly_reminder.owned_container_before_construction]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-SystemExit-nutricoach.weekly_reminder.owned_container_after_construction]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-SystemExit-nutricoach.weekly_reminder.owned_container_return_boundary]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-SystemExit-nutricoach.weekly_reminder.caller_received_before_outer_enter]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-SystemExit-nutricoach.weekly_reminder.after_outer_enter]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-SystemExit-nutricoach.weekly_reminder.before_adapter_attribute_assignment]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-SystemExit-nutricoach.weekly_reminder.after_adapter_attribute_assignment]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-SystemExit-nutricoach.weekly_reminder.before_outer_pop]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[1-SystemExit-nutricoach.weekly_reminder.after_outer_pop]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-KeyboardInterrupt-nutricoach.weekly_reminder.last_child_entered_inner_stack]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-KeyboardInterrupt-nutricoach.weekly_reminder.owned_container_before_construction]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-KeyboardInterrupt-nutricoach.weekly_reminder.owned_container_after_construction]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-KeyboardInterrupt-nutricoach.weekly_reminder.owned_container_return_boundary]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-KeyboardInterrupt-nutricoach.weekly_reminder.caller_received_before_outer_enter]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-KeyboardInterrupt-nutricoach.weekly_reminder.after_outer_enter]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-KeyboardInterrupt-nutricoach.weekly_reminder.before_adapter_attribute_assignment]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-KeyboardInterrupt-nutricoach.weekly_reminder.after_adapter_attribute_assignment]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-KeyboardInterrupt-nutricoach.weekly_reminder.before_outer_pop]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-KeyboardInterrupt-nutricoach.weekly_reminder.after_outer_pop]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-SystemExit-nutricoach.weekly_reminder.last_child_entered_inner_stack]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-SystemExit-nutricoach.weekly_reminder.owned_container_before_construction]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-SystemExit-nutricoach.weekly_reminder.owned_container_after_construction]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-SystemExit-nutricoach.weekly_reminder.owned_container_return_boundary]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-SystemExit-nutricoach.weekly_reminder.caller_received_before_outer_enter]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-SystemExit-nutricoach.weekly_reminder.after_outer_enter]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-SystemExit-nutricoach.weekly_reminder.before_adapter_attribute_assignment]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-SystemExit-nutricoach.weekly_reminder.after_adapter_attribute_assignment]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-SystemExit-nutricoach.weekly_reminder.before_outer_pop]",
        "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py::test_every_transfer_seam_unwinds_without_one_fd_leak[2-SystemExit-nutricoach.weekly_reminder.after_outer_pop]"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0183-test_nutrition_weekly_reminder_transfer_r9.py.log",
      "output_sha256": "df32712aa587bf734bd890f02c92b5e0c90bfde0a6d137aacad3b473d616d426",
      "returncode": 0,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py",
      "test_file_sha256": "6488fd5ff13c72ab8e30cf321d9de057a3c66093f68afbc999374e365c3acb5b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0184",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_pairing.py"
      ],
      "nodeids": [
        "tests/gateway/test_pairing.py::TestSecureWrite::test_creates_parent_dirs",
        "tests/gateway/test_pairing.py::TestSecureWrite::test_sets_file_permissions",
        "tests/gateway/test_pairing.py::TestCodeGeneration::test_code_format",
        "tests/gateway/test_pairing.py::TestCodeGeneration::test_code_uniqueness",
        "tests/gateway/test_pairing.py::TestCodeGeneration::test_stores_pending_entry",
        "tests/gateway/test_pairing.py::TestHashedStorage::test_pending_file_contains_hash_and_salt",
        "tests/gateway/test_pairing.py::TestHashedStorage::test_plaintext_code_not_stored",
        "tests/gateway/test_pairing.py::TestHashedStorage::test_valid_code_verifies_against_hash",
        "tests/gateway/test_pairing.py::TestHashedStorage::test_invalid_code_rejected",
        "tests/gateway/test_pairing.py::TestHashedStorage::test_different_salts_per_entry",
        "tests/gateway/test_pairing.py::TestHashedStorage::test_hash_code_static_method",
        "tests/gateway/test_pairing.py::TestLegacyPendingFileCompat::test_approve_code_ignores_legacy_entries",
        "tests/gateway/test_pairing.py::TestLegacyPendingFileCompat::test_list_pending_handles_legacy_entries",
        "tests/gateway/test_pairing.py::TestLegacyPendingFileCompat::test_cleanup_expired_removes_legacy_at_ttl",
        "tests/gateway/test_pairing.py::TestLegacyPendingFileCompat::test_cleanup_expired_handles_malformed_entries",
        "tests/gateway/test_pairing.py::TestLegacyPendingFileCompat::test_approve_code_skips_malformed_entries",
        "tests/gateway/test_pairing.py::TestRateLimiting::test_same_user_rate_limited",
        "tests/gateway/test_pairing.py::TestRateLimiting::test_different_users_not_rate_limited",
        "tests/gateway/test_pairing.py::TestRateLimiting::test_rate_limit_expires",
        "tests/gateway/test_pairing.py::TestRateLimiting::test_whatsapp_alias_flip_hits_same_rate_limit",
        "tests/gateway/test_pairing.py::TestMaxPending::test_max_pending_per_platform",
        "tests/gateway/test_pairing.py::TestMaxPending::test_different_platforms_independent",
        "tests/gateway/test_pairing.py::TestApprovalFlow::test_approve_valid_code",
        "tests/gateway/test_pairing.py::TestApprovalFlow::test_approved_user_is_approved",
        "tests/gateway/test_pairing.py::TestApprovalFlow::test_unapproved_user_not_approved",
        "tests/gateway/test_pairing.py::TestApprovalFlow::test_approve_removes_from_pending",
        "tests/gateway/test_pairing.py::TestApprovalFlow::test_approve_case_insensitive",
        "tests/gateway/test_pairing.py::TestApprovalFlow::test_approve_strips_whitespace",
        "tests/gateway/test_pairing.py::TestApprovalFlow::test_invalid_code_returns_none",
        "tests/gateway/test_pairing.py::TestApprovalFlow::test_whatsapp_approved_user_survives_alias_flip",
        "tests/gateway/test_pairing.py::TestApprovalFlow::test_whatsapp_legacy_raw_jid_approval_survives_alias_flip",
        "tests/gateway/test_pairing.py::TestLockout::test_lockout_after_max_failures",
        "tests/gateway/test_pairing.py::TestLockout::test_lockout_blocks_code_generation",
        "tests/gateway/test_pairing.py::TestLockout::test_lockout_blocks_code_approval",
        "tests/gateway/test_pairing.py::TestLockout::test_lockout_expires",
        "tests/gateway/test_pairing.py::TestCodeExpiry::test_expired_codes_cleaned_up",
        "tests/gateway/test_pairing.py::TestCodeExpiry::test_expired_code_cannot_be_approved",
        "tests/gateway/test_pairing.py::TestRevoke::test_revoke_approved_user",
        "tests/gateway/test_pairing.py::TestRevoke::test_revoke_nonexistent_returns_false",
        "tests/gateway/test_pairing.py::TestListAndClear::test_list_approved",
        "tests/gateway/test_pairing.py::TestListAndClear::test_list_approved_all_platforms",
        "tests/gateway/test_pairing.py::TestListAndClear::test_clear_pending",
        "tests/gateway/test_pairing.py::TestListAndClear::test_clear_pending_all_platforms"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0184-test_pairing.py.log",
      "output_sha256": "1b2fc02898a30e3619999729ccc6166bb8e70c4996db60b91385e2851f556047",
      "returncode": 0,
      "test_file": "tests/gateway/test_pairing.py",
      "test_file_sha256": "a46bbdc08613edac8d0b727c9f59e49121d49ca99e1cebb361c6032ff9dc9139"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0185",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_pending_drain_no_recursion.py"
      ],
      "nodeids": [
        "tests/gateway/test_pending_drain_no_recursion.py::test_in_band_drain_does_not_grow_stack",
        "tests/gateway/test_pending_drain_no_recursion.py::test_in_band_drain_preserves_active_session_guard",
        "tests/gateway/test_pending_drain_no_recursion.py::test_normal_path_releases_session_guard",
        "tests/gateway/test_pending_drain_no_recursion.py::test_drain_task_cancellation_releases_session",
        "tests/gateway/test_pending_drain_no_recursion.py::test_late_arrival_drain_still_fires_when_no_in_band_drain"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0185-test_pending_drain_no_recursion.py.log",
      "output_sha256": "e05b852c5e43a6bf72013052b57a676e4c462797f689a2f15bc0ca5248406123",
      "returncode": 0,
      "test_file": "tests/gateway/test_pending_drain_no_recursion.py",
      "test_file_sha256": "717216604c42df48388044c24dd9ae2dff9352ad31c6361e8924396611f8b1c5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0186",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_pending_drain_race.py"
      ],
      "nodeids": [
        "tests/gateway/test_pending_drain_race.py::test_pending_drain_keeps_active_session_guard_live",
        "tests/gateway/test_pending_drain_race.py::test_finally_cleanup_drains_late_arrival_pending",
        "tests/gateway/test_pending_drain_race.py::test_no_pending_cleans_up_normally"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0186-test_pending_drain_race.py.log",
      "output_sha256": "f148a50a85bee13b3ab4e30759ba4597b1d36b6f04687a5a4d3b95edf9717d62",
      "returncode": 0,
      "test_file": "tests/gateway/test_pending_drain_race.py",
      "test_file_sha256": "37e1c2e9d60ccc1988101f7e8940067ee0a961c5aa64462d111482d3045868d1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0187",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_pending_event_none.py"
      ],
      "nodeids": [
        "tests/gateway/test_pending_event_none.py::TestPendingEventNoneChannelPrompt::test_none_pending_event_returns_none_channel_prompt",
        "tests/gateway/test_pending_event_none.py::TestPendingEventNoneChannelPrompt::test_pending_event_with_channel_prompt_passes_through",
        "tests/gateway/test_pending_event_none.py::TestPendingEventNoneChannelPrompt::test_pending_event_without_channel_prompt_returns_none",
        "tests/gateway/test_pending_event_none.py::TestControlInterruptMessages::test_stop_requested_is_not_treated_as_pending_user_message",
        "tests/gateway/test_pending_event_none.py::TestControlInterruptMessages::test_session_reset_requested_is_not_treated_as_pending_user_message",
        "tests/gateway/test_pending_event_none.py::TestControlInterruptMessages::test_real_user_interrupt_message_still_requeues"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0187-test_pending_event_none.py.log",
      "output_sha256": "e0011c58bc7875e015b2c525fb8cc51563c25f8d606b7896a523e70eaec19a33",
      "returncode": 0,
      "test_file": "tests/gateway/test_pending_event_none.py",
      "test_file_sha256": "f958d2c93f3f9479af33032962aca61fdb56d2f8a0169b798f71eb7499becfce"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0188",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_per_platform_streaming_defaults.py"
      ],
      "nodeids": [
        "tests/gateway/test_per_platform_streaming_defaults.py::test_default_per_platform_streaming_flags",
        "tests/gateway/test_per_platform_streaming_defaults.py::test_resolver_telegram_on_discord_off_when_global_enabled",
        "tests/gateway/test_per_platform_streaming_defaults.py::test_user_override_wins_over_default",
        "tests/gateway/test_per_platform_streaming_defaults.py::test_dashboard_schema_exposes_per_platform_streaming"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0188-test_per_platform_streaming_defaults.py.log",
      "output_sha256": "c3239dd33de171b7f77de8b52da85abfcaa0ab92d7b5a43a5a8a822de9cb0465",
      "returncode": 0,
      "test_file": "tests/gateway/test_per_platform_streaming_defaults.py",
      "test_file_sha256": "5f3410edd5353f3348c8a11fd8c6a1570765596964c29e516b755aeabd464a6a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0189",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_pii_redaction.py"
      ],
      "nodeids": [
        "tests/gateway/test_pii_redaction.py::TestHashHelpers::test_hash_id_deterministic",
        "tests/gateway/test_pii_redaction.py::TestHashHelpers::test_hash_id_12_hex_chars",
        "tests/gateway/test_pii_redaction.py::TestHashHelpers::test_hash_sender_id_prefix",
        "tests/gateway/test_pii_redaction.py::TestHashHelpers::test_hash_chat_id_preserves_prefix",
        "tests/gateway/test_pii_redaction.py::TestHashHelpers::test_hash_chat_id_no_prefix",
        "tests/gateway/test_pii_redaction.py::TestBuildSessionContextPromptRedaction::test_no_redaction_by_default",
        "tests/gateway/test_pii_redaction.py::TestBuildSessionContextPromptRedaction::test_user_id_hashed_when_redact_pii",
        "tests/gateway/test_pii_redaction.py::TestBuildSessionContextPromptRedaction::test_user_name_not_redacted",
        "tests/gateway/test_pii_redaction.py::TestBuildSessionContextPromptRedaction::test_home_channel_id_hashed",
        "tests/gateway/test_pii_redaction.py::TestBuildSessionContextPromptRedaction::test_home_channel_id_preserved_without_redaction",
        "tests/gateway/test_pii_redaction.py::TestBuildSessionContextPromptRedaction::test_redaction_is_deterministic",
        "tests/gateway/test_pii_redaction.py::TestBuildSessionContextPromptRedaction::test_different_ids_produce_different_hashes",
        "tests/gateway/test_pii_redaction.py::TestBuildSessionContextPromptRedaction::test_discord_ids_not_redacted_even_with_flag",
        "tests/gateway/test_pii_redaction.py::TestBuildSessionContextPromptRedaction::test_whatsapp_ids_redacted",
        "tests/gateway/test_pii_redaction.py::TestBuildSessionContextPromptRedaction::test_signal_ids_redacted",
        "tests/gateway/test_pii_redaction.py::TestBuildSessionContextPromptRedaction::test_slack_ids_not_redacted"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0189-test_pii_redaction.py.log",
      "output_sha256": "af84191621c4105ef97d17498afa534395ab73cc47c395a4c0f508e1900624a5",
      "returncode": 0,
      "test_file": "tests/gateway/test_pii_redaction.py",
      "test_file_sha256": "d5e0efa6a25ce3a09887a978bb4e8056b6bf28566bb0bd2193ae117f8154d8c1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0190",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_planned_stop_watcher.py"
      ],
      "nodeids": [
        "tests/gateway/test_planned_stop_watcher.py::test_watcher_fires_shutdown_when_marker_appears",
        "tests/gateway/test_planned_stop_watcher.py::test_watcher_does_not_fire_when_marker_absent",
        "tests/gateway/test_planned_stop_watcher.py::test_watcher_skips_when_runner_already_draining",
        "tests/gateway/test_planned_stop_watcher.py::test_watcher_skips_when_runner_not_started",
        "tests/gateway/test_planned_stop_watcher.py::test_watcher_responds_to_stop_event_promptly",
        "tests/gateway/test_planned_stop_watcher.py::test_watcher_fires_only_once_when_marker_persists",
        "tests/gateway/test_planned_stop_watcher.py::test_watcher_tolerates_marker_path_resolution_errors",
        "tests/gateway/test_planned_stop_watcher.py::test_watcher_does_not_fire_for_foreign_pid_marker",
        "tests/gateway/test_planned_stop_watcher.py::test_watcher_cleans_up_stale_marker_and_keeps_running",
        "tests/gateway/test_planned_stop_watcher.py::test_planned_stop_marker_targets_self_probe_is_non_destructive",
        "tests/gateway/test_planned_stop_watcher.py::test_planned_stop_marker_targets_self_drops_malformed"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0190-test_planned_stop_watcher.py.log",
      "output_sha256": "73f57491743eb82f3f9d68e62b7ebd808be3467642a88d1ee08bf0a755461afc",
      "returncode": 0,
      "test_file": "tests/gateway/test_planned_stop_watcher.py",
      "test_file_sha256": "43cd47622c1972eff9c6c5a64f0f0fa0c33466a5ed2bc833e6dde96473c7acf3"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0191",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_platform_base.py"
      ],
      "nodeids": [
        "tests/gateway/test_platform_base.py::TestSecretCaptureGuidance::test_gateway_secret_capture_message_points_to_local_setup",
        "tests/gateway/test_platform_base.py::TestSafeUrlForLog::test_strips_query_fragment_and_userinfo",
        "tests/gateway/test_platform_base.py::TestSafeUrlForLog::test_truncates_long_values",
        "tests/gateway/test_platform_base.py::TestSafeUrlForLog::test_handles_small_and_non_positive_max_len",
        "tests/gateway/test_platform_base.py::TestMessageEventIsCommand::test_slash_command",
        "tests/gateway/test_platform_base.py::TestMessageEventIsCommand::test_regular_text",
        "tests/gateway/test_platform_base.py::TestMessageEventIsCommand::test_empty_text",
        "tests/gateway/test_platform_base.py::TestMessageEventIsCommand::test_slash_only",
        "tests/gateway/test_platform_base.py::TestMessageEventGetCommand::test_simple_command",
        "tests/gateway/test_platform_base.py::TestMessageEventGetCommand::test_command_with_args",
        "tests/gateway/test_platform_base.py::TestMessageEventGetCommand::test_not_a_command",
        "tests/gateway/test_platform_base.py::TestMessageEventGetCommand::test_command_is_lowercased",
        "tests/gateway/test_platform_base.py::TestMessageEventGetCommand::test_slash_only_returns_empty",
        "tests/gateway/test_platform_base.py::TestMessageEventGetCommand::test_command_with_at_botname",
        "tests/gateway/test_platform_base.py::TestMessageEventGetCommand::test_command_with_at_botname_and_args",
        "tests/gateway/test_platform_base.py::TestMessageEventGetCommand::test_command_mixed_case_with_at_botname",
        "tests/gateway/test_platform_base.py::TestMessageEventGetCommandArgs::test_command_with_args",
        "tests/gateway/test_platform_base.py::TestMessageEventGetCommandArgs::test_command_without_args",
        "tests/gateway/test_platform_base.py::TestMessageEventGetCommandArgs::test_not_a_command_returns_full_text",
        "tests/gateway/test_platform_base.py::TestExtractImages::test_no_images",
        "tests/gateway/test_platform_base.py::TestExtractImages::test_markdown_image_with_image_ext",
        "tests/gateway/test_platform_base.py::TestExtractImages::test_markdown_image_jpg",
        "tests/gateway/test_platform_base.py::TestExtractImages::test_markdown_image_jpeg",
        "tests/gateway/test_platform_base.py::TestExtractImages::test_markdown_image_gif",
        "tests/gateway/test_platform_base.py::TestExtractImages::test_markdown_image_webp",
        "tests/gateway/test_platform_base.py::TestExtractImages::test_fal_media_cdn",
        "tests/gateway/test_platform_base.py::TestExtractImages::test_fal_cdn_url",
        "tests/gateway/test_platform_base.py::TestExtractImages::test_replicate_delivery",
        "tests/gateway/test_platform_base.py::TestExtractImages::test_non_image_ext_not_extracted",
        "tests/gateway/test_platform_base.py::TestExtractImages::test_html_img_tag",
        "tests/gateway/test_platform_base.py::TestExtractImages::test_html_img_self_closing",
        "tests/gateway/test_platform_base.py::TestExtractImages::test_html_img_with_closing_tag",
        "tests/gateway/test_platform_base.py::TestExtractImages::test_multiple_images",
        "tests/gateway/test_platform_base.py::TestExtractImages::test_mixed_markdown_and_html",
        "tests/gateway/test_platform_base.py::TestExtractImages::test_cleaned_content_trims_excess_newlines",
        "tests/gateway/test_platform_base.py::TestExtractImages::test_non_http_url_not_matched",
        "tests/gateway/test_platform_base.py::TestExtractImages::test_non_image_link_preserved_when_mixed_with_images",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_no_media",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_single_media_tag",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_media_with_voice_directive",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_multiple_media_tags",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_voice_directive_removed_from_content",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_media_with_text_before",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_cleaned_content_trims_excess_newlines",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_media_tag_allows_optional_whitespace_after_colon",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_media_tag_strips_wrapping_quotes_and_backticks",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_media_tag_supports_quoted_paths_with_spaces",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_media_tag_supports_unquoted_flac_paths_with_spaces",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_as_document_directive_stripped_from_cleaned_text",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_as_document_directive_alone_does_not_attach_voice_flag",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_both_directives_can_coexist",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_media_tag_windows_backslash_path",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_media_tag_windows_forward_slash_path",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_media_tag_windows_drive_root",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_media_tag_unix_paths_still_work",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_relative_path_still_ignored",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_media_in_fenced_code_block_ignored",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_media_in_inline_code_ignored",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_media_in_blockquote_ignored",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_media_outside_code_blocks_still_extracted",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_media_mixed_code_and_prose",
        "tests/gateway/test_platform_base.py::TestExtractMedia::test_inline_code_survives_when_real_media_present",
        "tests/gateway/test_platform_base.py::TestMediaInsideSerializedJson::test_media_in_json_value_not_extracted",
        "tests/gateway/test_platform_base.py::TestMediaInsideSerializedJson::test_media_in_pretty_json_value_not_extracted",
        "tests/gateway/test_platform_base.py::TestMediaInsideSerializedJson::test_media_in_json_array_not_extracted",
        "tests/gateway/test_platform_base.py::TestMediaInsideSerializedJson::test_media_in_nested_json_value_not_extracted",
        "tests/gateway/test_platform_base.py::TestMediaInsideSerializedJson::test_media_in_embedded_serialized_reply_not_extracted",
        "tests/gateway/test_platform_base.py::TestMediaInsideSerializedJson::test_media_at_line_start_still_extracted",
        "tests/gateway/test_platform_base.py::TestMediaInsideSerializedJson::test_media_after_prose_same_line_still_extracted",
        "tests/gateway/test_platform_base.py::TestMediaInsideSerializedJson::test_media_indented_still_extracted",
        "tests/gateway/test_platform_base.py::TestMediaInsideSerializedJson::test_quoted_path_media_still_extracted",
        "tests/gateway/test_platform_base.py::TestMediaInsideSerializedJson::test_tts_two_line_still_extracted",
        "tests/gateway/test_platform_base.py::TestMediaInsideSerializedJson::test_json_embedded_media_kept_verbatim_in_cleaned_text",
        "tests/gateway/test_platform_base.py::TestMediaInsideSerializedJson::test_cleaned_text_after_directive_not_truncated",
        "tests/gateway/test_platform_base.py::TestMediaExtensionAllowlistParity::test_previously_dropped_extensions_now_extract",
        "tests/gateway/test_platform_base.py::TestMediaExtensionAllowlistParity::test_extract_media_and_local_files_share_one_extension_set",
        "tests/gateway/test_platform_base.py::TestMediaExtensionAllowlistParity::test_unknown_extension_not_black_holed_by_cleanup",
        "tests/gateway/test_platform_base.py::TestMediaExtensionAllowlistParity::test_known_extension_tag_is_stripped_from_body",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryPathValidation::test_allows_existing_file_inside_safe_root",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryPathValidation::test_rejects_existing_file_outside_safe_root",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryPathValidation::test_rejects_symlink_escape_from_safe_root",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryPathValidation::test_filter_keeps_safe_media_and_drops_unsafe",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryPathValidation::test_allows_operator_configured_extra_root",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryPathValidation::test_recency_trust_allows_freshly_produced_file",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryPathValidation::test_recency_trust_rejects_old_file",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryPathValidation::test_recency_trust_disabled_falls_back_to_pure_allowlist",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryPathValidation::test_recency_trust_denies_system_paths_even_when_fresh",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryPathValidation::test_recency_trust_allows_pdf_in_project_dir",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryPathValidation::test_filter_keeps_recently_produced_files",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDefaultMode::test_accepts_stale_file_outside_allowlist",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDefaultMode::test_accepts_any_extension_not_on_denylist",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDefaultMode::test_denylist_still_blocks_credentials",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDefaultMode::test_denylist_blocks_system_prefixes",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDefaultMode::test_denylist_blocks_hermes_credentials",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDefaultMode::test_denylist_blocks_hermes_config_in_active_profile",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDefaultMode::test_denylist_blocks_shared_hermes_root_config_for_profiles",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDefaultMode::test_strict_mode_envvar_restores_legacy_behavior",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDefaultMode::test_strict_mode_truthy_aliases",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDefaultMode::test_filter_passes_default_files_through",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDefaultMode::test_root_home_deliverable_is_accepted",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDefaultMode::test_root_home_credential_subdir_still_blocked",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDefaultMode::test_root_home_hermes_env_still_blocked",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDefaultMode::test_other_users_home_still_blocked_for_nonroot",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDefaultMode::test_root_home_workdir_symlink_to_credential_blocked",
        "tests/gateway/test_platform_base.py::TestShouldSendMediaAsAudio::test_unknown_extension_returns_false",
        "tests/gateway/test_platform_base.py::TestShouldSendMediaAsAudio::test_non_telegram_platforms_route_all_audio",
        "tests/gateway/test_platform_base.py::TestShouldSendMediaAsAudio::test_telegram_mp3_and_m4a_route_to_audio",
        "tests/gateway/test_platform_base.py::TestShouldSendMediaAsAudio::test_telegram_wav_and_flac_fall_through_to_document",
        "tests/gateway/test_platform_base.py::TestShouldSendMediaAsAudio::test_telegram_ogg_opus_only_when_voice_flagged",
        "tests/gateway/test_platform_base.py::TestShouldSendMediaAsAudio::test_accepts_platform_enum",
        "tests/gateway/test_platform_base.py::TestTruncateMessage::test_short_message_single_chunk",
        "tests/gateway/test_platform_base.py::TestTruncateMessage::test_exact_length_single_chunk",
        "tests/gateway/test_platform_base.py::TestTruncateMessage::test_long_message_splits",
        "tests/gateway/test_platform_base.py::TestTruncateMessage::test_chunks_have_indicators",
        "tests/gateway/test_platform_base.py::TestTruncateMessage::test_code_block_first_chunk_closed",
        "tests/gateway/test_platform_base.py::TestTruncateMessage::test_code_block_language_tag_carried",
        "tests/gateway/test_platform_base.py::TestTruncateMessage::test_continuation_chunks_have_balanced_fences",
        "tests/gateway/test_platform_base.py::TestTruncateMessage::test_each_chunk_under_max_length",
        "tests/gateway/test_platform_base.py::TestGetHumanDelay::test_off_mode",
        "tests/gateway/test_platform_base.py::TestGetHumanDelay::test_default_is_off",
        "tests/gateway/test_platform_base.py::TestGetHumanDelay::test_natural_mode_range",
        "tests/gateway/test_platform_base.py::TestGetHumanDelay::test_natural_mode_ignores_malformed_custom_env_vars",
        "tests/gateway/test_platform_base.py::TestGetHumanDelay::test_custom_mode_uses_env_vars",
        "tests/gateway/test_platform_base.py::TestGetHumanDelay::test_custom_mode_tolerates_malformed_env_vars",
        "tests/gateway/test_platform_base.py::TestUtf16Len::test_ascii",
        "tests/gateway/test_platform_base.py::TestUtf16Len::test_bmp_cjk",
        "tests/gateway/test_platform_base.py::TestUtf16Len::test_emoji_surrogate_pair",
        "tests/gateway/test_platform_base.py::TestUtf16Len::test_mixed",
        "tests/gateway/test_platform_base.py::TestUtf16Len::test_musical_symbol",
        "tests/gateway/test_platform_base.py::TestUtf16Len::test_empty",
        "tests/gateway/test_platform_base.py::TestPrefixWithinUtf16Limit::test_fits_entirely",
        "tests/gateway/test_platform_base.py::TestPrefixWithinUtf16Limit::test_ascii_truncation",
        "tests/gateway/test_platform_base.py::TestPrefixWithinUtf16Limit::test_does_not_split_surrogate_pair",
        "tests/gateway/test_platform_base.py::TestPrefixWithinUtf16Limit::test_emoji_at_limit",
        "tests/gateway/test_platform_base.py::TestPrefixWithinUtf16Limit::test_all_emoji",
        "tests/gateway/test_platform_base.py::TestPrefixWithinUtf16Limit::test_empty",
        "tests/gateway/test_platform_base.py::TestTruncateMessageUtf16::test_short_emoji_message_no_split",
        "tests/gateway/test_platform_base.py::TestTruncateMessageUtf16::test_emoji_near_limit_triggers_split",
        "tests/gateway/test_platform_base.py::TestTruncateMessageUtf16::test_each_utf16_chunk_within_limit",
        "tests/gateway/test_platform_base.py::TestTruncateMessageUtf16::test_all_content_preserved",
        "tests/gateway/test_platform_base.py::TestTruncateMessageUtf16::test_code_blocks_preserved_with_utf16",
        "tests/gateway/test_platform_base.py::TestProxyKwargsForAiohttp::test_none_returns_empty",
        "tests/gateway/test_platform_base.py::TestProxyKwargsForAiohttp::test_http_proxy_uses_connector_when_aiohttp_socks_available",
        "tests/gateway/test_platform_base.py::TestProxyKwargsForAiohttp::test_socks_proxy_uses_connector",
        "tests/gateway/test_platform_base.py::TestProxyKwargsForAiohttp::test_http_proxy_falls_back_without_aiohttp_socks",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDiagnosability::test_rejected_path_appears_in_log",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDiagnosability::test_crafted_null_path_does_not_abort_batch",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDiagnosability::test_extract_media_tolerates_crafted_null_path",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDiagnosability::test_log_safe_path_neutralises_line_breaks",
        "tests/gateway/test_platform_base.py::TestMediaDeliveryDiagnosability::test_canonical_cache_roots_present"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0191-test_platform_base.py.log",
      "output_sha256": "40b2e70a1a2630fe02c43847de2e2db297028544baf7c4aa2b5f6f9e530a5c2e",
      "returncode": 0,
      "test_file": "tests/gateway/test_platform_base.py",
      "test_file_sha256": "ea3d932c4458a13c6f50de226dbf107d7de24dec123962f0daedddcb989cde22"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0192",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_platform_connected_checkers.py"
      ],
      "nodeids": [
        "tests/gateway/test_platform_connected_checkers.py::test_all_builtins_have_checker_or_generic_token_path",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_handles_minimal_config[Platform.WEIXIN-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_handles_minimal_config[Platform.WHATSAPP-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_handles_minimal_config[Platform.WHATSAPP_CLOUD-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_handles_minimal_config[Platform.SIGNAL-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_handles_minimal_config[Platform.EMAIL-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_handles_minimal_config[Platform.SMS-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_handles_minimal_config[Platform.API_SERVER-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_handles_minimal_config[Platform.WEBHOOK-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_handles_minimal_config[Platform.MSGRAPH_WEBHOOK-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_handles_minimal_config[Platform.FEISHU-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_handles_minimal_config[Platform.WECOM-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_handles_minimal_config[Platform.WECOM_CALLBACK-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_handles_minimal_config[Platform.BLUEBUBBLES-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_handles_minimal_config[Platform.QQBOT-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_handles_minimal_config[Platform.YUANBAO-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_handles_minimal_config[Platform.DINGTALK-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_handles_minimal_config[Platform.RELAY-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_returns_true_when_configured[Platform.WEIXIN-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_returns_true_when_configured[Platform.WHATSAPP-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_returns_true_when_configured[Platform.WHATSAPP_CLOUD-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_returns_true_when_configured[Platform.SIGNAL-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_returns_true_when_configured[Platform.EMAIL-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_returns_true_when_configured[Platform.SMS-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_returns_true_when_configured[Platform.API_SERVER-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_returns_true_when_configured[Platform.WEBHOOK-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_returns_true_when_configured[Platform.MSGRAPH_WEBHOOK-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_returns_true_when_configured[Platform.FEISHU-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_returns_true_when_configured[Platform.WECOM-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_returns_true_when_configured[Platform.WECOM_CALLBACK-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_returns_true_when_configured[Platform.BLUEBUBBLES-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_returns_true_when_configured[Platform.QQBOT-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_returns_true_when_configured[Platform.YUANBAO-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_returns_true_when_configured[Platform.DINGTALK-<lambda>]",
        "tests/gateway/test_platform_connected_checkers.py::test_checker_returns_true_when_configured[Platform.RELAY-<lambda>]"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0192-test_platform_connected_checkers.py.log",
      "output_sha256": "fec9a4172a14e4935d4b9680e9037bed5d9f1d909e8a20b4d82cf47cb4177e24",
      "returncode": 0,
      "test_file": "tests/gateway/test_platform_connected_checkers.py",
      "test_file_sha256": "dd82f640032156116c96557a9ec4819e377212aa727bd632b3d996768e1e16c5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0193",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_platform_http_client_limits.py"
      ],
      "nodeids": [
        "tests/gateway/test_platform_http_client_limits.py::test_returns_none_when_httpx_unavailable",
        "tests/gateway/test_platform_http_client_limits.py::test_default_limits_tighten_keepalive_below_httpx_default",
        "tests/gateway/test_platform_http_client_limits.py::test_env_override_keepalive_expiry",
        "tests/gateway/test_platform_http_client_limits.py::test_env_override_max_keepalive",
        "tests/gateway/test_platform_http_client_limits.py::test_env_override_rejects_garbage",
        "tests/gateway/test_platform_http_client_limits.py::test_helper_is_importable_from_every_platform_that_uses_it",
        "tests/gateway/test_platform_http_client_limits.py::TestWhatsappTypingLeakFix::test_bare_await_removed"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0193-test_platform_http_client_limits.py.log",
      "output_sha256": "1a5f03bfa01dca3d3a4ed3b77a97acf139f92e65d5b6eece1273c0d03a22e38e",
      "returncode": 0,
      "test_file": "tests/gateway/test_platform_http_client_limits.py",
      "test_file_sha256": "8ec789ec2af94a992f780fe05b7e4220dc3d3de6d650fce152ac294691eeaf89"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0194",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_platform_reconnect.py"
      ],
      "nodeids": [
        "tests/gateway/test_platform_reconnect.py::TestStartupPlatformIsolation::test_start_continues_after_platform_connect_timeout",
        "tests/gateway/test_platform_reconnect.py::TestStartupPlatformIsolation::test_connect_adapter_timeout_raises_retryable_exception",
        "tests/gateway/test_platform_reconnect.py::TestStartupFailureQueuing::test_failed_platform_queued_on_connect_failure",
        "tests/gateway/test_platform_reconnect.py::TestStartupFailureQueuing::test_failed_platform_not_queued_for_nonretryable",
        "tests/gateway/test_platform_reconnect.py::TestPlatformReconnectWatcher::test_reconnect_succeeds_on_retry",
        "tests/gateway/test_platform_reconnect.py::TestPlatformReconnectWatcher::test_reconnect_retries_resume_pending_for_platform",
        "tests/gateway/test_platform_reconnect.py::TestPlatformReconnectWatcher::test_reconnect_nonretryable_removed_from_queue",
        "tests/gateway/test_platform_reconnect.py::TestPlatformReconnectWatcher::test_reconnect_retryable_stays_in_queue",
        "tests/gateway/test_platform_reconnect.py::TestPlatformReconnectWatcher::test_reconnect_never_auto_pauses_retryable_failures",
        "tests/gateway/test_platform_reconnect.py::TestPlatformReconnectWatcher::test_reconnect_skips_paused_platforms",
        "tests/gateway/test_platform_reconnect.py::TestPlatformReconnectWatcher::test_reconnect_skips_when_not_time_yet",
        "tests/gateway/test_platform_reconnect.py::TestPlatformReconnectWatcher::test_no_failed_platforms_watcher_idles",
        "tests/gateway/test_platform_reconnect.py::TestPlatformReconnectWatcher::test_adapter_create_returns_none",
        "tests/gateway/test_platform_reconnect.py::TestRuntimeDisconnectQueuing::test_retryable_runtime_error_queued_for_reconnect",
        "tests/gateway/test_platform_reconnect.py::TestRuntimeDisconnectQueuing::test_nonretryable_runtime_error_not_queued",
        "tests/gateway/test_platform_reconnect.py::TestRuntimeDisconnectQueuing::test_retryable_error_keeps_gateway_alive_when_all_down",
        "tests/gateway/test_platform_reconnect.py::TestRuntimeDisconnectQueuing::test_retryable_error_no_exit_when_other_adapters_still_connected",
        "tests/gateway/test_platform_reconnect.py::TestRuntimeDisconnectQueuing::test_nonretryable_error_triggers_shutdown",
        "tests/gateway/test_platform_reconnect.py::TestPauseResume::test_pause_marks_platform_paused",
        "tests/gateway/test_platform_reconnect.py::TestPauseResume::test_pause_is_idempotent",
        "tests/gateway/test_platform_reconnect.py::TestPauseResume::test_pause_no_op_when_platform_not_queued",
        "tests/gateway/test_platform_reconnect.py::TestPauseResume::test_resume_clears_paused_and_resets_attempts",
        "tests/gateway/test_platform_reconnect.py::TestPauseResume::test_resume_returns_false_when_not_paused",
        "tests/gateway/test_platform_reconnect.py::TestPauseResume::test_resume_returns_false_when_not_queued",
        "tests/gateway/test_platform_reconnect.py::TestPlatformSlashCommand::test_list_shows_connected_and_paused",
        "tests/gateway/test_platform_reconnect.py::TestPlatformSlashCommand::test_pause_command_pauses_queued_platform",
        "tests/gateway/test_platform_reconnect.py::TestPlatformSlashCommand::test_pause_rejects_unqueued_platform",
        "tests/gateway/test_platform_reconnect.py::TestPlatformSlashCommand::test_resume_command_resumes_paused_platform",
        "tests/gateway/test_platform_reconnect.py::TestPlatformSlashCommand::test_unknown_platform_name",
        "tests/gateway/test_platform_reconnect.py::TestPlatformSlashCommand::test_bare_platform_shows_usage_with_list"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0194-test_platform_reconnect.py.log",
      "output_sha256": "f942cd62431e017dfc3ea2391a382ba0b0243dea53409f59a7934dab916d05ee",
      "returncode": 0,
      "test_file": "tests/gateway/test_platform_reconnect.py",
      "test_file_sha256": "1e8b1a08f11c9c4ae5803593451667a78402ad1a696be31730d09bf72c79912f"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0195",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_platform_reconnect_fd_leak.py"
      ],
      "nodeids": [
        "tests/gateway/test_platform_reconnect_fd_leak.py::TestReconnectFDLeakRegression::test_nonretryable_failure_disposes_unowned_adapter",
        "tests/gateway/test_platform_reconnect_fd_leak.py::TestReconnectFDLeakRegression::test_retryable_failure_disposes_unowned_adapter",
        "tests/gateway/test_platform_reconnect_fd_leak.py::TestReconnectFDLeakRegression::test_exception_during_connect_disposes_unowned_adapter",
        "tests/gateway/test_platform_reconnect_fd_leak.py::TestReconnectFDLeakRegression::test_dispose_helper_handles_none",
        "tests/gateway/test_platform_reconnect_fd_leak.py::TestReconnectFDLeakRegression::test_dispose_helper_swallows_disconnect_exception",
        "tests/gateway/test_platform_reconnect_fd_leak.py::TestAPIServerDisconnectClosesResponseStore::test_disconnect_closes_response_store",
        "tests/gateway/test_platform_reconnect_fd_leak.py::TestAPIServerDisconnectClosesResponseStore::test_disconnect_swallows_response_store_close_exception"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0195-test_platform_reconnect_fd_leak.py.log",
      "output_sha256": "0f51ce0bfa602ef54dccf1138227b1ab0343201a7e407b11c94308cb31fd847a",
      "returncode": 0,
      "test_file": "tests/gateway/test_platform_reconnect_fd_leak.py",
      "test_file_sha256": "166792b55c5cdb7716371017e0c1c4f5af434517d3ad31a24fa7ba7adad77283"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0196",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_platform_registry.py"
      ],
      "nodeids": [
        "tests/gateway/test_platform_registry.py::TestPlatformEnumDynamic::test_builtin_members_still_work",
        "tests/gateway/test_platform_registry.py::TestPlatformEnumDynamic::test_dynamic_member_created",
        "tests/gateway/test_platform_registry.py::TestPlatformEnumDynamic::test_dynamic_member_identity_stable",
        "tests/gateway/test_platform_registry.py::TestPlatformEnumDynamic::test_dynamic_member_case_normalised",
        "tests/gateway/test_platform_registry.py::TestPlatformEnumDynamic::test_dynamic_member_with_hyphens",
        "tests/gateway/test_platform_registry.py::TestPlatformEnumDynamic::test_dynamic_member_rejects_unregistered",
        "tests/gateway/test_platform_registry.py::TestPlatformEnumDynamic::test_dynamic_member_rejects_non_string",
        "tests/gateway/test_platform_registry.py::TestPlatformEnumDynamic::test_dynamic_member_rejects_empty",
        "tests/gateway/test_platform_registry.py::TestPlatformEnumDynamic::test_dynamic_member_rejects_whitespace_only",
        "tests/gateway/test_platform_registry.py::TestPlatformRegistry::test_register_and_get",
        "tests/gateway/test_platform_registry.py::TestPlatformRegistry::test_get_unknown_returns_none",
        "tests/gateway/test_platform_registry.py::TestPlatformRegistry::test_unregister",
        "tests/gateway/test_platform_registry.py::TestPlatformRegistry::test_create_adapter_success",
        "tests/gateway/test_platform_registry.py::TestPlatformRegistry::test_create_adapter_unknown_name",
        "tests/gateway/test_platform_registry.py::TestPlatformRegistry::test_create_adapter_check_fails",
        "tests/gateway/test_platform_registry.py::TestPlatformRegistry::test_create_adapter_validate_fails",
        "tests/gateway/test_platform_registry.py::TestPlatformRegistry::test_create_adapter_factory_exception",
        "tests/gateway/test_platform_registry.py::TestPlatformRegistry::test_create_adapter_no_validate",
        "tests/gateway/test_platform_registry.py::TestPlatformRegistry::test_all_entries",
        "tests/gateway/test_platform_registry.py::TestPlatformRegistry::test_plugin_entries",
        "tests/gateway/test_platform_registry.py::TestPlatformRegistry::test_re_register_replaces",
        "tests/gateway/test_platform_registry.py::TestGatewayConfigPluginPlatform::test_from_dict_accepts_plugin_platform",
        "tests/gateway/test_platform_registry.py::TestGatewayConfigPluginPlatform::test_get_connected_platforms_includes_registered_plugin",
        "tests/gateway/test_platform_registry.py::TestGatewayConfigPluginPlatform::test_get_connected_platforms_excludes_unregistered_plugin",
        "tests/gateway/test_platform_registry.py::TestGatewayConfigPluginPlatform::test_get_connected_platforms_excludes_invalid_config",
        "tests/gateway/test_platform_registry.py::TestPlatformEntryExtendedFields::test_default_field_values",
        "tests/gateway/test_platform_registry.py::TestPlatformEntryExtendedFields::test_custom_auth_fields",
        "tests/gateway/test_platform_registry.py::TestCronPlatformResolution::test_builtin_platform_resolves",
        "tests/gateway/test_platform_registry.py::TestCronPlatformResolution::test_plugin_platform_resolves",
        "tests/gateway/test_platform_registry.py::TestCronPlatformResolution::test_invalid_platform_type_rejected",
        "tests/gateway/test_platform_registry.py::TestPlatformsMerge::test_get_all_platforms_includes_builtins",
        "tests/gateway/test_platform_registry.py::TestPlatformsMerge::test_get_all_platforms_includes_plugin",
        "tests/gateway/test_platform_registry.py::TestPlatformsMerge::test_platform_label_plugin_fallback",
        "tests/gateway/test_platform_registry.py::TestApplyYamlConfigFnField::test_default_is_none",
        "tests/gateway/test_platform_registry.py::TestApplyYamlConfigFnField::test_accepts_callable",
        "tests/gateway/test_platform_registry.py::TestApplyYamlConfigFnDispatch::test_hook_can_mutate_environ",
        "tests/gateway/test_platform_registry.py::TestApplyYamlConfigFnDispatch::test_hook_returned_dict_merges_into_extra",
        "tests/gateway/test_platform_registry.py::TestApplyYamlConfigFnDispatch::test_hook_receives_full_yaml_and_platform_subdict",
        "tests/gateway/test_platform_registry.py::TestApplyYamlConfigFnDispatch::test_hook_exception_swallowed",
        "tests/gateway/test_platform_registry.py::TestApplyYamlConfigFnDispatch::test_hook_skipped_when_platform_section_missing",
        "tests/gateway/test_platform_registry.py::TestApplyYamlConfigFnDispatch::test_hook_skipped_when_platform_section_not_dict",
        "tests/gateway/test_platform_registry.py::TestApplyYamlConfigFnDispatch::test_env_var_takes_precedence_when_hook_uses_getenv_guard",
        "tests/gateway/test_platform_registry.py::TestPluginPlatformSharedKeyBridge::test_shared_keys_bridged_for_plugin_platform",
        "tests/gateway/test_platform_registry.py::TestPluginEnablementGate::test_plugin_with_is_connected_false_is_NOT_enabled",
        "tests/gateway/test_platform_registry.py::TestPluginEnablementGate::test_plugin_with_is_connected_true_is_enabled",
        "tests/gateway/test_platform_registry.py::TestPluginEnablementGate::test_plugin_without_is_connected_falls_back_to_check_fn",
        "tests/gateway/test_platform_registry.py::TestPluginEnablementGate::test_is_connected_raises_does_not_enable",
        "tests/gateway/test_platform_registry.py::TestPluginEnablementGate::test_yaml_enabled_true_overrides_is_connected_false",
        "tests/gateway/test_platform_registry.py::TestPluginEnablementGate::test_is_connected_sees_env_seeded_extras",
        "tests/gateway/test_platform_registry.py::TestPluginEnablementGate::test_is_connected_failed_gate_does_not_leak_extras"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0196-test_platform_registry.py.log",
      "output_sha256": "03fb460b8f0a6228cbd005ce0fa6a90cfc8f892ba50374a06a9577c752f2e7e0",
      "returncode": 0,
      "test_file": "tests/gateway/test_platform_registry.py",
      "test_file_sha256": "5b8dbbf037eb23d84b0b8e0cb502bb0a6d7044c2705c07a1fd292af3fccc7272"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0197",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_plugin_platform_interface.py"
      ],
      "nodeids": [
        "tests/gateway/test_plugin_platform_interface.py::test_plugin_exposes_register_function[NOTSET]",
        "tests/gateway/test_plugin_platform_interface.py::test_plugin_registers_valid_platform_entry[NOTSET]",
        "tests/gateway/test_plugin_platform_interface.py::test_platform_entry_has_required_fields[NOTSET]",
        "tests/gateway/test_plugin_platform_interface.py::test_adapter_factory_produces_valid_adapter[NOTSET]",
        "tests/gateway/test_plugin_platform_interface.py::test_check_fn_returns_bool[NOTSET]",
        "tests/gateway/test_plugin_platform_interface.py::test_validate_config_if_present[NOTSET]",
        "tests/gateway/test_plugin_platform_interface.py::test_is_connected_if_present[NOTSET]"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0197-test_plugin_platform_interface.py.log",
      "output_sha256": "e23afd907bc41f868aac0f46b051a0c84d77c37909391ee53437d286e9885539",
      "returncode": 0,
      "test_file": "tests/gateway/test_plugin_platform_interface.py",
      "test_file_sha256": "f7aa1bf3d42c73222f623a46f05a0e5aa692e4b24e03b8737124477fb88d78a5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0198",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_post_delivery_callback_chaining.py"
      ],
      "nodeids": [
        "tests/gateway/test_post_delivery_callback_chaining.py::TestPostDeliveryCallbackChaining::test_single_callback_fires",
        "tests/gateway/test_post_delivery_callback_chaining.py::TestPostDeliveryCallbackChaining::test_two_callbacks_chain_in_order",
        "tests/gateway/test_post_delivery_callback_chaining.py::TestPostDeliveryCallbackChaining::test_three_callbacks_chain_in_order",
        "tests/gateway/test_post_delivery_callback_chaining.py::TestPostDeliveryCallbackChaining::test_exception_in_one_callback_does_not_block_next",
        "tests/gateway/test_post_delivery_callback_chaining.py::TestPostDeliveryCallbackChaining::test_same_generation_chains",
        "tests/gateway/test_post_delivery_callback_chaining.py::TestPostDeliveryCallbackChaining::test_stale_generation_registration_rejected",
        "tests/gateway/test_post_delivery_callback_chaining.py::TestPostDeliveryCallbackChaining::test_pop_at_wrong_generation_returns_none",
        "tests/gateway/test_post_delivery_callback_chaining.py::TestPostDeliveryCallbackChaining::test_empty_session_key_is_noop",
        "tests/gateway/test_post_delivery_callback_chaining.py::TestPostDeliveryCallbackChaining::test_non_callable_is_noop"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0198-test_post_delivery_callback_chaining.py.log",
      "output_sha256": "eafdcda9d6649ce8d7cf1e061990dcf687e0b1612270c5e2e08c38f87cf6aff8",
      "returncode": 0,
      "test_file": "tests/gateway/test_post_delivery_callback_chaining.py",
      "test_file_sha256": "97b38529a110fba1b554807fde9c940a02a5ae3ed5aedabc7675cab2e820a1b4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0199",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_pre_gateway_dispatch.py"
      ],
      "nodeids": [
        "tests/gateway/test_pre_gateway_dispatch.py::test_hook_skip_short_circuits_dispatch",
        "tests/gateway/test_pre_gateway_dispatch.py::test_hook_rewrite_replaces_event_text",
        "tests/gateway/test_pre_gateway_dispatch.py::test_hook_allow_falls_through_to_auth",
        "tests/gateway/test_pre_gateway_dispatch.py::test_hook_exception_does_not_break_dispatch",
        "tests/gateway/test_pre_gateway_dispatch.py::test_internal_events_bypass_hook"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0199-test_pre_gateway_dispatch.py.log",
      "output_sha256": "53dfddf6c2cbd05431e73f0b4a6c4275173db0b39a4f5f8f0018fb0c95141e66",
      "returncode": 0,
      "test_file": "tests/gateway/test_pre_gateway_dispatch.py",
      "test_file_sha256": "9182dd46053636b3c007af6918d7f06c771955c92a814342837b4a678aac6d06"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0200",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_proxy_mode.py"
      ],
      "nodeids": [
        "tests/gateway/test_proxy_mode.py::TestGetProxyUrl::test_returns_none_when_not_configured",
        "tests/gateway/test_proxy_mode.py::TestGetProxyUrl::test_reads_from_env_var",
        "tests/gateway/test_proxy_mode.py::TestGetProxyUrl::test_strips_trailing_slash",
        "tests/gateway/test_proxy_mode.py::TestGetProxyUrl::test_reads_from_config_yaml",
        "tests/gateway/test_proxy_mode.py::TestGetProxyUrl::test_env_var_overrides_config",
        "tests/gateway/test_proxy_mode.py::TestGetProxyUrl::test_empty_string_treated_as_unset",
        "tests/gateway/test_proxy_mode.py::TestResolveProxyUrl::test_normalizes_socks_alias_from_all_proxy",
        "tests/gateway/test_proxy_mode.py::TestResolveProxyUrl::test_no_proxy_bypasses_matching_host",
        "tests/gateway/test_proxy_mode.py::TestResolveProxyUrl::test_no_proxy_bypasses_cidr_target",
        "tests/gateway/test_proxy_mode.py::TestResolveProxyUrl::test_no_proxy_ignored_without_target",
        "tests/gateway/test_proxy_mode.py::TestRunAgentProxyDispatch::test_run_agent_delegates_to_proxy",
        "tests/gateway/test_proxy_mode.py::TestRunAgentProxyDispatch::test_run_agent_skips_proxy_when_not_configured",
        "tests/gateway/test_proxy_mode.py::TestRunAgentViaProxy::test_builds_correct_request",
        "tests/gateway/test_proxy_mode.py::TestRunAgentViaProxy::test_handles_http_error",
        "tests/gateway/test_proxy_mode.py::TestRunAgentViaProxy::test_handles_connection_error",
        "tests/gateway/test_proxy_mode.py::TestRunAgentViaProxy::test_skips_tool_messages_in_history",
        "tests/gateway/test_proxy_mode.py::TestRunAgentViaProxy::test_result_shape_matches_run_agent",
        "tests/gateway/test_proxy_mode.py::TestRunAgentViaProxy::test_proxy_stale_generation_returns_empty_result",
        "tests/gateway/test_proxy_mode.py::TestRunAgentViaProxy::test_no_auth_header_without_key",
        "tests/gateway/test_proxy_mode.py::TestRunAgentViaProxy::test_no_system_message_when_context_empty",
        "tests/gateway/test_proxy_mode.py::TestEnvVarRegistration::test_proxy_url_in_optional_env_vars",
        "tests/gateway/test_proxy_mode.py::TestEnvVarRegistration::test_proxy_key_in_optional_env_vars"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0200-test_proxy_mode.py.log",
      "output_sha256": "0bcc73c14fdca917b3be229767ecc7af05d5dbce051808a61abbcbab10977554",
      "returncode": 0,
      "test_file": "tests/gateway/test_proxy_mode.py",
      "test_file_sha256": "53b075378aa935c15a812ca3e868fcd12c19c0c5c0ba3bc1de9490793dba95ac"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0201",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_qqbot.py"
      ],
      "nodeids": [
        "tests/gateway/test_qqbot.py::TestQQRequirements::test_returns_bool",
        "tests/gateway/test_qqbot.py::TestQQAdapterInit::test_basic_attributes",
        "tests/gateway/test_qqbot.py::TestQQAdapterInit::test_env_fallback",
        "tests/gateway/test_qqbot.py::TestQQAdapterInit::test_env_fallback_extra_wins",
        "tests/gateway/test_qqbot.py::TestQQAdapterInit::test_dm_policy_default",
        "tests/gateway/test_qqbot.py::TestQQAdapterInit::test_dm_policy_explicit",
        "tests/gateway/test_qqbot.py::TestQQAdapterInit::test_group_policy_default",
        "tests/gateway/test_qqbot.py::TestQQAdapterInit::test_allow_from_parsing_string",
        "tests/gateway/test_qqbot.py::TestQQAdapterInit::test_allow_from_parsing_list",
        "tests/gateway/test_qqbot.py::TestQQAdapterInit::test_allow_from_default_empty",
        "tests/gateway/test_qqbot.py::TestQQAdapterInit::test_group_allow_from",
        "tests/gateway/test_qqbot.py::TestQQAdapterInit::test_markdown_support_default",
        "tests/gateway/test_qqbot.py::TestQQAdapterInit::test_markdown_support_false",
        "tests/gateway/test_qqbot.py::TestQQAdapterInit::test_name_property",
        "tests/gateway/test_qqbot.py::TestCoerceList::test_none",
        "tests/gateway/test_qqbot.py::TestCoerceList::test_string",
        "tests/gateway/test_qqbot.py::TestCoerceList::test_list",
        "tests/gateway/test_qqbot.py::TestCoerceList::test_empty_string",
        "tests/gateway/test_qqbot.py::TestCoerceList::test_tuple",
        "tests/gateway/test_qqbot.py::TestCoerceList::test_single_item_string",
        "tests/gateway/test_qqbot.py::TestIsVoiceContentType::test_voice_content_type",
        "tests/gateway/test_qqbot.py::TestIsVoiceContentType::test_audio_content_type",
        "tests/gateway/test_qqbot.py::TestIsVoiceContentType::test_voice_extension",
        "tests/gateway/test_qqbot.py::TestIsVoiceContentType::test_non_voice",
        "tests/gateway/test_qqbot.py::TestIsVoiceContentType::test_audio_extension_amr",
        "tests/gateway/test_qqbot.py::TestVoiceAttachmentSSRFProtection::test_stt_blocks_unsafe_download_url",
        "tests/gateway/test_qqbot.py::TestVoiceAttachmentSSRFProtection::test_connect_uses_redirect_guard_hook",
        "tests/gateway/test_qqbot.py::TestQQWebSocketProxy::test_open_ws_honors_proxy_env",
        "tests/gateway/test_qqbot.py::TestStripAtMention::test_removes_mention",
        "tests/gateway/test_qqbot.py::TestStripAtMention::test_no_mention",
        "tests/gateway/test_qqbot.py::TestStripAtMention::test_empty_string",
        "tests/gateway/test_qqbot.py::TestStripAtMention::test_only_mention",
        "tests/gateway/test_qqbot.py::TestDmAllowed::test_open_policy",
        "tests/gateway/test_qqbot.py::TestDmAllowed::test_disabled_policy",
        "tests/gateway/test_qqbot.py::TestDmAllowed::test_allowlist_match",
        "tests/gateway/test_qqbot.py::TestDmAllowed::test_allowlist_no_match",
        "tests/gateway/test_qqbot.py::TestDmAllowed::test_allowlist_wildcard",
        "tests/gateway/test_qqbot.py::TestGroupAllowed::test_open_policy",
        "tests/gateway/test_qqbot.py::TestGroupAllowed::test_allowlist_match",
        "tests/gateway/test_qqbot.py::TestGroupAllowed::test_allowlist_no_match",
        "tests/gateway/test_qqbot.py::TestResolveSTTConfig::test_no_config",
        "tests/gateway/test_qqbot.py::TestResolveSTTConfig::test_env_config",
        "tests/gateway/test_qqbot.py::TestResolveSTTConfig::test_extra_config",
        "tests/gateway/test_qqbot.py::TestDetectMessageType::test_no_media",
        "tests/gateway/test_qqbot.py::TestDetectMessageType::test_image",
        "tests/gateway/test_qqbot.py::TestDetectMessageType::test_voice",
        "tests/gateway/test_qqbot.py::TestDetectMessageType::test_video",
        "tests/gateway/test_qqbot.py::TestQQCloseError::test_attributes",
        "tests/gateway/test_qqbot.py::TestQQCloseError::test_code_none",
        "tests/gateway/test_qqbot.py::TestQQCloseError::test_string_to_int",
        "tests/gateway/test_qqbot.py::TestQQCloseError::test_message_format",
        "tests/gateway/test_qqbot.py::TestDispatchPayload::test_unknown_op",
        "tests/gateway/test_qqbot.py::TestDispatchPayload::test_op10_updates_heartbeat_interval",
        "tests/gateway/test_qqbot.py::TestDispatchPayload::test_op11_heartbeat_ack",
        "tests/gateway/test_qqbot.py::TestDispatchPayload::test_seq_tracking",
        "tests/gateway/test_qqbot.py::TestDispatchPayload::test_seq_increments",
        "tests/gateway/test_qqbot.py::TestReadyHandling::test_ready_stores_session",
        "tests/gateway/test_qqbot.py::TestReadyHandling::test_resumed_preserves_session",
        "tests/gateway/test_qqbot.py::TestParseJson::test_valid_json",
        "tests/gateway/test_qqbot.py::TestParseJson::test_invalid_json",
        "tests/gateway/test_qqbot.py::TestParseJson::test_none_input",
        "tests/gateway/test_qqbot.py::TestParseJson::test_non_dict_json",
        "tests/gateway/test_qqbot.py::TestParseJson::test_empty_dict",
        "tests/gateway/test_qqbot.py::TestBuildTextBody::test_plain_text",
        "tests/gateway/test_qqbot.py::TestBuildTextBody::test_markdown_text",
        "tests/gateway/test_qqbot.py::TestBuildTextBody::test_truncation",
        "tests/gateway/test_qqbot.py::TestBuildTextBody::test_empty_string",
        "tests/gateway/test_qqbot.py::TestBuildTextBody::test_reply_to",
        "tests/gateway/test_qqbot.py::TestWaitForReconnection::test_send_waits_and_succeeds_on_reconnect",
        "tests/gateway/test_qqbot.py::TestWaitForReconnection::test_send_returns_retryable_after_timeout",
        "tests/gateway/test_qqbot.py::TestWaitForReconnection::test_send_succeeds_immediately_when_connected",
        "tests/gateway/test_qqbot.py::TestWaitForReconnection::test_send_media_waits_for_reconnect",
        "tests/gateway/test_qqbot.py::TestChunkedUploadFormatSize::test_bytes",
        "tests/gateway/test_qqbot.py::TestChunkedUploadFormatSize::test_kilobytes",
        "tests/gateway/test_qqbot.py::TestChunkedUploadFormatSize::test_megabytes",
        "tests/gateway/test_qqbot.py::TestChunkedUploadFormatSize::test_gigabytes",
        "tests/gateway/test_qqbot.py::TestChunkedUploadErrors::test_daily_limit_has_human_size",
        "tests/gateway/test_qqbot.py::TestChunkedUploadErrors::test_too_large_includes_limit",
        "tests/gateway/test_qqbot.py::TestChunkedUploadErrors::test_too_large_unknown_limit",
        "tests/gateway/test_qqbot.py::TestChunkedUploadHelpers::test_read_chunk_exact_bytes",
        "tests/gateway/test_qqbot.py::TestChunkedUploadHelpers::test_read_chunk_short_read_raises",
        "tests/gateway/test_qqbot.py::TestChunkedUploadHelpers::test_compute_hashes_small_file",
        "tests/gateway/test_qqbot.py::TestChunkedUploadHelpers::test_compute_hashes_large_file_has_distinct_md5_10m",
        "tests/gateway/test_qqbot.py::TestChunkedUploadHelpers::test_parse_prepare_response_wrapped_in_data",
        "tests/gateway/test_qqbot.py::TestChunkedUploadHelpers::test_parse_prepare_response_missing_upload_id_raises",
        "tests/gateway/test_qqbot.py::TestChunkedUploadHelpers::test_parse_prepare_response_missing_parts_raises",
        "tests/gateway/test_qqbot.py::TestChunkedUploaderFlow::test_full_upload_two_parts_success",
        "tests/gateway/test_qqbot.py::TestChunkedUploaderFlow::test_group_paths",
        "tests/gateway/test_qqbot.py::TestChunkedUploaderFlow::test_daily_limit_raises_structured_error",
        "tests/gateway/test_qqbot.py::TestChunkedUploaderFlow::test_part_finish_retries_on_40093001_then_succeeds",
        "tests/gateway/test_qqbot.py::TestChunkedUploaderFlow::test_put_retries_transient_failure",
        "tests/gateway/test_qqbot.py::TestApprovalButtonData::test_parse_allow_once",
        "tests/gateway/test_qqbot.py::TestApprovalButtonData::test_parse_allow_always",
        "tests/gateway/test_qqbot.py::TestApprovalButtonData::test_parse_deny",
        "tests/gateway/test_qqbot.py::TestApprovalButtonData::test_parse_invalid_prefix_returns_none",
        "tests/gateway/test_qqbot.py::TestApprovalButtonData::test_parse_unknown_decision_returns_none",
        "tests/gateway/test_qqbot.py::TestApprovalButtonData::test_parse_empty_returns_none",
        "tests/gateway/test_qqbot.py::TestUpdatePromptButtonData::test_parse_yes",
        "tests/gateway/test_qqbot.py::TestUpdatePromptButtonData::test_parse_no",
        "tests/gateway/test_qqbot.py::TestUpdatePromptButtonData::test_parse_unknown_returns_none",
        "tests/gateway/test_qqbot.py::TestUpdatePromptButtonData::test_parse_wrong_prefix",
        "tests/gateway/test_qqbot.py::TestBuildApprovalKeyboard::test_three_buttons_in_single_row",
        "tests/gateway/test_qqbot.py::TestBuildApprovalKeyboard::test_button_data_embeds_session_key",
        "tests/gateway/test_qqbot.py::TestBuildApprovalKeyboard::test_buttons_share_group_id_for_mutual_exclusion",
        "tests/gateway/test_qqbot.py::TestBuildApprovalKeyboard::test_to_dict_has_expected_shape",
        "tests/gateway/test_qqbot.py::TestBuildApprovalKeyboard::test_round_trip_parse_matches_build",
        "tests/gateway/test_qqbot.py::TestBuildUpdatePromptKeyboard::test_two_buttons",
        "tests/gateway/test_qqbot.py::TestBuildUpdatePromptKeyboard::test_button_data_shape",
        "tests/gateway/test_qqbot.py::TestBuildApprovalText::test_exec_approval_includes_command_preview",
        "tests/gateway/test_qqbot.py::TestBuildApprovalText::test_plugin_approval_uses_severity_icon",
        "tests/gateway/test_qqbot.py::TestBuildApprovalText::test_truncates_long_commands",
        "tests/gateway/test_qqbot.py::TestInteractionEventParsing::test_parse_c2c_interaction",
        "tests/gateway/test_qqbot.py::TestInteractionEventParsing::test_parse_group_interaction",
        "tests/gateway/test_qqbot.py::TestInteractionEventParsing::test_parse_missing_data_gracefully",
        "tests/gateway/test_qqbot.py::TestAdapterInteractionDispatch::test_callback_invoked_with_parsed_event",
        "tests/gateway/test_qqbot.py::TestAdapterInteractionDispatch::test_missing_id_skips_ack",
        "tests/gateway/test_qqbot.py::TestAdapterInteractionDispatch::test_callback_exception_does_not_propagate",
        "tests/gateway/test_qqbot.py::TestAdapterInteractionDispatch::test_explicit_no_callback_is_harmless",
        "tests/gateway/test_qqbot.py::TestProcessQuotedContext::test_non_quote_message_returns_empty",
        "tests/gateway/test_qqbot.py::TestProcessQuotedContext::test_quote_type_but_no_elements_returns_empty",
        "tests/gateway/test_qqbot.py::TestProcessQuotedContext::test_quote_with_text_only",
        "tests/gateway/test_qqbot.py::TestProcessQuotedContext::test_quote_with_voice_attachment_runs_stt",
        "tests/gateway/test_qqbot.py::TestProcessQuotedContext::test_quote_with_file_preserves_filename",
        "tests/gateway/test_qqbot.py::TestProcessQuotedContext::test_quote_with_image_returns_cached_paths",
        "tests/gateway/test_qqbot.py::TestProcessQuotedContext::test_quote_with_image_only_no_text",
        "tests/gateway/test_qqbot.py::TestProcessQuotedContext::test_multiple_elements_concatenated",
        "tests/gateway/test_qqbot.py::TestProcessQuotedContext::test_invalid_message_type_string_returns_empty",
        "tests/gateway/test_qqbot.py::TestMergeQuoteInto::test_empty_quote_returns_original",
        "tests/gateway/test_qqbot.py::TestMergeQuoteInto::test_empty_text_returns_only_quote",
        "tests/gateway/test_qqbot.py::TestMergeQuoteInto::test_both_present_joined_with_blank_line",
        "tests/gateway/test_qqbot.py::TestDefaultInteractionDispatch::test_default_callback_installed_on_init",
        "tests/gateway/test_qqbot.py::TestDefaultInteractionDispatch::test_send_exec_approval_is_a_class_method",
        "tests/gateway/test_qqbot.py::TestDefaultInteractionDispatch::test_approval_click_once_maps_to_once",
        "tests/gateway/test_qqbot.py::TestDefaultInteractionDispatch::test_approval_click_always_maps_to_always",
        "tests/gateway/test_qqbot.py::TestDefaultInteractionDispatch::test_approval_click_deny_maps_to_deny",
        "tests/gateway/test_qqbot.py::TestDefaultInteractionDispatch::test_approval_click_rejects_unauthorized_operator",
        "tests/gateway/test_qqbot.py::TestDefaultInteractionDispatch::test_update_prompt_click_writes_response_file",
        "tests/gateway/test_qqbot.py::TestDefaultInteractionDispatch::test_update_prompt_click_no_writes_n",
        "tests/gateway/test_qqbot.py::TestDefaultInteractionDispatch::test_unknown_button_data_is_harmless",
        "tests/gateway/test_qqbot.py::TestDefaultInteractionDispatch::test_empty_button_data_is_harmless",
        "tests/gateway/test_qqbot.py::TestDefaultInteractionDispatch::test_resolve_exception_is_swallowed",
        "tests/gateway/test_qqbot.py::TestSendExecApproval::test_delegates_to_send_approval_request",
        "tests/gateway/test_qqbot.py::TestSendExecApproval::test_accepts_metadata_arg",
        "tests/gateway/test_qqbot.py::TestSendUpdatePrompt::test_delegates_to_send_with_keyboard",
        "tests/gateway/test_qqbot.py::TestSendUpdatePrompt::test_empty_default_has_no_hint",
        "tests/gateway/test_qqbot.py::TestIdentifyIntents::test_intents_include_interaction_bit",
        "tests/gateway/test_qqbot.py::TestProcessAttachmentsPathExposure::test_video_attachment_includes_path",
        "tests/gateway/test_qqbot.py::TestProcessAttachmentsPathExposure::test_file_attachment_includes_path",
        "tests/gateway/test_qqbot.py::TestProcessAttachmentsPathExposure::test_video_without_filename_falls_back_to_content_type",
        "tests/gateway/test_qqbot.py::TestProcessAttachmentsPathExposure::test_download_failure_produces_no_attachment_info",
        "tests/gateway/test_qqbot.py::TestProcessAttachmentsPathExposure::test_quoted_video_includes_path_in_quote_block",
        "tests/gateway/test_qqbot.py::TestProcessAttachmentsPathExposure::test_quoted_file_includes_path_in_quote_block",
        "tests/gateway/test_qqbot.py::TestOp7ServerReconnect::test_op7_closes_websocket",
        "tests/gateway/test_qqbot.py::TestOp7ServerReconnect::test_op7_close_task_executes",
        "tests/gateway/test_qqbot.py::TestOp9InvalidSession::test_op9_not_resumable_clears_session",
        "tests/gateway/test_qqbot.py::TestOp9InvalidSession::test_op9_resumable_preserves_session",
        "tests/gateway/test_qqbot.py::TestOp9InvalidSession::test_op9_non_resumable_triggers_ws_close",
        "tests/gateway/test_qqbot.py::TestCloseCodeClassification::test_4009_preserves_session",
        "tests/gateway/test_qqbot.py::TestCloseCodeClassification::test_fatal_codes_include_intent_errors",
        "tests/gateway/test_qqbot.py::TestReadEventsClosedWsGuard::test_read_events_raises_when_ws_closed_on_entry",
        "tests/gateway/test_qqbot.py::TestReadEventsClosedWsGuard::test_read_events_raises_when_ws_none"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0201-test_qqbot.py.log",
      "output_sha256": "c638e51601751b09b372fe60783129eaba24da7e780e69c52d505105c15c2e71",
      "returncode": 0,
      "test_file": "tests/gateway/test_qqbot.py",
      "test_file_sha256": "5b42a5622608c0cdb2cd052b9988781fbdcb19b44cb90e99647b3c8f9d52d300"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0202",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_queue_consumption.py"
      ],
      "nodeids": [
        "tests/gateway/test_queue_consumption.py::TestQueueMessageStorage::test_queue_stores_message_in_pending",
        "tests/gateway/test_queue_consumption.py::TestQueueMessageStorage::test_get_pending_message_consumes_and_clears",
        "tests/gateway/test_queue_consumption.py::TestQueueMessageStorage::test_dequeue_pending_event_preserves_voice_media_metadata",
        "tests/gateway/test_queue_consumption.py::TestQueueMessageStorage::test_queue_does_not_set_interrupt_event",
        "tests/gateway/test_queue_consumption.py::TestQueueMessageStorage::test_regular_message_sets_interrupt_event",
        "tests/gateway/test_queue_consumption.py::TestQueueConsumptionAfterCompletion::test_pending_message_available_after_normal_completion",
        "tests/gateway/test_queue_consumption.py::TestQueueConsumptionAfterCompletion::test_multiple_queues_overflow_fifo",
        "tests/gateway/test_queue_consumption.py::TestQueueConsumptionAfterCompletion::test_promote_advances_queue_fifo",
        "tests/gateway/test_queue_consumption.py::TestQueueConsumptionAfterCompletion::test_promote_stages_overflow_when_slot_already_populated",
        "tests/gateway/test_queue_consumption.py::TestQueueConsumptionAfterCompletion::test_queue_depth_counts_slot_plus_overflow",
        "tests/gateway/test_queue_consumption.py::TestQueueConsumptionAfterCompletion::test_enqueue_preserves_text_no_merging",
        "tests/gateway/test_queue_consumption.py::TestBusyInputModeQueueFifo::test_rapid_text_followups_are_queued_in_fifo_order",
        "tests/gateway/test_queue_consumption.py::TestBusyInputModeQueueFifo::test_queue_respects_bounded_cap",
        "tests/gateway/test_queue_consumption.py::TestBusyInputModeQueueFifo::test_photo_burst_still_merges_in_head_slot"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0202-test_queue_consumption.py.log",
      "output_sha256": "eb19c93fecb77fd19d9096113d8cc9f65bafab0a7656a9438c5781283dfa124d",
      "returncode": 0,
      "test_file": "tests/gateway/test_queue_consumption.py",
      "test_file_sha256": "af8d085a47b250487cff8d0ac08fc8e1bf4511c77d77c58a8603278e64bd40b9"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0203",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_raft_adapter.py"
      ],
      "nodeids": [
        "tests/gateway/test_raft_adapter.py::TestRaftWakePayload::test_detects_content_fields",
        "tests/gateway/test_raft_adapter.py::TestRaftWakeHttp::test_send_is_noop_success",
        "tests/gateway/test_raft_adapter.py::TestRaftWakeHttp::test_rejects_missing_bridge_token",
        "tests/gateway/test_raft_adapter.py::TestRaftWakeHttp::test_rejects_content_bearing_payload",
        "tests/gateway/test_raft_adapter.py::TestRaftWakeHttp::test_returns_not_ready_without_gateway_handler",
        "tests/gateway/test_raft_adapter.py::TestRaftWakeHttp::test_accepts_content_free_wake_as_internal_event[raft-channel-wake.v1]",
        "tests/gateway/test_raft_adapter.py::TestRaftWakeHttp::test_accepts_content_free_wake_as_internal_event[raft-channel-wake.v2]",
        "tests/gateway/test_raft_adapter.py::TestRaftWakeHttp::test_busy_session_queues_without_interrupt",
        "tests/gateway/test_raft_adapter.py::TestRaftActivityHttp::test_activity_endpoint_auth_validation_and_drain",
        "tests/gateway/test_raft_adapter.py::TestRaftActivityHttp::test_hook_mapping_reports_only_raft_context",
        "tests/gateway/test_raft_adapter.py::TestRaftActivityHttp::test_session_start_registers_raft_profile_env_passthrough",
        "tests/gateway/test_raft_adapter.py::TestRaftActivityHttp::test_interrupted_turn_reports_error_stop",
        "tests/gateway/test_raft_adapter.py::TestRaftConfig::test_env_enablement_auto_enables_with_raft_profile",
        "tests/gateway/test_raft_adapter.py::TestRaftConfig::test_env_enablement_returns_none_without_profile",
        "tests/gateway/test_raft_adapter.py::TestRaftConfig::test_is_connected_checks_bridge_token_or_enabled",
        "tests/gateway/test_raft_adapter.py::TestRaftConfig::test_register_calls_register_platform"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0203-test_raft_adapter.py.log",
      "output_sha256": "223a19001302e4e9ec91a42ac490a20407d046223c5376a27481d171fcea460a",
      "returncode": 0,
      "test_file": "tests/gateway/test_raft_adapter.py",
      "test_file_sha256": "149df959a1fe01f9f9fc2769ea402cb18b5fb3c3134118a25b8572d7add3b217"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0204",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_reasoning_command.py"
      ],
      "nodeids": [
        "tests/gateway/test_reasoning_command.py::TestReasoningCommand::test_reasoning_in_help_output",
        "tests/gateway/test_reasoning_command.py::TestReasoningCommand::test_reasoning_is_known_command",
        "tests/gateway/test_reasoning_command.py::TestReasoningCommand::test_parse_reasoning_command_args_accepts_ascii_and_smart_global_flags",
        "tests/gateway/test_reasoning_command.py::TestReasoningCommand::test_reasoning_command_reloads_current_state_from_config",
        "tests/gateway/test_reasoning_command.py::TestReasoningCommand::test_handle_reasoning_command_updates_config_and_cache",
        "tests/gateway/test_reasoning_command.py::TestReasoningCommand::test_handle_reasoning_command_defaults_to_session_only",
        "tests/gateway/test_reasoning_command.py::TestReasoningCommand::test_reasoning_global_clears_existing_session_override",
        "tests/gateway/test_reasoning_command.py::TestReasoningCommand::test_reasoning_reset_clears_session_override_without_config_write",
        "tests/gateway/test_reasoning_command.py::TestReasoningCommand::test_resolve_session_reasoning_prefers_session_override",
        "tests/gateway/test_reasoning_command.py::TestReasoningCommand::test_run_agent_reloads_reasoning_config_per_message",
        "tests/gateway/test_reasoning_command.py::TestReasoningCommand::test_run_agent_prefers_session_reasoning_override",
        "tests/gateway/test_reasoning_command.py::TestReasoningCommand::test_run_agent_includes_enabled_mcp_servers_in_gateway_toolsets",
        "tests/gateway/test_reasoning_command.py::TestReasoningCommand::test_run_agent_homeassistant_uses_default_platform_toolset",
        "tests/gateway/test_reasoning_command.py::TestLoadShowReasoningCoercion::test_quoted_false_is_false",
        "tests/gateway/test_reasoning_command.py::TestLoadShowReasoningCoercion::test_quoted_off_is_false",
        "tests/gateway/test_reasoning_command.py::TestLoadShowReasoningCoercion::test_quoted_true_is_true",
        "tests/gateway/test_reasoning_command.py::TestLoadShowReasoningCoercion::test_bare_true_is_true",
        "tests/gateway/test_reasoning_command.py::TestLoadShowReasoningCoercion::test_missing_is_false"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0204-test_reasoning_command.py.log",
      "output_sha256": "78ea6d0d4b3ec405e7f43006f2511ab7797e17f0138f7dc7f436a9d5e9532725",
      "returncode": 0,
      "test_file": "tests/gateway/test_reasoning_command.py",
      "test_file_sha256": "4257e11c8c14afc961b01be26964a45b8e106bdecd39e552a6e5adda7a17f8fa"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0205",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_relay_capability_surface.py"
      ],
      "nodeids": [
        "tests/gateway/test_relay_capability_surface.py::test_abstract_methods_are_the_known_set",
        "tests/gateway/test_relay_capability_surface.py::test_message_len_fn_defaults_to_len",
        "tests/gateway/test_relay_capability_surface.py::test_supports_draft_streaming_defaults_false",
        "tests/gateway/test_relay_capability_surface.py::test_stream_consumer_reads_max_message_length_by_attribute"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0205-test_relay_capability_surface.py.log",
      "output_sha256": "323d465eea7f2faf48dd73f543099b892e56aeb2f2f08263ee1c94de341fda5c",
      "returncode": 0,
      "test_file": "tests/gateway/test_relay_capability_surface.py",
      "test_file_sha256": "9f7494b2bf9a73f9f4d6df445c87d303ba10bb475e19ac6a90346c0e28571fc8"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0206",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_reload_skills_command.py"
      ],
      "nodeids": [
        "tests/gateway/test_reload_skills_command.py::test_reload_skills_handler_queues_note_on_diff",
        "tests/gateway/test_reload_skills_command.py::test_reload_skills_handler_reports_no_changes",
        "tests/gateway/test_reload_skills_command.py::test_dispatcher_routes_reload_skills",
        "tests/gateway/test_reload_skills_command.py::test_underscored_alias_not_flagged_unknown"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0206-test_reload_skills_command.py.log",
      "output_sha256": "704694d033e92787bf6d6c4c9538bd65319ce9bdf7748042f9a3b424cd4149d5",
      "returncode": 0,
      "test_file": "tests/gateway/test_reload_skills_command.py",
      "test_file_sha256": "5e4497d2040c59ccd0be3190f35189bfaa6497fd957018122a0dbf69a3086255"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0207",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_reload_skills_discord_resync.py"
      ],
      "nodeids": [
        "tests/gateway/test_reload_skills_discord_resync.py::TestRefreshSkillGroup::test_refresh_repopulates_entries_after_catalog_change",
        "tests/gateway/test_reload_skills_discord_resync.py::TestRefreshSkillGroup::test_refresh_sorts_entries_alphabetically",
        "tests/gateway/test_reload_skills_discord_resync.py::TestRefreshSkillGroup::test_refresh_handles_collector_exception_gracefully",
        "tests/gateway/test_reload_skills_discord_resync.py::TestRegisterSkillGroupUsesInstanceState::test_refresh_catalog_state_populates_instance_attrs",
        "tests/gateway/test_reload_skills_discord_resync.py::TestHandleReloadSkillsCallsRefreshSkillGroup::test_orchestrator_calls_refresh_skill_group_on_every_adapter"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0207-test_reload_skills_discord_resync.py.log",
      "output_sha256": "0aa243579a2688edd27949ce61cbbbd12c5eaf2d315f3be22e38dc774c2bcce2",
      "returncode": 0,
      "test_file": "tests/gateway/test_reload_skills_discord_resync.py",
      "test_file_sha256": "8ec7194d17256be12b00e5e47f3d8e636aa15a3bed8b32e31c2b297ba8ac2731"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0208",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_replay_entry_fields.py"
      ],
      "nodeids": [
        "tests/gateway/test_replay_entry_fields.py::TestBuildReplayEntry::test_user_message_has_only_role_and_content",
        "tests/gateway/test_replay_entry_fields.py::TestBuildReplayEntry::test_tool_message_has_only_role_and_content",
        "tests/gateway/test_replay_entry_fields.py::TestBuildReplayEntry::test_assistant_minimal_has_only_role_and_content",
        "tests/gateway/test_replay_entry_fields.py::TestBuildReplayEntry::test_assistant_preserves_reasoning",
        "tests/gateway/test_replay_entry_fields.py::TestBuildReplayEntry::test_assistant_preserves_reasoning_content",
        "tests/gateway/test_replay_entry_fields.py::TestBuildReplayEntry::test_assistant_preserves_reasoning_details",
        "tests/gateway/test_replay_entry_fields.py::TestBuildReplayEntry::test_assistant_preserves_codex_reasoning_items",
        "tests/gateway/test_replay_entry_fields.py::TestBuildReplayEntry::test_assistant_preserves_codex_message_items",
        "tests/gateway/test_replay_entry_fields.py::TestBuildReplayEntry::test_assistant_preserves_finish_reason",
        "tests/gateway/test_replay_entry_fields.py::TestBuildReplayEntry::test_assistant_drops_falsy_reasoning",
        "tests/gateway/test_replay_entry_fields.py::TestBuildReplayEntry::test_assistant_preserves_empty_reasoning_content",
        "tests/gateway/test_replay_entry_fields.py::TestBuildReplayEntry::test_assistant_drops_none_reasoning_content",
        "tests/gateway/test_replay_entry_fields.py::TestBuildReplayEntry::test_assistant_preserves_all_six_fields_together",
        "tests/gateway/test_replay_entry_fields.py::TestBuildReplayEntry::test_assistant_does_not_invent_keys",
        "tests/gateway/test_replay_entry_fields.py::TestBuildReplayEntry::test_replay_fields_constant_is_stable",
        "tests/gateway/test_replay_entry_fields.py::TestBuildReplayEntry::test_unrelated_keys_are_ignored"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0208-test_replay_entry_fields.py.log",
      "output_sha256": "9e5afeae2eef386156de4252809688395658e690c97d63636a4540e1edcce014",
      "returncode": 0,
      "test_file": "tests/gateway/test_replay_entry_fields.py",
      "test_file_sha256": "3404b4b666a59574aba396fcb8e9b81aab7b5142e95cbabd99718366ae820917"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0209",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_reply_to_injection.py"
      ],
      "nodeids": [
        "tests/gateway/test_reply_to_injection.py::test_reply_prefix_injected_when_text_absent_from_history",
        "tests/gateway/test_reply_to_injection.py::test_reply_prefix_still_injected_when_text_in_history",
        "tests/gateway/test_reply_to_injection.py::test_own_message_reply_prefix_marks_assistant_message",
        "tests/gateway/test_reply_to_injection.py::test_no_prefix_without_reply_context",
        "tests/gateway/test_reply_to_injection.py::test_no_prefix_when_reply_to_text_is_empty",
        "tests/gateway/test_reply_to_injection.py::test_reply_snippet_truncated_to_500_chars"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0209-test_reply_to_injection.py.log",
      "output_sha256": "bcabbd37c3972f909bbfadd803cf94fe71bd127a999c649a91d7eb1fbab6ca4f",
      "returncode": 0,
      "test_file": "tests/gateway/test_reply_to_injection.py",
      "test_file_sha256": "0372ec785196dc1afcfc4de2a751198a35917e0ee151d6786d01913edfa83678"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0210",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_response_filters.py"
      ],
      "nodeids": [
        "tests/gateway/test_response_filters.py::test_exact_silence_tokens_are_intentional_silence",
        "tests/gateway/test_response_filters.py::test_blank_and_prose_mentions_are_not_silence",
        "tests/gateway/test_response_filters.py::test_failed_agent_result_never_counts_as_intentional_silence"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0210-test_response_filters.py.log",
      "output_sha256": "8f8e958a1d02a1a0c7d2fc294de3048e8355239516be10edf447fbb617ad3fc7",
      "returncode": 0,
      "test_file": "tests/gateway/test_response_filters.py",
      "test_file_sha256": "2c604a32af8b2a1affc76ac42e15f2cc3ba3b6677ef95da25629f02afee93aa1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0211",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_restart_drain.py"
      ],
      "nodeids": [
        "tests/gateway/test_restart_drain.py::test_restart_command_while_busy_requests_drain_without_interrupt",
        "tests/gateway/test_restart_drain.py::test_drain_queue_mode_queues_follow_up_without_interrupt",
        "tests/gateway/test_restart_drain.py::test_draining_rejects_new_session_messages",
        "tests/gateway/test_restart_drain.py::test_load_busy_input_mode_prefers_env_then_config_then_default",
        "tests/gateway/test_restart_drain.py::test_load_busy_text_mode_follows_input_mode_and_honors_legacy",
        "tests/gateway/test_restart_drain.py::test_load_restart_drain_timeout_prefers_env_then_config_then_default",
        "tests/gateway/test_restart_drain.py::test_request_restart_is_idempotent",
        "tests/gateway/test_restart_drain.py::test_launch_detached_restart_command_uses_setsid",
        "tests/gateway/test_restart_drain.py::test_windows_gateway_venv_imports_add_site_packages",
        "tests/gateway/test_restart_drain.py::test_windows_detached_restart_scrubs_gateway_marker",
        "tests/gateway/test_restart_drain.py::test_shutdown_notification_sent_to_active_sessions",
        "tests/gateway/test_restart_drain.py::test_shutdown_notification_says_restarting_when_restart_requested",
        "tests/gateway/test_restart_drain.py::test_shutdown_notification_deduplicates_per_chat",
        "tests/gateway/test_restart_drain.py::test_shutdown_notification_skipped_when_no_active_agents",
        "tests/gateway/test_restart_drain.py::test_shutdown_notification_ignores_pending_sentinels",
        "tests/gateway/test_restart_drain.py::test_shutdown_notification_send_failure_does_not_block",
        "tests/gateway/test_restart_drain.py::test_shutdown_notification_suppressed_when_flag_disabled",
        "tests/gateway/test_restart_drain.py::test_shutdown_notification_home_channel_suppressed_when_flag_disabled",
        "tests/gateway/test_restart_drain.py::test_shutdown_notification_uses_persisted_origin_for_colon_ids"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0211-test_restart_drain.py.log",
      "output_sha256": "f8405e642e840745580d14fe89c44bf3c5d551d8b7bea8e3659776abbcd98f69",
      "returncode": 0,
      "test_file": "tests/gateway/test_restart_drain.py",
      "test_file_sha256": "ca79a6ad0f83c3452b01a08974d10997573d811b28a9d4f9c0eeee35fec4752b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0212",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_restart_notification.py"
      ],
      "nodeids": [
        "tests/gateway/test_restart_notification.py::test_restart_notification_pending_false_without_marker",
        "tests/gateway/test_restart_notification.py::test_restart_notification_pending_true_with_marker",
        "tests/gateway/test_restart_notification.py::test_planned_restart_notification_pending_roundtrip",
        "tests/gateway/test_restart_notification.py::test_restart_command_writes_notify_file",
        "tests/gateway/test_restart_notification.py::test_restart_command_uses_service_restart_under_systemd",
        "tests/gateway/test_restart_notification.py::test_restart_command_uses_detached_without_systemd",
        "tests/gateway/test_restart_notification.py::test_restart_command_preserves_thread_id",
        "tests/gateway/test_restart_notification.py::test_restart_command_uses_atomic_json_writes_for_marker_files",
        "tests/gateway/test_restart_notification.py::test_sethome_updates_running_config_for_same_process_restart",
        "tests/gateway/test_restart_notification.py::test_sethome_preserves_thread_target_for_same_process_restart",
        "tests/gateway/test_restart_notification.py::test_send_home_channel_startup_notification_to_configured_home",
        "tests/gateway/test_restart_notification.py::test_send_home_channel_startup_notification_preserves_thread_metadata",
        "tests/gateway/test_restart_notification.py::test_send_home_channel_startup_notification_skips_restart_target",
        "tests/gateway/test_restart_notification.py::test_send_home_channel_startup_notification_does_not_skip_different_thread",
        "tests/gateway/test_restart_notification.py::test_send_home_channel_startup_notification_ignores_false_send_result",
        "tests/gateway/test_restart_notification.py::test_send_restart_notification_delivers_and_cleans_up",
        "tests/gateway/test_restart_notification.py::test_send_restart_notification_with_thread",
        "tests/gateway/test_restart_notification.py::test_send_restart_notification_noop_when_no_file",
        "tests/gateway/test_restart_notification.py::test_send_restart_notification_skips_when_adapter_missing",
        "tests/gateway/test_restart_notification.py::test_send_restart_notification_cleans_up_on_send_failure",
        "tests/gateway/test_restart_notification.py::test_send_restart_notification_logs_warning_on_sendresult_failure",
        "tests/gateway/test_restart_notification.py::test_send_home_channel_startup_notification_skipped_when_flag_disabled",
        "tests/gateway/test_restart_notification.py::test_send_home_channel_startup_notification_default_flag_true",
        "tests/gateway/test_restart_notification.py::test_send_restart_notification_skipped_when_flag_disabled",
        "tests/gateway/test_restart_notification.py::test_send_restart_notification_logs_info_on_sendresult_success",
        "tests/gateway/test_restart_notification.py::test_shutdown_notifications_use_cached_live_thread_source_when_origin_missing",
        "tests/gateway/test_restart_notification.py::test_restart_shutdown_notification_anchors_telegram_dm_topic"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0212-test_restart_notification.py.log",
      "output_sha256": "0edadb5ae18fde850c1f7021fff0190f70392070c44e3ebce1e5a628c0a04c42",
      "returncode": 0,
      "test_file": "tests/gateway/test_restart_notification.py",
      "test_file_sha256": "453f991122f1308de106621b65aef0b56312381f4abe34dc68cec527d042ee5d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0213",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_restart_redelivery_dedup.py"
      ],
      "nodeids": [
        "tests/gateway/test_restart_redelivery_dedup.py::test_restart_handler_writes_dedup_marker_with_update_id",
        "tests/gateway/test_restart_redelivery_dedup.py::test_redelivered_restart_with_same_update_id_is_ignored",
        "tests/gateway/test_restart_redelivery_dedup.py::test_redelivered_restart_with_older_update_id_is_ignored",
        "tests/gateway/test_restart_redelivery_dedup.py::test_fresh_restart_with_higher_update_id_is_processed",
        "tests/gateway/test_restart_redelivery_dedup.py::test_stale_marker_older_than_5min_does_not_block",
        "tests/gateway/test_restart_redelivery_dedup.py::test_no_marker_file_allows_restart",
        "tests/gateway/test_restart_redelivery_dedup.py::test_corrupt_marker_file_is_treated_as_absent",
        "tests/gateway/test_restart_redelivery_dedup.py::test_event_without_update_id_bypasses_dedup",
        "tests/gateway/test_restart_redelivery_dedup.py::test_different_platform_bypasses_dedup"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0213-test_restart_redelivery_dedup.py.log",
      "output_sha256": "4c0db0c078631003231dd3d5698cff97431f058a6f15d3f44a2612445cc55cc7",
      "returncode": 0,
      "test_file": "tests/gateway/test_restart_redelivery_dedup.py",
      "test_file_sha256": "142e43ee61c92fd26a86889e52d63d556a59cfd943b84c11f17f37a81f43b21f"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0214",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_restart_resume_pending.py"
      ],
      "nodeids": [
        "tests/gateway/test_restart_resume_pending.py::test_resume_pending_is_cleared_only_after_successful_turn",
        "tests/gateway/test_restart_resume_pending.py::TestSessionEntryResumeFields::test_defaults",
        "tests/gateway/test_restart_resume_pending.py::TestSessionEntryResumeFields::test_roundtrip_with_resume_fields",
        "tests/gateway/test_restart_resume_pending.py::TestSessionEntryResumeFields::test_from_dict_legacy_without_resume_fields",
        "tests/gateway/test_restart_resume_pending.py::TestSessionEntryResumeFields::test_malformed_timestamp_is_tolerated",
        "tests/gateway/test_restart_resume_pending.py::TestMarkResumePending::test_marks_existing_session",
        "tests/gateway/test_restart_resume_pending.py::TestMarkResumePending::test_custom_reason_persists",
        "tests/gateway/test_restart_resume_pending.py::TestMarkResumePending::test_returns_false_for_unknown_key",
        "tests/gateway/test_restart_resume_pending.py::TestMarkResumePending::test_does_not_override_suspended",
        "tests/gateway/test_restart_resume_pending.py::TestMarkResumePending::test_survives_roundtrip_through_json",
        "tests/gateway/test_restart_resume_pending.py::TestClearResumePending::test_clears_flag",
        "tests/gateway/test_restart_resume_pending.py::TestClearResumePending::test_returns_false_when_not_pending",
        "tests/gateway/test_restart_resume_pending.py::TestClearResumePending::test_returns_false_for_unknown_key",
        "tests/gateway/test_restart_resume_pending.py::TestGetOrCreateResumePending::test_resume_pending_preserves_session_id",
        "tests/gateway/test_restart_resume_pending.py::TestGetOrCreateResumePending::test_suspended_still_creates_new_session",
        "tests/gateway/test_restart_resume_pending.py::TestGetOrCreateResumePending::test_suspended_overrides_resume_pending",
        "tests/gateway/test_restart_resume_pending.py::TestSuspendRecentlyActiveSkipsResumePending::test_resume_pending_entries_not_suspended",
        "tests/gateway/test_restart_resume_pending.py::TestSuspendRecentlyActiveSkipsResumePending::test_non_resume_pending_gets_resume_pending",
        "tests/gateway/test_restart_resume_pending.py::TestResumePendingSystemNote::test_resume_pending_restart_note_mentions_restart",
        "tests/gateway/test_restart_resume_pending.py::TestResumePendingSystemNote::test_resume_pending_shutdown_note_mentions_shutdown",
        "tests/gateway/test_restart_resume_pending.py::TestResumePendingSystemNote::test_resume_pending_fires_without_tool_tail",
        "tests/gateway/test_restart_resume_pending.py::TestResumePendingSystemNote::test_resume_pending_subsumes_tool_tail_note",
        "tests/gateway/test_restart_resume_pending.py::TestResumePendingSystemNote::test_no_resume_pending_preserves_tool_tail_note",
        "tests/gateway/test_restart_resume_pending.py::TestResumePendingSystemNote::test_stale_resume_pending_does_not_inject_restart_note",
        "tests/gateway/test_restart_resume_pending.py::TestResumePendingSystemNote::test_fresh_tool_tail_preserves_auto_continue_note",
        "tests/gateway/test_restart_resume_pending.py::TestResumePendingSystemNote::test_stale_tool_tail_does_not_inject_auto_continue_note",
        "tests/gateway/test_restart_resume_pending.py::TestResumePendingSystemNote::test_stale_tool_tail_with_production_data_shape",
        "tests/gateway/test_restart_resume_pending.py::TestResumePendingSystemNote::test_freshness_gate_disabled_via_zero_window",
        "tests/gateway/test_restart_resume_pending.py::TestResumePendingSystemNote::test_legacy_history_without_timestamps_still_injects",
        "tests/gateway/test_restart_resume_pending.py::TestResumePendingSystemNote::test_no_note_when_nothing_to_resume",
        "tests/gateway/test_restart_resume_pending.py::TestResumePendingSystemNote::test_resume_pending_note_warns_against_reexecuting_restart",
        "tests/gateway/test_restart_resume_pending.py::TestResumePendingSystemNote::test_resume_pending_empty_message_reports_recovery",
        "tests/gateway/test_restart_resume_pending.py::TestFreshnessHelpers::test_coerce_datetime",
        "tests/gateway/test_restart_resume_pending.py::TestFreshnessHelpers::test_coerce_epoch_seconds",
        "tests/gateway/test_restart_resume_pending.py::TestFreshnessHelpers::test_coerce_epoch_milliseconds",
        "tests/gateway/test_restart_resume_pending.py::TestFreshnessHelpers::test_coerce_iso_string",
        "tests/gateway/test_restart_resume_pending.py::TestFreshnessHelpers::test_coerce_iso_string_with_z_suffix",
        "tests/gateway/test_restart_resume_pending.py::TestFreshnessHelpers::test_coerce_numeric_string",
        "tests/gateway/test_restart_resume_pending.py::TestFreshnessHelpers::test_coerce_rejects_garbage",
        "tests/gateway/test_restart_resume_pending.py::TestFreshnessHelpers::test_is_fresh_unknown_is_fresh",
        "tests/gateway/test_restart_resume_pending.py::TestFreshnessHelpers::test_is_fresh_window_bounds",
        "tests/gateway/test_restart_resume_pending.py::TestFreshnessHelpers::test_is_fresh_zero_window_always_fresh",
        "tests/gateway/test_restart_resume_pending.py::TestFreshnessHelpers::test_last_transcript_timestamp_skips_meta",
        "tests/gateway/test_restart_resume_pending.py::TestFreshnessHelpers::test_last_transcript_timestamp_empty",
        "tests/gateway/test_restart_resume_pending.py::TestFreshnessHelpers::test_last_transcript_timestamp_row_without_timestamp",
        "tests/gateway/test_restart_resume_pending.py::TestFreshnessHelpers::test_auto_continue_freshness_window_reads_env",
        "tests/gateway/test_restart_resume_pending.py::TestFreshnessHelpers::test_auto_continue_freshness_window_default_when_unset",
        "tests/gateway/test_restart_resume_pending.py::TestFreshnessHelpers::test_auto_continue_freshness_window_malformed_falls_back",
        "tests/gateway/test_restart_resume_pending.py::TestFreshnessHelpers::test_auto_continue_freshness_window_empty_falls_back",
        "tests/gateway/test_restart_resume_pending.py::test_drain_timeout_marks_resume_pending",
        "tests/gateway/test_restart_resume_pending.py::test_drain_timeout_uses_restart_reason_when_restarting",
        "tests/gateway/test_restart_resume_pending.py::test_drain_timeout_skips_pending_sentinel_sessions",
        "tests/gateway/test_restart_resume_pending.py::test_startup_auto_resume_schedules_fresh_pending_sessions",
        "tests/gateway/test_restart_resume_pending.py::test_startup_auto_resume_includes_crash_recovery",
        "tests/gateway/test_restart_resume_pending.py::test_startup_auto_resume_skips_stale_entries",
        "tests/gateway/test_restart_resume_pending.py::test_startup_auto_resume_skips_suspended_and_originless",
        "tests/gateway/test_restart_resume_pending.py::test_startup_auto_resume_skips_disallowed_reasons",
        "tests/gateway/test_restart_resume_pending.py::test_startup_auto_resume_skips_when_adapter_unavailable",
        "tests/gateway/test_restart_resume_pending.py::test_reconnect_reschedules_pending_after_late_platform_connect",
        "tests/gateway/test_restart_resume_pending.py::test_reconnect_reschedule_is_platform_scoped",
        "tests/gateway/test_restart_resume_pending.py::test_auto_resume_skips_sessions_with_running_agent",
        "tests/gateway/test_restart_resume_pending.py::test_startup_restore_gate_queues_real_inbound_messages",
        "tests/gateway/test_restart_resume_pending.py::test_startup_restore_waits_for_resume_before_draining_inbound",
        "tests/gateway/test_restart_resume_pending.py::test_restart_banner_uses_try_to_resume_wording",
        "tests/gateway/test_restart_resume_pending.py::test_restart_notifies_home_channel_even_without_active_sessions",
        "tests/gateway/test_restart_resume_pending.py::test_restart_home_channel_notification_dedupes_active_chat",
        "tests/gateway/test_restart_resume_pending.py::test_restart_home_channel_notification_not_deduped_across_threads",
        "tests/gateway/test_restart_resume_pending.py::test_restart_home_channel_notification_ignores_false_send_result",
        "tests/gateway/test_restart_resume_pending.py::TestStuckLoopEscalation::test_escalation_via_stuck_loop_counter_overrides_resume_pending",
        "tests/gateway/test_restart_resume_pending.py::TestStuckLoopEscalation::test_successful_turn_flow_clears_both_counter_and_resume_pending",
        "tests/gateway/test_restart_resume_pending.py::TestStuckLoopEscalation::test_increment_restart_failure_counts_uses_atomic_json_write",
        "tests/gateway/test_restart_resume_pending.py::TestStuckLoopEscalation::test_clear_restart_failure_count_uses_atomic_json_write_when_entries_remain",
        "tests/gateway/test_restart_resume_pending.py::test_auto_resume_sets_sentinel_before_task_execution",
        "tests/gateway/test_restart_resume_pending.py::test_auto_resume_sentinel_cleaned_on_task_failure",
        "tests/gateway/test_restart_resume_pending.py::test_auto_resume_runs_agent_exactly_once_through_full_path"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0214-test_restart_resume_pending.py.log",
      "output_sha256": "612e9062487ec8e6b1ebac54cc94f1ed532b59d659fa32f7178d89e80e6234d9",
      "returncode": 0,
      "test_file": "tests/gateway/test_restart_resume_pending.py",
      "test_file_sha256": "da32df25596656d7221639554ad072102d532799f6efbf3f16c1f91b7989c9ad"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0215",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_resume_command.py"
      ],
      "nodeids": [
        "tests/gateway/test_resume_command.py::TestHandleResumeCommand::test_no_session_db",
        "tests/gateway/test_resume_command.py::TestHandleResumeCommand::test_list_named_sessions_when_no_arg",
        "tests/gateway/test_resume_command.py::TestHandleResumeCommand::test_list_shows_usage_when_no_titled",
        "tests/gateway/test_resume_command.py::TestHandleResumeCommand::test_resume_by_index",
        "tests/gateway/test_resume_command.py::TestHandleResumeCommand::test_resume_index_out_of_range",
        "tests/gateway/test_resume_command.py::TestHandleResumeCommand::test_resume_by_name",
        "tests/gateway/test_resume_command.py::TestHandleResumeCommand::test_resume_nonexistent_name",
        "tests/gateway/test_resume_command.py::TestHandleResumeCommand::test_resume_already_on_session",
        "tests/gateway/test_resume_command.py::TestHandleResumeCommand::test_resume_auto_lineage",
        "tests/gateway/test_resume_command.py::TestHandleResumeCommand::test_resume_follows_compression_continuation",
        "tests/gateway/test_resume_command.py::TestHandleResumeCommand::test_resume_clears_running_agent",
        "tests/gateway/test_resume_command.py::TestHandleResumeCommand::test_resume_evicts_cached_agent",
        "tests/gateway/test_resume_command.py::TestHandleResumeCommand::test_resume_strips_outer_brackets",
        "tests/gateway/test_resume_command.py::TestHandleResumeCommand::test_resume_resolves_by_session_id",
        "tests/gateway/test_resume_command.py::TestHandleSessionsCommand::test_sessions_command_lists_current_platform_sessions",
        "tests/gateway/test_resume_command.py::TestHandleSessionsCommand::test_sessions_all_full_lists_cross_platform_unnamed_sessions",
        "tests/gateway/test_resume_command.py::TestHandleSessionsCommand::test_gateway_dispatches_sessions_command"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0215-test_resume_command.py.log",
      "output_sha256": "d6d4f71c26450871f0d42a3bd96e36470cba7974ec0491ac48fc995028320220",
      "returncode": 0,
      "test_file": "tests/gateway/test_resume_command.py",
      "test_file_sha256": "abc6ee5dac4cf4c8140c3a2e2afb6641b7238bba58a7d44a820aa926e0f1ea93"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0216",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_retry_replacement.py"
      ],
      "nodeids": [
        "tests/gateway/test_retry_replacement.py::test_gateway_retry_replaces_last_user_turn_in_transcript",
        "tests/gateway/test_retry_replacement.py::test_gateway_retry_replays_original_text_not_retry_command"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0216-test_retry_replacement.py.log",
      "output_sha256": "6a26dd7bbcbd98f18179e1671b5ffb0a7ccebdaf67a4ed7e7dd111959533105b",
      "returncode": 0,
      "test_file": "tests/gateway/test_retry_replacement.py",
      "test_file_sha256": "fa4a68d6436209bbf2e9e81d423e7f654a1ea89f0db9932d31775c0ccc5e1ecd"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0217",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_retry_response.py"
      ],
      "nodeids": [
        "tests/gateway/test_retry_response.py::test_retry_returns_response_not_none",
        "tests/gateway/test_retry_response.py::test_retry_no_previous_message"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0217-test_retry_response.py.log",
      "output_sha256": "8aafce9705f5a2a097013ba0cee11893d6fd8cf5244e940a908e5d106b6acbc7",
      "returncode": 0,
      "test_file": "tests/gateway/test_retry_response.py",
      "test_file_sha256": "e3487748929717443e12ccbdecf258293de8d1eb88e7555172b65dd2d23d58af"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0218",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_run_cleanup_progress.py"
      ],
      "nodeids": [
        "tests/gateway/test_run_cleanup_progress.py::test_cleanup_off_by_default_leaves_bubbles",
        "tests/gateway/test_run_cleanup_progress.py::test_cleanup_registers_callback_and_deletes_on_success",
        "tests/gateway/test_run_cleanup_progress.py::test_cleanup_skipped_on_failed_run",
        "tests/gateway/test_run_cleanup_progress.py::test_cleanup_noop_on_adapter_without_delete_support",
        "tests/gateway/test_run_cleanup_progress.py::test_cleanup_chains_with_existing_callback"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0218-test_run_cleanup_progress.py.log",
      "output_sha256": "777daf1bf5ddb52003bc83de8f5103bc4d943ee8dcd80a8ea2d2e48d519cd3cb",
      "returncode": 0,
      "test_file": "tests/gateway/test_run_cleanup_progress.py",
      "test_file_sha256": "6ac2396b9da88c832fdcace8509b73174d866937c4ead795c0a77f722153e8b0"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0219",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_run_progress_interrupt.py"
      ],
      "nodeids": [
        "tests/gateway/test_run_progress_interrupt.py::test_baseline_non_interrupted_agent_renders_progress",
        "tests/gateway/test_run_progress_interrupt.py::test_progress_suppressed_when_agent_is_interrupted"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0219-test_run_progress_interrupt.py.log",
      "output_sha256": "0cf53e2c13c74b32c0a7b81a0bf20bc97d51b38c79700ea9c797296733aa4e69",
      "returncode": 0,
      "test_file": "tests/gateway/test_run_progress_interrupt.py",
      "test_file_sha256": "b54d8cee9beb8146a84462d927e4f69fddd9d9bec8cb0737135561c8e5b6a651"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0220",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_run_progress_topics.py"
      ],
      "nodeids": [
        "tests/gateway/test_run_progress_topics.py::test_run_agent_progress_stays_in_originating_topic",
        "tests/gateway/test_run_progress_topics.py::test_run_agent_progress_edits_keep_originating_topic_metadata",
        "tests/gateway/test_run_progress_topics.py::test_run_agent_progress_does_not_use_event_message_id_for_telegram_dm",
        "tests/gateway/test_run_progress_topics.py::test_run_agent_progress_uses_event_message_id_for_slack_dm",
        "tests/gateway/test_run_progress_topics.py::test_run_agent_feishu_progress_replies_inside_existing_thread",
        "tests/gateway/test_run_progress_topics.py::test_all_mode_default_truncation_40_chars",
        "tests/gateway/test_run_progress_topics.py::test_all_mode_respects_custom_preview_length",
        "tests/gateway/test_run_progress_topics.py::test_all_mode_no_truncation_when_preview_fits",
        "tests/gateway/test_run_progress_topics.py::test_run_agent_rolls_progress_bubble_before_platform_limit",
        "tests/gateway/test_run_progress_topics.py::test_run_agent_surfaces_real_interim_commentary",
        "tests/gateway/test_run_progress_topics.py::test_run_agent_surfaces_interim_commentary_by_default",
        "tests/gateway/test_run_progress_topics.py::test_run_agent_suppresses_interim_commentary_when_disabled",
        "tests/gateway/test_run_progress_topics.py::test_run_agent_tool_progress_does_not_control_interim_commentary",
        "tests/gateway/test_run_progress_topics.py::test_run_agent_streaming_does_not_enable_completed_interim_commentary",
        "tests/gateway/test_run_progress_topics.py::test_display_streaming_does_not_enable_gateway_streaming",
        "tests/gateway/test_run_progress_topics.py::test_run_agent_interim_commentary_works_with_tool_progress_off",
        "tests/gateway/test_run_progress_topics.py::test_run_agent_bluebubbles_uses_commentary_send_path_for_quick_replies",
        "tests/gateway/test_run_progress_topics.py::test_run_agent_previewed_final_marks_already_sent",
        "tests/gateway/test_run_progress_topics.py::test_run_agent_matrix_streaming_omits_cursor",
        "tests/gateway/test_run_progress_topics.py::test_transformed_response_edits_streamed_message_in_place",
        "tests/gateway/test_run_progress_topics.py::test_run_agent_queued_message_does_not_treat_commentary_as_final",
        "tests/gateway/test_run_progress_topics.py::test_run_agent_defers_background_review_notification_until_release",
        "tests/gateway/test_run_progress_topics.py::test_base_processing_releases_post_delivery_callback_after_main_send",
        "tests/gateway/test_run_progress_topics.py::test_base_processing_stops_typing_before_hung_post_delivery_callback",
        "tests/gateway/test_run_progress_topics.py::test_run_agent_drops_tool_progress_after_generation_invalidation",
        "tests/gateway/test_run_progress_topics.py::test_run_agent_drops_interim_commentary_after_generation_invalidation",
        "tests/gateway/test_run_progress_topics.py::test_keep_typing_stops_immediately_when_interrupt_event_is_set",
        "tests/gateway/test_run_progress_topics.py::test_verbose_mode_does_not_truncate_args_by_default",
        "tests/gateway/test_run_progress_topics.py::test_verbose_mode_respects_explicit_tool_preview_length",
        "tests/gateway/test_run_progress_topics.py::test_terminal_progress_renders_fenced_code_block",
        "tests/gateway/test_run_progress_topics.py::test_terminal_progress_verbose_shows_full_command",
        "tests/gateway/test_run_progress_topics.py::test_terminal_progress_no_bash_block_in_verbose_mode",
        "tests/gateway/test_run_progress_topics.py::test_consecutive_terminal_progress_collapses_headers"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0220-test_run_progress_topics.py.log",
      "output_sha256": "a41c85597b30d6067e3906733032c52fb56e895f40c0192b05eccbfde2ecb33a",
      "returncode": 0,
      "test_file": "tests/gateway/test_run_progress_topics.py",
      "test_file_sha256": "2c85f4d5a5a518c34acf7ee2ec8855fa271e919eaf92fa796aa4802fdb64e775"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0221",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_run_tool_media_re.py"
      ],
      "nodeids": [
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_windows_paths_match[MEDIA:C:\\\\Users\\\\test\\\\image.png-C:\\\\Users\\\\test\\\\image.png]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_windows_paths_match[MEDIA:D:\\\\data\\\\report.pdf-D:\\\\data\\\\report.pdf]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_windows_paths_match[MEDIA:E:\\\\Photos\\\\vacation.jpg-E:\\\\Photos\\\\vacation.jpg]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_windows_paths_match[MEDIA:C:/Users/test/image.png-C:/Users/test/image.png]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_windows_paths_match[MEDIA:D:/data/report.pdf-D:/data/report.pdf]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_windows_paths_match[MEDIA:C:\\\\Users/test\\\\image.webp-C:\\\\Users/test\\\\image.webp]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_windows_paths_match[MEDIA:F:\\\\videos\\\\clip.mp4-F:\\\\videos\\\\clip.mp4]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_windows_paths_match[MEDIA:G:\\\\audio\\\\song.mp3-G:\\\\audio\\\\song.mp3]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_windows_paths_match[MEDIA:H:\\\\docs\\\\sheet.xlsx-H:\\\\docs\\\\sheet.xlsx]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_windows_paths_match[MEDIA:Z:\\\\archive\\\\backup.zip-Z:\\\\archive\\\\backup.zip]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_unix_paths_still_match[MEDIA:/tmp/output.png-/tmp/output.png]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_unix_paths_still_match[MEDIA:/var/log/report.pdf-/var/log/report.pdf]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_unix_paths_still_match[MEDIA:/home/user/docs/file.txt-/home/user/docs/file.txt]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_unix_paths_still_match[MEDIA:~/Downloads/image.jpg-~/Downloads/image.jpg]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_unix_paths_still_match[MEDIA:~/Documents/report.pdf-~/Documents/report.pdf]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_invalid_paths_dont_match[No MEDIA tag here]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_invalid_paths_dont_match[MEDIA:relative/path/file.png]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_invalid_paths_dont_match[MEDIA:file.png]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_invalid_paths_dont_match[MEDIA:C:file.png]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_invalid_paths_dont_match[MEDIA:/path/to/file.unknown]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_invalid_paths_dont_match[MEDIA:/path/to/file]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_invalid_paths_dont_match[MEDIA:]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_pre_fix_pattern_rejects_windows[MEDIA:C:\\\\Users\\\\test\\\\image.png]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_pre_fix_pattern_rejects_windows[MEDIA:D:/data/report.pdf]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_pre_fix_pattern_rejects_windows[MEDIA:C:\\\\path\\\\file.jpg]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_multiple_media_tags_in_content",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_case_insensitive_drive_letter",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_case_insensitive_extensions[MEDIA:C:\\\\path\\\\file.jpeg]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_case_insensitive_extensions[MEDIA:C:\\\\path\\\\file.JPG]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_case_insensitive_extensions[MEDIA:C:\\\\path\\\\file.GIF]",
        "tests/gateway/test_run_tool_media_re.py::TestToolMediaReWindowsPaths::test_case_insensitive_extensions[MEDIA:C:\\\\path\\\\file.MP4]"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0221-test_run_tool_media_re.py.log",
      "output_sha256": "c994146e8616a13a8a5212316777ef6868d1afc4350a3b9a78cd1cf16caa9e06",
      "returncode": 0,
      "test_file": "tests/gateway/test_run_tool_media_re.py",
      "test_file_sha256": "929dfb1a3f8db85f3c7e9a65d79665220f44a3ad96c13221eade261d7841ed75"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0222",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_runner_fatal_adapter.py"
      ],
      "nodeids": [
        "tests/gateway/test_runner_fatal_adapter.py::test_runner_requests_clean_exit_for_nonretryable_startup_conflict",
        "tests/gateway/test_runner_fatal_adapter.py::test_runner_queues_retryable_runtime_fatal_for_reconnection"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0222-test_runner_fatal_adapter.py.log",
      "output_sha256": "91a774b1eaf3d7a7fd5da9ef11b1c9da1019e0cf36b4055e50847c70afc41dd0",
      "returncode": 0,
      "test_file": "tests/gateway/test_runner_fatal_adapter.py",
      "test_file_sha256": "7e3004a7030a038d0cbc9930435a5e5da18529471843b74371d542fade58adbb"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0223",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_runner_startup_failures.py"
      ],
      "nodeids": [
        "tests/gateway/test_runner_startup_failures.py::test_runner_stays_alive_for_retryable_startup_errors",
        "tests/gateway/test_runner_startup_failures.py::test_runner_allows_cron_only_mode_when_no_platforms_are_enabled",
        "tests/gateway/test_runner_startup_failures.py::test_runner_records_connected_platform_state_on_success",
        "tests/gateway/test_runner_startup_failures.py::test_start_gateway_verbosity_imports_redacting_formatter",
        "tests/gateway/test_runner_startup_failures.py::test_start_gateway_replace_force_uses_terminate_pid",
        "tests/gateway/test_runner_startup_failures.py::test_start_gateway_replace_aborts_when_force_killed_pid_still_alive",
        "tests/gateway/test_runner_startup_failures.py::test_start_gateway_replace_writes_takeover_marker_before_sigterm",
        "tests/gateway/test_runner_startup_failures.py::test_start_gateway_replace_clears_marker_on_permission_denied",
        "tests/gateway/test_runner_startup_failures.py::test_runner_degrades_gracefully_when_all_adapters_missing",
        "tests/gateway/test_runner_startup_failures.py::test_runner_warns_when_docker_gateway_lacks_explicit_output_mount"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0223-test_runner_startup_failures.py.log",
      "output_sha256": "577bdb78a46069e39e0481296012fb8ab91b4b00fa90d789c8a995363a8f72b2",
      "returncode": 0,
      "test_file": "tests/gateway/test_runner_startup_failures.py",
      "test_file_sha256": "d023a27e2fa8deaa46eae8d7e576216885277ebadfc81db91cf555a183c13fd5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0224",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_running_agent_session_toggles.py"
      ],
      "nodeids": [
        "tests/gateway/test_running_agent_session_toggles.py::test_yolo_dispatches_mid_run",
        "tests/gateway/test_running_agent_session_toggles.py::test_verbose_dispatches_mid_run",
        "tests/gateway/test_running_agent_session_toggles.py::test_fast_rejected_mid_run",
        "tests/gateway/test_running_agent_session_toggles.py::test_reasoning_rejected_mid_run",
        "tests/gateway/test_running_agent_session_toggles.py::test_btw_dispatches_mid_run"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0224-test_running_agent_session_toggles.py.log",
      "output_sha256": "831f8dfd330093026dde883069e337b0e3c86128afcf8e12945bfe02f82aed81",
      "returncode": 0,
      "test_file": "tests/gateway/test_running_agent_session_toggles.py",
      "test_file_sha256": "bf6f1a11bd4a125b2806df73465a769be1332c7ecdde3e36551d61282dbf6dfb"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0225",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_runtime_config_env_expansion.py"
      ],
      "nodeids": [
        "tests/gateway/test_runtime_config_env_expansion.py::test_load_prefill_messages_expands_env_var_path",
        "tests/gateway/test_runtime_config_env_expansion.py::test_load_prefill_messages_accepts_legacy_agent_key",
        "tests/gateway/test_runtime_config_env_expansion.py::test_load_prefill_messages_prefers_top_level_over_legacy",
        "tests/gateway/test_runtime_config_env_expansion.py::test_gateway_runtime_loaders_expand_env_var_templates[agent:\\n  system_prompt: ${GW_PROMPT}\\n-GW_PROMPT-expanded prompt-_load_ephemeral_system_prompt-expanded prompt]",
        "tests/gateway/test_runtime_config_env_expansion.py::test_gateway_runtime_loaders_expand_env_var_templates[agent:\\n  reasoning_effort: ${REASONING_LEVEL}\\n-REASONING_LEVEL-high-_load_reasoning_config-expected1]",
        "tests/gateway/test_runtime_config_env_expansion.py::test_gateway_runtime_loaders_expand_env_var_templates[agent:\\n  service_tier: ${SERVICE_TIER}\\n-SERVICE_TIER-priority-_load_service_tier-priority]",
        "tests/gateway/test_runtime_config_env_expansion.py::test_gateway_runtime_loaders_expand_env_var_templates[display:\\n  busy_input_mode: ${BUSY_MODE}\\n-BUSY_MODE-steer-_load_busy_input_mode-steer]",
        "tests/gateway/test_runtime_config_env_expansion.py::test_gateway_runtime_loaders_expand_env_var_templates[agent:\\n  restart_drain_timeout: ${DRAIN_TIMEOUT}\\n-DRAIN_TIMEOUT-12-_load_restart_drain_timeout-12.0]",
        "tests/gateway/test_runtime_config_env_expansion.py::test_gateway_runtime_loaders_expand_env_var_templates[display:\\n  background_process_notifications: ${BG_MODE}\\n-BG_MODE-error-_load_background_notifications_mode-error]"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0225-test_runtime_config_env_expansion.py.log",
      "output_sha256": "72dc5a24682002ba1398488d90ca1a04d4e5bfd6293f8765a260893895d10ea3",
      "returncode": 0,
      "test_file": "tests/gateway/test_runtime_config_env_expansion.py",
      "test_file_sha256": "68e94ec4a7af38793796234e9e9a957abef68e47ce64e636f1781d7d6d0e69d7"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0226",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_runtime_env_reload_config_authority.py"
      ],
      "nodeids": [
        "tests/gateway/test_runtime_env_reload_config_authority.py::test_reload_runtime_env_preserves_config_max_turns",
        "tests/gateway/test_runtime_env_reload_config_authority.py::test_reload_runtime_env_keeps_env_max_iterations_when_config_omits_key",
        "tests/gateway/test_runtime_env_reload_config_authority.py::test_current_max_iterations_reloads_before_reading"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0226-test_runtime_env_reload_config_authority.py.log",
      "output_sha256": "dedd3e0513f536b480c9abd114ef2952b8ad3d13928d20238777fbe6b363997c",
      "returncode": 0,
      "test_file": "tests/gateway/test_runtime_env_reload_config_authority.py",
      "test_file_sha256": "a6651a57fefbce3bcc65bfe7e35a7e0dbb92afc4a2a337e04211dc0b53e2a059"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0227",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_runtime_footer.py"
      ],
      "nodeids": [
        "tests/gateway/test_runtime_footer.py::test_model_short_drops_vendor_prefix[openai/gpt-5.4-gpt-5.4]",
        "tests/gateway/test_runtime_footer.py::test_model_short_drops_vendor_prefix[anthropic/claude-sonnet-4.6-claude-sonnet-4.6]",
        "tests/gateway/test_runtime_footer.py::test_model_short_drops_vendor_prefix[gpt-5.4-gpt-5.4]",
        "tests/gateway/test_runtime_footer.py::test_model_short_drops_vendor_prefix[-]",
        "tests/gateway/test_runtime_footer.py::test_model_short_drops_vendor_prefix[None-]",
        "tests/gateway/test_runtime_footer.py::test_home_relative_cwd_collapses_home",
        "tests/gateway/test_runtime_footer.py::test_home_relative_cwd_leaves_abs_path_alone",
        "tests/gateway/test_runtime_footer.py::test_home_relative_cwd_empty_returns_empty",
        "tests/gateway/test_runtime_footer.py::test_format_footer_all_fields",
        "tests/gateway/test_runtime_footer.py::test_format_footer_skips_missing_context_length",
        "tests/gateway/test_runtime_footer.py::test_format_footer_context_pct_clamped_to_100",
        "tests/gateway/test_runtime_footer.py::test_format_footer_context_pct_never_negative",
        "tests/gateway/test_runtime_footer.py::test_format_footer_empty_fields_returns_empty",
        "tests/gateway/test_runtime_footer.py::test_format_footer_drops_cwd_when_empty",
        "tests/gateway/test_runtime_footer.py::test_format_footer_custom_field_order",
        "tests/gateway/test_runtime_footer.py::test_format_footer_unknown_field_silently_ignored",
        "tests/gateway/test_runtime_footer.py::test_resolve_defaults_off_empty_config",
        "tests/gateway/test_runtime_footer.py::test_resolve_global_enable",
        "tests/gateway/test_runtime_footer.py::test_resolve_platform_override_wins",
        "tests/gateway/test_runtime_footer.py::test_resolve_platform_can_add_fields_only",
        "tests/gateway/test_runtime_footer.py::test_resolve_ignores_malformed_config",
        "tests/gateway/test_runtime_footer.py::test_build_footer_empty_when_disabled",
        "tests/gateway/test_runtime_footer.py::test_build_footer_returns_rendered_when_enabled",
        "tests/gateway/test_runtime_footer.py::test_build_footer_per_platform_off_suppresses",
        "tests/gateway/test_runtime_footer.py::test_build_footer_no_data_returns_empty_even_when_enabled"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0227-test_runtime_footer.py.log",
      "output_sha256": "417d8a4014f3f5e059112e2afa124a618ebdaa222f8067a9388a4d1c6d40662e",
      "returncode": 0,
      "test_file": "tests/gateway/test_runtime_footer.py",
      "test_file_sha256": "b6b0aead828d1b799ddef66b71148168291c7ed206587204369a2b7e5b94a338"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0228",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_safe_adapter_disconnect.py"
      ],
      "nodeids": [
        "tests/gateway/test_safe_adapter_disconnect.py::test_safe_disconnect_calls_adapter_disconnect",
        "tests/gateway/test_safe_adapter_disconnect.py::test_safe_disconnect_swallows_exceptions",
        "tests/gateway/test_safe_adapter_disconnect.py::test_safe_disconnect_handles_none_platform",
        "tests/gateway/test_safe_adapter_disconnect.py::test_safe_disconnect_times_out_and_continues"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0228-test_safe_adapter_disconnect.py.log",
      "output_sha256": "cb0ce38498ffd51cf5b0cd8eab72b08801d5ae0263981070f9db37443f66eec2",
      "returncode": 0,
      "test_file": "tests/gateway/test_safe_adapter_disconnect.py",
      "test_file_sha256": "cbef75f9b97a776a970c343ba7afe629f0cd7d63713a3b9df18ff5abf2981917"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0229",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_send_image_file.py"
      ],
      "nodeids": [
        "tests/gateway/test_send_image_file.py::TestExtractMediaImages::test_png_image_extracted",
        "tests/gateway/test_send_image_file.py::TestExtractMediaImages::test_jpg_image_extracted",
        "tests/gateway/test_send_image_file.py::TestExtractMediaImages::test_webp_image_extracted",
        "tests/gateway/test_send_image_file.py::TestExtractMediaImages::test_mixed_audio_and_image",
        "tests/gateway/test_send_image_file.py::TestTelegramSendImageFile::test_sends_local_image_as_photo",
        "tests/gateway/test_send_image_file.py::TestTelegramSendImageFile::test_returns_error_when_file_missing",
        "tests/gateway/test_send_image_file.py::TestTelegramSendImageFile::test_returns_error_when_not_connected",
        "tests/gateway/test_send_image_file.py::TestTelegramSendImageFile::test_caption_truncated_to_1024",
        "tests/gateway/test_send_image_file.py::TestTelegramSendImageFile::test_thread_id_forwarded",
        "tests/gateway/test_send_image_file.py::TestDiscordSendImageFile::test_sends_local_image_as_attachment",
        "tests/gateway/test_send_image_file.py::TestDiscordSendImageFile::test_send_document_uploads_file_attachment",
        "tests/gateway/test_send_image_file.py::TestDiscordSendImageFile::test_send_video_uploads_file_attachment",
        "tests/gateway/test_send_image_file.py::TestDiscordSendImageFile::test_returns_error_when_file_missing",
        "tests/gateway/test_send_image_file.py::TestDiscordSendImageFile::test_returns_error_when_not_connected",
        "tests/gateway/test_send_image_file.py::TestDiscordSendImageFile::test_handles_missing_channel",
        "tests/gateway/test_send_image_file.py::TestSlackSendImageFile::test_sends_local_image_via_upload",
        "tests/gateway/test_send_image_file.py::TestSlackSendImageFile::test_returns_error_when_file_missing",
        "tests/gateway/test_send_image_file.py::TestSlackSendImageFile::test_returns_error_when_not_connected",
        "tests/gateway/test_send_image_file.py::TestScreenshotCleanup::test_cleanup_removes_old_screenshots",
        "tests/gateway/test_send_image_file.py::TestScreenshotCleanup::test_cleanup_is_throttled_per_directory",
        "tests/gateway/test_send_image_file.py::TestScreenshotCleanup::test_cleanup_ignores_non_screenshot_files",
        "tests/gateway/test_send_image_file.py::TestScreenshotCleanup::test_cleanup_handles_empty_dir",
        "tests/gateway/test_send_image_file.py::TestScreenshotCleanup::test_cleanup_handles_nonexistent_dir"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0229-test_send_image_file.py.log",
      "output_sha256": "812d18085af8cffe442e9be1118867186680ecff5f4089232b17a843fa002a95",
      "returncode": 0,
      "test_file": "tests/gateway/test_send_image_file.py",
      "test_file_sha256": "615d0b328b16720ab2dbed24e4abbce9d6aa7c2ab5b7f5830fc420e8a06aecf7"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0230",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_send_multiple_images.py"
      ],
      "nodeids": [
        "tests/gateway/test_send_multiple_images.py::TestBaseDefaultLoop::test_loops_per_image_by_default",
        "tests/gateway/test_send_multiple_images.py::TestBaseDefaultLoop::test_empty_batch_is_noop",
        "tests/gateway/test_send_multiple_images.py::TestTelegramMultiImage::test_single_batch_under_10_calls_send_media_group_once",
        "tests/gateway/test_send_multiple_images.py::TestTelegramMultiImage::test_batch_over_10_chunks",
        "tests/gateway/test_send_multiple_images.py::TestTelegramMultiImage::test_animations_routed_to_send_animation",
        "tests/gateway/test_send_multiple_images.py::TestTelegramMultiImage::test_fallback_to_per_image_on_send_media_group_failure",
        "tests/gateway/test_send_multiple_images.py::TestTelegramMultiImage::test_empty_noop",
        "tests/gateway/test_send_multiple_images.py::TestDiscordMultiImage::test_single_batch_of_local_files_sends_once",
        "tests/gateway/test_send_multiple_images.py::TestDiscordMultiImage::test_batch_over_10_chunks_into_two_messages",
        "tests/gateway/test_send_multiple_images.py::TestDiscordMultiImage::test_empty_noop",
        "tests/gateway/test_send_multiple_images.py::TestSlackMultiImage::test_single_batch_of_local_files_sends_one_upload",
        "tests/gateway/test_send_multiple_images.py::TestSlackMultiImage::test_batch_over_10_chunks",
        "tests/gateway/test_send_multiple_images.py::TestSlackMultiImage::test_empty_noop",
        "tests/gateway/test_send_multiple_images.py::TestMattermostMultiImage::test_local_files_uploaded_and_single_post",
        "tests/gateway/test_send_multiple_images.py::TestMattermostMultiImage::test_batch_over_5_chunks",
        "tests/gateway/test_send_multiple_images.py::TestMattermostMultiImage::test_empty_noop",
        "tests/gateway/test_send_multiple_images.py::TestEmailMultiImage::test_local_files_attached_in_single_email",
        "tests/gateway/test_send_multiple_images.py::TestEmailMultiImage::test_remote_urls_linked_in_body",
        "tests/gateway/test_send_multiple_images.py::TestEmailMultiImage::test_empty_noop"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0230-test_send_multiple_images.py.log",
      "output_sha256": "5bdeb9422cfbeb83c03433d0b9cefc6d76bb8949e66b8579f62b2eb45dfd03e3",
      "returncode": 0,
      "test_file": "tests/gateway/test_send_multiple_images.py",
      "test_file_sha256": "ad137df37e57accbff4f6fa307edd1dac31b1115c1724d3b73724f72106e628e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0231",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_send_retry.py"
      ],
      "nodeids": [
        "tests/gateway/test_send_retry.py::TestIsRetryableError::test_none_is_not_retryable",
        "tests/gateway/test_send_retry.py::TestIsRetryableError::test_empty_string_is_not_retryable",
        "tests/gateway/test_send_retry.py::TestIsRetryableError::test_known_pattern_is_retryable[connecterror]",
        "tests/gateway/test_send_retry.py::TestIsRetryableError::test_known_pattern_is_retryable[connectionerror]",
        "tests/gateway/test_send_retry.py::TestIsRetryableError::test_known_pattern_is_retryable[connectionreset]",
        "tests/gateway/test_send_retry.py::TestIsRetryableError::test_known_pattern_is_retryable[connectionrefused]",
        "tests/gateway/test_send_retry.py::TestIsRetryableError::test_known_pattern_is_retryable[connecttimeout]",
        "tests/gateway/test_send_retry.py::TestIsRetryableError::test_known_pattern_is_retryable[network]",
        "tests/gateway/test_send_retry.py::TestIsRetryableError::test_known_pattern_is_retryable[broken pipe]",
        "tests/gateway/test_send_retry.py::TestIsRetryableError::test_known_pattern_is_retryable[remotedisconnected]",
        "tests/gateway/test_send_retry.py::TestIsRetryableError::test_known_pattern_is_retryable[eoferror]",
        "tests/gateway/test_send_retry.py::TestIsRetryableError::test_permission_error_not_retryable",
        "tests/gateway/test_send_retry.py::TestIsRetryableError::test_bad_request_not_retryable",
        "tests/gateway/test_send_retry.py::TestIsRetryableError::test_case_insensitive",
        "tests/gateway/test_send_retry.py::TestIsRetryableError::test_timeout_not_retryable",
        "tests/gateway/test_send_retry.py::TestIsRetryableError::test_timed_out_not_retryable",
        "tests/gateway/test_send_retry.py::TestIsRetryableError::test_connect_timeout_is_retryable",
        "tests/gateway/test_send_retry.py::TestIsTimeoutError::test_none_is_not_timeout",
        "tests/gateway/test_send_retry.py::TestIsTimeoutError::test_empty_is_not_timeout",
        "tests/gateway/test_send_retry.py::TestIsTimeoutError::test_timed_out",
        "tests/gateway/test_send_retry.py::TestIsTimeoutError::test_read_timeout",
        "tests/gateway/test_send_retry.py::TestIsTimeoutError::test_write_timeout",
        "tests/gateway/test_send_retry.py::TestIsTimeoutError::test_connect_timeout_not_flagged",
        "tests/gateway/test_send_retry.py::TestIsTimeoutError::test_connection_error_not_timeout",
        "tests/gateway/test_send_retry.py::TestSendWithRetrySuccess::test_success_first_attempt",
        "tests/gateway/test_send_retry.py::TestSendWithRetrySuccess::test_returns_message_id",
        "tests/gateway/test_send_retry.py::TestSendWithRetryNetworkRetry::test_retries_on_connect_error_and_succeeds",
        "tests/gateway/test_send_retry.py::TestSendWithRetryNetworkRetry::test_timeout_not_retried_to_prevent_duplicates",
        "tests/gateway/test_send_retry.py::TestSendWithRetryNetworkRetry::test_connect_timeout_still_retried",
        "tests/gateway/test_send_retry.py::TestSendWithRetryNetworkRetry::test_retryable_flag_respected",
        "tests/gateway/test_send_retry.py::TestSendWithRetryNetworkRetry::test_network_to_nonnetwork_transition_falls_back_to_plaintext",
        "tests/gateway/test_send_retry.py::TestSendWithRetryExhausted::test_sends_user_notice_after_exhaustion",
        "tests/gateway/test_send_retry.py::TestSendWithRetryExhausted::test_notice_send_exception_doesnt_propagate",
        "tests/gateway/test_send_retry.py::TestSendWithRetryFallback::test_non_network_error_falls_back_immediately",
        "tests/gateway/test_send_retry.py::TestSendWithRetryFallback::test_fallback_failure_logged_but_not_raised"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0231-test_send_retry.py.log",
      "output_sha256": "48a1f8b6f2f0ea4ad4584368c901629aeecf5bb5823b5308b71ab78dbbcec153",
      "returncode": 0,
      "test_file": "tests/gateway/test_send_retry.py",
      "test_file_sha256": "27e6a884d9641dfb0a5117bd1b937e09d91af3d9f8c30ac79abcf5ac7835a7e2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0232",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_send_voice_reply_notify.py"
      ],
      "nodeids": [
        "tests/gateway/test_send_voice_reply_notify.py::test_voice_reply_marks_metadata_notify_true_for_dm",
        "tests/gateway/test_send_voice_reply_notify.py::test_voice_reply_marks_existing_thread_metadata_without_mutation"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0232-test_send_voice_reply_notify.py.log",
      "output_sha256": "fa88418f1b3e7482bf5f826a25b00f323a23041a123aec3f0f84690355ce5aa2",
      "returncode": 0,
      "test_file": "tests/gateway/test_send_voice_reply_notify.py",
      "test_file_sha256": "fb02dc83469e6debe3ba3611a4ba9575a12b91797e7683f1064a1736183f7b41"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0233",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session.py"
      ],
      "nodeids": [
        "tests/gateway/test_session.py::TestSessionSourceRoundtrip::test_full_roundtrip",
        "tests/gateway/test_session.py::TestSessionSourceRoundtrip::test_full_roundtrip_with_chat_topic",
        "tests/gateway/test_session.py::TestSessionSourceRoundtrip::test_minimal_roundtrip",
        "tests/gateway/test_session.py::TestSessionSourceRoundtrip::test_chat_id_coerced_to_string",
        "tests/gateway/test_session.py::TestSessionSourceRoundtrip::test_missing_optional_fields",
        "tests/gateway/test_session.py::TestSessionSourceRoundtrip::test_unknown_platform_rejected_for_bad_names",
        "tests/gateway/test_session.py::TestSessionSourceDescription::test_local_cli",
        "tests/gateway/test_session.py::TestSessionSourceDescription::test_dm_with_username",
        "tests/gateway/test_session.py::TestSessionSourceDescription::test_dm_without_username_falls_back_to_user_id",
        "tests/gateway/test_session.py::TestSessionSourceDescription::test_group_shows_chat_name",
        "tests/gateway/test_session.py::TestSessionSourceDescription::test_channel_type",
        "tests/gateway/test_session.py::TestSessionSourceDescription::test_thread_id_appended",
        "tests/gateway/test_session.py::TestSessionSourceDescription::test_unknown_chat_type_uses_name",
        "tests/gateway/test_session.py::TestLocalCliFactory::test_local_cli_defaults",
        "tests/gateway/test_session.py::TestBuildSessionContextPrompt::test_telegram_prompt_contains_platform_and_chat",
        "tests/gateway/test_session.py::TestBuildSessionContextPrompt::test_bluebubbles_prompt_mentions_short_conversational_i_message_format",
        "tests/gateway/test_session.py::TestBuildSessionContextPrompt::test_discord_prompt",
        "tests/gateway/test_session.py::TestBuildSessionContextPrompt::test_slack_prompt_includes_platform_notes",
        "tests/gateway/test_session.py::TestBuildSessionContextPrompt::test_discord_prompt_with_channel_topic",
        "tests/gateway/test_session.py::TestBuildSessionContextPrompt::test_prompt_omits_channel_topic_when_none",
        "tests/gateway/test_session.py::TestBuildSessionContextPrompt::test_local_prompt_mentions_machine",
        "tests/gateway/test_session.py::TestBuildSessionContextPrompt::test_local_delivery_path_uses_display_hermes_home",
        "tests/gateway/test_session.py::TestBuildSessionContextPrompt::test_whatsapp_prompt",
        "tests/gateway/test_session.py::TestBuildSessionContextPrompt::test_multi_user_thread_prompt",
        "tests/gateway/test_session.py::TestBuildSessionContextPrompt::test_non_thread_group_shows_user",
        "tests/gateway/test_session.py::TestBuildSessionContextPrompt::test_shared_non_thread_group_prompt_hides_single_user",
        "tests/gateway/test_session.py::TestBuildSessionContextPrompt::test_dm_thread_shows_user_not_multi",
        "tests/gateway/test_session.py::TestSenderPrefixWithBackfill::test_plain_message_gets_prefix",
        "tests/gateway/test_session.py::TestSenderPrefixWithBackfill::test_backfill_prefix_only_on_trigger",
        "tests/gateway/test_session.py::TestSenderPrefixWithBackfill::test_backfill_preserves_context_block",
        "tests/gateway/test_session.py::TestSessionStoreRewriteTranscript::test_rewrite_replaces_transcript",
        "tests/gateway/test_session.py::TestSessionStoreRewriteTranscript::test_rewrite_with_empty_list",
        "tests/gateway/test_session.py::TestLoadTranscriptDBOnly::test_db_only_returns_empty_for_nonexistent",
        "tests/gateway/test_session.py::TestLoadTranscriptDBOnly::test_db_only_returns_messages",
        "tests/gateway/test_session.py::TestSessionStoreSwitchSession::test_switch_session_reopens_target_session_in_db",
        "tests/gateway/test_session.py::TestSessionStoreLookupBySessionId::test_returns_active_entry_for_persisted_session_id",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_whatsapp_dm_uses_canonical_identifier",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_whatsapp_dm_aliases_share_one_session_key",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_whatsapp_group_participant_aliases_share_session_key",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_whatsapp_group_shared_sessions_untouched_by_canonicalisation",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_store_delegates_to_build_session_key",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_store_creates_distinct_group_sessions_per_user",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_store_shares_group_sessions_when_disabled_in_config",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_telegram_dm_includes_chat_id",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_distinct_dm_chat_ids_get_distinct_session_keys",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_dm_without_chat_id_falls_back_to_user_id",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_dm_without_chat_id_distinct_users_do_not_collide",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_dm_without_chat_id_prefers_user_id_alt",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_dm_without_chat_id_or_user_id_falls_back_to_thread_then_sink",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_discord_group_includes_chat_id",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_group_sessions_are_isolated_per_user_when_user_id_present",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_group_sessions_can_be_shared_when_isolation_disabled",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_group_thread_includes_thread_id",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_group_thread_sessions_are_shared_by_default",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_group_thread_sessions_can_be_isolated_per_user",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_non_thread_group_sessions_still_isolated_per_user",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_discord_thread_sessions_shared_by_default",
        "tests/gateway/test_session.py::TestWhatsAppSessionKeyConsistency::test_dm_thread_sessions_not_affected",
        "tests/gateway/test_session.py::TestWhatsAppIdentifierPublicHelpers::test_normalize_strips_jid_suffix",
        "tests/gateway/test_session.py::TestWhatsAppIdentifierPublicHelpers::test_normalize_strips_lid_suffix",
        "tests/gateway/test_session.py::TestWhatsAppIdentifierPublicHelpers::test_normalize_strips_device_suffix",
        "tests/gateway/test_session.py::TestWhatsAppIdentifierPublicHelpers::test_normalize_strips_leading_plus",
        "tests/gateway/test_session.py::TestWhatsAppIdentifierPublicHelpers::test_normalize_handles_bare_numeric",
        "tests/gateway/test_session.py::TestWhatsAppIdentifierPublicHelpers::test_normalize_handles_empty_and_none",
        "tests/gateway/test_session.py::TestWhatsAppIdentifierPublicHelpers::test_canonical_without_mapping_returns_normalized",
        "tests/gateway/test_session.py::TestWhatsAppIdentifierPublicHelpers::test_canonical_walks_lid_mapping",
        "tests/gateway/test_session.py::TestWhatsAppIdentifierPublicHelpers::test_canonical_empty_input",
        "tests/gateway/test_session.py::TestSessionStoreEntriesAttribute::test_entries_attribute_exists",
        "tests/gateway/test_session.py::TestHasAnySessions::test_uses_database_count_when_available",
        "tests/gateway/test_session.py::TestHasAnySessions::test_first_session_ever_returns_false",
        "tests/gateway/test_session.py::TestHasAnySessions::test_fallback_without_database",
        "tests/gateway/test_session.py::TestLastPromptTokens::test_session_entry_default",
        "tests/gateway/test_session.py::TestLastPromptTokens::test_session_entry_roundtrip",
        "tests/gateway/test_session.py::TestLastPromptTokens::test_session_entry_from_old_data",
        "tests/gateway/test_session.py::TestLastPromptTokens::test_update_session_sets_last_prompt_tokens",
        "tests/gateway/test_session.py::TestLastPromptTokens::test_update_session_none_does_not_change",
        "tests/gateway/test_session.py::TestLastPromptTokens::test_update_session_zero_resets",
        "tests/gateway/test_session.py::TestRewriteTranscriptPreservesReasoning::test_reasoning_survives_rewrite",
        "tests/gateway/test_session.py::TestRewriteTranscriptPreservesReasoning::test_db_rewrite_is_atomic_on_insert_failure"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0233-test_session.py.log",
      "output_sha256": "0d4932be65ab1e24038ba6b831fe023be31f732c8fe7bc4d4cd8eed2540c0bd8",
      "returncode": 0,
      "test_file": "tests/gateway/test_session.py",
      "test_file_sha256": "4053b3a75e2733f3174f9b24506c8ea45846250786607a7eac043f8bd1564c2c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0234",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_api.py"
      ],
      "nodeids": [
        "tests/gateway/test_session_api.py::test_capabilities_advertises_session_control_surface",
        "tests/gateway/test_session_api.py::test_run_agent_binds_api_session_context_for_tool_env",
        "tests/gateway/test_session_api.py::test_session_crud_and_message_history",
        "tests/gateway/test_session_api.py::test_session_messages_follow_compression_tip",
        "tests/gateway/test_session_api.py::test_session_fork_uses_current_sessiondb_branch_primitives",
        "tests/gateway/test_session_api.py::test_session_chat_loads_history_and_preserves_session_headers",
        "tests/gateway/test_session_api.py::test_session_chat_accepts_multimodal_message",
        "tests/gateway/test_session_api.py::test_session_chat_stream_accepts_multimodal_message",
        "tests/gateway/test_session_api.py::test_session_chat_stream_emits_lifecycle_events_and_keepalive_safe_shape",
        "tests/gateway/test_session_api.py::test_session_chat_stream_run_completed_carries_turn_transcript",
        "tests/gateway/test_session_api.py::test_session_endpoints_require_auth_when_key_configured",
        "tests/gateway/test_session_api.py::test_session_header_rejected_without_api_key"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0234-test_session_api.py.log",
      "output_sha256": "6f7b5d7c95314b43197c1869870279c062be0c7fce941c92ca244ffe224ef073",
      "returncode": 0,
      "test_file": "tests/gateway/test_session_api.py",
      "test_file_sha256": "bf9e49e04a287e398348e41cb97c2d52acdeda5881ab30ff3935af10cd2b7933"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0235",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_boundary_hooks.py"
      ],
      "nodeids": [
        "tests/gateway/test_session_boundary_hooks.py::test_reset_fires_finalize_hook",
        "tests/gateway/test_session_boundary_hooks.py::test_reset_fires_reset_hook",
        "tests/gateway/test_session_boundary_hooks.py::test_finalize_before_reset",
        "tests/gateway/test_session_boundary_hooks.py::test_shutdown_fires_finalize_for_active_agents",
        "tests/gateway/test_session_boundary_hooks.py::test_hook_error_does_not_break_reset",
        "tests/gateway/test_session_boundary_hooks.py::test_idle_expiry_fires_finalize_hook"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0235-test_session_boundary_hooks.py.log",
      "output_sha256": "65f282afc84368133aca227c1b53ba86f15cea0e84fb45872f758c96873f2870",
      "returncode": 0,
      "test_file": "tests/gateway/test_session_boundary_hooks.py",
      "test_file_sha256": "928afab33dea3a4abe85ab45411f8a02b96890c3cce8a348c29fc245d2bb4b31"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0236",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_boundary_security_state.py"
      ],
      "nodeids": [
        "tests/gateway/test_session_boundary_security_state.py::test_resume_clears_session_scoped_approval_and_yolo_state",
        "tests/gateway/test_session_boundary_security_state.py::test_branch_clears_session_scoped_approval_and_yolo_state",
        "tests/gateway/test_session_boundary_security_state.py::test_branch_preserves_persisted_assistant_metadata",
        "tests/gateway/test_session_boundary_security_state.py::test_clear_session_boundary_security_state_is_scoped",
        "tests/gateway/test_session_boundary_security_state.py::test_clear_session_boundary_security_state_wakes_blocked_approvals"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0236-test_session_boundary_security_state.py.log",
      "output_sha256": "2350c6d95606f6e8a89cc2398a83dfba144229393c24330279ed1842209cb95f",
      "returncode": 0,
      "test_file": "tests/gateway/test_session_boundary_security_state.py",
      "test_file_sha256": "4f2a1f53e334b00c3d098621fa5646a648334764115e98db55c834b0cb21ed0e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0237",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_dm_thread_seeding.py"
      ],
      "nodeids": [
        "tests/gateway/test_session_dm_thread_seeding.py::TestDMThreadIsolation::test_thread_session_starts_empty",
        "tests/gateway/test_session_dm_thread_seeding.py::TestDMThreadIsolation::test_parent_transcript_unaffected_by_thread",
        "tests/gateway/test_session_dm_thread_seeding.py::TestDMThreadIsolation::test_multiple_threads_are_independent",
        "tests/gateway/test_session_dm_thread_seeding.py::TestDMThreadIsolation::test_existing_thread_session_preserved",
        "tests/gateway/test_session_dm_thread_seeding.py::TestDMThreadIsolationEdgeCases::test_group_thread_starts_empty",
        "tests/gateway/test_session_dm_thread_seeding.py::TestDMThreadIsolationEdgeCases::test_thread_without_parent_session_starts_empty",
        "tests/gateway/test_session_dm_thread_seeding.py::TestDMThreadIsolationEdgeCases::test_dm_without_thread_starts_empty",
        "tests/gateway/test_session_dm_thread_seeding.py::TestDMThreadIsolationCrossPlatform::test_thread_starts_empty_across_platforms[Platform.SLACK]",
        "tests/gateway/test_session_dm_thread_seeding.py::TestDMThreadIsolationCrossPlatform::test_thread_starts_empty_across_platforms[Platform.TELEGRAM]",
        "tests/gateway/test_session_dm_thread_seeding.py::TestDMThreadIsolationCrossPlatform::test_thread_starts_empty_across_platforms[Platform.DISCORD]"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0237-test_session_dm_thread_seeding.py.log",
      "output_sha256": "734e38ad39cca0bfb0ab6089a5fe799456baaefa2fcca5b71c84a7fc4d4ca23a",
      "returncode": 0,
      "test_file": "tests/gateway/test_session_dm_thread_seeding.py",
      "test_file_sha256": "4ce42810d11c9750b8bd98c33a4152ab20a85ca816461e1e023a1d9719efadd2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0238",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_env.py"
      ],
      "nodeids": [
        "tests/gateway/test_session_env.py::test_set_session_env_sets_contextvars",
        "tests/gateway/test_session_env.py::test_session_source_uses_contextvars",
        "tests/gateway/test_session_env.py::test_clear_session_env_restores_previous_state",
        "tests/gateway/test_session_env.py::test_get_session_env_falls_back_to_os_environ",
        "tests/gateway/test_session_env.py::test_get_session_env_default_when_nothing_set",
        "tests/gateway/test_session_env.py::test_set_session_env_handles_missing_optional_fields",
        "tests/gateway/test_session_env.py::test_session_key_set_via_contextvars",
        "tests/gateway/test_session_env.py::test_session_key_falls_back_to_os_environ",
        "tests/gateway/test_session_env.py::test_session_id_set_via_contextvars",
        "tests/gateway/test_session_env.py::test_set_session_env_includes_session_key",
        "tests/gateway/test_session_env.py::test_session_key_no_race_condition_with_contextvars",
        "tests/gateway/test_session_env.py::test_run_in_executor_with_context_preserves_session_env",
        "tests/gateway/test_session_env.py::test_run_in_executor_with_context_forwards_args",
        "tests/gateway/test_session_env.py::test_run_in_executor_with_context_propagates_exceptions"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0238-test_session_env.py.log",
      "output_sha256": "3fc442dc41328a27189bebf02d9fefce1d322edd58fca053944b85e188bc1e72",
      "returncode": 0,
      "test_file": "tests/gateway/test_session_env.py",
      "test_file_sha256": "1e57d9c4bf9c890f534ae802bec10d7bca4bd7754545c7f40a2af1210f4cacab"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0239",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_hygiene.py"
      ],
      "nodeids": [
        "tests/gateway/test_session_hygiene.py::TestSessionHygieneThresholds::test_small_session_below_thresholds",
        "tests/gateway/test_session_hygiene.py::TestSessionHygieneThresholds::test_large_token_count_triggers",
        "tests/gateway/test_session_hygiene.py::TestSessionHygieneThresholds::test_under_threshold_no_trigger",
        "tests/gateway/test_session_hygiene.py::TestSessionHygieneThresholds::test_message_count_alone_does_not_trigger",
        "tests/gateway/test_session_hygiene.py::TestSessionHygieneThresholds::test_threshold_scales_with_model",
        "tests/gateway/test_session_hygiene.py::TestSessionHygieneThresholds::test_custom_threshold_percentage",
        "tests/gateway/test_session_hygiene.py::TestSessionHygieneThresholds::test_minimum_message_guard",
        "tests/gateway/test_session_hygiene.py::TestSessionHygieneWarnThreshold::test_warn_when_still_large",
        "tests/gateway/test_session_hygiene.py::TestSessionHygieneWarnThreshold::test_no_warn_when_under",
        "tests/gateway/test_session_hygiene.py::TestEstimatedTokenThreshold::test_threshold_below_context_for_200k_model",
        "tests/gateway/test_session_hygiene.py::TestEstimatedTokenThreshold::test_threshold_below_context_for_128k_model",
        "tests/gateway/test_session_hygiene.py::TestEstimatedTokenThreshold::test_no_multiplier_means_same_threshold_for_estimated_and_actual",
        "tests/gateway/test_session_hygiene.py::TestEstimatedTokenThreshold::test_warn_threshold_below_context",
        "tests/gateway/test_session_hygiene.py::TestEstimatedTokenThreshold::test_overestimate_fires_early_but_safely",
        "tests/gateway/test_session_hygiene.py::TestTokenEstimation::test_empty_history",
        "tests/gateway/test_session_hygiene.py::TestTokenEstimation::test_proportional_to_content",
        "tests/gateway/test_session_hygiene.py::TestTokenEstimation::test_proportional_to_count",
        "tests/gateway/test_session_hygiene.py::TestTokenEstimation::test_pathological_session_detected",
        "tests/gateway/test_session_hygiene.py::test_session_hygiene_messages_stay_in_originating_topic",
        "tests/gateway/test_session_hygiene.py::test_session_hygiene_warns_user_when_compression_aborts",
        "tests/gateway/test_session_hygiene.py::test_session_hygiene_informs_user_when_aux_model_fails_but_recovers",
        "tests/gateway/test_session_hygiene.py::test_session_hygiene_honors_configurable_hard_message_limit",
        "tests/gateway/test_session_hygiene.py::test_session_hygiene_default_hard_message_limit_does_not_fire_at_12_messages"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0239-test_session_hygiene.py.log",
      "output_sha256": "4e93a052072d6c42e7071ada680e9cf304fd2d134790c630ebada37916881ff8",
      "returncode": 0,
      "test_file": "tests/gateway/test_session_hygiene.py",
      "test_file_sha256": "e2c0ea9b013608a60bc87763fad28b6cb3014fee4d6cdaf5e704aaca8ef0ca4f"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0240",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_info.py"
      ],
      "nodeids": [
        "tests/gateway/test_session_info.py::TestFormatSessionInfo::test_includes_model_name",
        "tests/gateway/test_session_info.py::TestFormatSessionInfo::test_includes_provider",
        "tests/gateway/test_session_info.py::TestFormatSessionInfo::test_config_context_length",
        "tests/gateway/test_session_info.py::TestFormatSessionInfo::test_default_fallback_hint",
        "tests/gateway/test_session_info.py::TestFormatSessionInfo::test_local_endpoint_shown",
        "tests/gateway/test_session_info.py::TestFormatSessionInfo::test_cloud_endpoint_hidden",
        "tests/gateway/test_session_info.py::TestFormatSessionInfo::test_million_context_format",
        "tests/gateway/test_session_info.py::TestFormatSessionInfo::test_missing_config",
        "tests/gateway/test_session_info.py::TestFormatSessionInfo::test_runtime_resolution_failure_doesnt_crash"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0240-test_session_info.py.log",
      "output_sha256": "f621ed9c7e468229e84e10eb77df799e869467cd2d6452f4022a2e5aa2b98089",
      "returncode": 0,
      "test_file": "tests/gateway/test_session_info.py",
      "test_file_sha256": "c8e0696f1708c26faddda67c5a76146480e3b4b2fbd25616c3fa767837fe98ac"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0241",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_list_allowed_sources.py"
      ],
      "nodeids": [
        "tests/gateway/test_session_list_allowed_sources.py::test_session_list_surfaces_all_user_facing_sources",
        "tests/gateway/test_session_list_allowed_sources.py::test_session_list_default_limit_is_200",
        "tests/gateway/test_session_list_allowed_sources.py::test_session_list_respects_explicit_limit",
        "tests/gateway/test_session_list_allowed_sources.py::test_session_list_preserves_ordering_after_filter"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0241-test_session_list_allowed_sources.py.log",
      "output_sha256": "5aeeb5c838079d757d60d66c01528f6eaf4e41c54be03b80f8120d70b2d23411",
      "returncode": 0,
      "test_file": "tests/gateway/test_session_list_allowed_sources.py",
      "test_file_sha256": "03da0317112c9a69b60d65dd53b1abf7aba0971db2ca8f4d238050cad1715e2e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0242",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_model_override_routing.py"
      ],
      "nodeids": [
        "tests/gateway/test_session_model_override_routing.py::test_run_agent_prefers_session_override_over_global_runtime",
        "tests/gateway/test_session_model_override_routing.py::test_background_task_prefers_session_override_over_global_runtime",
        "tests/gateway/test_session_model_override_routing.py::test_gateway_auth_fallback_uses_fallback_model_from_config",
        "tests/gateway/test_session_model_override_routing.py::test_gateway_auth_fallback_resolves_key_env_for_custom_provider"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0242-test_session_model_override_routing.py.log",
      "output_sha256": "2f496f3384ab0e6ce48019df431e297a08fc5549d4bf6dc7d5d9e3b28b643055",
      "returncode": 0,
      "test_file": "tests/gateway/test_session_model_override_routing.py",
      "test_file_sha256": "84cfe2c84b3cf1aeee4d7b41f4713172d1c5b29cde7fa7457e490969ab4d0d98"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0243",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_model_reset.py"
      ],
      "nodeids": [
        "tests/gateway/test_session_model_reset.py::test_new_command_clears_session_model_override",
        "tests/gateway/test_session_model_reset.py::test_new_command_no_override_is_noop",
        "tests/gateway/test_session_model_reset.py::test_new_command_only_clears_own_session"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0243-test_session_model_reset.py.log",
      "output_sha256": "2091c1718ccd73537dbc17d8633d9192beee3f23e099469be4441745c2a71ac5",
      "returncode": 0,
      "test_file": "tests/gateway/test_session_model_reset.py",
      "test_file_sha256": "126d10294a46022530f840b8ea64bb9f5b830a925b97575e413bbce124d9b603"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0244",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_override_thread_recovery.py"
      ],
      "nodeids": [
        "tests/gateway/test_session_override_thread_recovery.py::test_normalize_rewrites_lobby_thread_to_bound_topic",
        "tests/gateway/test_session_override_thread_recovery.py::test_normalize_passthrough_when_no_recovery",
        "tests/gateway/test_session_override_thread_recovery.py::test_normalize_swallows_recovery_exceptions",
        "tests/gateway/test_session_override_thread_recovery.py::test_override_key_matches_message_turn_key_after_recovery"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0244-test_session_override_thread_recovery.py.log",
      "output_sha256": "e294357ce869723026fed737e605c4917f78137b28f060d96148ba09a0ce2cbd",
      "returncode": 0,
      "test_file": "tests/gateway/test_session_override_thread_recovery.py",
      "test_file_sha256": "7a20d9248f2ce1ae1554c9a1ae1fa8f7538ec7903f6ef8358f970556c99cdab1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0245",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_race_guard.py"
      ],
      "nodeids": [
        "tests/gateway/test_session_race_guard.py::test_sentinel_placed_before_agent_setup",
        "tests/gateway/test_session_race_guard.py::test_sentinel_cleaned_up_after_handler_returns",
        "tests/gateway/test_session_race_guard.py::test_sentinel_cleaned_up_on_exception",
        "tests/gateway/test_session_race_guard.py::test_second_message_during_sentinel_queued_not_duplicate",
        "tests/gateway/test_session_race_guard.py::test_merge_pending_message_event_merges_text_and_photo_followups",
        "tests/gateway/test_session_race_guard.py::test_merge_pending_message_event_promotes_document_followups_over_text",
        "tests/gateway/test_session_race_guard.py::test_recent_telegram_text_followup_is_queued_without_interrupt",
        "tests/gateway/test_session_race_guard.py::test_recent_telegram_followups_append_in_pending_queue",
        "tests/gateway/test_session_race_guard.py::test_command_messages_do_not_leave_sentinel",
        "tests/gateway/test_session_race_guard.py::test_start_command_is_noop_and_does_not_show_help",
        "tests/gateway/test_session_race_guard.py::test_start_command_is_noop_during_active_session",
        "tests/gateway/test_session_race_guard.py::test_active_session_bypass_commands_dispatch_without_interrupt[/help-_handle_help_command-Help text]",
        "tests/gateway/test_session_race_guard.py::test_active_session_bypass_commands_dispatch_without_interrupt[/commands-_handle_commands_command-Commands text]",
        "tests/gateway/test_session_race_guard.py::test_active_session_bypass_commands_dispatch_without_interrupt[/update-_handle_update_command-Update text]",
        "tests/gateway/test_session_race_guard.py::test_active_session_bypass_commands_dispatch_without_interrupt[/profile-_handle_profile_command-Profile text]",
        "tests/gateway/test_session_race_guard.py::test_stop_during_sentinel_force_cleans_session",
        "tests/gateway/test_session_race_guard.py::test_stop_hard_kills_running_agent",
        "tests/gateway/test_session_race_guard.py::test_stop_clears_pending_messages",
        "tests/gateway/test_session_race_guard.py::test_shutdown_skips_sentinel"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0245-test_session_race_guard.py.log",
      "output_sha256": "67fc0ecf787eeaf839c1ff1c3f4694370cf96ae55041b90968f07a27f979d6ae",
      "returncode": 0,
      "test_file": "tests/gateway/test_session_race_guard.py",
      "test_file_sha256": "dbef94a0da96c5495881d3363f1b45fe496c6c62636eeee4ad660325e1127400"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0246",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_reset_notify.py"
      ],
      "nodeids": [
        "tests/gateway/test_session_reset_notify.py::TestShouldResetReason::test_returns_none_when_not_expired",
        "tests/gateway/test_session_reset_notify.py::TestShouldResetReason::test_returns_idle_when_idle_expired",
        "tests/gateway/test_session_reset_notify.py::TestShouldResetReason::test_returns_daily_when_daily_boundary_crossed",
        "tests/gateway/test_session_reset_notify.py::TestShouldResetReason::test_returns_none_when_mode_is_none",
        "tests/gateway/test_session_reset_notify.py::TestSessionEntryReason::test_auto_reset_reason_stored",
        "tests/gateway/test_session_reset_notify.py::TestSessionEntryReason::test_reset_had_activity_false_when_no_tokens",
        "tests/gateway/test_session_reset_notify.py::TestSessionEntryReason::test_reset_had_activity_true_when_tokens_used",
        "tests/gateway/test_session_reset_notify.py::TestResetPolicyNotify::test_notify_defaults_true",
        "tests/gateway/test_session_reset_notify.py::TestResetPolicyNotify::test_notify_exclude_defaults",
        "tests/gateway/test_session_reset_notify.py::TestResetPolicyNotify::test_from_dict_with_notify_false",
        "tests/gateway/test_session_reset_notify.py::TestResetPolicyNotify::test_from_dict_with_custom_excludes",
        "tests/gateway/test_session_reset_notify.py::TestResetPolicyNotify::test_from_dict_preserves_defaults_on_missing_keys",
        "tests/gateway/test_session_reset_notify.py::TestResetPolicyNotify::test_to_dict_roundtrip",
        "tests/gateway/test_session_reset_notify.py::TestSessionEntryAutoResetRoundtrip::test_was_auto_reset_persists_across_roundtrip",
        "tests/gateway/test_session_reset_notify.py::TestSessionEntryAutoResetRoundtrip::test_reset_had_activity_persists_across_roundtrip",
        "tests/gateway/test_session_reset_notify.py::TestSessionEntryAutoResetRoundtrip::test_auto_reset_reason_none_roundtrip"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0246-test_session_reset_notify.py.log",
      "output_sha256": "64c00e4acc250726e90333c5e279f9dcb73767b8d44260297a0e701b1e29b2b7",
      "returncode": 0,
      "test_file": "tests/gateway/test_session_reset_notify.py",
      "test_file_sha256": "05deca8179b6fd60113438f27fbb588ea68af7b10a458b96e5e5b66d488f0ea7"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0247",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_split_brain_11016.py"
      ],
      "nodeids": [
        "tests/gateway/test_session_split_brain_11016.py::TestAdapterSessionCancellation::test_command_cancels_active_task_and_unblocks_follow_up[/stop]",
        "tests/gateway/test_session_split_brain_11016.py::TestAdapterSessionCancellation::test_command_cancels_active_task_and_unblocks_follow_up[/new]",
        "tests/gateway/test_session_split_brain_11016.py::TestAdapterSessionCancellation::test_command_cancels_active_task_and_unblocks_follow_up[/reset]",
        "tests/gateway/test_session_split_brain_11016.py::TestAdapterSessionCancellation::test_new_keeps_guard_until_command_finishes_then_runs_follow_up",
        "tests/gateway/test_session_split_brain_11016.py::TestStaleSessionLockSelfHeal::test_stale_lock_with_done_task_is_healed_on_next_message",
        "tests/gateway/test_session_split_brain_11016.py::TestStaleSessionLockSelfHeal::test_no_owner_task_is_not_treated_as_stale",
        "tests/gateway/test_session_split_brain_11016.py::TestStaleSessionLockSelfHeal::test_live_owner_task_is_not_stale",
        "tests/gateway/test_session_split_brain_11016.py::TestRunnerSessionGenerationGuard::test_release_without_generation_behaves_as_before",
        "tests/gateway/test_session_split_brain_11016.py::TestRunnerSessionGenerationGuard::test_release_with_current_generation_clears_slot",
        "tests/gateway/test_session_split_brain_11016.py::TestRunnerSessionGenerationGuard::test_release_with_stale_generation_blocks",
        "tests/gateway/test_session_split_brain_11016.py::TestRunnerSessionGenerationGuard::test_is_session_run_current_tracks_bumps",
        "tests/gateway/test_session_split_brain_11016.py::TestOldTaskCannotClobberNewerGuard::test_release_session_guard_matches_on_event_identity",
        "tests/gateway/test_session_split_brain_11016.py::TestOldTaskCannotClobberNewerGuard::test_release_session_guard_without_guard_releases_unconditionally"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0247-test_session_split_brain_11016.py.log",
      "output_sha256": "548721fd16400f31dcc4a4d2a64a092e709d519500d4815ece540301907c1bdc",
      "returncode": 0,
      "test_file": "tests/gateway/test_session_split_brain_11016.py",
      "test_file_sha256": "50867bc785d2188de08e9c417839da8effdd75a06e5eb51fafadb2a25ca5004d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0248",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_state_cleanup.py"
      ],
      "nodeids": [
        "tests/gateway/test_session_state_cleanup.py::TestReleaseRunningAgentStateUnit::test_pops_all_three_dicts",
        "tests/gateway/test_session_state_cleanup.py::TestReleaseRunningAgentStateUnit::test_idempotent_on_missing_key",
        "tests/gateway/test_session_state_cleanup.py::TestReleaseRunningAgentStateUnit::test_noop_on_empty_session_key",
        "tests/gateway/test_session_state_cleanup.py::TestReleaseRunningAgentStateUnit::test_preserves_other_sessions",
        "tests/gateway/test_session_state_cleanup.py::TestReleaseRunningAgentStateUnit::test_handles_missing_busy_ack_attribute",
        "tests/gateway/test_session_state_cleanup.py::TestReleaseRunningAgentStateUnit::test_concurrent_release_is_safe",
        "tests/gateway/test_session_state_cleanup.py::TestNoMoreBareDeleteSites::test_no_bare_del_of_running_agents_in_gateway_run",
        "tests/gateway/test_session_state_cleanup.py::TestSessionDbCloseOnShutdown::test_stop_impl_closes_both_session_dbs",
        "tests/gateway/test_session_state_cleanup.py::TestSessionDbCloseOnShutdown::test_shutdown_tolerates_missing_session_store",
        "tests/gateway/test_session_state_cleanup.py::TestSessionDbCloseOnShutdown::test_shutdown_tolerates_close_raising",
        "tests/gateway/test_session_state_cleanup.py::TestSessionResetZombieRace::test_generation_guard_blocks_then_unconditional_release_evicts",
        "tests/gateway/test_session_state_cleanup.py::TestSessionResetZombieRace::test_normal_completion_is_not_evicted_by_outer_release"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0248-test_session_state_cleanup.py.log",
      "output_sha256": "5c51af5fc958eefb9fd7bd5747fc72c2ad7b854d1994565a0e27bf49c886bc90",
      "returncode": 0,
      "test_file": "tests/gateway/test_session_state_cleanup.py",
      "test_file_sha256": "a52ee8982bac76c40da5df11d53c7bbd9eaee737bc35005c881ca6c1b4b6700e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0249",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_store_prune.py"
      ],
      "nodeids": [
        "tests/gateway/test_session_store_prune.py::TestPruneBasics::test_prune_removes_entries_past_max_age",
        "tests/gateway/test_session_store_prune.py::TestPruneBasics::test_prune_uses_updated_at_not_created_at",
        "tests/gateway/test_session_store_prune.py::TestPruneBasics::test_prune_disabled_when_max_age_is_zero",
        "tests/gateway/test_session_store_prune.py::TestPruneBasics::test_prune_disabled_when_max_age_is_negative",
        "tests/gateway/test_session_store_prune.py::TestPruneBasics::test_prune_skips_suspended_entries",
        "tests/gateway/test_session_store_prune.py::TestPruneBasics::test_prune_skips_entries_with_active_processes",
        "tests/gateway/test_session_store_prune.py::TestPruneBasics::test_prune_active_check_uses_session_key_not_session_id",
        "tests/gateway/test_session_store_prune.py::TestPruneBasics::test_prune_does_not_write_disk_when_no_removals",
        "tests/gateway/test_session_store_prune.py::TestPruneBasics::test_prune_writes_disk_after_removal",
        "tests/gateway/test_session_store_prune.py::TestPruneBasics::test_prune_is_thread_safe",
        "tests/gateway/test_session_store_prune.py::TestPrunePersistsToDisk::test_prune_rewrites_sessions_json",
        "tests/gateway/test_session_store_prune.py::TestGatewayConfigSerialization::test_session_store_max_age_days_defaults_to_90",
        "tests/gateway/test_session_store_prune.py::TestGatewayConfigSerialization::test_session_store_max_age_days_roundtrips",
        "tests/gateway/test_session_store_prune.py::TestGatewayConfigSerialization::test_session_store_max_age_days_missing_defaults_90",
        "tests/gateway/test_session_store_prune.py::TestGatewayConfigSerialization::test_session_store_max_age_days_negative_coerced_to_zero",
        "tests/gateway/test_session_store_prune.py::TestGatewayConfigSerialization::test_session_store_max_age_days_bad_type_falls_back",
        "tests/gateway/test_session_store_prune.py::TestGatewayWatcherCallsPrune::test_prune_gate_fires_on_first_tick",
        "tests/gateway/test_session_store_prune.py::TestGatewayWatcherCallsPrune::test_prune_gate_suppresses_within_interval"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0249-test_session_store_prune.py.log",
      "output_sha256": "035b98a3598e8eb5ded8c10ea8aa46bf9663d2205a2bab0e822d329916bb6cd9",
      "returncode": 0,
      "test_file": "tests/gateway/test_session_store_prune.py",
      "test_file_sha256": "2bcb191b55f22729e25575af34b393831a8e7cf76cd0cd75b38e703caadba8b5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0250",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_setup_feishu.py"
      ],
      "nodeids": [
        "tests/gateway/test_setup_feishu.py::TestSetupFeishuQrPath::test_qr_success_saves_core_credentials",
        "tests/gateway/test_setup_feishu.py::TestSetupFeishuQrPath::test_qr_success_does_not_persist_bot_identity",
        "tests/gateway/test_setup_feishu.py::TestSetupFeishuConnectionMode::test_qr_path_defaults_to_websocket",
        "tests/gateway/test_setup_feishu.py::TestSetupFeishuConnectionMode::test_manual_path_websocket",
        "tests/gateway/test_setup_feishu.py::TestSetupFeishuConnectionMode::test_manual_path_webhook",
        "tests/gateway/test_setup_feishu.py::TestSetupFeishuDmPolicy::test_pairing_sets_feishu_allow_all_false",
        "tests/gateway/test_setup_feishu.py::TestSetupFeishuDmPolicy::test_allow_all_sets_feishu_allow_all_true",
        "tests/gateway/test_setup_feishu.py::TestSetupFeishuDmPolicy::test_allowlist_sets_feishu_allow_all_false_with_list",
        "tests/gateway/test_setup_feishu.py::TestSetupFeishuDmPolicy::test_allowlist_prepopulates_with_scan_owner_open_id",
        "tests/gateway/test_setup_feishu.py::TestSetupFeishuGroupPolicy::test_open_with_mention",
        "tests/gateway/test_setup_feishu.py::TestSetupFeishuGroupPolicy::test_disabled",
        "tests/gateway/test_setup_feishu.py::TestSetupFeishuAdapterIntegration::test_qr_env_produces_valid_adapter_settings",
        "tests/gateway/test_setup_feishu.py::TestSetupFeishuAdapterIntegration::test_open_dm_env_sets_correct_adapter_state",
        "tests/gateway/test_setup_feishu.py::TestSetupFeishuAdapterIntegration::test_group_open_env_sets_adapter_group_policy"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0250-test_setup_feishu.py.log",
      "output_sha256": "eb0aceaf389ca88c443908c1758bba03840cc0bb7e9c6784987a991851a3a037",
      "returncode": 0,
      "test_file": "tests/gateway/test_setup_feishu.py",
      "test_file_sha256": "bbda5e1c8a4adea2306b59861c4c0ccccf6f9f035c6a1e60f240a549e8bc28cb"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0251",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_shared_group_sender_prefix.py"
      ],
      "nodeids": [
        "tests/gateway/test_shared_group_sender_prefix.py::test_preprocess_prefixes_sender_for_shared_non_thread_group_session",
        "tests/gateway/test_shared_group_sender_prefix.py::test_preprocess_keeps_plain_text_for_default_group_sessions"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0251-test_shared_group_sender_prefix.py.log",
      "output_sha256": "584432fec9d57defdf7253303f540b803b7c55cf4f89132d8fe5607b945c2c2c",
      "returncode": 0,
      "test_file": "tests/gateway/test_shared_group_sender_prefix.py",
      "test_file_sha256": "fe7cee1a11df0882d12bcdf53e71b739cef164ca029b76169915dfa5abab9b9d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0252",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_shutdown_cache_cleanup.py"
      ],
      "nodeids": [
        "tests/gateway/test_shutdown_cache_cleanup.py::TestCachedAgentCleanupOnShutdown::test_cached_agent_memory_provider_shut_down",
        "tests/gateway/test_shutdown_cache_cleanup.py::TestCachedAgentCleanupOnShutdown::test_cache_cleared_after_shutdown",
        "tests/gateway/test_shutdown_cache_cleanup.py::TestCachedAgentCleanupOnShutdown::test_no_cached_agents_no_error",
        "tests/gateway/test_shutdown_cache_cleanup.py::TestCachedAgentCleanupOnShutdown::test_multiple_cached_agents_all_cleaned",
        "tests/gateway/test_shutdown_cache_cleanup.py::TestCachedAgentCleanupOnShutdown::test_cleanup_survives_agent_exception",
        "tests/gateway/test_shutdown_cache_cleanup.py::TestCachedAgentCleanupOnShutdown::test_plain_agent_not_tuple",
        "tests/gateway/test_shutdown_cache_cleanup.py::TestCachedAgentCleanupOnShutdown::test_none_entry_skipped",
        "tests/gateway/test_shutdown_cache_cleanup.py::TestRunningAgentsNotDoubleCleaned::test_running_and_cached_agent_cleaned_at_least_once"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0252-test_shutdown_cache_cleanup.py.log",
      "output_sha256": "11f9f6100e4c6ee0585ca9d4420a94d94f42ff30493231fe75c7f02b77db94d8",
      "returncode": 0,
      "test_file": "tests/gateway/test_shutdown_cache_cleanup.py",
      "test_file_sha256": "d543ff68e887a861a776db075b2787f92429d9af0b07b9bc7088dadd2850d534"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0253",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_shutdown_forensics.py"
      ],
      "nodeids": [
        "tests/gateway/test_shutdown_forensics.py::TestSignalName::test_known_signals_resolve_to_names",
        "tests/gateway/test_shutdown_forensics.py::TestSignalName::test_unknown_int_returns_signal_num_token",
        "tests/gateway/test_shutdown_forensics.py::TestSignalName::test_none_returns_unknown",
        "tests/gateway/test_shutdown_forensics.py::TestSignalName::test_non_integer_falls_back_to_str",
        "tests/gateway/test_shutdown_forensics.py::TestSnapshotShutdownContext::test_includes_self_pid_and_signal",
        "tests/gateway/test_shutdown_forensics.py::TestSnapshotShutdownContext::test_handles_none_signal",
        "tests/gateway/test_shutdown_forensics.py::TestSnapshotShutdownContext::test_includes_timestamps",
        "tests/gateway/test_shutdown_forensics.py::TestSnapshotShutdownContext::test_includes_parent_summary_on_linux",
        "tests/gateway/test_shutdown_forensics.py::TestSnapshotShutdownContext::test_under_systemd_flag_uses_invocation_id",
        "tests/gateway/test_shutdown_forensics.py::TestSnapshotShutdownContext::test_under_systemd_false_without_invocation_id_and_normal_ppid",
        "tests/gateway/test_shutdown_forensics.py::TestSnapshotShutdownContext::test_completes_quickly",
        "tests/gateway/test_shutdown_forensics.py::TestSnapshotShutdownContext::test_detects_takeover_marker_for_self",
        "tests/gateway/test_shutdown_forensics.py::TestSnapshotShutdownContext::test_detects_takeover_marker_for_other",
        "tests/gateway/test_shutdown_forensics.py::TestSnapshotShutdownContext::test_detects_planned_stop_marker",
        "tests/gateway/test_shutdown_forensics.py::TestFormatters::test_format_context_for_log_includes_signal_and_parent",
        "tests/gateway/test_shutdown_forensics.py::TestFormatters::test_context_as_json_round_trips",
        "tests/gateway/test_shutdown_forensics.py::TestFormatters::test_context_as_json_handles_unserialisable_values",
        "tests/gateway/test_shutdown_forensics.py::TestSpawnAsyncDiagnostic::test_spawns_subprocess_and_writes_output",
        "tests/gateway/test_shutdown_forensics.py::TestSpawnAsyncDiagnostic::test_returns_none_on_windows",
        "tests/gateway/test_shutdown_forensics.py::TestSpawnAsyncDiagnostic::test_handles_unwritable_log_path_gracefully",
        "tests/gateway/test_shutdown_forensics.py::TestSpawnAsyncDiagnostic::test_does_not_block_caller",
        "tests/gateway/test_shutdown_forensics.py::TestParseSystemdDuration::test_seconds",
        "tests/gateway/test_shutdown_forensics.py::TestParseSystemdDuration::test_minutes",
        "tests/gateway/test_shutdown_forensics.py::TestParseSystemdDuration::test_combined_min_sec",
        "tests/gateway/test_shutdown_forensics.py::TestParseSystemdDuration::test_hours",
        "tests/gateway/test_shutdown_forensics.py::TestParseSystemdDuration::test_milliseconds",
        "tests/gateway/test_shutdown_forensics.py::TestParseSystemdDuration::test_empty_returns_none",
        "tests/gateway/test_shutdown_forensics.py::TestParseSystemdDuration::test_unknown_unit_returns_none",
        "tests/gateway/test_shutdown_forensics.py::TestCheckSystemdTimingAlignment::test_returns_none_when_not_under_systemd",
        "tests/gateway/test_shutdown_forensics.py::TestCheckSystemdTimingAlignment::test_returns_none_when_unit_undeterminable"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0253-test_shutdown_forensics.py.log",
      "output_sha256": "62ba0e4af799a20741b6c7563449620a5c63ef2e9820826b8cf58cffff0a36e4",
      "returncode": 0,
      "test_file": "tests/gateway/test_shutdown_forensics.py",
      "test_file_sha256": "365a0146eb1d098f34ffacacce2c2f3a2b19ef814ca9a3c329025d8f039cb668"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0254",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_shutdown_memory_provider_messages.py"
      ],
      "nodeids": [
        "tests/gateway/test_shutdown_memory_provider_messages.py::TestCleanupAgentResourcesPassesMessages::test_populated_messages_forwarded",
        "tests/gateway/test_shutdown_memory_provider_messages.py::TestCleanupAgentResourcesPassesMessages::test_empty_list_still_forwarded",
        "tests/gateway/test_shutdown_memory_provider_messages.py::TestCleanupAgentResourcesPassesMessages::test_missing_attribute_falls_back_to_no_arg",
        "tests/gateway/test_shutdown_memory_provider_messages.py::TestCleanupAgentResourcesPassesMessages::test_non_list_attribute_falls_back_to_no_arg",
        "tests/gateway/test_shutdown_memory_provider_messages.py::TestCleanupAgentResourcesPassesMessages::test_provider_exception_is_swallowed",
        "tests/gateway/test_shutdown_memory_provider_messages.py::TestCleanupAgentResourcesPassesMessages::test_none_agent_is_noop",
        "tests/gateway/test_shutdown_memory_provider_messages.py::TestCleanupAgentResourcesPassesMessages::test_agent_without_shutdown_method_is_tolerated"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0254-test_shutdown_memory_provider_messages.py.log",
      "output_sha256": "c1decb13fff2698ab217e9bb876582dd148da87aa474ce91141dda21b3f92a4f",
      "returncode": 0,
      "test_file": "tests/gateway/test_shutdown_memory_provider_messages.py",
      "test_file_sha256": "095d880fa8d35fa75ae561fb35c72de011b8881744f176a998e10b96c06293d2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0255",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_signal.py"
      ],
      "nodeids": [
        "tests/gateway/test_signal.py::TestSignalConfigLoading::test_apply_env_overrides_signal",
        "tests/gateway/test_signal.py::TestSignalConfigLoading::test_signal_not_loaded_without_both_vars",
        "tests/gateway/test_signal.py::TestSignalAdapterInit::test_init_parses_config",
        "tests/gateway/test_signal.py::TestSignalAdapterInit::test_init_empty_allowlist",
        "tests/gateway/test_signal.py::TestSignalAdapterInit::test_init_strips_trailing_slash",
        "tests/gateway/test_signal.py::TestSignalAdapterInit::test_self_message_filtering",
        "tests/gateway/test_signal.py::TestSignalConnectCleanup::test_releases_lock_and_closes_client_on_healthcheck_failure",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_redact_phone_long",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_redact_phone_short",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_redact_phone_empty",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_parse_comma_list",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_guess_extension_png",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_guess_extension_jpeg",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_guess_extension_pdf",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_guess_extension_zip",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_guess_extension_mp4",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_guess_extension_aac_adts_unprotected",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_guess_extension_aac_adts_protected",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_guess_extension_mp3_mpeg1_layer3",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_guess_extension_mp3_mpeg2_layer3",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_guess_extension_aac_routes_to_audio_cache",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_remux_aac_to_m4a_round_trip",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_remux_aac_to_m4a_handles_garbage",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_guess_extension_unknown",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_is_image_ext",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_is_audio_ext",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_check_requirements",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_render_mentions",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_render_mentions_no_mentions",
        "tests/gateway/test_signal.py::TestSignalHelpers::test_check_requirements_missing",
        "tests/gateway/test_signal.py::TestSignalSSEUrlEncoding::test_sse_url_encodes_plus_in_account",
        "tests/gateway/test_signal.py::TestSignalSSEUrlEncoding::test_sse_url_encoding_preserves_digits",
        "tests/gateway/test_signal.py::TestSignalAttachmentFetch::test_fetch_attachment_uses_id_parameter",
        "tests/gateway/test_signal.py::TestSignalAttachmentFetch::test_fetch_attachment_returns_none_on_empty",
        "tests/gateway/test_signal.py::TestSignalAttachmentFetch::test_fetch_attachment_handles_dict_response",
        "tests/gateway/test_signal.py::TestSignalSessionSource::test_session_source_alt_fields",
        "tests/gateway/test_signal.py::TestSignalSessionSource::test_session_source_roundtrip",
        "tests/gateway/test_signal.py::TestSignalPhoneRedaction::test_us_number",
        "tests/gateway/test_signal.py::TestSignalPhoneRedaction::test_uk_number",
        "tests/gateway/test_signal.py::TestSignalPhoneRedaction::test_multiple_numbers",
        "tests/gateway/test_signal.py::TestSignalPhoneRedaction::test_short_number_not_matched",
        "tests/gateway/test_signal.py::TestSignalAuthorization::test_signal_in_allowlist_maps",
        "tests/gateway/test_signal.py::TestSignalSendImageFile::test_send_image_file_sends_via_rpc",
        "tests/gateway/test_signal.py::TestSignalSendImageFile::test_send_image_file_to_group",
        "tests/gateway/test_signal.py::TestSignalSendImageFile::test_send_image_file_missing",
        "tests/gateway/test_signal.py::TestSignalSendImageFile::test_send_image_file_too_large",
        "tests/gateway/test_signal.py::TestSignalSendImageFile::test_send_image_file_rpc_failure",
        "tests/gateway/test_signal.py::TestSignalRecipientResolution::test_send_prefers_cached_uuid_for_direct_messages",
        "tests/gateway/test_signal.py::TestSignalRecipientResolution::test_send_looks_up_uuid_via_list_contacts",
        "tests/gateway/test_signal.py::TestSignalRecipientResolution::test_send_falls_back_to_phone_when_no_uuid_found",
        "tests/gateway/test_signal.py::TestSignalRecipientResolution::test_send_typing_uses_cached_uuid",
        "tests/gateway/test_signal.py::TestSignalSendVoice::test_send_voice_sends_via_rpc",
        "tests/gateway/test_signal.py::TestSignalSendVoice::test_send_voice_missing_file",
        "tests/gateway/test_signal.py::TestSignalSendVoice::test_send_voice_to_group",
        "tests/gateway/test_signal.py::TestSignalSendVoice::test_send_voice_too_large",
        "tests/gateway/test_signal.py::TestSignalSendVoice::test_send_voice_rpc_failure",
        "tests/gateway/test_signal.py::TestSignalSendVideo::test_send_video_sends_via_rpc",
        "tests/gateway/test_signal.py::TestSignalSendVideo::test_send_video_missing_file",
        "tests/gateway/test_signal.py::TestSignalSendVideo::test_send_video_too_large",
        "tests/gateway/test_signal.py::TestSignalSendVideo::test_send_video_rpc_failure",
        "tests/gateway/test_signal.py::TestSignalMediaExtraction::test_extract_media_finds_image_tag",
        "tests/gateway/test_signal.py::TestSignalMediaExtraction::test_extract_media_finds_audio_tag",
        "tests/gateway/test_signal.py::TestSignalMediaExtraction::test_signal_has_all_media_methods",
        "tests/gateway/test_signal.py::TestSignalInboundMessageTypeClassification::test_pdf_attachment_sets_document_type",
        "tests/gateway/test_signal.py::TestSignalInboundMessageTypeClassification::test_text_plain_attachment_sets_document_type",
        "tests/gateway/test_signal.py::TestSignalInboundMessageTypeClassification::test_text_html_attachment_sets_document_type",
        "tests/gateway/test_signal.py::TestSignalInboundMessageTypeClassification::test_video_attachment_sets_video_type",
        "tests/gateway/test_signal.py::TestSignalInboundMessageTypeClassification::test_unknown_mime_attachment_falls_back_to_document",
        "tests/gateway/test_signal.py::TestSignalSendDocumentViaHelper::test_send_document_too_large",
        "tests/gateway/test_signal.py::TestSignalSendDocumentViaHelper::test_send_document_error_includes_path",
        "tests/gateway/test_signal.py::TestSignalStreamingCapabilities::test_signal_declares_no_message_editing",
        "tests/gateway/test_signal.py::TestSignalSendReturnsMessageId::test_send_returns_none_message_id_even_with_timestamp",
        "tests/gateway/test_signal.py::TestSignalSendReturnsMessageId::test_send_returns_none_message_id_when_no_timestamp",
        "tests/gateway/test_signal.py::TestSignalSendReturnsMessageId::test_send_returns_none_message_id_for_non_dict",
        "tests/gateway/test_signal.py::TestSignalSendResultValidation::test_send_success_when_results_has_success",
        "tests/gateway/test_signal.py::TestSignalSendResultValidation::test_send_failure_when_results_has_failure_type",
        "tests/gateway/test_signal.py::TestSignalSendResultValidation::test_send_failure_when_results_has_success_false",
        "tests/gateway/test_signal.py::TestSignalSendResultValidation::test_rpc_raises_rate_limit_on_results_failure",
        "tests/gateway/test_signal.py::TestSignalStopTyping::test_stop_typing_calls_private_method",
        "tests/gateway/test_signal.py::TestSignalTypingBackoff::test_first_failure_logs_at_warning_subsequent_at_debug",
        "tests/gateway/test_signal.py::TestSignalTypingBackoff::test_three_consecutive_failures_trigger_cooldown",
        "tests/gateway/test_signal.py::TestSignalTypingBackoff::test_cooldown_is_per_chat_not_global",
        "tests/gateway/test_signal.py::TestSignalTypingBackoff::test_success_resets_failure_counter_and_cooldown",
        "tests/gateway/test_signal.py::TestSignalTypingBackoff::test_stop_typing_indicator_clears_backoff_state",
        "tests/gateway/test_signal.py::TestSignalStopTypingExplicitRPC::test_stop_typing_indicator_sends_stop_rpc_for_dm",
        "tests/gateway/test_signal.py::TestSignalStopTypingExplicitRPC::test_stop_typing_indicator_sends_stop_rpc_for_group",
        "tests/gateway/test_signal.py::TestSignalStopTypingExplicitRPC::test_stop_typing_indicator_best_effort_on_rpc_failure",
        "tests/gateway/test_signal.py::TestSignalStopTypingExplicitRPC::test_stop_typing_indicator_best_effort_on_recipient_failure",
        "tests/gateway/test_signal.py::TestSignalQuoteExtraction::test_handle_envelope_sets_reply_context_from_quote",
        "tests/gateway/test_signal.py::TestSignalQuoteExtraction::test_handle_envelope_marks_quote_to_own_sent_timestamp",
        "tests/gateway/test_signal.py::TestSignalQuoteExtraction::test_handle_envelope_marks_quote_to_own_account_author",
        "tests/gateway/test_signal.py::TestSignalQuoteExtraction::test_track_sent_timestamp_keeps_reply_detection_cache_after_echo_discard",
        "tests/gateway/test_signal.py::TestSignalQuoteExtraction::test_handle_envelope_without_quote_leaves_reply_fields_none",
        "tests/gateway/test_signal.py::TestSignalQuoteExtraction::test_handle_envelope_quote_without_text_sets_only_reply_id",
        "tests/gateway/test_signal.py::TestSignalRpcRateLimit::test_raises_on_429_when_opted_in",
        "tests/gateway/test_signal.py::TestSignalRpcRateLimit::test_raises_on_rate_limit_exception_substring",
        "tests/gateway/test_signal.py::TestSignalRpcRateLimit::test_default_swallows_rate_limit_returns_none",
        "tests/gateway/test_signal.py::TestSignalRpcRateLimit::test_non_rate_limit_error_does_not_raise_when_opted_in",
        "tests/gateway/test_signal.py::TestSignalRpcRateLimit::test_raises_with_retry_after_from_v0_14_3_payload",
        "tests/gateway/test_signal.py::TestSignalRpcRateLimit::test_raises_with_retry_after_none_for_old_signal_cli",
        "tests/gateway/test_signal.py::TestSignalRpcRateLimit::test_raises_on_retry_later_inside_attachment_invalid",
        "tests/gateway/test_signal.py::TestSignalSendMultipleImages::test_empty_list_is_noop",
        "tests/gateway/test_signal.py::TestSignalSendMultipleImages::test_all_bad_files_no_rpc",
        "tests/gateway/test_signal.py::TestSignalSendMultipleImages::test_single_batch_under_limit",
        "tests/gateway/test_signal.py::TestSignalSendMultipleImages::test_skips_bad_images_in_mixed_batch",
        "tests/gateway/test_signal.py::TestSignalSendMultipleImages::test_429_calibrates_scheduler_then_retries",
        "tests/gateway/test_signal.py::TestSignalSendMultipleImages::test_429_without_retry_after_uses_default_rate",
        "tests/gateway/test_signal.py::TestSignalSendMultipleImages::test_rate_limit_exhaust_continues_to_next_batch",
        "tests/gateway/test_signal.py::TestSignalSendMultipleImages::test_full_batch_emits_pacing_notice_for_followup",
        "tests/gateway/test_signal.py::TestSignalSendMultipleImages::test_short_followup_wait_skips_pacing_notice",
        "tests/gateway/test_signal.py::TestSignalSendMultipleImages::test_single_batch_send_does_not_pace",
        "tests/gateway/test_signal.py::TestSignalRateLimitDetection::test_detect_typed_code",
        "tests/gateway/test_signal.py::TestSignalRateLimitDetection::test_detect_substring_fallback",
        "tests/gateway/test_signal.py::TestSignalRateLimitDetection::test_detect_non_rate_limit",
        "tests/gateway/test_signal.py::TestSignalRateLimitDetection::test_extract_retry_after_from_results",
        "tests/gateway/test_signal.py::TestSignalRateLimitDetection::test_extract_retry_after_missing",
        "tests/gateway/test_signal.py::TestSignalRateLimitDetection::test_detect_retry_later_exception_substring",
        "tests/gateway/test_signal.py::TestSignalRateLimitDetection::test_extract_retry_after_parses_message_string",
        "tests/gateway/test_signal.py::TestSignalSendTimeout::test_zero_attachments_uses_default",
        "tests/gateway/test_signal.py::TestSignalSendTimeout::test_floor_at_60s",
        "tests/gateway/test_signal.py::TestSignalSendTimeout::test_scales_with_batch_size",
        "tests/gateway/test_signal.py::TestSignalContentlessEnvelope::test_skips_profile_key_update_no_message_field",
        "tests/gateway/test_signal.py::TestSignalContentlessEnvelope::test_skips_empty_message",
        "tests/gateway/test_signal.py::TestSignalContentlessEnvelope::test_skips_whitespace_only_message",
        "tests/gateway/test_signal.py::TestSignalContentlessEnvelope::test_allows_message_with_attachment_no_text",
        "tests/gateway/test_signal.py::TestSignalContentlessEnvelope::test_allows_normal_text_message"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0255-test_signal.py.log",
      "output_sha256": "a0015d57cf286a5fe391de59e0777e76d9cead67237f4f2ff7002311cd9665a3",
      "returncode": 0,
      "test_file": "tests/gateway/test_signal.py",
      "test_file_sha256": "6acafd3bbdde8f5c0aabfb4cbfd3a89f1a4041d616e94f85b87eefbb57ef28bf"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0256",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_signal_format.py"
      ],
      "nodeids": [
        "tests/gateway/test_signal_format.py::test_shared_helper_matches_signal_adapter_wrapper",
        "tests/gateway/test_signal_format.py::TestMarkdownToSignalBasic::test_bold_double_asterisk",
        "tests/gateway/test_signal_format.py::TestMarkdownToSignalBasic::test_bold_double_underscore",
        "tests/gateway/test_signal_format.py::TestMarkdownToSignalBasic::test_italic_single_asterisk",
        "tests/gateway/test_signal_format.py::TestMarkdownToSignalBasic::test_italic_single_underscore",
        "tests/gateway/test_signal_format.py::TestMarkdownToSignalBasic::test_strikethrough",
        "tests/gateway/test_signal_format.py::TestMarkdownToSignalBasic::test_inline_monospace",
        "tests/gateway/test_signal_format.py::TestMarkdownToSignalBasic::test_fenced_code_block",
        "tests/gateway/test_signal_format.py::TestMarkdownToSignalBasic::test_heading_becomes_bold",
        "tests/gateway/test_signal_format.py::TestMarkdownToSignalBasic::test_multiple_styles",
        "tests/gateway/test_signal_format.py::TestMarkdownToSignalBasic::test_plain_text_no_styles",
        "tests/gateway/test_signal_format.py::TestMarkdownToSignalBasic::test_empty_string",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_snake_case_not_italic",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_multiple_snake_case",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_snake_case_path",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_snake_case_between_words",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_bullet_list_not_italic",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_hyphen_bullet_list_uses_signal_safe_bullets",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_plus_bullet_list_uses_signal_safe_bullets",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_markdown_bullets_inside_fenced_code_are_preserved",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_bullet_list_with_content_before",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_bullet_list_file_paths",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_bullet_with_italic_inside",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_star_italic_no_cross_line",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_underscore_italic_no_cross_line",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_star_italic_multiline_response",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_star_italic_still_works",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_underscore_italic_still_works",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_multiple_italic_same_line",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_italic_single_word",
        "tests/gateway/test_signal_format.py::TestItalicFalsePositives::test_italic_multi_word",
        "tests/gateway/test_signal_format.py::TestStylePositions::test_bold_position",
        "tests/gateway/test_signal_format.py::TestStylePositions::test_italic_position",
        "tests/gateway/test_signal_format.py::TestStylePositions::test_multiple_styles_positions",
        "tests/gateway/test_signal_format.py::TestStylePositions::test_emoji_utf16_offset",
        "tests/gateway/test_signal_format.py::TestEdgeCases::test_bold_inside_bullet",
        "tests/gateway/test_signal_format.py::TestEdgeCases::test_code_span_with_underscores",
        "tests/gateway/test_signal_format.py::TestEdgeCases::test_bold_and_italic_nested",
        "tests/gateway/test_signal_format.py::TestEdgeCases::test_lone_asterisk",
        "tests/gateway/test_signal_format.py::TestEdgeCases::test_lone_underscore",
        "tests/gateway/test_signal_format.py::TestEdgeCases::test_consecutive_underscored_words",
        "tests/gateway/test_signal_format.py::TestEdgeCases::test_mixed_formatting_no_bleed",
        "tests/gateway/test_signal_format.py::TestMarkdownStripPatch::test_fenced_code_block_with_language_tag",
        "tests/gateway/test_signal_format.py::TestMarkdownStripPatch::test_fenced_code_block_multiline",
        "tests/gateway/test_signal_format.py::TestMarkdownStripPatch::test_links_preserved",
        "tests/gateway/test_signal_format.py::TestMarkdownStripPatch::test_heading_h1",
        "tests/gateway/test_signal_format.py::TestMarkdownStripPatch::test_heading_h3",
        "tests/gateway/test_signal_format.py::TestMarkdownStripPatch::test_multiple_headings",
        "tests/gateway/test_signal_format.py::TestMarkdownStripPatch::test_no_raw_markdown_markers_in_output",
        "tests/gateway/test_signal_format.py::TestMarkdownStripPatch::test_utf16_surrogate_pair_emoji",
        "tests/gateway/test_signal_format.py::TestMarkdownStripPatch::test_consecutive_newlines_collapsed",
        "tests/gateway/test_signal_format.py::TestMarkdownStripPatch::test_empty_bold_not_crash",
        "tests/gateway/test_signal_format.py::TestSignalStreamingPatch::test_signal_does_not_support_editing",
        "tests/gateway/test_signal_format.py::TestSignalStreamingPatch::test_send_returns_no_message_id"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0256-test_signal_format.py.log",
      "output_sha256": "0ab5cd51ee2d03d473a2e9ebaae1616f70823e14489ca8b9fa91a044fc6530cb",
      "returncode": 0,
      "test_file": "tests/gateway/test_signal_format.py",
      "test_file_sha256": "a17ffcdab8d33f1b0aab47d21fa0d3135ae78ce6ea07701a34c5fb7856e22ef8"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0257",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_signal_rate_limit.py"
      ],
      "nodeids": [
        "tests/gateway/test_signal_rate_limit.py::TestSchedulerInitialState::test_default_capacity_matches_signal_cap",
        "tests/gateway/test_signal_rate_limit.py::TestSchedulerInitialState::test_default_refill_rate_from_default_retry_after",
        "tests/gateway/test_signal_rate_limit.py::TestSchedulerInitialState::test_starts_full",
        "tests/gateway/test_signal_rate_limit.py::TestEstimateWait::test_zero_when_bucket_has_enough",
        "tests/gateway/test_signal_rate_limit.py::TestEstimateWait::test_proportional_to_deficit_when_empty",
        "tests/gateway/test_signal_rate_limit.py::TestAcquire::test_acquire_zero_is_noop",
        "tests/gateway/test_signal_rate_limit.py::TestAcquire::test_acquire_within_capacity_no_sleep",
        "tests/gateway/test_signal_rate_limit.py::TestAcquire::test_acquire_when_empty_sleeps_for_deficit",
        "tests/gateway/test_signal_rate_limit.py::TestAcquire::test_back_to_back_acquires_drain_then_wait",
        "tests/gateway/test_signal_rate_limit.py::TestAcquire::test_acquire_more_tokens_than_capacity",
        "tests/gateway/test_signal_rate_limit.py::TestFeedback::test_calibrates_refill_rate_from_retry_after",
        "tests/gateway/test_signal_rate_limit.py::TestFeedback::test_none_retry_after_leaves_rate",
        "tests/gateway/test_signal_rate_limit.py::TestFeedback::test_zeros_tokens",
        "tests/gateway/test_signal_rate_limit.py::TestFeedback::test_acquire_after_feedback_uses_calibrated_rate",
        "tests/gateway/test_signal_rate_limit.py::TestRefillClamping::test_refill_does_not_exceed_capacity",
        "tests/gateway/test_signal_rate_limit.py::TestFifoAcquire::test_concurrent_acquires_serialize",
        "tests/gateway/test_signal_rate_limit.py::TestSingleton::test_get_scheduler_returns_same_instance",
        "tests/gateway/test_signal_rate_limit.py::TestSingleton::test_reset_scheduler_yields_new_instance"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0257-test_signal_rate_limit.py.log",
      "output_sha256": "a6920d473e77ad0576378efb4443d18475d808b4161a9f13176dfe1bc7c53c5e",
      "returncode": 0,
      "test_file": "tests/gateway/test_signal_rate_limit.py",
      "test_file_sha256": "502ad352bc9699aa7996b2021684856e2d1cc4ef19a3d1edcf8b2c2a717f07a5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0258",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_simplex_plugin.py"
      ],
      "nodeids": [
        "tests/gateway/test_simplex_plugin.py::test_platform_enum_resolves_via_plugin_scan",
        "tests/gateway/test_simplex_plugin.py::test_check_requirements_needs_url",
        "tests/gateway/test_simplex_plugin.py::test_check_requirements_true_when_configured",
        "tests/gateway/test_simplex_plugin.py::test_validate_config_uses_env_or_extra",
        "tests/gateway/test_simplex_plugin.py::test_is_connected_mirrors_validate",
        "tests/gateway/test_simplex_plugin.py::test_env_enablement_none_when_unset",
        "tests/gateway/test_simplex_plugin.py::test_env_enablement_seeds_ws_url",
        "tests/gateway/test_simplex_plugin.py::test_env_enablement_seeds_home_channel",
        "tests/gateway/test_simplex_plugin.py::test_env_enablement_home_channel_defaults_name_to_id",
        "tests/gateway/test_simplex_plugin.py::test_adapter_init_custom_url",
        "tests/gateway/test_simplex_plugin.py::test_adapter_init_default_url",
        "tests/gateway/test_simplex_plugin.py::test_adapter_platform_identity",
        "tests/gateway/test_simplex_plugin.py::test_guess_extension_png",
        "tests/gateway/test_simplex_plugin.py::test_guess_extension_jpg",
        "tests/gateway/test_simplex_plugin.py::test_guess_extension_ogg",
        "tests/gateway/test_simplex_plugin.py::test_guess_extension_unknown",
        "tests/gateway/test_simplex_plugin.py::test_is_image_ext",
        "tests/gateway/test_simplex_plugin.py::test_is_audio_ext",
        "tests/gateway/test_simplex_plugin.py::test_corr_id_starts_with_prefix_and_tracks_pending",
        "tests/gateway/test_simplex_plugin.py::test_corr_id_pending_set_self_trims",
        "tests/gateway/test_simplex_plugin.py::test_send_dm",
        "tests/gateway/test_simplex_plugin.py::test_send_group",
        "tests/gateway/test_simplex_plugin.py::test_send_when_ws_not_connected_does_not_crash",
        "tests/gateway/test_simplex_plugin.py::test_handle_event_filters_own_corr_id",
        "tests/gateway/test_simplex_plugin.py::test_standalone_send_missing_websockets",
        "tests/gateway/test_simplex_plugin.py::test_standalone_send_defaults_to_local_daemon",
        "tests/gateway/test_simplex_plugin.py::test_health_monitor_does_not_reconnect_quiet_healthy_ws",
        "tests/gateway/test_simplex_plugin.py::test_register_calls_register_platform",
        "tests/gateway/test_simplex_plugin.py::test_document_file_sets_document_type",
        "tests/gateway/test_simplex_plugin.py::test_image_file_still_sets_photo_type"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0258-test_simplex_plugin.py.log",
      "output_sha256": "6902d9a655b999f3e975081e83f18d21b7ebe68821d7be48557a42b04a411371",
      "returncode": 0,
      "test_file": "tests/gateway/test_simplex_plugin.py",
      "test_file_sha256": "47a29f75ee06605b4c42a4cac3860d975aea7452bd300ecd788993b59b9e7af4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0259",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_slack.py"
      ],
      "nodeids": [
        "tests/gateway/test_slack.py::TestSlashCommandSessionIsolation::test_channel_slash_command_uses_group_session_semantics",
        "tests/gateway/test_slack.py::TestSlashCommandSessionIsolation::test_dm_slash_command_keeps_dm_session_semantics",
        "tests/gateway/test_slack.py::TestAppMentionHandler::test_app_mention_registered_on_connect",
        "tests/gateway/test_slack.py::TestSlackConnectCleanup::test_releases_platform_lock_when_auth_fails",
        "tests/gateway/test_slack.py::TestSlackConnectCleanup::test_reconnect_closes_previous_handler_to_prevent_zombie_socket",
        "tests/gateway/test_slack.py::TestSlackSocketWatchdog::test_watchdog_reconnects_when_socket_task_dies_unexpectedly",
        "tests/gateway/test_slack.py::TestSlackSocketWatchdog::test_watchdog_reconnects_when_transport_reports_disconnected",
        "tests/gateway/test_slack.py::TestSlackSocketWatchdog::test_disconnect_stops_watchdog_and_does_not_reconnect",
        "tests/gateway/test_slack.py::TestSlackSocketWatchdog::test_watchdog_cancellation_does_not_respawn",
        "tests/gateway/test_slack.py::TestSlackSocketWatchdog::test_watchdog_unexpected_exit_respawns_via_done_callback",
        "tests/gateway/test_slack.py::TestSlackSocketWatchdog::test_connect_replaces_prior_watchdog_atomically",
        "tests/gateway/test_slack.py::TestSlackSocketWatchdog::test_reconnect_refreshes_multi_workspace_state",
        "tests/gateway/test_slack.py::TestSlackSocketWatchdog::test_reconnect_lock_prevents_concurrent_reconnects",
        "tests/gateway/test_slack.py::TestSlackProxyBehavior::test_no_proxy_helper_matches_slack_hosts",
        "tests/gateway/test_slack.py::TestSlackProxyBehavior::test_resolve_slack_proxy_url_ignores_unsupported_proxy_schemes",
        "tests/gateway/test_slack.py::TestSlackProxyBehavior::test_resolve_slack_proxy_url_checks_all_slack_hosts",
        "tests/gateway/test_slack.py::TestSlackProxyBehavior::test_connect_uses_proxy_when_not_bypassed",
        "tests/gateway/test_slack.py::TestSlackProxyBehavior::test_connect_clears_proxy_when_no_proxy_matches_slack",
        "tests/gateway/test_slack.py::TestSendDocument::test_send_document_success",
        "tests/gateway/test_slack.py::TestSendDocument::test_send_document_custom_name",
        "tests/gateway/test_slack.py::TestSendDocument::test_send_document_missing_file",
        "tests/gateway/test_slack.py::TestSendDocument::test_send_document_not_connected",
        "tests/gateway/test_slack.py::TestSendDocument::test_send_document_api_error_falls_back",
        "tests/gateway/test_slack.py::TestSendDocument::test_send_document_with_thread",
        "tests/gateway/test_slack.py::TestSendDocument::test_send_document_thread_upload_marks_bot_participation",
        "tests/gateway/test_slack.py::TestSendDocument::test_send_document_retries_transient_upload_error",
        "tests/gateway/test_slack.py::TestSendPrivateNotice::test_send_private_notice_uses_ephemeral_api",
        "tests/gateway/test_slack.py::TestSendVideo::test_send_video_success",
        "tests/gateway/test_slack.py::TestSendVideo::test_send_video_missing_file",
        "tests/gateway/test_slack.py::TestSendVideo::test_send_video_not_connected",
        "tests/gateway/test_slack.py::TestSendVideo::test_send_video_api_error_falls_back",
        "tests/gateway/test_slack.py::TestBangPrefixCommands::test_bang_known_command_is_rewritten_to_slash",
        "tests/gateway/test_slack.py::TestBangPrefixCommands::test_bang_command_with_args_preserved",
        "tests/gateway/test_slack.py::TestBangPrefixCommands::test_bang_works_inside_thread",
        "tests/gateway/test_slack.py::TestBangPrefixCommands::test_bang_unknown_token_passes_through_unchanged",
        "tests/gateway/test_slack.py::TestBangPrefixCommands::test_bang_with_bot_suffix_resolves",
        "tests/gateway/test_slack.py::TestBangPrefixCommands::test_plain_slash_still_works",
        "tests/gateway/test_slack.py::TestIncomingDocumentHandling::test_pdf_document_cached",
        "tests/gateway/test_slack.py::TestIncomingDocumentHandling::test_txt_document_injects_content",
        "tests/gateway/test_slack.py::TestIncomingDocumentHandling::test_md_document_injects_content",
        "tests/gateway/test_slack.py::TestIncomingDocumentHandling::test_json_snippet_injects_content",
        "tests/gateway/test_slack.py::TestIncomingDocumentHandling::test_large_txt_not_injected",
        "tests/gateway/test_slack.py::TestIncomingDocumentHandling::test_zip_file_cached",
        "tests/gateway/test_slack.py::TestIncomingDocumentHandling::test_oversized_document_skipped",
        "tests/gateway/test_slack.py::TestIncomingDocumentHandling::test_document_download_error_handled",
        "tests/gateway/test_slack.py::TestIncomingDocumentHandling::test_image_still_handled",
        "tests/gateway/test_slack.py::TestIncomingDocumentHandling::test_video_attachment_cached",
        "tests/gateway/test_slack.py::TestIncomingDocumentHandling::test_file_shared_video_fallback_fetches_file_info",
        "tests/gateway/test_slack.py::TestIncomingDocumentHandling::test_download_failure_is_surfaced_in_message_text",
        "tests/gateway/test_slack.py::TestIncomingDocumentHandling::test_rich_text_blocks_do_not_duplicate_plain_text",
        "tests/gateway/test_slack.py::TestIncomingDocumentHandling::test_rich_text_quotes_and_lists_are_extracted",
        "tests/gateway/test_slack.py::TestIncomingDocumentHandling::test_attachments_unfurl_text_is_appended_even_when_url_is_in_message",
        "tests/gateway/test_slack.py::TestIncomingDocumentHandling::test_message_unfurl_attachments_are_skipped",
        "tests/gateway/test_slack.py::TestIncomingDocumentHandling::test_channel_routing_ignores_bot_mentions_inside_block_text",
        "tests/gateway/test_slack.py::TestIncomingDocumentHandling::test_quoted_slash_command_text_does_not_change_message_type",
        "tests/gateway/test_slack.py::TestMessageRouting::test_dm_processed_without_mention",
        "tests/gateway/test_slack.py::TestMessageRouting::test_channel_message_requires_mention",
        "tests/gateway/test_slack.py::TestMessageRouting::test_channel_mention_strips_bot_id",
        "tests/gateway/test_slack.py::TestMessageRouting::test_bot_messages_ignored",
        "tests/gateway/test_slack.py::TestMessageRouting::test_message_edits_ignored",
        "tests/gateway/test_slack.py::TestSendTyping::test_sets_status_in_thread",
        "tests/gateway/test_slack.py::TestSendTyping::test_noop_without_thread",
        "tests/gateway/test_slack.py::TestSendTyping::test_handles_missing_scope_gracefully",
        "tests/gateway/test_slack.py::TestSendTyping::test_uses_thread_ts_fallback",
        "tests/gateway/test_slack.py::TestSendTyping::test_stop_typing_clears_tracked_thread",
        "tests/gateway/test_slack.py::TestSendTyping::test_stop_typing_noop_without_tracked_thread",
        "tests/gateway/test_slack.py::TestSendTyping::test_stop_typing_handles_api_error_gracefully",
        "tests/gateway/test_slack.py::TestSendTyping::test_send_clears_status_after_final_post",
        "tests/gateway/test_slack.py::TestSendTyping::test_streaming_final_edit_clears_status",
        "tests/gateway/test_slack.py::TestSendTyping::test_streaming_intermediate_edit_keeps_status",
        "tests/gateway/test_slack.py::TestFormatMessage::test_bold_conversion",
        "tests/gateway/test_slack.py::TestFormatMessage::test_italic_asterisk_conversion",
        "tests/gateway/test_slack.py::TestFormatMessage::test_italic_underscore_preserved",
        "tests/gateway/test_slack.py::TestFormatMessage::test_header_to_bold",
        "tests/gateway/test_slack.py::TestFormatMessage::test_header_with_bold_content",
        "tests/gateway/test_slack.py::TestFormatMessage::test_link_conversion",
        "tests/gateway/test_slack.py::TestFormatMessage::test_link_conversion_strips_markdown_angle_brackets",
        "tests/gateway/test_slack.py::TestFormatMessage::test_escapes_control_characters",
        "tests/gateway/test_slack.py::TestFormatMessage::test_preserves_existing_slack_entities",
        "tests/gateway/test_slack.py::TestFormatMessage::test_strikethrough",
        "tests/gateway/test_slack.py::TestFormatMessage::test_code_block_preserved",
        "tests/gateway/test_slack.py::TestFormatMessage::test_inline_code_preserved",
        "tests/gateway/test_slack.py::TestFormatMessage::test_mixed_content",
        "tests/gateway/test_slack.py::TestFormatMessage::test_empty_string",
        "tests/gateway/test_slack.py::TestFormatMessage::test_none_passthrough",
        "tests/gateway/test_slack.py::TestFormatMessage::test_blockquote_preserved",
        "tests/gateway/test_slack.py::TestFormatMessage::test_multiline_blockquote",
        "tests/gateway/test_slack.py::TestFormatMessage::test_blockquote_with_formatting",
        "tests/gateway/test_slack.py::TestFormatMessage::test_nested_blockquote",
        "tests/gateway/test_slack.py::TestFormatMessage::test_blockquote_mixed_with_plain",
        "tests/gateway/test_slack.py::TestFormatMessage::test_non_prefix_gt_still_escaped",
        "tests/gateway/test_slack.py::TestFormatMessage::test_blockquote_with_code",
        "tests/gateway/test_slack.py::TestFormatMessage::test_bold_italic_combined",
        "tests/gateway/test_slack.py::TestFormatMessage::test_bold_italic_with_surrounding_text",
        "tests/gateway/test_slack.py::TestFormatMessage::test_bold_italic_does_not_break_plain_bold",
        "tests/gateway/test_slack.py::TestFormatMessage::test_bold_italic_does_not_break_plain_italic",
        "tests/gateway/test_slack.py::TestFormatMessage::test_bold_italic_mixed_with_bold",
        "tests/gateway/test_slack.py::TestFormatMessage::test_pre_escaped_ampersand_not_double_escaped",
        "tests/gateway/test_slack.py::TestFormatMessage::test_pre_escaped_lt_not_double_escaped",
        "tests/gateway/test_slack.py::TestFormatMessage::test_pre_escaped_gt_not_double_escaped",
        "tests/gateway/test_slack.py::TestFormatMessage::test_mixed_raw_and_escaped_entities",
        "tests/gateway/test_slack.py::TestFormatMessage::test_link_with_parentheses_in_url",
        "tests/gateway/test_slack.py::TestFormatMessage::test_link_with_multiple_paren_pairs",
        "tests/gateway/test_slack.py::TestFormatMessage::test_link_without_parens_still_works",
        "tests/gateway/test_slack.py::TestFormatMessage::test_link_with_angle_brackets_and_parens",
        "tests/gateway/test_slack.py::TestFormatMessage::test_escaping_is_idempotent",
        "tests/gateway/test_slack.py::TestFormatMessage::test_channel_mention_preserved",
        "tests/gateway/test_slack.py::TestFormatMessage::test_everyone_mention_preserved",
        "tests/gateway/test_slack.py::TestFormatMessage::test_subteam_mention_preserved",
        "tests/gateway/test_slack.py::TestFormatMessage::test_date_formatting_preserved",
        "tests/gateway/test_slack.py::TestFormatMessage::test_channel_link_preserved",
        "tests/gateway/test_slack.py::TestFormatMessage::test_message_only_code_block",
        "tests/gateway/test_slack.py::TestFormatMessage::test_multiline_mixed_formatting",
        "tests/gateway/test_slack.py::TestFormatMessage::test_markdown_unordered_list_with_asterisk",
        "tests/gateway/test_slack.py::TestFormatMessage::test_nested_bold_in_link",
        "tests/gateway/test_slack.py::TestFormatMessage::test_url_with_query_string_and_ampersand",
        "tests/gateway/test_slack.py::TestFormatMessage::test_markdown_image_does_not_create_broken_slack_link",
        "tests/gateway/test_slack.py::TestFormatMessage::test_literal_asterisks_with_spaces_are_not_treated_as_italic",
        "tests/gateway/test_slack.py::TestFormatMessage::test_emoji_shortcodes_passthrough",
        "tests/gateway/test_slack.py::TestEditMessage::test_edit_message_formats_bold",
        "tests/gateway/test_slack.py::TestEditMessage::test_edit_message_formats_links",
        "tests/gateway/test_slack.py::TestEditMessage::test_edit_message_preserves_blockquotes",
        "tests/gateway/test_slack.py::TestEditMessage::test_edit_message_escapes_control_chars",
        "tests/gateway/test_slack.py::TestEditMessageStreamingPipeline::test_edit_message_formats_streaming_updates",
        "tests/gateway/test_slack.py::TestEditMessageStreamingPipeline::test_edit_message_formats_code_and_bold",
        "tests/gateway/test_slack.py::TestEditMessageStreamingPipeline::test_edit_message_formats_blockquote_in_stream",
        "tests/gateway/test_slack.py::TestEditMessageStreamingPipeline::test_edit_message_formats_progressive_accumulation",
        "tests/gateway/test_slack.py::TestEditMessageStreamingPipeline::test_edit_message_formats_bold_italic",
        "tests/gateway/test_slack.py::TestEditMessageStreamingPipeline::test_edit_message_does_not_double_escape",
        "tests/gateway/test_slack.py::TestEditMessageStreamingPipeline::test_edit_message_formats_url_with_parens",
        "tests/gateway/test_slack.py::TestEditMessageStreamingPipeline::test_edit_message_not_connected",
        "tests/gateway/test_slack.py::TestReactions::test_add_reaction_calls_api",
        "tests/gateway/test_slack.py::TestReactions::test_add_reaction_handles_error",
        "tests/gateway/test_slack.py::TestReactions::test_remove_reaction_calls_api",
        "tests/gateway/test_slack.py::TestReactions::test_reactions_in_message_flow",
        "tests/gateway/test_slack.py::TestReactions::test_reactions_failure_outcome",
        "tests/gateway/test_slack.py::TestReactions::test_reactions_skipped_for_non_dm_non_mention",
        "tests/gateway/test_slack.py::TestReactions::test_reactions_disabled_via_env",
        "tests/gateway/test_slack.py::TestReactions::test_reactions_enabled_by_default",
        "tests/gateway/test_slack.py::TestThreadReplyHandling::test_thread_reply_without_mention_no_session_ignored",
        "tests/gateway/test_slack.py::TestThreadReplyHandling::test_thread_reply_without_mention_with_session_processed",
        "tests/gateway/test_slack.py::TestThreadReplyHandling::test_thread_reply_with_mention_strips_bot_id",
        "tests/gateway/test_slack.py::TestThreadReplyHandling::test_top_level_message_requires_mention_even_with_session",
        "tests/gateway/test_slack.py::TestThreadReplyHandling::test_no_session_store_ignores_thread_replies",
        "tests/gateway/test_slack.py::TestAssistantThreadLifecycle::test_lifecycle_event_seeds_session_store",
        "tests/gateway/test_slack.py::TestAssistantThreadLifecycle::test_message_uses_cached_assistant_thread_identity",
        "tests/gateway/test_slack.py::TestAssistantThreadLifecycle::test_assistant_threads_cache_eviction",
        "tests/gateway/test_slack.py::TestUserNameResolution::test_resolves_display_name",
        "tests/gateway/test_slack.py::TestUserNameResolution::test_falls_back_to_real_name",
        "tests/gateway/test_slack.py::TestUserNameResolution::test_caches_result",
        "tests/gateway/test_slack.py::TestUserNameResolution::test_handles_api_error",
        "tests/gateway/test_slack.py::TestUserNameResolution::test_user_name_in_message_source",
        "tests/gateway/test_slack.py::TestSlashCommands::test_compact_maps_to_compress",
        "tests/gateway/test_slack.py::TestSlashCommands::test_resume_command",
        "tests/gateway/test_slack.py::TestSlashCommands::test_background_command",
        "tests/gateway/test_slack.py::TestSlashCommands::test_usage_command",
        "tests/gateway/test_slack.py::TestSlashCommands::test_reasoning_command",
        "tests/gateway/test_slack.py::TestSlashCommands::test_native_btw_slash",
        "tests/gateway/test_slack.py::TestSlashCommands::test_native_stop_slash_no_args",
        "tests/gateway/test_slack.py::TestSlashCommands::test_native_model_slash_with_args",
        "tests/gateway/test_slack.py::TestSlashCommands::test_legacy_hermes_prefix_still_works",
        "tests/gateway/test_slack.py::TestSlashCommands::test_legacy_hermes_freeform_question",
        "tests/gateway/test_slack.py::TestMessageSplitting::test_long_message_split_into_chunks",
        "tests/gateway/test_slack.py::TestMessageSplitting::test_short_message_single_send",
        "tests/gateway/test_slack.py::TestMessageSplitting::test_send_preserves_blockquote_formatting",
        "tests/gateway/test_slack.py::TestMessageSplitting::test_send_formats_bold_italic",
        "tests/gateway/test_slack.py::TestMessageSplitting::test_send_explicitly_enables_mrkdwn",
        "tests/gateway/test_slack.py::TestMessageSplitting::test_send_does_not_double_escape_entities",
        "tests/gateway/test_slack.py::TestMessageSplitting::test_send_formats_url_with_parens",
        "tests/gateway/test_slack.py::TestReplyBroadcast::test_broadcast_disabled_by_default",
        "tests/gateway/test_slack.py::TestReplyBroadcast::test_broadcast_enabled_via_config",
        "tests/gateway/test_slack.py::TestFallbackPreservesThreadContext::test_send_image_file_fallback_preserves_thread",
        "tests/gateway/test_slack.py::TestFallbackPreservesThreadContext::test_send_video_fallback_preserves_thread",
        "tests/gateway/test_slack.py::TestFallbackPreservesThreadContext::test_send_document_fallback_preserves_thread",
        "tests/gateway/test_slack.py::TestFallbackPreservesThreadContext::test_send_image_file_fallback_includes_caption",
        "tests/gateway/test_slack.py::TestSendImageSSRFGuards::test_send_image_blocks_private_redirect_target",
        "tests/gateway/test_slack.py::TestSendImageSSRFGuards::test_send_image_fallback_preserves_thread_metadata",
        "tests/gateway/test_slack.py::TestProgressMessageThread::test_dm_toplevel_progress_uses_message_ts_as_thread",
        "tests/gateway/test_slack.py::TestProgressMessageThread::test_dm_toplevel_shares_session_when_disabled",
        "tests/gateway/test_slack.py::TestProgressMessageThread::test_channel_mention_progress_uses_thread_ts",
        "tests/gateway/test_slack.py::TestSlackReplyToText::test_slack_reply_to_text_set_on_thread_reply",
        "tests/gateway/test_slack.py::TestSlackReplyToText::test_slack_reply_to_text_none_for_top_level_message",
        "tests/gateway/test_slack.py::TestSlashEphemeralAck::test_slash_command_stashes_response_url",
        "tests/gateway/test_slack.py::TestSlashEphemeralAck::test_slash_command_without_response_url_does_not_stash",
        "tests/gateway/test_slack.py::TestSlashEphemeralAck::test_pop_slash_context_returns_and_removes",
        "tests/gateway/test_slack.py::TestSlashEphemeralAck::test_pop_slash_context_returns_none_for_no_match",
        "tests/gateway/test_slack.py::TestSlashEphemeralAck::test_pop_slash_context_discards_stale_entries",
        "tests/gateway/test_slack.py::TestSlashEphemeralAck::test_send_uses_response_url_when_context_exists",
        "tests/gateway/test_slack.py::TestSlashEphemeralAck::test_send_falls_through_without_context",
        "tests/gateway/test_slack.py::TestSlashEphemeralAck::test_send_slash_ephemeral_fallback_on_post_failure",
        "tests/gateway/test_slack.py::TestSlashEphemeralAck::test_send_slash_ephemeral_fallback_on_exception",
        "tests/gateway/test_slack.py::TestSlashEphemeralAck::test_native_slash_stashes_context_and_dispatches",
        "tests/gateway/test_slack.py::TestSlashEphemeralAck::test_legacy_hermes_slash_stashes_context",
        "tests/gateway/test_slack.py::TestSlashEphemeralAck::test_freeform_hermes_question_does_not_stash_context",
        "tests/gateway/test_slack.py::TestSlashEphemeralAck::test_concurrent_users_same_channel_isolates_contexts",
        "tests/gateway/test_slack.py::TestSlashEphemeralAck::test_no_contextvar_does_not_match_any_context"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0259-test_slack.py.log",
      "output_sha256": "0d5bbeee33e2c713028c288a0363ad2f93ff3ba338e330047954b5bbc401ba2b",
      "returncode": 0,
      "test_file": "tests/gateway/test_slack.py",
      "test_file_sha256": "99ecef8ac12d0aa174546ddcd2b0c0f1acc64a941e6e3930ab01f88e4bbfcc3a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0260",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_slack_approval_buttons.py"
      ],
      "nodeids": [
        "tests/gateway/test_slack_approval_buttons.py::TestSlackExecApproval::test_sends_blocks_with_buttons",
        "tests/gateway/test_slack_approval_buttons.py::TestSlackExecApproval::test_sends_in_thread",
        "tests/gateway/test_slack_approval_buttons.py::TestSlackExecApproval::test_not_connected",
        "tests/gateway/test_slack_approval_buttons.py::TestSlackExecApproval::test_truncates_long_command",
        "tests/gateway/test_slack_approval_buttons.py::TestSlackApprovalAction::test_resolves_approval",
        "tests/gateway/test_slack_approval_buttons.py::TestSlackApprovalAction::test_prevents_double_click",
        "tests/gateway/test_slack_approval_buttons.py::TestSlackApprovalAction::test_deny_action",
        "tests/gateway/test_slack_approval_buttons.py::TestSlackApprovalAction::test_global_allowlist_blocks_unauthorized_click",
        "tests/gateway/test_slack_approval_buttons.py::TestSlackInteractiveAuth::test_delegates_to_gateway_runner_auth",
        "tests/gateway/test_slack_approval_buttons.py::TestSlackSlashConfirmAction::test_global_allowlist_allows_authorized_click",
        "tests/gateway/test_slack_approval_buttons.py::TestSlackThreadContext::test_fetches_and_formats_context",
        "tests/gateway/test_slack_approval_buttons.py::TestSlackThreadContext::test_skips_bot_messages",
        "tests/gateway/test_slack_approval_buttons.py::TestSlackThreadContext::test_empty_thread",
        "tests/gateway/test_slack_approval_buttons.py::TestSlackThreadContext::test_api_failure_returns_empty",
        "tests/gateway/test_slack_approval_buttons.py::TestSlackThreadContext::test_fetch_thread_context_includes_bot_parent",
        "tests/gateway/test_slack_approval_buttons.py::TestSlackThreadContext::test_fetch_thread_context_excludes_self_bot_replies",
        "tests/gateway/test_slack_approval_buttons.py::TestSlackThreadContext::test_fetch_thread_context_multi_workspace",
        "tests/gateway/test_slack_approval_buttons.py::TestSlackThreadContext::test_fetch_thread_context_current_ts_excluded",
        "tests/gateway/test_slack_approval_buttons.py::TestSlackThreadContext::test_fetch_thread_parent_text_from_cache",
        "tests/gateway/test_slack_approval_buttons.py::TestSessionKeyFix::test_uses_build_session_key",
        "tests/gateway/test_slack_approval_buttons.py::TestSessionKeyFix::test_no_session_returns_false",
        "tests/gateway/test_slack_approval_buttons.py::TestSessionKeyFix::test_no_session_store",
        "tests/gateway/test_slack_approval_buttons.py::TestThreadEngagement::test_send_tracks_bot_message_ts",
        "tests/gateway/test_slack_approval_buttons.py::TestThreadEngagement::test_bot_message_ts_cap",
        "tests/gateway/test_slack_approval_buttons.py::TestThreadEngagement::test_mentioned_threads_populated_on_mention",
        "tests/gateway/test_slack_approval_buttons.py::TestThreadEngagement::test_mentioned_threads_cap"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0260-test_slack_approval_buttons.py.log",
      "output_sha256": "4c39a40e49f9af6baa1f2e4f5c818085fd2934810156266e107cec201ec719ce",
      "returncode": 0,
      "test_file": "tests/gateway/test_slack_approval_buttons.py",
      "test_file_sha256": "8530ef301884d6501dc09ad2549b01ddf53425cf9c0e945ca196fe69a2e08007"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0261",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_slack_channel_session_scope.py"
      ],
      "nodeids": [
        "tests/gateway/test_slack_channel_session_scope.py::TestChannelSessionScopeDefault::test_top_level_maps_to_ts_when_reply_in_thread_true",
        "tests/gateway/test_slack_channel_session_scope.py::TestChannelSessionScopeDefault::test_top_level_default_behaves_like_true",
        "tests/gateway/test_slack_channel_session_scope.py::TestChannelSessionScopeShared::test_top_level_maps_to_none_when_reply_in_thread_false",
        "tests/gateway/test_slack_channel_session_scope.py::TestChannelSessionScopeShared::test_top_level_reply_to_id_stays_none_when_shared",
        "tests/gateway/test_slack_channel_session_scope.py::TestChannelSessionScopeShared::test_thread_reply_scopes_by_thread_even_when_shared",
        "tests/gateway/test_slack_channel_session_scope.py::TestThreadReplyAlwaysScopesByThread::test_thread_reply_keyed_by_thread_ts[True]",
        "tests/gateway/test_slack_channel_session_scope.py::TestThreadReplyAlwaysScopesByThread::test_thread_reply_keyed_by_thread_ts[False]"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0261-test_slack_channel_session_scope.py.log",
      "output_sha256": "44c3444e6d9d511d54185ce59e676b01fd342f5957e363ba1002c06f5bd68c70",
      "returncode": 0,
      "test_file": "tests/gateway/test_slack_channel_session_scope.py",
      "test_file_sha256": "5e2a964060e44fb34264d7dd29215046f18e97ae8dc10ac923985745756393b6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0262",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_slack_channel_skills.py"
      ],
      "nodeids": [
        "tests/gateway/test_slack_channel_skills.py::TestSlackResolveChannelSkills::test_no_bindings_returns_none",
        "tests/gateway/test_slack_channel_skills.py::TestSlackResolveChannelSkills::test_match_by_dm_channel_id",
        "tests/gateway/test_slack_channel_skills.py::TestSlackResolveChannelSkills::test_match_by_parent_id_for_thread",
        "tests/gateway/test_slack_channel_skills.py::TestSlackResolveChannelSkills::test_no_match_returns_none",
        "tests/gateway/test_slack_channel_skills.py::TestSlackResolveChannelSkills::test_single_skill_string",
        "tests/gateway/test_slack_channel_skills.py::TestSlackResolveChannelSkills::test_dedup_preserves_order",
        "tests/gateway/test_slack_channel_skills.py::TestSlackResolveChannelSkills::test_multiple_bindings_pick_correct",
        "tests/gateway/test_slack_channel_skills.py::TestSlackResolveChannelSkills::test_malformed_entry_skipped",
        "tests/gateway/test_slack_channel_skills.py::TestSlackResolveChannelSkills::test_empty_skills_list_returns_none",
        "tests/gateway/test_slack_channel_skills.py::TestSlackResolveChannelSkills::test_empty_skill_string_returns_none",
        "tests/gateway/test_slack_channel_skills.py::TestSlackMessageEventAutoSkill::test_message_event_carries_auto_skill"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0262-test_slack_channel_skills.py.log",
      "output_sha256": "90bf5ff2b455cdecd23ea5637c20789c64869c88e3547b0d7f8a212f1432f160",
      "returncode": 0,
      "test_file": "tests/gateway/test_slack_channel_skills.py",
      "test_file_sha256": "18f66459da0801a9b72ef6434c0383f566f874824032767472d12ab27d40c092"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0263",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_slack_mention.py"
      ],
      "nodeids": [
        "tests/gateway/test_slack_mention.py::test_require_mention_defaults_to_true",
        "tests/gateway/test_slack_mention.py::test_require_mention_false",
        "tests/gateway/test_slack_mention.py::test_require_mention_true",
        "tests/gateway/test_slack_mention.py::test_require_mention_string_true",
        "tests/gateway/test_slack_mention.py::test_require_mention_string_false",
        "tests/gateway/test_slack_mention.py::test_require_mention_string_no",
        "tests/gateway/test_slack_mention.py::test_require_mention_string_yes",
        "tests/gateway/test_slack_mention.py::test_require_mention_empty_string_stays_true",
        "tests/gateway/test_slack_mention.py::test_require_mention_malformed_string_stays_true",
        "tests/gateway/test_slack_mention.py::test_require_mention_env_var_fallback",
        "tests/gateway/test_slack_mention.py::test_require_mention_env_var_default_true",
        "tests/gateway/test_slack_mention.py::test_strict_mention_defaults_to_false",
        "tests/gateway/test_slack_mention.py::test_strict_mention_true",
        "tests/gateway/test_slack_mention.py::test_strict_mention_false",
        "tests/gateway/test_slack_mention.py::test_strict_mention_string_true",
        "tests/gateway/test_slack_mention.py::test_strict_mention_string_off",
        "tests/gateway/test_slack_mention.py::test_strict_mention_malformed_stays_false",
        "tests/gateway/test_slack_mention.py::test_strict_mention_env_var_fallback",
        "tests/gateway/test_slack_mention.py::test_free_response_channels_default_empty",
        "tests/gateway/test_slack_mention.py::test_free_response_channels_list",
        "tests/gateway/test_slack_mention.py::test_free_response_channels_csv_string",
        "tests/gateway/test_slack_mention.py::test_free_response_channels_empty_string",
        "tests/gateway/test_slack_mention.py::test_free_response_channels_env_var_fallback",
        "tests/gateway/test_slack_mention.py::test_free_response_channels_bare_int",
        "tests/gateway/test_slack_mention.py::test_free_response_channels_int_list",
        "tests/gateway/test_slack_mention.py::test_default_require_mention_channel_without_mention_ignored",
        "tests/gateway/test_slack_mention.py::test_require_mention_false_channel_without_mention_processed",
        "tests/gateway/test_slack_mention.py::test_channel_in_free_response_processed_without_mention",
        "tests/gateway/test_slack_mention.py::test_other_channel_not_in_free_response_still_gated",
        "tests/gateway/test_slack_mention.py::test_dm_always_processed_regardless_of_setting",
        "tests/gateway/test_slack_mention.py::test_mentioned_message_always_processed",
        "tests/gateway/test_slack_mention.py::test_thread_reply_with_active_session_processed",
        "tests/gateway/test_slack_mention.py::test_thread_reply_without_active_session_ignored",
        "tests/gateway/test_slack_mention.py::test_bot_uid_none_processes_channel_message",
        "tests/gateway/test_slack_mention.py::test_config_bridges_slack_free_response_channels",
        "tests/gateway/test_slack_mention.py::test_top_level_slack_settings_do_not_disable_env_token_setup",
        "tests/gateway/test_slack_mention.py::test_explicit_top_level_slack_enabled_false_wins_over_env_token",
        "tests/gateway/test_slack_mention.py::test_explicit_platforms_slack_enabled_false_wins_over_env_token",
        "tests/gateway/test_slack_mention.py::test_config_bridges_slack_reply_in_thread",
        "tests/gateway/test_slack_mention.py::test_config_bridges_slack_strict_mention",
        "tests/gateway/test_slack_mention.py::test_mention_in_strict_mode_does_not_register_thread",
        "tests/gateway/test_slack_mention.py::test_mention_outside_strict_mode_still_registers_thread",
        "tests/gateway/test_slack_mention.py::test_allowed_channels_default_empty",
        "tests/gateway/test_slack_mention.py::test_allowed_channels_list",
        "tests/gateway/test_slack_mention.py::test_allowed_channels_csv_string",
        "tests/gateway/test_slack_mention.py::test_allowed_channels_empty_string",
        "tests/gateway/test_slack_mention.py::test_allowed_channels_env_var_fallback",
        "tests/gateway/test_slack_mention.py::test_allowed_channels_blocks_non_whitelisted_channel",
        "tests/gateway/test_slack_mention.py::test_allowed_channels_permits_whitelisted_channel",
        "tests/gateway/test_slack_mention.py::test_allowed_channels_empty_no_restriction",
        "tests/gateway/test_slack_mention.py::test_allowed_channels_blocks_even_when_mentioned",
        "tests/gateway/test_slack_mention.py::test_allowed_channels_dm_unaffected",
        "tests/gateway/test_slack_mention.py::test_allowed_channels_env_var_blocks_channel",
        "tests/gateway/test_slack_mention.py::test_config_bridges_slack_allowed_channels",
        "tests/gateway/test_slack_mention.py::test_config_bridges_slack_allowed_channels_env_takes_precedence"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0263-test_slack_mention.py.log",
      "output_sha256": "f17531283d40f19c9fb657d6ad955c29059cbccf0c73fee106ff609f1d2bb0a4",
      "returncode": 0,
      "test_file": "tests/gateway/test_slack_mention.py",
      "test_file_sha256": "260ab54981379e6947ca749e803c5bbfe8c0521e6d165b003857a0a95016c73b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0264",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_slack_plugin_action_handlers.py"
      ],
      "nodeids": [
        "tests/gateway/test_slack_plugin_action_handlers.py::TestRegisterSlackActionHandlerAPI::test_string_action_id_is_queued",
        "tests/gateway/test_slack_plugin_action_handlers.py::TestRegisterSlackActionHandlerAPI::test_regex_action_id_is_accepted",
        "tests/gateway/test_slack_plugin_action_handlers.py::TestRegisterSlackActionHandlerAPI::test_constraint_dict_action_id_is_accepted",
        "tests/gateway/test_slack_plugin_action_handlers.py::TestRegisterSlackActionHandlerAPI::test_non_callable_callback_raises",
        "tests/gateway/test_slack_plugin_action_handlers.py::TestRegisterSlackActionHandlerAPI::test_empty_string_action_id_raises",
        "tests/gateway/test_slack_plugin_action_handlers.py::TestRegisterSlackActionHandlerAPI::test_none_action_id_raises",
        "tests/gateway/test_slack_plugin_action_handlers.py::TestRegisterSlackActionHandlerAPI::test_get_slack_action_handlers_returns_copy",
        "tests/gateway/test_slack_plugin_action_handlers.py::TestRegisterSlackActionHandlerAPI::test_multiple_plugins_each_recorded",
        "tests/gateway/test_slack_plugin_action_handlers.py::TestSlackAdapterPluginActionWiring::test_plugin_handler_wired_into_app",
        "tests/gateway/test_slack_plugin_action_handlers.py::TestSlackAdapterPluginActionWiring::test_no_plugin_handlers_does_not_break_connect",
        "tests/gateway/test_slack_plugin_action_handlers.py::TestSlackAdapterPluginActionWiring::test_plugin_exception_does_not_propagate_to_slack",
        "tests/gateway/test_slack_plugin_action_handlers.py::TestSlackAdapterPluginActionWiring::test_plugin_handler_invoked_with_slack_args",
        "tests/gateway/test_slack_plugin_action_handlers.py::TestSlackAdapterPluginActionWiring::test_wrapper_signature_only_exposes_slack_bolt_args",
        "tests/gateway/test_slack_plugin_action_handlers.py::TestSlackAdapterPluginActionWiring::test_plugin_loader_failure_does_not_break_connect"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0264-test_slack_plugin_action_handlers.py.log",
      "output_sha256": "eb6ae3a0059e20e659a63847575d13f6bb5dcaded726edbecb90262df67cf324",
      "returncode": 0,
      "test_file": "tests/gateway/test_slack_plugin_action_handlers.py",
      "test_file_sha256": "39f40401f3ed0d35bf1a824d15d869ea1b1031c373ff1813a00c267023355845"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0265",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_slash_access.py"
      ],
      "nodeids": [
        "tests/gateway/test_slash_access.py::TestPolicyFromExtra::test_empty_extra_is_disabled",
        "tests/gateway/test_slash_access.py::TestPolicyFromExtra::test_disabled_policy_treats_anyone_as_admin",
        "tests/gateway/test_slash_access.py::TestPolicyFromExtra::test_dm_admin_list_only",
        "tests/gateway/test_slash_access.py::TestPolicyFromExtra::test_admin_runs_anything",
        "tests/gateway/test_slash_access.py::TestPolicyFromExtra::test_non_admin_runs_only_listed_commands",
        "tests/gateway/test_slash_access.py::TestPolicyFromExtra::test_always_allowed_floor_for_non_admin",
        "tests/gateway/test_slash_access.py::TestPolicyFromExtra::test_unknown_user_id_blocked",
        "tests/gateway/test_slash_access.py::TestPolicyFromExtra::test_id_coercion_ints_become_strings",
        "tests/gateway/test_slash_access.py::TestPolicyFromExtra::test_id_coercion_csv_string",
        "tests/gateway/test_slash_access.py::TestPolicyFromExtra::test_command_coercion_strips_leading_slash_and_lowercases",
        "tests/gateway/test_slash_access.py::TestPolicyFromExtra::test_command_coercion_csv_string",
        "tests/gateway/test_slash_access.py::TestPolicyFromExtra::test_group_scope_uses_group_keys",
        "tests/gateway/test_slash_access.py::TestPolicyFromExtra::test_dm_falls_back_to_group_user_commands_when_dm_unset",
        "tests/gateway/test_slash_access.py::TestPolicyFromExtra::test_dm_admin_does_not_imply_group_admin",
        "tests/gateway/test_slash_access.py::TestPolicyForSource::test_no_config_returns_disabled",
        "tests/gateway/test_slash_access.py::TestPolicyForSource::test_no_platform_config_returns_disabled",
        "tests/gateway/test_slash_access.py::TestPolicyForSource::test_dm_chat_type_resolves_to_dm_scope",
        "tests/gateway/test_slash_access.py::TestPolicyForSource::test_group_chat_type_resolves_to_group_scope",
        "tests/gateway/test_slash_access.py::TestPolicyForSource::test_channel_thread_chat_types_treated_as_group_scope",
        "tests/gateway/test_slash_access.py::TestPolicyForSource::test_no_admin_list_for_dm_means_unrestricted_in_dm",
        "tests/gateway/test_slash_access.py::TestPolicyForSource::test_per_platform_isolation"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0265-test_slash_access.py.log",
      "output_sha256": "3bae7cb0abe6acd7192424642d4c180b47f827e96cc6759f7d4060a178cb9f3b",
      "returncode": 0,
      "test_file": "tests/gateway/test_slash_access.py",
      "test_file_sha256": "f8935b13a55550bad871a194c574faa0c7d2db585f5371a24f8c4a28fd02b35e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0266",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_slash_access_dispatch.py"
      ],
      "nodeids": [
        "tests/gateway/test_slash_access_dispatch.py::test_whoami_unrestricted_when_no_admin_list",
        "tests/gateway/test_slash_access_dispatch.py::test_whoami_admin_user",
        "tests/gateway/test_slash_access_dispatch.py::test_whoami_non_admin_lists_runnable_commands",
        "tests/gateway/test_slash_access_dispatch.py::test_non_admin_denied_for_unlisted_command",
        "tests/gateway/test_slash_access_dispatch.py::test_non_admin_with_empty_user_commands_gets_floor_only",
        "tests/gateway/test_slash_access_dispatch.py::test_admin_runs_unlisted_command",
        "tests/gateway/test_slash_access_dispatch.py::test_user_runs_listed_command",
        "tests/gateway/test_slash_access_dispatch.py::test_backward_compat_no_admin_list_means_no_gate",
        "tests/gateway/test_slash_access_dispatch.py::test_dm_admin_is_not_group_admin",
        "tests/gateway/test_slash_access_dispatch.py::test_group_only_gating_leaves_dm_unrestricted",
        "tests/gateway/test_slash_access_dispatch.py::test_plugin_registered_command_is_gated",
        "tests/gateway/test_slash_access_dispatch.py::test_running_agent_fastpath_blocks_non_admin_command",
        "tests/gateway/test_slash_access_dispatch.py::test_running_agent_fastpath_allows_admin_command",
        "tests/gateway/test_slash_access_dispatch.py::test_running_agent_fastpath_status_always_works",
        "tests/gateway/test_slash_access_dispatch.py::test_gate_uses_canonical_name_not_alias",
        "tests/gateway/test_slash_access_dispatch.py::test_gate_does_not_intercept_unknown_command",
        "tests/gateway/test_slash_access_dispatch.py::test_dm_admin_blocked_in_group_with_separate_admin_list",
        "tests/gateway/test_slash_access_dispatch.py::test_gating_isolated_per_platform"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0266-test_slash_access_dispatch.py.log",
      "output_sha256": "1fe1681ca9bb0592ade0605ea90edb4059dae1b157826634fa1078693fb297fd",
      "returncode": 0,
      "test_file": "tests/gateway/test_slash_access_dispatch.py",
      "test_file_sha256": "adcc5a6b4fcda950def965153ee03301aa043eaa8a81310d3f8809e2a78511ba"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0267",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_sms.py"
      ],
      "nodeids": [
        "tests/gateway/test_sms.py::TestSmsConfigLoading::test_env_overrides_create_sms_config",
        "tests/gateway/test_sms.py::TestSmsConfigLoading::test_env_overrides_set_home_channel",
        "tests/gateway/test_sms.py::TestSmsFormatAndTruncate::test_strips_bold",
        "tests/gateway/test_sms.py::TestSmsFormatAndTruncate::test_strips_italic",
        "tests/gateway/test_sms.py::TestSmsFormatAndTruncate::test_strips_code_blocks",
        "tests/gateway/test_sms.py::TestSmsFormatAndTruncate::test_strips_inline_code",
        "tests/gateway/test_sms.py::TestSmsFormatAndTruncate::test_strips_headers",
        "tests/gateway/test_sms.py::TestSmsFormatAndTruncate::test_strips_links",
        "tests/gateway/test_sms.py::TestSmsFormatAndTruncate::test_collapses_newlines",
        "tests/gateway/test_sms.py::TestSmsEchoPrevention::test_own_number_detection",
        "tests/gateway/test_sms.py::TestSmsRequirements::test_check_sms_requirements_missing_sid",
        "tests/gateway/test_sms.py::TestSmsRequirements::test_check_sms_requirements_missing_token",
        "tests/gateway/test_sms.py::TestSmsRequirements::test_check_sms_requirements_both_set",
        "tests/gateway/test_sms.py::TestWebhookHostConfig::test_default_host_is_localhost",
        "tests/gateway/test_sms.py::TestWebhookHostConfig::test_host_from_env",
        "tests/gateway/test_sms.py::TestWebhookHostConfig::test_webhook_url_from_env",
        "tests/gateway/test_sms.py::TestWebhookHostConfig::test_webhook_url_stripped",
        "tests/gateway/test_sms.py::TestStartupGuard::test_refuses_start_without_webhook_url",
        "tests/gateway/test_sms.py::TestStartupGuard::test_missing_webhook_url_is_non_retryable",
        "tests/gateway/test_sms.py::TestStartupGuard::test_missing_phone_number_is_non_retryable",
        "tests/gateway/test_sms.py::TestStartupGuard::test_insecure_flag_does_not_set_fatal_error",
        "tests/gateway/test_sms.py::TestStartupGuard::test_insecure_flag_allows_start_without_url",
        "tests/gateway/test_sms.py::TestStartupGuard::test_webhook_url_allows_start",
        "tests/gateway/test_sms.py::TestTwilioSignatureValidation::test_valid_signature_accepted",
        "tests/gateway/test_sms.py::TestTwilioSignatureValidation::test_invalid_signature_rejected",
        "tests/gateway/test_sms.py::TestTwilioSignatureValidation::test_wrong_token_rejected",
        "tests/gateway/test_sms.py::TestTwilioSignatureValidation::test_params_sorted_by_key",
        "tests/gateway/test_sms.py::TestTwilioSignatureValidation::test_empty_param_values_included",
        "tests/gateway/test_sms.py::TestTwilioSignatureValidation::test_url_matters",
        "tests/gateway/test_sms.py::TestTwilioSignatureValidation::test_port_variant_443_matches_without_port",
        "tests/gateway/test_sms.py::TestTwilioSignatureValidation::test_port_variant_without_port_matches_443",
        "tests/gateway/test_sms.py::TestTwilioSignatureValidation::test_non_standard_port_no_variant",
        "tests/gateway/test_sms.py::TestTwilioSignatureValidation::test_port_variant_http_80",
        "tests/gateway/test_sms.py::TestWebhookSignatureEnforcement::test_insecure_flag_skips_validation",
        "tests/gateway/test_sms.py::TestWebhookSignatureEnforcement::test_insecure_flag_with_url_still_validates",
        "tests/gateway/test_sms.py::TestWebhookSignatureEnforcement::test_missing_signature_returns_403",
        "tests/gateway/test_sms.py::TestWebhookSignatureEnforcement::test_invalid_signature_returns_403",
        "tests/gateway/test_sms.py::TestWebhookSignatureEnforcement::test_valid_signature_returns_200",
        "tests/gateway/test_sms.py::TestWebhookSignatureEnforcement::test_port_variant_signature_returns_200"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0267-test_sms.py.log",
      "output_sha256": "6996f79874ba594ae9bf6ac157e2423d42296f6e563db1dc3ccbc2f0d89b4b79",
      "returncode": 0,
      "test_file": "tests/gateway/test_sms.py",
      "test_file_sha256": "b535630639e35560cce43c3f79dae58b5e43e57bece245d0766329d1d8127d00"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0268",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_sse_agent_cancel.py"
      ],
      "nodeids": [
        "tests/gateway/test_sse_agent_cancel.py::TestSSEAgentCancelOnDisconnect::test_agent_task_cancelled_on_client_disconnect",
        "tests/gateway/test_sse_agent_cancel.py::TestSSEAgentCancelOnDisconnect::test_agent_task_not_cancelled_on_normal_completion",
        "tests/gateway/test_sse_agent_cancel.py::TestSSEAgentCancelOnDisconnect::test_broken_pipe_also_cancels_agent",
        "tests/gateway/test_sse_agent_cancel.py::TestSSEAgentCancelOnDisconnect::test_already_done_task_not_cancelled_on_disconnect",
        "tests/gateway/test_sse_agent_cancel.py::TestSSEAgentCancelOnDisconnect::test_agent_interrupt_called_on_disconnect",
        "tests/gateway/test_sse_agent_cancel.py::TestSSEAgentCancelOnDisconnect::test_agent_ref_none_still_cancels_task"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0268-test_sse_agent_cancel.py.log",
      "output_sha256": "c71529e70c82e7e00da114dba9e57e8db6df64e7c34f5fac1fc8d958eb944618",
      "returncode": 0,
      "test_file": "tests/gateway/test_sse_agent_cancel.py",
      "test_file_sha256": "d92f99e4b273ba924bb00d9bf03be719c7eea16817ae8fe635b4a30e83b14979"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0269",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_ssl_cert_detection.py"
      ],
      "nodeids": [
        "tests/gateway/test_ssl_cert_detection.py::test_ensure_ssl_certs_ignores_stale_ssl_cert_file",
        "tests/gateway/test_ssl_cert_detection.py::test_ensure_ssl_certs_keeps_existing_ssl_cert_file"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0269-test_ssl_cert_detection.py.log",
      "output_sha256": "fa205dd2cb9b73c496fa1cd7b0fbc24e4eaf0da2bf579d2e186a6e0a5f2d6a2d",
      "returncode": 0,
      "test_file": "tests/gateway/test_ssl_cert_detection.py",
      "test_file_sha256": "aa8d75eaba22f4ea31d2313e2ffe2bb7f89da4d0e5d3ce11fdf648e707984066"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0270",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_ssl_certs.py"
      ],
      "nodeids": [
        "tests/gateway/test_ssl_certs.py::TestEnsureSslCerts::test_respects_existing_env_var",
        "tests/gateway/test_ssl_certs.py::TestEnsureSslCerts::test_sets_from_ssl_default_paths",
        "tests/gateway/test_ssl_certs.py::TestEnsureSslCerts::test_no_op_when_nothing_found"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0270-test_ssl_certs.py.log",
      "output_sha256": "854b27ed544b8747a81357572aac7df2db3795bedd711547927ffcfd0fc73ceb",
      "returncode": 0,
      "test_file": "tests/gateway/test_ssl_certs.py",
      "test_file_sha256": "1cc0b3b77926f3d70a825da315fb0ec04914082545dbbbd31472309adc4f6c5e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0271",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_status.py"
      ],
      "nodeids": [
        "tests/gateway/test_status.py::TestGatewayPidState::test_write_pid_file_records_gateway_metadata",
        "tests/gateway/test_status.py::TestGatewayPidState::test_write_pid_file_is_atomic_against_concurrent_writers",
        "tests/gateway/test_status.py::TestGatewayPidState::test_get_running_pid_rejects_live_non_gateway_pid",
        "tests/gateway/test_status.py::TestGatewayPidState::test_get_running_pid_cleans_stale_record_from_dead_process",
        "tests/gateway/test_status.py::TestGatewayPidState::test_get_running_pid_accepts_gateway_metadata_when_cmdline_unavailable",
        "tests/gateway/test_status.py::TestGatewayPidState::test_get_running_pid_accepts_script_style_gateway_cmdline",
        "tests/gateway/test_status.py::TestGatewayPidState::test_get_running_pid_accepts_explicit_pid_path_without_cleanup",
        "tests/gateway/test_status.py::TestGatewayPidState::test_runtime_lock_claims_and_releases_liveness",
        "tests/gateway/test_status.py::TestGatewayPidState::test_get_running_pid_treats_pid_file_as_stale_without_runtime_lock",
        "tests/gateway/test_status.py::TestGatewayPidState::test_get_running_pid_cleans_stale_metadata_from_dead_foreign_pid",
        "tests/gateway/test_status.py::TestGatewayPidState::test_get_running_pid_falls_back_to_live_lock_record",
        "tests/gateway/test_status.py::TestGatewayRuntimeStatus::test_write_json_file_uses_atomic_json_write",
        "tests/gateway/test_status.py::TestGatewayRuntimeStatus::test_write_runtime_status_overwrites_stale_pid_on_restart",
        "tests/gateway/test_status.py::TestGatewayRuntimeStatus::test_write_runtime_status_overwrites_stale_argv_on_restart",
        "tests/gateway/test_status.py::TestGatewayRuntimeStatus::test_write_runtime_status_records_platform_failure",
        "tests/gateway/test_status.py::TestGatewayRuntimeStatus::test_write_runtime_status_explicit_none_clears_stale_fields",
        "tests/gateway/test_status.py::TestTerminatePid::test_force_uses_taskkill_on_windows",
        "tests/gateway/test_status.py::TestTerminatePid::test_force_falls_back_to_sigterm_when_taskkill_missing",
        "tests/gateway/test_status.py::TestScopedLocks::test_windows_file_lock_uses_high_offset",
        "tests/gateway/test_status.py::TestScopedLocks::test_acquire_scoped_lock_rejects_live_other_process",
        "tests/gateway/test_status.py::TestScopedLocks::test_acquire_scoped_lock_replaces_pid_reused_by_unrelated_process",
        "tests/gateway/test_status.py::TestScopedLocks::test_acquire_scoped_lock_keeps_lock_when_cmdline_unreadable_but_record_is_gateway",
        "tests/gateway/test_status.py::TestScopedLocks::test_acquire_scoped_lock_keeps_lock_when_pid_reused_by_gateway",
        "tests/gateway/test_status.py::TestScopedLocks::test_acquire_scoped_lock_replaces_stale_record",
        "tests/gateway/test_status.py::TestScopedLocks::test_acquire_scoped_lock_recovers_empty_lock_file",
        "tests/gateway/test_status.py::TestScopedLocks::test_acquire_scoped_lock_recovers_corrupt_lock_file",
        "tests/gateway/test_status.py::TestScopedLocks::test_release_scoped_lock_only_removes_current_owner",
        "tests/gateway/test_status.py::TestScopedLocks::test_release_all_scoped_locks_can_target_single_owner",
        "tests/gateway/test_status.py::TestScopedLocks::test_release_all_scoped_locks_skips_pid_reuse_mismatch",
        "tests/gateway/test_status.py::TestScopedLocks::test_acquire_scoped_lock_replaces_reused_pid_even_with_matching_start_time",
        "tests/gateway/test_status.py::TestTakeoverMarker::test_write_marker_records_target_identity",
        "tests/gateway/test_status.py::TestTakeoverMarker::test_consume_returns_true_when_marker_names_self",
        "tests/gateway/test_status.py::TestTakeoverMarker::test_consume_returns_false_for_different_pid",
        "tests/gateway/test_status.py::TestTakeoverMarker::test_consume_returns_false_on_start_time_mismatch",
        "tests/gateway/test_status.py::TestTakeoverMarker::test_consume_returns_true_on_windows_when_start_time_unavailable",
        "tests/gateway/test_status.py::TestTakeoverMarker::test_consume_returns_false_when_marker_missing",
        "tests/gateway/test_status.py::TestTakeoverMarker::test_consume_returns_false_for_stale_marker",
        "tests/gateway/test_status.py::TestTakeoverMarker::test_consume_handles_malformed_marker_gracefully",
        "tests/gateway/test_status.py::TestTakeoverMarker::test_consume_handles_marker_with_missing_fields",
        "tests/gateway/test_status.py::TestTakeoverMarker::test_clear_takeover_marker_is_idempotent",
        "tests/gateway/test_status.py::TestTakeoverMarker::test_write_marker_returns_false_on_write_failure",
        "tests/gateway/test_status.py::TestTakeoverMarker::test_consume_ignores_marker_for_different_process_and_prevents_stale_grief",
        "tests/gateway/test_status.py::TestPlannedStopMarker::test_write_marker_records_target_identity",
        "tests/gateway/test_status.py::TestPlannedStopMarker::test_consume_returns_true_when_marker_names_self",
        "tests/gateway/test_status.py::TestPlannedStopMarker::test_consume_returns_false_for_different_pid",
        "tests/gateway/test_status.py::TestPlannedStopMarker::test_consume_returns_false_for_stale_marker",
        "tests/gateway/test_status.py::TestPlannedStopMarker::test_clear_planned_stop_marker_is_idempotent",
        "tests/gateway/test_status.py::TestPlannedStopMarker::test_write_marker_returns_false_on_write_failure",
        "tests/gateway/test_status.py::TestPlannedStopMarker::test_consume_returns_true_on_windows_when_start_time_unavailable",
        "tests/gateway/test_status.py::TestPlannedStopMarker::test_consume_still_rejects_foreign_pid_when_start_time_unavailable",
        "tests/gateway/test_status.py::TestPlannedStopMarker::test_consume_still_rejects_start_time_mismatch_when_both_known",
        "tests/gateway/test_status.py::TestReadProcessCmdlinePsFallback::test_ps_fallback_when_proc_unavailable",
        "tests/gateway/test_status.py::TestReadProcessCmdlinePsFallback::test_ps_fallback_returns_none_on_failure",
        "tests/gateway/test_status.py::TestReadProcessCmdlinePsFallback::test_proc_cmdline_takes_priority_over_ps",
        "tests/gateway/test_status.py::TestReadProcessCmdlinePsFallback::test_ps_fallback_used_when_proc_returns_empty",
        "tests/gateway/test_status.py::TestCorruptStatusFiles::test_read_json_file_returns_none_on_binary_garbage",
        "tests/gateway/test_status.py::TestCorruptStatusFiles::test_read_json_file_still_parses_valid_json",
        "tests/gateway/test_status.py::TestCorruptStatusFiles::test_read_pid_record_returns_none_on_binary_garbage",
        "tests/gateway/test_status.py::TestCorruptStatusFiles::test_read_pid_record_still_parses_bare_pid"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0271-test_status.py.log",
      "output_sha256": "b2d5b033bb882140c31587aa3794421ce502a275cec5955e956142f288444ebe",
      "returncode": 0,
      "test_file": "tests/gateway/test_status.py",
      "test_file_sha256": "ed4f2769d8a2798d79cd7d7e50ea4699f83f93375c74c17f6d40da0b3bd52d7e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0272",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_status_command.py"
      ],
      "nodeids": [
        "tests/gateway/test_status_command.py::test_status_command_reports_running_agent_without_interrupt",
        "tests/gateway/test_status_command.py::test_status_command_includes_session_title_when_present",
        "tests/gateway/test_status_command.py::test_status_command_reads_token_totals_from_session_db",
        "tests/gateway/test_status_command.py::test_status_command_tokens_zero_when_session_db_row_missing",
        "tests/gateway/test_status_command.py::test_status_command_includes_live_agent_model_and_context",
        "tests/gateway/test_status_command.py::test_status_command_includes_persisted_model_and_context_when_agent_not_running",
        "tests/gateway/test_status_command.py::test_status_command_includes_cached_agent_model_and_context",
        "tests/gateway/test_status_command.py::test_agents_command_reports_active_agents_and_processes",
        "tests/gateway/test_status_command.py::test_tasks_alias_routes_to_agents_command",
        "tests/gateway/test_status_command.py::test_handle_message_persists_agent_token_counts",
        "tests/gateway/test_status_command.py::test_first_run_slack_home_channel_onboarding_uses_parent_command",
        "tests/gateway/test_status_command.py::test_first_run_non_slack_home_channel_onboarding_keeps_direct_command",
        "tests/gateway/test_status_command.py::test_handle_message_discards_stale_result_after_session_invalidation",
        "tests/gateway/test_status_command.py::test_handle_message_stale_result_keeps_newer_generation_callback",
        "tests/gateway/test_status_command.py::test_status_command_bypasses_active_session_guard",
        "tests/gateway/test_status_command.py::test_profile_command_reports_custom_root_profile",
        "tests/gateway/test_status_command.py::test_post_delivery_callback_generation_snapshot_happens_after_bind"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0272-test_status_command.py.log",
      "output_sha256": "9f36248e48232977ab943ba27b28db1786ec5718117ad0fb4105850f615dc077",
      "returncode": 0,
      "test_file": "tests/gateway/test_status_command.py",
      "test_file_sha256": "af35eeabdf547e134bbd5f3553f8e963eebb6cbb14af994ef06c14fdae67684b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0273",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_steer_command.py"
      ],
      "nodeids": [
        "tests/gateway/test_steer_command.py::test_steer_calls_agent_steer_and_does_not_interrupt",
        "tests/gateway/test_steer_command.py::test_steer_without_payload_returns_usage",
        "tests/gateway/test_steer_command.py::test_steer_with_pending_sentinel_falls_back_to_queue",
        "tests/gateway/test_steer_command.py::test_steer_agent_without_steer_method_falls_back",
        "tests/gateway/test_steer_command.py::test_steer_rejected_payload_returns_rejection_message"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0273-test_steer_command.py.log",
      "output_sha256": "292e53aa6e5d59e60a44c11a13e0c2c15178641f3d7bb47007e97e99bd97924c",
      "returncode": 0,
      "test_file": "tests/gateway/test_steer_command.py",
      "test_file_sha256": "3ec7d39694ab8214b549e82e443abfbde30a521e8f7fb759d2e2a7351e234a4a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0274",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_step_callback_compat.py"
      ],
      "nodeids": [
        "tests/gateway/test_step_callback_compat.py::TestStepCallbackNormalization::test_dict_prev_tools_produce_string_tool_names",
        "tests/gateway/test_step_callback_compat.py::TestStepCallbackNormalization::test_string_prev_tools_still_work",
        "tests/gateway/test_step_callback_compat.py::TestStepCallbackNormalization::test_empty_prev_tools",
        "tests/gateway/test_step_callback_compat.py::TestStepCallbackNormalization::test_joinable_for_hook_example"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0274-test_step_callback_compat.py.log",
      "output_sha256": "2fe0a2619bdff8e93005cb305adf1a2d4ca579d057b88f0760834e152f2f59e8",
      "returncode": 0,
      "test_file": "tests/gateway/test_step_callback_compat.py",
      "test_file_sha256": "f9dba4e27472a237dc7d48def1b6ed8851fa99dc8855297355dff29816f00041"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0275",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_sticker_cache.py"
      ],
      "nodeids": [
        "tests/gateway/test_sticker_cache.py::TestLoadSaveCache::test_load_missing_file",
        "tests/gateway/test_sticker_cache.py::TestLoadSaveCache::test_load_corrupt_file",
        "tests/gateway/test_sticker_cache.py::TestLoadSaveCache::test_save_and_load_roundtrip",
        "tests/gateway/test_sticker_cache.py::TestLoadSaveCache::test_save_creates_parent_dirs",
        "tests/gateway/test_sticker_cache.py::TestCacheSticker::test_cache_and_retrieve",
        "tests/gateway/test_sticker_cache.py::TestCacheSticker::test_missing_sticker_returns_none",
        "tests/gateway/test_sticker_cache.py::TestCacheSticker::test_overwrite_existing",
        "tests/gateway/test_sticker_cache.py::TestCacheSticker::test_multiple_stickers",
        "tests/gateway/test_sticker_cache.py::TestBuildStickerInjection::test_exact_format_no_context",
        "tests/gateway/test_sticker_cache.py::TestBuildStickerInjection::test_exact_format_emoji_only",
        "tests/gateway/test_sticker_cache.py::TestBuildStickerInjection::test_exact_format_emoji_and_set_name",
        "tests/gateway/test_sticker_cache.py::TestBuildStickerInjection::test_set_name_without_emoji_ignored",
        "tests/gateway/test_sticker_cache.py::TestBuildStickerInjection::test_description_with_quotes",
        "tests/gateway/test_sticker_cache.py::TestBuildStickerInjection::test_empty_description",
        "tests/gateway/test_sticker_cache.py::TestBuildAnimatedStickerInjection::test_exact_format_with_emoji",
        "tests/gateway/test_sticker_cache.py::TestBuildAnimatedStickerInjection::test_exact_format_without_emoji",
        "tests/gateway/test_sticker_cache.py::TestBuildAnimatedStickerInjection::test_empty_emoji_same_as_no_emoji"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0275-test_sticker_cache.py.log",
      "output_sha256": "61b191ac01572531839d031d11618d40c63d04d000beeaf63621569cf7c33c93",
      "returncode": 0,
      "test_file": "tests/gateway/test_sticker_cache.py",
      "test_file_sha256": "c4b24feb399c7c0475b434caf38e5d14a58add88b5b187d30c4f6c207f77e0a4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0276",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_stop_thread_sibling.py"
      ],
      "nodeids": [
        "tests/gateway/test_stop_thread_sibling.py::test_sibling_finds_other_users_run_in_same_thread",
        "tests/gateway/test_stop_thread_sibling.py::test_sibling_excludes_callers_own_key",
        "tests/gateway/test_stop_thread_sibling.py::test_sibling_skips_pending_sentinel",
        "tests/gateway/test_stop_thread_sibling.py::test_sibling_does_not_match_different_thread_same_chat",
        "tests/gateway/test_stop_thread_sibling.py::test_sibling_returns_empty_for_non_thread_source",
        "tests/gateway/test_stop_thread_sibling.py::test_stop_interrupts_sibling_thread_run_when_authorized",
        "tests/gateway/test_stop_thread_sibling.py::test_stop_does_not_interrupt_sibling_when_unauthorized"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0276-test_stop_thread_sibling.py.log",
      "output_sha256": "5f8d0d5cd9d8db8bd664ad4017d6eabd3637bc64b8d099853c47b80a48acb89e",
      "returncode": 0,
      "test_file": "tests/gateway/test_stop_thread_sibling.py",
      "test_file_sha256": "ea11f0a95d131cf3b95c894b133160f45449c33ccdfefb1678cc34a791741494"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0277",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_stream_consumer.py"
      ],
      "nodeids": [
        "tests/gateway/test_stream_consumer.py::TestCleanForDisplay::test_no_media_passthrough",
        "tests/gateway/test_stream_consumer.py::TestCleanForDisplay::test_media_tag_stripped",
        "tests/gateway/test_stream_consumer.py::TestCleanForDisplay::test_media_tag_with_space",
        "tests/gateway/test_stream_consumer.py::TestCleanForDisplay::test_media_tag_with_quotes",
        "tests/gateway/test_stream_consumer.py::TestCleanForDisplay::test_audio_as_voice_stripped",
        "tests/gateway/test_stream_consumer.py::TestCleanForDisplay::test_multiple_media_tags",
        "tests/gateway/test_stream_consumer.py::TestCleanForDisplay::test_excessive_newlines_collapsed",
        "tests/gateway/test_stream_consumer.py::TestCleanForDisplay::test_media_only_response",
        "tests/gateway/test_stream_consumer.py::TestCleanForDisplay::test_media_mid_sentence",
        "tests/gateway/test_stream_consumer.py::TestCleanForDisplay::test_preserves_non_media_colons",
        "tests/gateway/test_stream_consumer.py::TestFinalizeCapabilityGate::test_identical_text_skip_respects_adapter_flag",
        "tests/gateway/test_stream_consumer.py::TestEditMessageFinalizeSignature::test_edit_message_accepts_finalize[gateway.platforms.telegram-TelegramAdapter]",
        "tests/gateway/test_stream_consumer.py::TestEditMessageFinalizeSignature::test_edit_message_accepts_finalize[plugins.platforms.discord.adapter-DiscordAdapter]",
        "tests/gateway/test_stream_consumer.py::TestEditMessageFinalizeSignature::test_edit_message_accepts_finalize[gateway.platforms.slack-SlackAdapter]",
        "tests/gateway/test_stream_consumer.py::TestEditMessageFinalizeSignature::test_edit_message_accepts_finalize[gateway.platforms.matrix-MatrixAdapter]",
        "tests/gateway/test_stream_consumer.py::TestEditMessageFinalizeSignature::test_edit_message_accepts_finalize[plugins.platforms.mattermost.adapter-MattermostAdapter]",
        "tests/gateway/test_stream_consumer.py::TestEditMessageFinalizeSignature::test_edit_message_accepts_finalize[gateway.platforms.feishu-FeishuAdapter]",
        "tests/gateway/test_stream_consumer.py::TestEditMessageFinalizeSignature::test_edit_message_accepts_finalize[gateway.platforms.whatsapp-WhatsAppAdapter]",
        "tests/gateway/test_stream_consumer.py::TestEditMessageFinalizeSignature::test_edit_message_accepts_finalize[gateway.platforms.dingtalk-DingTalkAdapter]",
        "tests/gateway/test_stream_consumer.py::TestSendOrEditMediaStripping::test_first_send_strips_media",
        "tests/gateway/test_stream_consumer.py::TestSendOrEditMediaStripping::test_edit_strips_media",
        "tests/gateway/test_stream_consumer.py::TestSendOrEditMediaStripping::test_media_only_skips_send",
        "tests/gateway/test_stream_consumer.py::TestSendOrEditMediaStripping::test_cursor_only_update_skips_send",
        "tests/gateway/test_stream_consumer.py::TestSendOrEditMediaStripping::test_short_text_with_cursor_skips_new_message",
        "tests/gateway/test_stream_consumer.py::TestSendOrEditMediaStripping::test_longer_text_with_cursor_sends_new_message",
        "tests/gateway/test_stream_consumer.py::TestSendOrEditMediaStripping::test_short_text_without_cursor_sends_normally",
        "tests/gateway/test_stream_consumer.py::TestSendOrEditMediaStripping::test_short_text_cursor_edit_existing_message_allowed",
        "tests/gateway/test_stream_consumer.py::TestStreamRunMediaStripping::test_stream_with_media_tag",
        "tests/gateway/test_stream_consumer.py::TestSegmentBreakOnToolBoundary::test_segment_break_creates_new_message",
        "tests/gateway/test_stream_consumer.py::TestSegmentBreakOnToolBoundary::test_segment_break_no_text_before",
        "tests/gateway/test_stream_consumer.py::TestSegmentBreakOnToolBoundary::test_segment_break_removes_cursor",
        "tests/gateway/test_stream_consumer.py::TestSegmentBreakOnToolBoundary::test_multiple_segment_breaks",
        "tests/gateway/test_stream_consumer.py::TestSegmentBreakOnToolBoundary::test_already_sent_stays_true_after_segment",
        "tests/gateway/test_stream_consumer.py::TestSegmentBreakOnToolBoundary::test_edit_failure_sends_only_unsent_tail_at_finish",
        "tests/gateway/test_stream_consumer.py::TestSegmentBreakOnToolBoundary::test_segment_break_clears_failed_edit_fallback_state",
        "tests/gateway/test_stream_consumer.py::TestSegmentBreakOnToolBoundary::test_segment_break_after_mid_stream_edit_failure_preserves_tail",
        "tests/gateway/test_stream_consumer.py::TestSegmentBreakOnToolBoundary::test_no_message_id_enters_fallback_mode",
        "tests/gateway/test_stream_consumer.py::TestSegmentBreakOnToolBoundary::test_no_message_id_single_delta_marks_already_sent",
        "tests/gateway/test_stream_consumer.py::TestSegmentBreakOnToolBoundary::test_no_message_id_segment_breaks_do_not_resend",
        "tests/gateway/test_stream_consumer.py::TestSegmentBreakOnToolBoundary::test_fallback_final_splits_long_continuation_without_dropping_text",
        "tests/gateway/test_stream_consumer.py::TestSegmentBreakOnToolBoundary::test_fallback_final_sends_full_text_at_tool_boundary",
        "tests/gateway/test_stream_consumer.py::TestSegmentBreakOnToolBoundary::test_fallback_final_deletes_partial_after_full_resend",
        "tests/gateway/test_stream_consumer.py::TestSegmentBreakOnToolBoundary::test_fallback_final_keeps_partial_after_tail_only_send",
        "tests/gateway/test_stream_consumer.py::TestSegmentBreakOnToolBoundary::test_fallback_final_does_not_delete_when_no_chunks_reach_user",
        "tests/gateway/test_stream_consumer.py::TestSegmentBreakOnToolBoundary::test_fallback_final_skips_delete_when_adapter_lacks_method",
        "tests/gateway/test_stream_consumer.py::TestFinalResponseDeliveryGuard::test_split_overflow_failed_send_does_not_mark_final_sent",
        "tests/gateway/test_stream_consumer.py::TestFinalResponseDeliveryGuard::test_split_overflow_partial_send_marks_final_sent",
        "tests/gateway/test_stream_consumer.py::TestFinalContentDeliveredGuard::test_mid_stream_edit_success_does_not_mark_content_delivered",
        "tests/gateway/test_stream_consumer.py::TestFinalContentDeliveredGuard::test_final_edit_success_does_mark_content_delivered",
        "tests/gateway/test_stream_consumer.py::TestFinalContentDeliveredGuard::test_fallback_partial_send_does_not_mark_final_sent",
        "tests/gateway/test_stream_consumer.py::TestEditOverflowSplitAndDeliver::test_consumer_advances_message_id_on_split_and_deliver",
        "tests/gateway/test_stream_consumer.py::TestInterimCommentaryMessages::test_commentary_message_stays_separate_from_final_stream",
        "tests/gateway/test_stream_consumer.py::TestInterimCommentaryMessages::test_failed_final_send_does_not_mark_final_response_sent",
        "tests/gateway/test_stream_consumer.py::TestInterimCommentaryMessages::test_success_without_message_id_marks_visible_and_sends_only_tail",
        "tests/gateway/test_stream_consumer.py::TestCancelledConsumerSetsFlags::test_cancelled_with_already_sent_marks_final_response_sent",
        "tests/gateway/test_stream_consumer.py::TestCancelledConsumerSetsFlags::test_cancelled_without_any_sends_does_not_mark_final",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_plain_text_passes_through",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_complete_think_block_stripped",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_think_block_in_middle",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_think_block_split_across_deltas",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_opening_tag_split_across_deltas",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_closing_tag_split_across_deltas",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_multiple_think_blocks",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_multiple_think_blocks_with_text_between",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_thinking_tag_variant",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_thought_tag_variant",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_reasoning_scratchpad_variant",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_case_insensitive_THINKING",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_prose_mention_not_stripped",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_prose_mention_after_text",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_think_at_line_start_is_stripped",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_think_with_only_whitespace_before",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_flush_think_buffer_on_non_tag",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_flush_think_buffer_when_inside_block",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_unclosed_think_block_suppresses",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_multiline_think_block",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulate::test_segment_reset_preserves_think_state",
        "tests/gateway/test_stream_consumer.py::TestFilterAndAccumulateIntegration::test_think_block_not_sent_to_platform",
        "tests/gateway/test_stream_consumer.py::TestBufferOnlyMode::test_suppresses_intermediate_edits",
        "tests/gateway/test_stream_consumer.py::TestBufferOnlyMode::test_flushes_on_segment_break",
        "tests/gateway/test_stream_consumer.py::TestBufferOnlyMode::test_flushes_on_commentary",
        "tests/gateway/test_stream_consumer.py::TestBufferOnlyMode::test_default_mode_still_triggers_intermediate_edits",
        "tests/gateway/test_stream_consumer.py::TestCursorStrippingOnFallback::test_cursor_stripped_when_continuation_empty",
        "tests/gateway/test_stream_consumer.py::TestCursorStrippingOnFallback::test_cursor_not_stripped_when_no_cursor_configured",
        "tests/gateway/test_stream_consumer.py::TestCursorStrippingOnFallback::test_cursor_strip_edit_failure_handled",
        "tests/gateway/test_stream_consumer.py::TestOnNewMessageCallback::test_callback_fires_on_first_send",
        "tests/gateway/test_stream_consumer.py::TestOnNewMessageCallback::test_callback_fires_once_per_segment",
        "tests/gateway/test_stream_consumer.py::TestOnNewMessageCallback::test_callback_not_fired_on_edit",
        "tests/gateway/test_stream_consumer.py::TestOnNewMessageCallback::test_callback_fires_on_commentary",
        "tests/gateway/test_stream_consumer.py::TestOnNewMessageCallback::test_callback_error_swallowed",
        "tests/gateway/test_stream_consumer.py::TestOnNewMessageCallback::test_no_callback_when_none",
        "tests/gateway/test_stream_consumer.py::TestUtf16OverflowDetection::test_emoji_text_exceeding_utf16_limit_triggers_overflow_split",
        "tests/gateway/test_stream_consumer.py::TestUtf16OverflowDetection::test_codepoint_only_adapter_falls_back_to_len"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0277-test_stream_consumer.py.log",
      "output_sha256": "b91f96ddc331fdf655b891e7dbf53d8a3462cd12eb30e3b8b7b8644b548f7723",
      "returncode": 0,
      "test_file": "tests/gateway/test_stream_consumer.py",
      "test_file_sha256": "6d182bbce20610b9d7f76665bf7a4de06a3ba6e5ed93a785d3851630849b2751"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0278",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_stream_consumer_draft.py"
      ],
      "nodeids": [
        "tests/gateway/test_stream_consumer_draft.py::TestDraftTransportSelection::test_default_transport_stays_on_edit",
        "tests/gateway/test_stream_consumer_draft.py::TestDraftTransportSelection::test_auto_dm_with_draft_capable_adapter_picks_draft",
        "tests/gateway/test_stream_consumer_draft.py::TestDraftTransportSelection::test_auto_group_falls_back_to_edit",
        "tests/gateway/test_stream_consumer_draft.py::TestDraftTransportSelection::test_explicit_edit_never_uses_drafts",
        "tests/gateway/test_stream_consumer_draft.py::TestDraftTransportSelection::test_explicit_draft_unsupported_falls_back",
        "tests/gateway/test_stream_consumer_draft.py::TestDraftTransportSelection::test_magicmock_adapter_falls_back_to_edit",
        "tests/gateway/test_stream_consumer_draft.py::TestDraftStreamingHappyPath::test_dm_stream_animates_draft_then_finalizes_with_send",
        "tests/gateway/test_stream_consumer_draft.py::TestDraftStreamingHappyPath::test_group_chat_skips_draft_path",
        "tests/gateway/test_stream_consumer_draft.py::TestDraftFallbackOnFailure::test_first_draft_failure_disables_drafts_for_run",
        "tests/gateway/test_stream_consumer_draft.py::TestDraftIdLifecycle::test_consecutive_responses_use_distinct_draft_ids",
        "tests/gateway/test_stream_consumer_draft.py::TestDraftIdLifecycle::test_tool_boundary_bumps_draft_id",
        "tests/gateway/test_stream_consumer_draft.py::TestAlreadySentInDraftMode::test_drafts_do_not_set_already_sent_until_real_message",
        "tests/gateway/test_stream_consumer_draft.py::TestAdapterPrefersFreshFinal::test_edit_stream_finalizes_with_fresh_send_and_deletes_preview",
        "tests/gateway/test_stream_consumer_draft.py::TestRichAwareOverflow::test_raw_message_limit_uses_adapter_rich_cap",
        "tests/gateway/test_stream_consumer_draft.py::TestRichAwareOverflow::test_raw_message_limit_falls_back_to_max_length",
        "tests/gateway/test_stream_consumer_draft.py::TestRichAwareOverflow::test_raw_message_limit_mock_adapter_is_safe",
        "tests/gateway/test_stream_consumer_draft.py::TestRichAwareOverflow::test_long_rich_reply_not_split_and_final_is_whole",
        "tests/gateway/test_stream_consumer_draft.py::TestRichAwareOverflow::test_fresh_final_deletes_all_preview_fragments"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0278-test_stream_consumer_draft.py.log",
      "output_sha256": "7826f9c9a73aefdada1f5927fcabb146fdf5b4ebd4530989b815a88fab7a0ab6",
      "returncode": 0,
      "test_file": "tests/gateway/test_stream_consumer_draft.py",
      "test_file_sha256": "9426fee30901b3d6f0fbe9df3c7cdaea6b89e737a79d5e0e132b90048b23f9df"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0279",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_stream_consumer_fresh_final.py"
      ],
      "nodeids": [
        "tests/gateway/test_stream_consumer_fresh_final.py::TestFreshFinalForLongLivedPreviews::test_disabled_by_default_still_edits_in_place",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestFreshFinalForLongLivedPreviews::test_short_lived_preview_edits_in_place",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestFreshFinalForLongLivedPreviews::test_long_lived_preview_sends_fresh_final",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestFreshFinalForLongLivedPreviews::test_fresh_final_without_delete_support_is_best_effort",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestFreshFinalForLongLivedPreviews::test_fresh_final_fallback_to_edit_on_send_failure",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestFreshFinalForLongLivedPreviews::test_only_finalize_triggers_fresh_final",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestFreshFinalForLongLivedPreviews::test_no_edit_sentinel_is_not_affected",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestSegmentBreakDoesNotMarkFinalSent::test_preamble_fresh_final_at_tool_boundary_does_not_mark_final",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestSegmentBreakDoesNotMarkFinalSent::test_final_answer_after_preamble_is_delivered_exactly_once",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestSegmentBreakDoesNotMarkFinalSent::test_genuine_final_answer_without_tools_marks_delivered",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestSegmentBreakDoesNotMarkFinalSent::test_no_edit_adapter_delivers_final_after_preamble",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestSegmentBreakDoesNotMarkFinalSent::test_multi_tool_call_turn_delivers_final_once",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestCancelledBestEffortDeliveryFinalizes::test_cancel_best_effort_edit_is_finalized",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestCancelledBestEffortDeliveryFinalizes::test_cancel_best_effort_failure_keeps_gateway_resend_possible",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestCancelledBestEffortDeliveryFinalizes::test_cancel_without_preview_makes_no_delivery_attempt",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestCancelledBestEffortDeliveryFinalizes::test_cancel_with_fresh_final_enabled_delivers_and_flags_via_handler",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestGotDoneOverflowSplitNotRefinalized::test_split_finalize_edit_is_not_refinalized",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestGotDoneOverflowSplitNotRefinalized::test_non_split_finalize_edit_still_gets_explicit_refinalize",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestFinalCleanupEditFloodControl::test_failed_final_cleanup_edit_marks_visible_content_delivered",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestFinalCleanupEditFloodControl::test_failed_final_edit_does_not_mark_undelivered_tail",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestStreamConsumerConfigFreshFinalField::test_default_is_disabled",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestStreamConsumerConfigFreshFinalField::test_field_is_configurable",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestStreamingConfigFreshFinalField::test_default_is_disabled",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestStreamingConfigFreshFinalField::test_from_dict_uses_default_when_missing",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestStreamingConfigFreshFinalField::test_from_dict_respects_explicit_zero",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestStreamingConfigFreshFinalField::test_to_dict_round_trip",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestTelegramAdapterDeleteMessage::test_delete_message_method_exists",
        "tests/gateway/test_stream_consumer_fresh_final.py::TestTelegramAdapterDeleteMessage::test_base_adapter_default_returns_false"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0279-test_stream_consumer_fresh_final.py.log",
      "output_sha256": "5b6128e984de8a4a69a4c25e7554c06ed4e0900ac0cdf1677d5f681ebd5d10c3",
      "returncode": 0,
      "test_file": "tests/gateway/test_stream_consumer_fresh_final.py",
      "test_file_sha256": "dde3382631053d6bd666cd8bcc4f1c5a797cb92f6304e78fb536671337cc0051"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0280",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_stream_consumer_thread_routing.py"
      ],
      "nodeids": [
        "tests/gateway/test_stream_consumer_thread_routing.py::TestInitialReplyToId::test_first_send_uses_initial_reply_to_id",
        "tests/gateway/test_stream_consumer_thread_routing.py::TestInitialReplyToId::test_first_send_without_initial_reply_to_id",
        "tests/gateway/test_stream_consumer_thread_routing.py::TestInitialReplyToId::test_subsequent_edits_ignore_initial_reply_to_id",
        "tests/gateway/test_stream_consumer_thread_routing.py::TestInitialReplyToId::test_metadata_passed_on_first_send",
        "tests/gateway/test_stream_consumer_thread_routing.py::TestInitialReplyToId::test_final_first_send_marks_metadata_notify_true",
        "tests/gateway/test_stream_consumer_thread_routing.py::TestInitialReplyToId::test_nonfinal_first_send_does_not_mark_notify",
        "tests/gateway/test_stream_consumer_thread_routing.py::TestOverflowFirstMessage::test_overflow_first_send_uses_initial_reply_to_id",
        "tests/gateway/test_stream_consumer_thread_routing.py::TestFeishuFallbackThreadRouting::test_create_uses_thread_id_when_available",
        "tests/gateway/test_stream_consumer_thread_routing.py::TestFeishuFallbackThreadRouting::test_create_uses_chat_id_when_no_thread"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0280-test_stream_consumer_thread_routing.py.log",
      "output_sha256": "d44f5c3a3eb0a5d0e5eb7bf7162e61b1d5983dff9e441a5cd4701a872890b00f",
      "returncode": 0,
      "test_file": "tests/gateway/test_stream_consumer_thread_routing.py",
      "test_file_sha256": "702a871fad238c69dd6e4d939f3e214999f0541a96ef51e17e36e8d4cf00e157"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0281",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_stream_events.py"
      ],
      "nodeids": [
        "tests/gateway/test_stream_events.py::test_message_chunk_flows_to_sink_on_delta",
        "tests/gateway/test_stream_events.py::test_intermediate_message_stop_breaks_segment_but_final_does_not",
        "tests/gateway/test_stream_events.py::test_commentary_flows_to_sink",
        "tests/gateway/test_stream_events.py::test_message_events_dropped_when_no_sink",
        "tests/gateway/test_stream_events.py::test_tool_call_chunk_renders_default_chrome",
        "tests/gateway/test_stream_events.py::test_tool_preview_truncated_to_cap",
        "tests/gateway/test_stream_events.py::test_new_mode_dedups_same_tool",
        "tests/gateway/test_stream_events.py::test_off_mode_emits_nothing",
        "tests/gateway/test_stream_events.py::test_adapter_can_eat_tool_chrome",
        "tests/gateway/test_stream_events.py::test_tool_finished_emits_no_chrome",
        "tests/gateway/test_stream_events.py::test_long_tool_hint_routes_to_hook",
        "tests/gateway/test_stream_events.py::test_gateway_notice_routes_to_hook",
        "tests/gateway/test_stream_events.py::test_dispatch_swallows_render_errors"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0281-test_stream_events.py.log",
      "output_sha256": "d274809ca7a4bfffb7e735309deb7bd6802568af0e68ea3d59f8a2b750e6f232",
      "returncode": 0,
      "test_file": "tests/gateway/test_stream_events.py",
      "test_file_sha256": "3ce4f13850aa242a6262a42587205f07f5de50c687136c496ef70c072ce9aff9"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0282",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_stt_config.py"
      ],
      "nodeids": [
        "tests/gateway/test_stt_config.py::test_gateway_config_stt_disabled_from_dict_nested",
        "tests/gateway/test_stt_config.py::test_load_gateway_config_bridges_stt_enabled_from_config_yaml",
        "tests/gateway/test_stt_config.py::test_enrich_message_with_transcription_surfaces_path_when_stt_disabled",
        "tests/gateway/test_stt_config.py::test_enrich_message_with_transcription_omits_duration_on_probe_failure",
        "tests/gateway/test_stt_config.py::test_enrich_message_with_transcription_avoids_bogus_no_provider_message_for_backend_key_errors",
        "tests/gateway/test_stt_config.py::test_enrich_message_with_transcription_returns_tuple_for_empty_content_placeholder",
        "tests/gateway/test_stt_config.py::test_prepare_inbound_message_text_transcribes_queued_voice_event"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0282-test_stt_config.py.log",
      "output_sha256": "33df15ebe99c7597f858a1516c7dc7b16fe1651426b4d25acb8ddf7cf842f470",
      "returncode": 0,
      "test_file": "tests/gateway/test_stt_config.py",
      "test_file_sha256": "07e1a7a0f0a13b32c43d03950b301b2ef3f6e39852b05a65d5e1535ab3fb64f0"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0283",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_stuck_loop.py"
      ],
      "nodeids": [
        "tests/gateway/test_stuck_loop.py::TestStuckLoopDetection::test_increment_creates_file",
        "tests/gateway/test_stuck_loop.py::TestStuckLoopDetection::test_increment_accumulates",
        "tests/gateway/test_stuck_loop.py::TestStuckLoopDetection::test_increment_drops_inactive_sessions",
        "tests/gateway/test_stuck_loop.py::TestStuckLoopDetection::test_suspend_at_threshold",
        "tests/gateway/test_stuck_loop.py::TestStuckLoopDetection::test_no_suspend_below_threshold",
        "tests/gateway/test_stuck_loop.py::TestStuckLoopDetection::test_clear_on_success",
        "tests/gateway/test_stuck_loop.py::TestStuckLoopDetection::test_clear_removes_file_when_empty",
        "tests/gateway/test_stuck_loop.py::TestStuckLoopDetection::test_suspend_clears_file",
        "tests/gateway/test_stuck_loop.py::TestStuckLoopDetection::test_no_file_no_crash"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0283-test_stuck_loop.py.log",
      "output_sha256": "a81fcba78aa82e81476ba73b0785c2c61c2acc1f023594bce04f9cda589f8edf",
      "returncode": 0,
      "test_file": "tests/gateway/test_stuck_loop.py",
      "test_file_sha256": "412981b4e6e829705c5748caaeab251da718590d900664a095b826950b8fa201"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0284",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_subagent_protection_30170.py"
      ],
      "nodeids": [
        "tests/gateway/test_subagent_protection_30170.py::TestAgentHasActiveSubagents::test_returns_false_for_none",
        "tests/gateway/test_subagent_protection_30170.py::TestAgentHasActiveSubagents::test_returns_false_for_pending_sentinel",
        "tests/gateway/test_subagent_protection_30170.py::TestAgentHasActiveSubagents::test_returns_false_when_attribute_missing",
        "tests/gateway/test_subagent_protection_30170.py::TestAgentHasActiveSubagents::test_returns_false_for_empty_list",
        "tests/gateway/test_subagent_protection_30170.py::TestAgentHasActiveSubagents::test_returns_true_for_single_child",
        "tests/gateway/test_subagent_protection_30170.py::TestAgentHasActiveSubagents::test_returns_true_for_many_children",
        "tests/gateway/test_subagent_protection_30170.py::TestAgentHasActiveSubagents::test_works_without_lock",
        "tests/gateway/test_subagent_protection_30170.py::TestAgentHasActiveSubagents::test_rejects_truthy_non_collection_attribute",
        "tests/gateway/test_subagent_protection_30170.py::TestAgentHasActiveSubagents::test_accepts_list_tuple_set[tuple]",
        "tests/gateway/test_subagent_protection_30170.py::TestAgentHasActiveSubagents::test_accepts_list_tuple_set[set]",
        "tests/gateway/test_subagent_protection_30170.py::TestAgentHasActiveSubagents::test_accepts_list_tuple_set[list]",
        "tests/gateway/test_subagent_protection_30170.py::TestBusyHandlerDemotesInterruptForSubagents::test_does_not_call_interrupt_when_subagents_active",
        "tests/gateway/test_subagent_protection_30170.py::TestBusyHandlerDemotesInterruptForSubagents::test_ack_explains_the_demotion",
        "tests/gateway/test_subagent_protection_30170.py::TestBusyHandlerDemotesInterruptForSubagents::test_interrupt_still_fires_when_no_subagents",
        "tests/gateway/test_subagent_protection_30170.py::TestBusyHandlerDemotesInterruptForSubagents::test_queue_mode_unchanged_with_subagents",
        "tests/gateway/test_subagent_protection_30170.py::TestBusyHandlerDemotesInterruptForSubagents::test_steer_mode_still_routes_through_running_agent_steer",
        "tests/gateway/test_subagent_protection_30170.py::TestBusyHandlerDemotesInterruptForSubagents::test_pending_sentinel_does_not_demote"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0284-test_subagent_protection_30170.py.log",
      "output_sha256": "3c704ab630504bfc978245f4df39832b055be405f30d0c48924e37a01de80de8",
      "returncode": 0,
      "test_file": "tests/gateway/test_subagent_protection_30170.py",
      "test_file_sha256": "07b51ea68056925d17f0a6fefa4564b480d4104b9f1b7b498e0b371672a835a8"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0285",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_teams.py"
      ],
      "nodeids": [
        "tests/gateway/test_teams.py::TestTeamsRequirements::test_returns_false_when_sdk_missing",
        "tests/gateway/test_teams.py::TestTeamsRequirements::test_returns_false_when_aiohttp_missing",
        "tests/gateway/test_teams.py::TestTeamsRequirements::test_returns_true_when_deps_available",
        "tests/gateway/test_teams.py::TestTeamsRequirements::test_check_teams_requirements_shortcircuits_when_present",
        "tests/gateway/test_teams.py::TestTeamsRequirements::test_check_teams_requirements_lazy_installs_when_missing",
        "tests/gateway/test_teams.py::TestTeamsRequirements::test_validate_config_with_env",
        "tests/gateway/test_teams.py::TestTeamsRequirements::test_validate_config_from_extra",
        "tests/gateway/test_teams.py::TestTeamsRequirements::test_validate_config_missing",
        "tests/gateway/test_teams.py::TestTeamsRequirements::test_validate_config_missing_tenant",
        "tests/gateway/test_teams.py::TestTeamsAdapterInit::test_reads_config_from_extra",
        "tests/gateway/test_teams.py::TestTeamsAdapterInit::test_falls_back_to_env_vars",
        "tests/gateway/test_teams.py::TestTeamsAdapterInit::test_default_port",
        "tests/gateway/test_teams.py::TestTeamsAdapterInit::test_custom_port_from_extra",
        "tests/gateway/test_teams.py::TestTeamsAdapterInit::test_custom_port_from_env",
        "tests/gateway/test_teams.py::TestTeamsAdapterInit::test_invalid_port_from_extra_falls_back_to_default",
        "tests/gateway/test_teams.py::TestTeamsAdapterInit::test_invalid_port_from_env_falls_back_to_default",
        "tests/gateway/test_teams.py::TestTeamsAdapterInit::test_platform_value",
        "tests/gateway/test_teams.py::TestTeamsPluginRegistration::test_register_calls_ctx",
        "tests/gateway/test_teams.py::TestTeamsPluginRegistration::test_register_name",
        "tests/gateway/test_teams.py::TestTeamsPluginRegistration::test_register_auth_env_vars",
        "tests/gateway/test_teams.py::TestTeamsPluginRegistration::test_register_max_message_length",
        "tests/gateway/test_teams.py::TestTeamsPluginRegistration::test_register_has_setup_fn",
        "tests/gateway/test_teams.py::TestTeamsPluginRegistration::test_register_has_platform_hint",
        "tests/gateway/test_teams.py::TestTeamsInteractiveSetup::test_interactive_setup_persists_credentials",
        "tests/gateway/test_teams.py::TestTeamsConnect::test_connect_fails_without_sdk[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsConnect::test_connect_fails_without_credentials[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsConnect::test_disconnect_cleans_up[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsSend::test_send_returns_error_without_app[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsSend::test_send_calls_app_send[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsSend::test_send_handles_error[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsSend::test_send_typing[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsSummaryWriter::test_incoming_webhook_posts_summary_text[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsSummaryWriter::test_graph_delivery_posts_to_channel[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsSummaryWriter::test_graph_delivery_falls_back_to_platform_home_channel[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsSummaryWriter::test_existing_record_is_reused_without_force_resend[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsMessageHandling::test_personal_message_creates_dm_event[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsMessageHandling::test_group_message_creates_group_event[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsMessageHandling::test_channel_message_creates_channel_event[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsMessageHandling::test_user_id_uses_aad_object_id[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsMessageHandling::test_self_message_filtered[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsMessageHandling::test_bot_mention_stripped_from_text[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsMessageHandling::test_deduplication[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsAttachmentClassification::test_file_download_info_sets_document_type[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsAttachmentClassification::test_mixed_image_and_document_prefers_document[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsAttachmentClassification::test_html_body_attachment_stays_text[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsAttachmentClassification::test_image_only_still_photo[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsAttachmentClassification::test_download_failure_degrades_to_text[asyncio]",
        "tests/gateway/test_teams.py::TestTeamsStandaloneSend::test_standalone_send_acquires_token_and_posts_activity",
        "tests/gateway/test_teams.py::TestTeamsStandaloneSend::test_standalone_send_returns_error_when_unconfigured",
        "tests/gateway/test_teams.py::TestTeamsStandaloneSend::test_standalone_send_propagates_token_failure",
        "tests/gateway/test_teams.py::TestTeamsStandaloneSend::test_standalone_send_rejects_off_allowlist_service_url",
        "tests/gateway/test_teams.py::TestTeamsStandaloneSend::test_standalone_send_rejects_chat_id_with_path_traversal",
        "tests/gateway/test_teams.py::TestTeamsMediaAttachments::test_send_video_remote_url_succeeds",
        "tests/gateway/test_teams.py::TestTeamsMediaAttachments::test_send_voice_local_file_base64",
        "tests/gateway/test_teams.py::TestTeamsMediaAttachments::test_send_document_local_file_base64",
        "tests/gateway/test_teams.py::TestTeamsMediaAttachments::test_send_video_without_app_fails",
        "tests/gateway/test_teams.py::TestTeamsMediaAttachments::test_send_document_missing_file_fails_gracefully"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0285-test_teams.py.log",
      "output_sha256": "d2f1d207a3aa1359885b591c8dfb357eec9438dc87889cde8a30a2a58416668c",
      "returncode": 0,
      "test_file": "tests/gateway/test_teams.py",
      "test_file_sha256": "e2f9a72112963ca0cd9e50feb27380e114c32ab548d361a569d960b0fbc3d795"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0286",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_teams_pipeline_runtime_wiring.py"
      ],
      "nodeids": [
        "tests/gateway/test_teams_pipeline_runtime_wiring.py::test_gateway_runner_wires_teams_pipeline_runtime",
        "tests/gateway/test_teams_pipeline_runtime_wiring.py::test_gateway_runner_skips_wiring_without_msgraph_adapter",
        "tests/gateway/test_teams_pipeline_runtime_wiring.py::test_gateway_runner_skips_wiring_when_teams_pipeline_plugin_disabled",
        "tests/gateway/test_teams_pipeline_runtime_wiring.py::test_runtime_config_disables_teams_delivery_without_target",
        "tests/gateway/test_teams_pipeline_runtime_wiring.py::test_build_pipeline_runtime_only_wires_sender_when_delivery_configured",
        "tests/gateway/test_teams_pipeline_runtime_wiring.py::test_build_pipeline_runtime_skips_sender_when_adapter_layer_is_unavailable",
        "tests/gateway/test_teams_pipeline_runtime_wiring.py::test_bind_gateway_runtime_installs_drop_scheduler_on_failure"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0286-test_teams_pipeline_runtime_wiring.py.log",
      "output_sha256": "2250249c97e115d6e47a96547836fce79061cc0c93bc7318c803e16b2321a64e",
      "returncode": 0,
      "test_file": "tests/gateway/test_teams_pipeline_runtime_wiring.py",
      "test_file_sha256": "4e3a477f609b27a20a4df31e319554fd4de40842d3a6f7a06dc897efa9538e2d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0287",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_approval_buttons.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramExecApproval::test_sends_inline_keyboard",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramExecApproval::test_stores_approval_state",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramExecApproval::test_sends_in_thread",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramExecApproval::test_retries_without_thread_when_thread_not_found",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramExecApproval::test_not_connected",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramExecApproval::test_disable_link_previews_sets_preview_kwargs",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramExecApproval::test_send_update_prompt_escapes_dynamic_prompt",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramExecApproval::test_truncates_long_command",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramApprovalCallback::test_resolves_approval_on_click",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramApprovalCallback::test_resume_typing_after_inline_approval",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramApprovalCallback::test_typing_stays_paused_when_resolve_returns_zero",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramApprovalCallback::test_approval_callback_escapes_dynamic_user_name",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramApprovalCallback::test_deny_button",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramApprovalCallback::test_approval_callback_rejects_user_blocked_by_global_allowlist",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramApprovalCallback::test_already_resolved",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramApprovalCallback::test_model_picker_callback_not_affected",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramApprovalCallback::test_update_prompt_callback_not_affected",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramApprovalCallback::test_update_prompt_callback_rejects_unauthorized_user",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramApprovalCallback::test_update_prompt_callback_rejects_user_blocked_by_global_allowlist",
        "tests/gateway/test_telegram_approval_buttons.py::TestTelegramApprovalCallback::test_update_prompt_callback_allows_authorized_user"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0287-test_telegram_approval_buttons.py.log",
      "output_sha256": "84f1f69114cf1898e375f115c88cecabc6326efea57883a8784d9a8cbe485583",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_approval_buttons.py",
      "test_file_sha256": "358795aaa69d9cd615bf666389bd1d40e33cd70d4341d387953c03cd1a683e8f"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0288",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_audio_vs_voice.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_audio_vs_voice.py::test_voice_message_still_transcribed",
        "tests/gateway/test_telegram_audio_vs_voice.py::test_audio_attachment_skips_stt",
        "tests/gateway/test_telegram_audio_vs_voice.py::test_audio_attachment_context_note_format",
        "tests/gateway/test_telegram_audio_vs_voice.py::test_audio_attachment_skips_stt_when_stt_disabled",
        "tests/gateway/test_telegram_audio_vs_voice.py::test_telegram_media_type_detection_audio_vs_voice"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0288-test_telegram_audio_vs_voice.py.log",
      "output_sha256": "ae372ae4d59889dc9015feac70d99d6efb15858f83f5120f392ce61131b7abbe",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_audio_vs_voice.py",
      "test_file_sha256": "5d5e5751ffd8a2a81a011638f9c0deec5a8ea2a5475d7514f655eb26d702d4f1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0289",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_callback_auth_fail_closed.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_callback_auth_fail_closed.py::TestCallbackAuthFailClosed::test_no_allowlist_no_allow_all_denies",
        "tests/gateway/test_telegram_callback_auth_fail_closed.py::TestCallbackAuthFailClosed::test_no_allowlist_with_global_allow_all_permits",
        "tests/gateway/test_telegram_callback_auth_fail_closed.py::TestCallbackAuthFailClosed::test_allowlist_with_matching_user_permits",
        "tests/gateway/test_telegram_callback_auth_fail_closed.py::TestCallbackAuthFailClosed::test_allowlist_without_matching_user_denies",
        "tests/gateway/test_telegram_callback_auth_fail_closed.py::TestCallbackAuthFailClosed::test_allowlist_wildcard_permits"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0289-test_telegram_callback_auth_fail_closed.py.log",
      "output_sha256": "e1643c10362707aa1f4057337457de1adfa6fa2eeee8e7cddc1d31a0fc11076d",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_callback_auth_fail_closed.py",
      "test_file_sha256": "b868da94d4fb76d088e9a731529cc3f851b2c527c20a7f16eb058e098f18d019"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0290",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_caption_merge.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_caption_merge.py::TestMergeCaptionBasic::test_no_existing_text",
        "tests/gateway/test_telegram_caption_merge.py::TestMergeCaptionBasic::test_empty_existing_text",
        "tests/gateway/test_telegram_caption_merge.py::TestMergeCaptionBasic::test_exact_duplicate_dropped",
        "tests/gateway/test_telegram_caption_merge.py::TestMergeCaptionBasic::test_different_captions_merged",
        "tests/gateway/test_telegram_caption_merge.py::TestMergeCaptionSubstringBug::test_shorter_caption_not_dropped_when_substring",
        "tests/gateway/test_telegram_caption_merge.py::TestMergeCaptionSubstringBug::test_longer_caption_not_dropped_when_contains_existing",
        "tests/gateway/test_telegram_caption_merge.py::TestMergeCaptionSubstringBug::test_prefix_caption_not_dropped",
        "tests/gateway/test_telegram_caption_merge.py::TestMergeCaptionWhitespace::test_trailing_space_treated_as_duplicate",
        "tests/gateway/test_telegram_caption_merge.py::TestMergeCaptionWhitespace::test_leading_space_treated_as_duplicate",
        "tests/gateway/test_telegram_caption_merge.py::TestMergeCaptionWhitespace::test_whitespace_only_new_text_not_added",
        "tests/gateway/test_telegram_caption_merge.py::TestMergeCaptionMultipleItems::test_three_unique_captions_all_present",
        "tests/gateway/test_telegram_caption_merge.py::TestMergeCaptionMultipleItems::test_duplicate_in_middle_dropped",
        "tests/gateway/test_telegram_caption_merge.py::TestMergeCaptionMultipleItems::test_album_scenario_revenue_profit"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0290-test_telegram_caption_merge.py.log",
      "output_sha256": "cfc5f6ed7b9b9ff8e37807118320b0a455de915fc25a8d875ae29d3eacfde29c",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_caption_merge.py",
      "test_file_sha256": "4e0931f7b34806784f2f4e3f12faac5484ff5a396ccf5ccda21ce56a2e5a9576"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0291",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_channel_posts.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_channel_posts.py::test_build_message_event_uses_channel_identity_for_channel_posts",
        "tests/gateway/test_telegram_channel_posts.py::test_text_handler_uses_effective_message_for_channel_post",
        "tests/gateway/test_telegram_channel_posts.py::test_command_handler_uses_effective_message_for_channel_post"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0291-test_telegram_channel_posts.py.log",
      "output_sha256": "43db9bb8eb49d91b78708a38bdbc5b172e8b5080c662f1346c79eea76a72a707",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_channel_posts.py",
      "test_file_sha256": "03220b0c8199e84a03faadc4ca0865a71e6fd617b5ad0932a071a6ed99c918c6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0292",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_clarify_buttons.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_clarify_buttons.py::TestTelegramSendClarify::test_multi_choice_renders_buttons_and_other",
        "tests/gateway/test_telegram_clarify_buttons.py::TestTelegramSendClarify::test_open_ended_no_keyboard",
        "tests/gateway/test_telegram_clarify_buttons.py::TestTelegramSendClarify::test_not_connected",
        "tests/gateway/test_telegram_clarify_buttons.py::TestTelegramSendClarify::test_long_choice_rendered_in_body_not_truncated",
        "tests/gateway/test_telegram_clarify_buttons.py::TestTelegramSendClarify::test_html_escapes_question",
        "tests/gateway/test_telegram_clarify_buttons.py::TestTelegramClarifyCallback::test_numeric_choice_resolves_with_choice_text",
        "tests/gateway/test_telegram_clarify_buttons.py::TestTelegramClarifyCallback::test_other_button_flips_to_text_mode",
        "tests/gateway/test_telegram_clarify_buttons.py::TestTelegramClarifyCallback::test_already_resolved",
        "tests/gateway/test_telegram_clarify_buttons.py::TestTelegramClarifyCallback::test_unauthorized_user_rejected",
        "tests/gateway/test_telegram_clarify_buttons.py::TestTelegramClarifyCallback::test_invalid_choice_token",
        "tests/gateway/test_telegram_clarify_buttons.py::TestBaseAdapterClarifyFallback::test_numbered_text_fallback",
        "tests/gateway/test_telegram_clarify_buttons.py::TestBaseAdapterClarifyFallback::test_open_ended_fallback_renders_question_only"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0292-test_telegram_clarify_buttons.py.log",
      "output_sha256": "657d830ded00468b997d6c86bd13c6c9a2a247cd73a9f58d026e70c4fbcfbbef",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_clarify_buttons.py",
      "test_file_sha256": "3b5b9210426f42e0ae646d59cd6805652f3c3c1a741f5c312d4d2b4213ca5be6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0293",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_conflict.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_conflict.py::test_connect_rejects_same_host_token_lock",
        "tests/gateway/test_telegram_conflict.py::test_polling_conflict_retries_before_fatal",
        "tests/gateway/test_telegram_conflict.py::test_polling_conflict_becomes_fatal_after_retries",
        "tests/gateway/test_telegram_conflict.py::test_connect_marks_retryable_fatal_error_for_startup_network_failure",
        "tests/gateway/test_telegram_conflict.py::test_connect_clears_webhook_before_polling",
        "tests/gateway/test_telegram_conflict.py::test_disconnect_skips_inactive_updater_and_app",
        "tests/gateway/test_telegram_conflict.py::test_polling_conflict_reschedule_uses_running_loop"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0293-test_telegram_conflict.py.log",
      "output_sha256": "d403e2f7c0508b63130c9e0531eec97ea1e02560f4b20cbb70fba389c8cb1ae5",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_conflict.py",
      "test_file_sha256": "3d41a2d15714e755af80c1b6236752b414d9d9838a05246b92eeef2b69c9687c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0294",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_customer_bootstrap_invite_ttl.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_customer_bootstrap_invite_ttl.py::test_unclaimed_invite_expires_at_24_hour_boundary",
        "tests/gateway/test_telegram_customer_bootstrap_invite_ttl.py::test_invite_claimed_before_24_hours_remains_single_use"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0294-test_telegram_customer_bootstrap_invite_ttl.py.log",
      "output_sha256": "4617fbd49df9b0a9c26e75cd320318e11c47d78c0a24dbdc8086909285535d19",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_customer_bootstrap_invite_ttl.py",
      "test_file_sha256": "a888a9ae47676a8f01adfb9eedf8fd2209f52c3d85f55dfce35f5f93d82cc165"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0295",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_documents.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_documents.py::TestDocumentTypeDetection::test_document_detected_explicitly",
        "tests/gateway/test_telegram_documents.py::TestDocumentTypeDetection::test_fallback_is_document",
        "tests/gateway/test_telegram_documents.py::TestDocumentDownloadBlock::test_supported_pdf_is_cached",
        "tests/gateway/test_telegram_documents.py::TestDocumentDownloadBlock::test_supported_txt_injects_content",
        "tests/gateway/test_telegram_documents.py::TestDocumentDownloadBlock::test_supported_md_injects_content",
        "tests/gateway/test_telegram_documents.py::TestDocumentDownloadBlock::test_caption_preserved_with_injection",
        "tests/gateway/test_telegram_documents.py::TestDocumentDownloadBlock::test_zip_document_cached",
        "tests/gateway/test_telegram_documents.py::TestDocumentDownloadBlock::test_png_document_is_routed_as_image",
        "tests/gateway/test_telegram_documents.py::TestDocumentDownloadBlock::test_spoofed_png_document_falls_back_with_error",
        "tests/gateway/test_telegram_documents.py::TestDocumentDownloadBlock::test_oversized_file_rejected",
        "tests/gateway/test_telegram_documents.py::TestDocumentDownloadBlock::test_none_file_size_rejected",
        "tests/gateway/test_telegram_documents.py::TestDocumentDownloadBlock::test_missing_filename_uses_mime_lookup",
        "tests/gateway/test_telegram_documents.py::TestDocumentDownloadBlock::test_missing_filename_and_mime_rejected",
        "tests/gateway/test_telegram_documents.py::TestDocumentDownloadBlock::test_unicode_decode_error_handled",
        "tests/gateway/test_telegram_documents.py::TestDocumentDownloadBlock::test_text_injection_capped",
        "tests/gateway/test_telegram_documents.py::TestDocumentDownloadBlock::test_download_exception_handled",
        "tests/gateway/test_telegram_documents.py::TestVideoDownloadBlock::test_native_video_is_cached",
        "tests/gateway/test_telegram_documents.py::TestVideoDownloadBlock::test_mp4_document_is_treated_as_video",
        "tests/gateway/test_telegram_documents.py::TestMediaGroups::test_non_album_photo_burst_is_buffered_and_combined",
        "tests/gateway/test_telegram_documents.py::TestMediaGroups::test_photo_album_is_buffered_and_combined",
        "tests/gateway/test_telegram_documents.py::TestMediaGroups::test_disconnect_cancels_pending_media_group_flush",
        "tests/gateway/test_telegram_documents.py::TestSendVoice::test_flac_falls_back_to_document",
        "tests/gateway/test_telegram_documents.py::TestSendVoice::test_wav_falls_back_to_document",
        "tests/gateway/test_telegram_documents.py::TestSendVoice::test_mp3_routes_to_send_audio",
        "tests/gateway/test_telegram_documents.py::TestSendDocument::test_send_document_success",
        "tests/gateway/test_telegram_documents.py::TestSendDocument::test_send_document_custom_filename",
        "tests/gateway/test_telegram_documents.py::TestSendDocument::test_send_document_file_not_found",
        "tests/gateway/test_telegram_documents.py::TestSendDocument::test_send_document_workspace_path_has_docker_hint",
        "tests/gateway/test_telegram_documents.py::TestSendDocument::test_send_document_outputs_path_has_docker_hint",
        "tests/gateway/test_telegram_documents.py::TestSendDocument::test_send_document_not_connected",
        "tests/gateway/test_telegram_documents.py::TestSendDocument::test_send_document_caption_truncated",
        "tests/gateway/test_telegram_documents.py::TestSendDocument::test_send_document_api_error_falls_back",
        "tests/gateway/test_telegram_documents.py::TestSendDocument::test_send_document_reply_to",
        "tests/gateway/test_telegram_documents.py::TestSendDocument::test_send_document_thread_id",
        "tests/gateway/test_telegram_documents.py::TestTelegramPhotoBatching::test_flush_photo_batch_does_not_drop_newer_scheduled_task",
        "tests/gateway/test_telegram_documents.py::TestTelegramPhotoBatching::test_disconnect_cancels_pending_photo_batch_tasks",
        "tests/gateway/test_telegram_documents.py::TestSendVideo::test_send_video_success",
        "tests/gateway/test_telegram_documents.py::TestSendVideo::test_send_video_file_not_found",
        "tests/gateway/test_telegram_documents.py::TestSendVideo::test_send_video_workspace_path_has_docker_hint",
        "tests/gateway/test_telegram_documents.py::TestSendVideo::test_send_video_not_connected",
        "tests/gateway/test_telegram_documents.py::TestSendVideo::test_send_video_thread_id"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0295-test_telegram_documents.py.log",
      "output_sha256": "6e48a2236eaa2e234fc0876cc17d745bae8778a45c3b1e0bd309cbcdf010f976",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_documents.py",
      "test_file_sha256": "e946681b7ccf0389f45789be9cea719ee2b55794cf75dc1636ca5cfd25ae8908"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0296",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_format.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_format.py::TestEscapeMdv2::test_escapes_all_special_characters",
        "tests/gateway/test_telegram_format.py::TestEscapeMdv2::test_empty_string",
        "tests/gateway/test_telegram_format.py::TestEscapeMdv2::test_no_special_characters",
        "tests/gateway/test_telegram_format.py::TestEscapeMdv2::test_backslash_escaped",
        "tests/gateway/test_telegram_format.py::TestEscapeMdv2::test_dot_escaped",
        "tests/gateway/test_telegram_format.py::TestEscapeMdv2::test_exclamation_escaped",
        "tests/gateway/test_telegram_format.py::TestEscapeMdv2::test_mixed_text_and_specials",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBasic::test_empty_string",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBasic::test_none_input",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBasic::test_plain_text_specials_escaped",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBasic::test_plain_text_no_markdown",
        "tests/gateway/test_telegram_format.py::TestFormatMessageCodeBlocks::test_fenced_code_block_preserved",
        "tests/gateway/test_telegram_format.py::TestFormatMessageCodeBlocks::test_inline_code_preserved",
        "tests/gateway/test_telegram_format.py::TestFormatMessageCodeBlocks::test_code_block_special_chars_not_escaped",
        "tests/gateway/test_telegram_format.py::TestFormatMessageCodeBlocks::test_inline_code_special_chars_not_escaped",
        "tests/gateway/test_telegram_format.py::TestFormatMessageCodeBlocks::test_multiple_code_blocks",
        "tests/gateway/test_telegram_format.py::TestFormatMessageCodeBlocks::test_inline_code_backslashes_escaped",
        "tests/gateway/test_telegram_format.py::TestFormatMessageCodeBlocks::test_fenced_code_block_backslashes_escaped",
        "tests/gateway/test_telegram_format.py::TestFormatMessageCodeBlocks::test_fenced_code_block_backticks_escaped",
        "tests/gateway/test_telegram_format.py::TestFormatMessageCodeBlocks::test_inline_code_no_double_escape",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBoldItalic::test_bold_converted",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBoldItalic::test_italic_converted",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBoldItalic::test_bold_with_special_chars",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBoldItalic::test_italic_with_special_chars",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBoldItalic::test_bold_and_italic_in_same_line",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBoldItalic::test_reload_mcp_summary_escapes_dynamic_server_names",
        "tests/gateway/test_telegram_format.py::TestFormatMessageHeaders::test_h1_converted_to_bold",
        "tests/gateway/test_telegram_format.py::TestFormatMessageHeaders::test_h2_converted",
        "tests/gateway/test_telegram_format.py::TestFormatMessageHeaders::test_header_with_inner_bold_stripped",
        "tests/gateway/test_telegram_format.py::TestFormatMessageHeaders::test_header_with_special_chars",
        "tests/gateway/test_telegram_format.py::TestFormatMessageHeaders::test_multiline_headers",
        "tests/gateway/test_telegram_format.py::TestFormatMessageLinks::test_markdown_link_converted",
        "tests/gateway/test_telegram_format.py::TestFormatMessageLinks::test_link_display_text_escaped",
        "tests/gateway/test_telegram_format.py::TestFormatMessageLinks::test_link_url_parentheses_escaped",
        "tests/gateway/test_telegram_format.py::TestFormatMessageLinks::test_link_with_surrounding_text",
        "tests/gateway/test_telegram_format.py::TestItalicNewlineBug::test_bullet_list_not_corrupted",
        "tests/gateway/test_telegram_format.py::TestItalicNewlineBug::test_asterisk_list_items_preserved",
        "tests/gateway/test_telegram_format.py::TestItalicNewlineBug::test_italic_does_not_span_lines",
        "tests/gateway/test_telegram_format.py::TestItalicNewlineBug::test_single_line_italic_still_works",
        "tests/gateway/test_telegram_format.py::TestFormatMessageStrikethrough::test_strikethrough_converted",
        "tests/gateway/test_telegram_format.py::TestFormatMessageStrikethrough::test_strikethrough_with_special_chars",
        "tests/gateway/test_telegram_format.py::TestFormatMessageStrikethrough::test_strikethrough_in_code_not_converted",
        "tests/gateway/test_telegram_format.py::TestFormatMessageStrikethrough::test_strikethrough_with_bold",
        "tests/gateway/test_telegram_format.py::TestFormatMessageSpoiler::test_spoiler_converted",
        "tests/gateway/test_telegram_format.py::TestFormatMessageSpoiler::test_spoiler_with_special_chars",
        "tests/gateway/test_telegram_format.py::TestFormatMessageSpoiler::test_spoiler_in_code_not_converted",
        "tests/gateway/test_telegram_format.py::TestFormatMessageSpoiler::test_spoiler_pipes_not_escaped",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBlockquote::test_blockquote_converted",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBlockquote::test_blockquote_with_special_chars",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBlockquote::test_blockquote_multiline",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBlockquote::test_blockquote_in_code_not_converted",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBlockquote::test_nested_blockquote",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBlockquote::test_gt_in_middle_of_line_still_escaped",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBlockquote::test_expandable_blockquote",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBlockquote::test_single_asterisk_gt_not_blockquote",
        "tests/gateway/test_telegram_format.py::TestFormatMessageBlockquote::test_regular_blockquote_with_pipes_escaped",
        "tests/gateway/test_telegram_format.py::TestFormatMessageComplex::test_code_block_with_bold_outside",
        "tests/gateway/test_telegram_format.py::TestFormatMessageComplex::test_bold_inside_code_not_converted",
        "tests/gateway/test_telegram_format.py::TestFormatMessageComplex::test_link_inside_code_not_converted",
        "tests/gateway/test_telegram_format.py::TestFormatMessageComplex::test_header_after_code_block",
        "tests/gateway/test_telegram_format.py::TestFormatMessageComplex::test_multiple_bold_segments",
        "tests/gateway/test_telegram_format.py::TestFormatMessageComplex::test_special_chars_in_plain_text",
        "tests/gateway/test_telegram_format.py::TestFormatMessageComplex::test_empty_bold",
        "tests/gateway/test_telegram_format.py::TestFormatMessageComplex::test_empty_code_block",
        "tests/gateway/test_telegram_format.py::TestFormatMessageComplex::test_placeholder_collision",
        "tests/gateway/test_telegram_format.py::TestStripMdv2::test_removes_escape_backslashes",
        "tests/gateway/test_telegram_format.py::TestStripMdv2::test_removes_bold_markers",
        "tests/gateway/test_telegram_format.py::TestStripMdv2::test_removes_italic_markers",
        "tests/gateway/test_telegram_format.py::TestStripMdv2::test_removes_both_bold_and_italic",
        "tests/gateway/test_telegram_format.py::TestStripMdv2::test_preserves_snake_case",
        "tests/gateway/test_telegram_format.py::TestStripMdv2::test_preserves_multi_underscore_identifier",
        "tests/gateway/test_telegram_format.py::TestStripMdv2::test_plain_text_unchanged",
        "tests/gateway/test_telegram_format.py::TestStripMdv2::test_empty_string",
        "tests/gateway/test_telegram_format.py::TestStripMdv2::test_removes_strikethrough_markers",
        "tests/gateway/test_telegram_format.py::TestStripMdv2::test_removes_spoiler_markers",
        "tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_basic_table_rewritten_as_row_groups",
        "tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_bare_pipe_table_rewritten",
        "tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_alignment_separators",
        "tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_two_consecutive_tables_rewritten_separately",
        "tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_plain_text_with_pipes_not_wrapped",
        "tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_horizontal_rule_not_wrapped",
        "tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_existing_code_block_with_pipes_left_alone",
        "tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_no_pipe_character_short_circuits",
        "tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_no_dash_short_circuits",
        "tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_single_column_separator_not_matched",
        "tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_row_group_uses_single_newlines_within_group",
        "tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_row_label_column_preserves_first_bullet",
        "tests/gateway/test_telegram_format.py::TestFormatMessageTables::test_table_rendered_as_bullets",
        "tests/gateway/test_telegram_format.py::TestFormatMessageTables::test_text_after_table_still_formatted",
        "tests/gateway/test_telegram_format.py::TestFormatMessageTables::test_multiple_tables_in_single_message",
        "tests/gateway/test_telegram_format.py::test_send_escapes_chunk_indicator_for_markdownv2",
        "tests/gateway/test_telegram_format.py::TestEditMessageStreamingSafety::test_non_final_edit_uses_plain_text_without_markdown",
        "tests/gateway/test_telegram_format.py::TestEditMessageStreamingSafety::test_final_edit_uses_markdownv2_with_plain_fallback",
        "tests/gateway/test_telegram_format.py::TestEditMessageStreamingSafety::test_message_too_long_splits_into_continuations_not_silent_truncation",
        "tests/gateway/test_telegram_format.py::TestEditMessageStreamingSafety::test_message_too_long_continuations_preserve_topic_metadata",
        "tests/gateway/test_telegram_format.py::TestTelegramGuestMentionGating::test_guest_mode_allows_explicit_mention_outside_allowed_chats",
        "tests/gateway/test_telegram_format.py::TestTelegramGuestMentionGating::test_guest_mode_does_not_allow_reply_outside_allowed_chats",
        "tests/gateway/test_telegram_format.py::TestTelegramGuestMentionGating::test_guest_mode_disabled_keeps_allowed_chats_as_hard_gate_for_mentions",
        "tests/gateway/test_telegram_format.py::TestTelegramGuestMentionGating::test_guest_mode_allows_bot_command_entity_outside_allowed_chats",
        "tests/gateway/test_telegram_format.py::TestTelegramGuestMentionGating::test_guest_mode_allows_text_mention_entity_outside_allowed_chats",
        "tests/gateway/test_telegram_format.py::TestTelegramGuestMentionGating::test_guest_mode_allows_mention_in_caption_outside_allowed_chats"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0296-test_telegram_format.py.log",
      "output_sha256": "ad0b833929aeb2d287ac2c92213cff113ea4599470eb0ab58631a43b767cfb27",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_format.py",
      "test_file_sha256": "90f50fdd92dbfef0344f70c617f2e1fe0571d427d343a3df039f72c4ac6864c4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0297",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_forum_commands.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_forum_commands.py::test_ensure_forum_commands_skips_non_forum",
        "tests/gateway/test_telegram_forum_commands.py::test_ensure_forum_commands_skips_already_registered",
        "tests/gateway/test_telegram_forum_commands.py::test_ensure_forum_commands_registers_once",
        "tests/gateway/test_telegram_forum_commands.py::test_ensure_forum_commands_handles_set_failure",
        "tests/gateway/test_telegram_forum_commands.py::test_ensure_forum_commands_race_safety"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0297-test_telegram_forum_commands.py.log",
      "output_sha256": "00023c32c146397ed3e557af155a00dfe7a30656329b3ec2c49ef382cfc53791",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_forum_commands.py",
      "test_file_sha256": "bb838f5deaff0350624807db13b257d259db83389beebbc8d3d52b725b50505a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0298",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_group_gating.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_group_gating.py::test_review_space_collision_categories_fail_closed[customer_routes]",
        "tests/gateway/test_telegram_group_gating.py::test_review_space_collision_categories_fail_closed[trainer_routes]",
        "tests/gateway/test_telegram_group_gating.py::test_review_space_collision_categories_fail_closed[owner_scheduled_routes]",
        "tests/gateway/test_telegram_group_gating.py::test_review_space_collision_categories_fail_closed[generic_reserved_routes]",
        "tests/gateway/test_telegram_group_gating.py::test_adaptive_review_chat_topic_reserves_wrong_user_without_generic_downstream",
        "tests/gateway/test_telegram_group_gating.py::test_adaptive_review_unrelated_callback_is_reserved_before_generic_callbacks",
        "tests/gateway/test_telegram_group_gating.py::test_adaptive_customer_selection_renders_explicit_create_button",
        "tests/gateway/test_telegram_group_gating.py::test_adaptive_lifecycle_callback_confirms_visible_next_step[approved-\\uc2b9\\uc778 \\uc644\\ub8cc. \\ub2e4\\uc74c \\ub2e8\\uacc4\\ub294 \\ud65c\\uc131\\ud654\\ud558\\uae30\\uc785\\ub2c8\\ub2e4.]",
        "tests/gateway/test_telegram_group_gating.py::test_adaptive_lifecycle_callback_confirms_visible_next_step[activated-\\ud65c\\uc131\\ud654 \\uc644\\ub8cc. \\ub2e4\\uc74c \\ub2e8\\uacc4\\ub294 \\uace0\\uac1d \\uc804\\uc1a1 \\ud5c8\\uc6a9\\uc785\\ub2c8\\ub2e4.]",
        "tests/gateway/test_telegram_group_gating.py::test_adaptive_lifecycle_callback_confirms_visible_next_step[delivery_enabled-\\uc804\\uc1a1 \\ud5c8\\uc6a9 \\uc644\\ub8cc. \\ub2e4\\uc74c \\ub2e8\\uacc4\\ub294 \\uace0\\uac1d\\uc5d0\\uac8c \\uc804\\uc1a1\\uc785\\ub2c8\\ub2e4.]",
        "tests/gateway/test_telegram_group_gating.py::test_adaptive_terminal_delivery_replaces_send_card[sent_audited-\\uace0\\uac1d \\uc804\\uc1a1 \\ubc0f \\uac10\\uc0ac \\uae30\\ub85d \\uc644\\ub8cc.-False]",
        "tests/gateway/test_telegram_group_gating.py::test_adaptive_terminal_delivery_replaces_send_card[delivery_unknown-\\uc804\\uc1a1 \\uacb0\\uacfc \\ud655\\uc778 \\ubd88\\uac00. \\uc7ac\\uc804\\uc1a1\\ud558\\uc9c0 \\ub9c8\\uc138\\uc694.-False]",
        "tests/gateway/test_telegram_group_gating.py::test_adaptive_terminal_delivery_replaces_send_card[audit_pending-\\uace0\\uac1d \\uc804\\uc1a1 \\uc644\\ub8cc. \\uac10\\uc0ac \\uae30\\ub85d \\ubcf5\\uad6c\\uac00 \\ud544\\uc694\\ud569\\ub2c8\\ub2e4.-True]",
        "tests/gateway/test_telegram_group_gating.py::test_adaptive_edit_note_shows_persistent_reply_instruction",
        "tests/gateway/test_telegram_group_gating.py::test_adaptive_menu_rebinds_callbacks_to_published_bot_message",
        "tests/gateway/test_telegram_group_gating.py::test_adaptive_menu_rejects_missing_publication_message_id",
        "tests/gateway/test_telegram_group_gating.py::test_adaptive_card_with_invalid_grounding_is_not_published",
        "tests/gateway/test_telegram_group_gating.py::test_group_messages_can_be_opened_via_config",
        "tests/gateway/test_telegram_group_gating.py::test_unmentioned_group_messages_can_be_observed_without_dispatching",
        "tests/gateway/test_telegram_group_gating.py::test_foreign_sender_in_customer_topic_never_reaches_generic_agent",
        "tests/gateway/test_telegram_group_gating.py::test_customer_topic_is_reserved_from_all_generic_message_handlers",
        "tests/gateway/test_telegram_group_gating.py::test_enabled_customer_feature_load_failure_blocks_generic_ingress",
        "tests/gateway/test_telegram_group_gating.py::test_customer_topic_reserves_unknown_callback_namespaces",
        "tests/gateway/test_telegram_group_gating.py::test_observed_group_context_uses_shared_source_and_prompt_for_later_mentions",
        "tests/gateway/test_telegram_group_gating.py::test_observed_group_context_replays_as_current_message_context_not_user_turns",
        "tests/gateway/test_telegram_group_gating.py::test_observed_group_context_does_not_hide_current_user_turn_behind_history_offset",
        "tests/gateway/test_telegram_group_gating.py::test_observed_group_context_wraps_multimodal_current_message_without_mutating_parts",
        "tests/gateway/test_telegram_group_gating.py::test_observed_group_context_replays_normally_without_telegram_prompt",
        "tests/gateway/test_telegram_group_gating.py::test_observed_group_context_preserves_slash_command_text_for_dispatch",
        "tests/gateway/test_telegram_group_gating.py::test_unmentioned_group_observe_requires_chat_allowlist_for_shared_context",
        "tests/gateway/test_telegram_group_gating.py::test_shared_group_observe_source_is_authorized_by_group_allowed_chats",
        "tests/gateway/test_telegram_group_gating.py::test_unmentioned_group_observe_respects_chat_allowlist",
        "tests/gateway/test_telegram_group_gating.py::test_group_messages_can_require_direct_trigger_via_config",
        "tests/gateway/test_telegram_group_gating.py::test_explicit_multi_bot_mentions_route_only_to_named_bots",
        "tests/gateway/test_telegram_group_gating.py::test_entityless_multi_bot_mentions_still_route_exclusively",
        "tests/gateway/test_telegram_group_gating.py::test_intern_bots_ignore_messages_addressed_to_other_intern_bot",
        "tests/gateway/test_telegram_group_gating.py::test_bot_command_addressed_to_other_bot_is_exclusive_even_when_mentions_not_required",
        "tests/gateway/test_telegram_group_gating.py::test_raw_bot_mention_fallback_does_not_match_email_or_substring",
        "tests/gateway/test_telegram_group_gating.py::test_exclusive_bot_mentions_can_be_disabled_for_legacy_groups",
        "tests/gateway/test_telegram_group_gating.py::test_free_response_chats_bypass_mention_requirement",
        "tests/gateway/test_telegram_group_gating.py::test_guest_mode_allows_only_direct_mentions_outside_allowed_chats",
        "tests/gateway/test_telegram_group_gating.py::test_guest_mode_defaults_to_false_for_allowed_chat_bypass",
        "tests/gateway/test_telegram_group_gating.py::test_guest_mode_mention_dropped_in_ignored_thread",
        "tests/gateway/test_telegram_group_gating.py::test_ignored_threads_drop_group_messages_before_other_gates",
        "tests/gateway/test_telegram_group_gating.py::test_allowed_topics_drop_other_forum_topics_before_other_gates",
        "tests/gateway/test_telegram_group_gating.py::test_allowed_topics_do_not_filter_dms",
        "tests/gateway/test_telegram_group_gating.py::test_allowed_topics_treat_missing_thread_as_general_topic",
        "tests/gateway/test_telegram_group_gating.py::test_regex_mention_patterns_allow_custom_wake_words",
        "tests/gateway/test_telegram_group_gating.py::test_invalid_regex_patterns_are_ignored",
        "tests/gateway/test_telegram_group_gating.py::test_config_bridges_telegram_group_settings",
        "tests/gateway/test_telegram_group_gating.py::test_config_bridges_telegram_user_allowlists",
        "tests/gateway/test_telegram_group_gating.py::test_config_env_overrides_telegram_user_allowlists",
        "tests/gateway/test_telegram_group_gating.py::test_dm_allow_from_is_enforced_by_gateway_authorization_not_trigger_gate",
        "tests/gateway/test_telegram_group_gating.py::test_group_allow_from_is_enforced_by_gateway_authorization_not_trigger_gate",
        "tests/gateway/test_telegram_group_gating.py::test_top_level_require_mention_bridges_to_telegram",
        "tests/gateway/test_telegram_group_gating.py::test_top_level_require_mention_does_not_override_telegram_section",
        "tests/gateway/test_telegram_group_gating.py::test_config_bridges_telegram_ignored_threads",
        "tests/gateway/test_telegram_group_gating.py::test_unmentioned_location_message_observed_in_group",
        "tests/gateway/test_telegram_group_gating.py::test_triggered_location_message_uses_shared_session_in_observe_mode",
        "tests/gateway/test_telegram_group_gating.py::test_unmentioned_voice_message_observed_in_group",
        "tests/gateway/test_telegram_group_gating.py::test_triggered_voice_message_uses_shared_session_in_observe_mode",
        "tests/gateway/test_telegram_group_gating.py::test_text_reply_to_photo_caches_referenced_media",
        "tests/gateway/test_telegram_group_gating.py::test_unmentioned_photo_observed_with_cached_path",
        "tests/gateway/test_telegram_group_gating.py::test_unmentioned_document_observed_with_cached_path",
        "tests/gateway/test_telegram_group_gating.py::test_unmentioned_large_document_observed_without_download",
        "tests/gateway/test_telegram_group_gating.py::test_unmentioned_unsupported_document_observed_without_caching",
        "tests/gateway/test_telegram_group_gating.py::test_review_surface_reserves_contact_edited_and_channel_ingress",
        "tests/gateway/test_telegram_group_gating.py::test_wrong_user_review_space_reserves_every_message_ingress_without_downstream[_handle_text_message-message]",
        "tests/gateway/test_telegram_group_gating.py::test_wrong_user_review_space_reserves_every_message_ingress_without_downstream[_handle_command-message]",
        "tests/gateway/test_telegram_group_gating.py::test_wrong_user_review_space_reserves_every_message_ingress_without_downstream[_handle_location_message-message]",
        "tests/gateway/test_telegram_group_gating.py::test_wrong_user_review_space_reserves_every_message_ingress_without_downstream[_handle_media_message-message:photo]",
        "tests/gateway/test_telegram_group_gating.py::test_wrong_user_review_space_reserves_every_message_ingress_without_downstream[_handle_media_message-message:video]",
        "tests/gateway/test_telegram_group_gating.py::test_wrong_user_review_space_reserves_every_message_ingress_without_downstream[_handle_media_message-message:document]",
        "tests/gateway/test_telegram_group_gating.py::test_wrong_user_review_space_reserves_every_message_ingress_without_downstream[_handle_media_message-message:audio]",
        "tests/gateway/test_telegram_group_gating.py::test_wrong_user_review_space_reserves_every_message_ingress_without_downstream[_handle_media_message-message:voice]",
        "tests/gateway/test_telegram_group_gating.py::test_wrong_user_review_space_reserves_every_message_ingress_without_downstream[_handle_media_message-message:sticker]",
        "tests/gateway/test_telegram_group_gating.py::test_wrong_user_review_space_reserves_every_message_ingress_without_downstream[_handle_contact_message-message:contact]",
        "tests/gateway/test_telegram_group_gating.py::test_wrong_user_review_space_reserves_every_message_ingress_without_downstream[_handle_edited_message-edited_message]",
        "tests/gateway/test_telegram_group_gating.py::test_wrong_user_review_space_reserves_every_message_ingress_without_downstream[_handle_channel_post-channel_post]",
        "tests/gateway/test_telegram_group_gating.py::test_wrong_user_review_space_reserves_every_message_ingress_without_downstream[_handle_edited_channel_post-edited_channel_post]",
        "tests/gateway/test_telegram_group_gating.py::test_unconfigured_nutrition_operator_never_probes_coordinator_owner",
        "tests/gateway/test_telegram_group_gating.py::test_legacy_nutrition_operator_review_is_not_an_adaptive_ingress",
        "tests/gateway/test_telegram_group_gating.py::test_legacy_nutrition_review_triple_routes_coaching_without_adaptive_ingress",
        "tests/gateway/test_telegram_group_gating.py::test_trainer_topic_keyboard_is_persistent_and_sent_once",
        "tests/gateway/test_telegram_group_gating.py::test_restart_recovery_rebuilds_validated_adaptive_inline_buttons"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0298-test_telegram_group_gating.py.log",
      "output_sha256": "62aafcb06ce6a5fc2cdc1176d13d07b5db6212c63cb76fdff280e2160042442e",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_group_gating.py",
      "test_file_sha256": "9c70fef3731225e2a55bfb9456b87be215a43d1dd5f8149c4954d4c4c0e9810b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0299",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_max_doc_bytes.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_max_doc_bytes.py::test_max_doc_bytes_defaults_to_20mb_without_base_url",
        "tests/gateway/test_telegram_max_doc_bytes.py::test_max_doc_bytes_raised_to_2gb_when_base_url_set",
        "tests/gateway/test_telegram_max_doc_bytes.py::test_max_doc_bytes_empty_base_url_keeps_default"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0299-test_telegram_max_doc_bytes.py.log",
      "output_sha256": "0eaa24ab15018469454ed27d836c3788daf1264b774cb53b7e6808dff6ac42e3",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_max_doc_bytes.py",
      "test_file_sha256": "9cfaefd22981e15bb9e03affb254f4796f4f4af14bdb8f7ed7e987a72da4edbc"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0300",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_mention_boundaries.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_mention_boundaries.py::TestRealMentionsAreDetected::test_mention_at_start_of_message",
        "tests/gateway/test_telegram_mention_boundaries.py::TestRealMentionsAreDetected::test_mention_mid_sentence",
        "tests/gateway/test_telegram_mention_boundaries.py::TestRealMentionsAreDetected::test_mention_at_end_of_message",
        "tests/gateway/test_telegram_mention_boundaries.py::TestRealMentionsAreDetected::test_mention_in_caption",
        "tests/gateway/test_telegram_mention_boundaries.py::TestRealMentionsAreDetected::test_text_mention_entity_targets_bot",
        "tests/gateway/test_telegram_mention_boundaries.py::TestSubstringFalsePositivesAreRejected::test_email_like_substring",
        "tests/gateway/test_telegram_mention_boundaries.py::TestSubstringFalsePositivesAreRejected::test_hostname_substring",
        "tests/gateway/test_telegram_mention_boundaries.py::TestSubstringFalsePositivesAreRejected::test_superstring_username",
        "tests/gateway/test_telegram_mention_boundaries.py::TestSubstringFalsePositivesAreRejected::test_underscore_suffix_substring",
        "tests/gateway/test_telegram_mention_boundaries.py::TestSubstringFalsePositivesAreRejected::test_substring_inside_url_without_entity",
        "tests/gateway/test_telegram_mention_boundaries.py::TestSubstringFalsePositivesAreRejected::test_substring_inside_code_block_without_entity",
        "tests/gateway/test_telegram_mention_boundaries.py::TestSubstringFalsePositivesAreRejected::test_plain_text_with_no_at_sign",
        "tests/gateway/test_telegram_mention_boundaries.py::TestSubstringFalsePositivesAreRejected::test_email_substring_in_caption",
        "tests/gateway/test_telegram_mention_boundaries.py::TestEntityEdgeCases::test_mention_entity_for_different_username",
        "tests/gateway/test_telegram_mention_boundaries.py::TestEntityEdgeCases::test_text_mention_entity_for_different_user",
        "tests/gateway/test_telegram_mention_boundaries.py::TestEntityEdgeCases::test_malformed_entity_with_negative_offset",
        "tests/gateway/test_telegram_mention_boundaries.py::TestEntityEdgeCases::test_malformed_entity_with_zero_length",
        "tests/gateway/test_telegram_mention_boundaries.py::TestCaseInsensitivity::test_uppercase_mention",
        "tests/gateway/test_telegram_mention_boundaries.py::TestCaseInsensitivity::test_mixed_case_mention"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0300-test_telegram_mention_boundaries.py.log",
      "output_sha256": "19c5dac076b3ec02f8307c1549e53c7ee54aceb354a326f2530135a4a5fa1456",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_mention_boundaries.py",
      "test_file_sha256": "5251e7b7ecd7db44d58933d6344073215101f100f8207e16ab08950bb607c08c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0301",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_model_picker.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_model_picker.py::TestTelegramModelPicker::test_send_model_picker_escapes_dynamic_provider_label",
        "tests/gateway/test_telegram_model_picker.py::TestTelegramModelPicker::test_back_button_escapes_dynamic_provider_label",
        "tests/gateway/test_telegram_model_picker.py::TestTelegramModelPicker::test_model_selected_edits_message_on_success",
        "tests/gateway/test_telegram_model_picker.py::TestTelegramModelPicker::test_provider_group_folds_and_drills_down",
        "tests/gateway/test_telegram_model_picker.py::TestTelegramModelPicker::test_expensive_model_requires_confirmation",
        "tests/gateway/test_telegram_model_picker.py::TestTelegramModelPicker::test_retries_without_thread_when_thread_not_found"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0301-test_telegram_model_picker.py.log",
      "output_sha256": "acf764459cce692c8d0d63c86938220b4ee437bc836f6e7bf33175281aa745e6",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_model_picker.py",
      "test_file_sha256": "4466ced9cc882c81857fdaddad6e53a1fdca8b296f13d71aaa2c48b4402e8d5d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0302",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_network.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_network.py::TestParseFallbackIpEnv::test_filters_invalid_and_ipv6",
        "tests/gateway/test_telegram_network.py::TestParseFallbackIpEnv::test_none_returns_empty",
        "tests/gateway/test_telegram_network.py::TestParseFallbackIpEnv::test_empty_string_returns_empty",
        "tests/gateway/test_telegram_network.py::TestParseFallbackIpEnv::test_whitespace_only_returns_empty",
        "tests/gateway/test_telegram_network.py::TestParseFallbackIpEnv::test_single_valid_ip",
        "tests/gateway/test_telegram_network.py::TestParseFallbackIpEnv::test_multiple_valid_ips",
        "tests/gateway/test_telegram_network.py::TestParseFallbackIpEnv::test_rejects_leading_zeros",
        "tests/gateway/test_telegram_network.py::TestNormalizeFallbackIps::test_deduplication_happens_at_transport_level",
        "tests/gateway/test_telegram_network.py::TestNormalizeFallbackIps::test_empty_strings_skipped",
        "tests/gateway/test_telegram_network.py::TestRewriteRequestForIp::test_preserves_host_and_sni",
        "tests/gateway/test_telegram_network.py::TestRewriteRequestForIp::test_preserves_method_and_path",
        "tests/gateway/test_telegram_network.py::TestFallbackTransport::test_falls_back_on_connect_timeout_and_becomes_sticky",
        "tests/gateway/test_telegram_network.py::TestFallbackTransport::test_falls_back_on_connect_error",
        "tests/gateway/test_telegram_network.py::TestFallbackTransport::test_does_not_fallback_on_non_connect_error",
        "tests/gateway/test_telegram_network.py::TestFallbackTransport::test_all_ips_fail_raises_last_error",
        "tests/gateway/test_telegram_network.py::TestFallbackTransport::test_multiple_fallback_ips_tried_in_order",
        "tests/gateway/test_telegram_network.py::TestFallbackTransport::test_sticky_ip_tried_first_but_falls_through_if_stale",
        "tests/gateway/test_telegram_network.py::TestFallbackTransportPassthrough::test_non_telegram_host_bypasses_fallback",
        "tests/gateway/test_telegram_network.py::TestFallbackTransportPassthrough::test_empty_fallback_list_uses_primary_only",
        "tests/gateway/test_telegram_network.py::TestFallbackTransportPassthrough::test_primary_succeeds_no_fallback_needed",
        "tests/gateway/test_telegram_network.py::TestFallbackTransportInit::test_deduplicates_fallback_ips",
        "tests/gateway/test_telegram_network.py::TestFallbackTransportInit::test_filters_invalid_ips_at_init",
        "tests/gateway/test_telegram_network.py::TestFallbackTransportInit::test_uses_proxy_env_for_primary_and_fallback_transports",
        "tests/gateway/test_telegram_network.py::TestFallbackTransportInit::test_no_proxy_bypasses_fallback_ip_cidr",
        "tests/gateway/test_telegram_network.py::TestFallbackTransportClose::test_aclose_closes_all_transports",
        "tests/gateway/test_telegram_network.py::TestConfigFallbackIps::test_env_var_populates_config_extra",
        "tests/gateway/test_telegram_network.py::TestConfigFallbackIps::test_env_var_creates_platform_if_missing",
        "tests/gateway/test_telegram_network.py::TestConfigFallbackIps::test_env_var_strips_whitespace",
        "tests/gateway/test_telegram_network.py::TestConfigFallbackIps::test_empty_env_var_does_not_populate",
        "tests/gateway/test_telegram_network.py::TestAdapterFallbackIps::test_list_in_extra",
        "tests/gateway/test_telegram_network.py::TestAdapterFallbackIps::test_csv_string_in_extra",
        "tests/gateway/test_telegram_network.py::TestAdapterFallbackIps::test_empty_extra",
        "tests/gateway/test_telegram_network.py::TestAdapterFallbackIps::test_no_extra_attr",
        "tests/gateway/test_telegram_network.py::TestAdapterFallbackIps::test_invalid_ips_filtered",
        "tests/gateway/test_telegram_network.py::TestDiscoverFallbackIps::test_google_and_cloudflare_ips_collected",
        "tests/gateway/test_telegram_network.py::TestDiscoverFallbackIps::test_system_dns_ip_kept_when_doh_confirms",
        "tests/gateway/test_telegram_network.py::TestDiscoverFallbackIps::test_doh_results_deduplicated",
        "tests/gateway/test_telegram_network.py::TestDiscoverFallbackIps::test_doh_timeout_falls_back_to_seed",
        "tests/gateway/test_telegram_network.py::TestDiscoverFallbackIps::test_doh_connect_error_falls_back_to_seed",
        "tests/gateway/test_telegram_network.py::TestDiscoverFallbackIps::test_doh_malformed_json_falls_back_to_seed",
        "tests/gateway/test_telegram_network.py::TestDiscoverFallbackIps::test_one_provider_fails_other_succeeds",
        "tests/gateway/test_telegram_network.py::TestDiscoverFallbackIps::test_system_dns_failure_keeps_all_doh_ips",
        "tests/gateway/test_telegram_network.py::TestDiscoverFallbackIps::test_all_doh_ips_same_as_system_dns_kept",
        "tests/gateway/test_telegram_network.py::TestDiscoverFallbackIps::test_cloudflare_gets_accept_header",
        "tests/gateway/test_telegram_network.py::TestDiscoverFallbackIps::test_non_a_records_ignored",
        "tests/gateway/test_telegram_network.py::TestDiscoverFallbackIps::test_invalid_ip_in_doh_response_skipped"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0302-test_telegram_network.py.log",
      "output_sha256": "a8a16d10ec8409202cafbe5f1a4feea712038c3880c22527c53ae79041c9ed91",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_network.py",
      "test_file_sha256": "91a3dd9e1a9ecf840119d5213ba90749e6651175449c7ab8a6e1ed821445d6a4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0303",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_network_reconnect.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_network_reconnect.py::test_reconnect_self_schedules_on_start_polling_failure",
        "tests/gateway/test_telegram_network_reconnect.py::test_reconnect_does_not_self_schedule_when_fatal_error_set",
        "tests/gateway/test_telegram_network_reconnect.py::test_reconnect_success_resets_error_count",
        "tests/gateway/test_telegram_network_reconnect.py::test_reconnect_triggers_fatal_after_max_retries",
        "tests/gateway/test_telegram_network_reconnect.py::test_reconnect_drains_polling_request_only",
        "tests/gateway/test_telegram_network_reconnect.py::test_reconnect_continues_if_drain_fails",
        "tests/gateway/test_telegram_network_reconnect.py::test_initialize_still_runs_when_shutdown_fails",
        "tests/gateway/test_telegram_network_reconnect.py::test_conflict_retry_also_drains_polling_connections",
        "tests/gateway/test_telegram_network_reconnect.py::test_drain_helper_noop_without_app",
        "tests/gateway/test_telegram_network_reconnect.py::test_heartbeat_probe_no_op_when_polling_healthy",
        "tests/gateway/test_telegram_network_reconnect.py::test_heartbeat_probe_reenters_ladder_when_updater_not_running",
        "tests/gateway/test_telegram_network_reconnect.py::test_heartbeat_probe_reenters_ladder_when_get_me_times_out",
        "tests/gateway/test_telegram_network_reconnect.py::test_heartbeat_probe_reenters_ladder_on_get_me_network_error",
        "tests/gateway/test_telegram_network_reconnect.py::test_heartbeat_probe_skips_when_already_fatal",
        "tests/gateway/test_telegram_network_reconnect.py::test_reconnect_schedules_heartbeat_probe_on_success"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0303-test_telegram_network_reconnect.py.log",
      "output_sha256": "cedda60c8ccc9192917cfe2367c9ee025c4b0f0da31e15299889f1d824404f6b",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_network_reconnect.py",
      "test_file_sha256": "62ed4f9ebfd41c038b483c8503acc971502bc6dcd60bf4c9e264d790a51d1055"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0304",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_noise_filter.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_noise_filter.py::test_telegram_status_suppresses_auxiliary_and_retry_noise",
        "tests/gateway/test_telegram_noise_filter.py::test_non_telegram_status_is_unchanged",
        "tests/gateway/test_telegram_noise_filter.py::test_telegram_status_sanitizes_raw_provider_security_errors",
        "tests/gateway/test_telegram_noise_filter.py::test_telegram_final_response_sanitizes_raw_provider_errors",
        "tests/gateway/test_telegram_noise_filter.py::test_telegram_final_response_redacts_auth_secrets",
        "tests/gateway/test_telegram_noise_filter.py::test_telegram_final_response_keeps_normal_answers"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0304-test_telegram_noise_filter.py.log",
      "output_sha256": "1c4923d504d30a1830baf7e3e95526cee5c874c948773da0cecd95874b802472",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_noise_filter.py",
      "test_file_sha256": "19b4c87bb94e8c441c592f4bbd7329abf3a72882d34f1a6b3c3b3f4a91a611aa"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0305",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_operator_notification_recovery.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_operator_notification_recovery.py::test_safety_hold_acknowledgement_is_append_only_and_idempotent",
        "tests/gateway/test_telegram_operator_notification_recovery.py::test_runtime_acknowledges_hold_without_domain_transition",
        "tests/gateway/test_telegram_operator_notification_recovery.py::test_acknowledged_hold_does_not_republish_on_successor_startup",
        "tests/gateway/test_telegram_operator_notification_recovery.py::test_safety_hold_card_exposes_owner_risk_action_only_when_authorized",
        "tests/gateway/test_telegram_operator_notification_recovery.py::test_enabling_owner_risk_republishes_acknowledged_hold_card",
        "tests/gateway/test_telegram_operator_notification_recovery.py::test_owner_risk_capability_requires_exact_candidate_owner_and_seal",
        "tests/gateway/test_telegram_operator_notification_recovery.py::test_owner_risk_callback_transitions_and_publishes_owner_review",
        "tests/gateway/test_telegram_operator_notification_recovery.py::test_owner_approval_preflights_plan_before_committing_review",
        "tests/gateway/test_telegram_operator_notification_recovery.py::test_recovery_capability_requires_exact_candidate_owner_and_seal",
        "tests/gateway/test_telegram_operator_notification_recovery.py::test_unacknowledged_hold_republishes_once_per_candidate_epoch",
        "tests/gateway/test_telegram_operator_notification_recovery.py::test_startup_recovers_hold_when_bootstrap_consent_handoff_is_missing",
        "tests/gateway/test_telegram_operator_notification_recovery.py::test_status_recovery_then_same_candidate_restart_is_deduplicated",
        "tests/gateway/test_telegram_operator_notification_recovery.py::test_operator_status_recovers_current_card_only_for_exact_owner",
        "tests/gateway/test_telegram_operator_notification_recovery.py::test_status_command_uses_deterministic_onboarding_recovery"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0305-test_telegram_operator_notification_recovery.py.log",
      "output_sha256": "eb9f3339bde73b855c1f2c01abb59824551433ecde8516631b21fb02ae6e2221",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_operator_notification_recovery.py",
      "test_file_sha256": "d68c0bccc29d86fcec0d9c48a9d1b91ddaf5f87a977771af681e2b5ed689a48e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0306",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_overflow_partial.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_overflow_partial.py::test_edit_overflow_split_reports_success_when_all_continuations_land",
        "tests/gateway/test_telegram_overflow_partial.py::test_edit_overflow_split_reports_later_partial_failure_after_some_continuations_land",
        "tests/gateway/test_telegram_overflow_partial.py::test_edit_overflow_split_reports_partial_failure_when_continuation_fails",
        "tests/gateway/test_telegram_overflow_partial.py::test_stream_consumer_fallback_sends_tail_after_partial_overflow"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0306-test_telegram_overflow_partial.py.log",
      "output_sha256": "968d10b3531042a8e023f49ac9cabe656c5bdea3c4edaffa4c82715b58f220f9",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_overflow_partial.py",
      "test_file_sha256": "9ae358654ed570403780a538dbf380e3947bb2a6fb5413520d06f6f49e2d3050"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0307",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_photo_interrupts.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_photo_interrupts.py::test_handle_message_does_not_priority_interrupt_photo_followup"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0307-test_telegram_photo_interrupts.py.log",
      "output_sha256": "6a19c173242f0faa775ac54478af506488404d65a59e89d245ca32c0b38993c7",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_photo_interrupts.py",
      "test_file_sha256": "869836a33e405d5b5d111fd9a41a2099945e159ab465d9d3a3e72d4210a16f8e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0308",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_physique_checkin.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCallbackGrammar::test_callback_data_is_compact_and_contains_no_answer",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCallbackGrammar::test_callback_data_rejects_oversize_or_personal_value_actions",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCallbackGrammar::test_customer_nutrition_steps_fit_the_opaque_callback_contract",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCallbackGrammar::test_callback_grammar_accepts_only_canonical_adaptive_steps[Q-SLEEP-CAUSE]",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCallbackGrammar::test_callback_grammar_accepts_only_canonical_adaptive_steps[Q-SLEEP-ADJUST]",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCallbackGrammar::test_callback_grammar_accepts_only_canonical_adaptive_steps[Q-COND-SYMPTOM]",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCallbackGrammar::test_callback_grammar_accepts_only_canonical_adaptive_steps[Q-COND-INTENSITY]",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCallbackGrammar::test_callback_grammar_accepts_only_canonical_adaptive_steps[Q-PERF-REASON]",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCallbackGrammar::test_callback_grammar_accepts_only_canonical_adaptive_steps[Q-PERF-NEXT]",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_finalized_snapshot_exports_branch_state_for_grounding",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_urgent_text_reaches_safety_transition_during_button_only_step",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_all_fixed_coach_prompts_use_honorific_korean[morning]",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_all_fixed_coach_prompts_use_honorific_korean[workout]",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_all_fixed_coach_prompts_use_honorific_korean[nutrition_daily]",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_customer_nutrition_edit_menu_uses_compact_korean_fields",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_summary_uses_three_compact_actions_and_a_flow_specific_two_column_edit_menu",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_edit_tab_changes_the_same_binding_screen_and_field_callback_enters_correction",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_disabled_config_is_a_true_noop",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_optional_topic_allowlists_must_match_the_exact_wizard_target",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_start_binds_exact_owner_chat_topic_and_message",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_recovery_command_boundary_requires_exact_owner_chat_and_topic",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_replay_and_expiry_are_rejected_without_mutating_service",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_typed_value_requires_exact_active_binding_then_bypasses_agent",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_model_can_mark_missing_bodyweight_and_advance_without_creating_a_trend_value",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_model_can_rewrite_the_current_sleep_quality_prompt_without_advancing_the_draft",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_all_rendered_callbacks_are_opaque_and_telegram_sized",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_typed_action_replaces_buttons_with_the_exact_expected_question",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_fresh_bridge_rehydrates_persisted_active_draft_and_consumes_typed_value",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueCheckinBridge::test_trainer_bridge_start_to_save_scopes_event_to_registered_customer",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_nutrition_private_dm_address_uses_registry_topic_zero",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_completed_customer_checkin_publishes_generation_card_only_to_operator_topic",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_dedicated_operator_topic_maps_to_canonical_owner_actor",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_operator_draft_view_lists_every_final_checkin_field",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_natural_language_source_approval_consumes_the_latest_notified_candidate",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_today_feedback_replay_uses_saved_checkin_after_a_new_launcher_replaces_active_session",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_source_review_callback_requires_the_exact_owner_topic_and_approves_one_candidate",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_summary_keyboard_keeps_three_actions_in_one_telegram_row",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_disabled_pc1_callback_falls_through_existing_router",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_enabled_pc1_text_is_consumed_before_generic_aggregation",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_invalid_anonymous_natural_language_wizard_text_uses_model_without_generic_ingress",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_active_natural_language_turn_uses_model_action_instead_of_static_invalid_template",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_anonymous_sleep_quality_feedback_rewrites_the_active_card_without_generic_ingress",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_target_topic_conversation_uses_isolated_chos_coach_model_without_generic_ingress",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_anonymous_typed_value_uses_owner_only_for_the_exact_opted_in_topic",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_anonymous_typed_value_uses_sender_chat_when_telegram_supplies_a_fake_user",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_expired_target_numeric_answer_reopens_checkin_instead_of_reaching_generic_agent",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_expired_real_binding_numeric_answer_is_recovered_before_generic_ingress",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_owner_recovery_command_sends_one_topic_bound_card_before_generic_ingress",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_foreign_or_wrong_topic_recovery_command_is_denied_before_generic_ingress",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_failed_scheduled_launch_recovers_once_by_owner_command_without_automatic_retry",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_enabled_pc1_callback_is_consumed_before_existing_callbacks",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_typed_action_edits_the_same_topic_prompt_to_a_direct_question",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_save_callback_records_once_and_replaces_summary_with_confirmation",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_saved_checkin_defers_model_feedback_to_worker_without_generic_ingress",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_final_feedback_request_includes_profile_doctrine_and_verified_history",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_launcher_shows_kst_date_and_korean_weekday_in_its_topic_card",
        "tests/gateway/test_telegram_physique_checkin.py::TestPhysiqueTelegramAdapterIngress::test_inline_card_capability_is_inert_when_profile_feature_is_disabled",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionCopySurfaces::test_daily_copy_keeps_the_approved_sections_and_spacing",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionCopySurfaces::test_daily_copy_fails_closed_when_facts_or_model_are_missing",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionCopySurfaces::test_weekly_copy_renders_averages_rate_judgment_and_actions",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionCopySurfaces::test_weekly_copy_fails_closed_when_no_report_data_exists",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionScheduleDelivery::test_tick_success_persists_audited_receipt",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionScheduleDelivery::test_provider_timeout_is_unknown_and_never_retried",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionScheduleDelivery::test_delivered_receipt_restarts_into_audit_without_provider",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionScheduleDelivery::test_duplicate_tick_has_one_provider_delivery",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionScheduleDelivery::test_concurrent_ticks_share_one_durable_provider_authority",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionScheduleDelivery::test_orphan_tombstone_recovery_is_terminal_and_never_calls_provider",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionScheduleDelivery::test_invalid_cutover_fence_sends_nothing[preparing]",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionScheduleDelivery::test_invalid_cutover_fence_sends_nothing[corrupt]",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionScheduleDelivery::test_daily_customer_and_weekly_owner_destinations_are_pinned",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionScheduleDelivery::test_dual_coach_reminder_is_static_pinned_and_exactly_once",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionScheduleDelivery::test_terminal_response_after_sending_abandons_without_provider_or_review",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionScheduleDelivery::test_dual_coach_reminder_stale_authority_never_calls_provider[registration]",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionScheduleDelivery::test_dual_coach_reminder_stale_authority_never_calls_provider[destination]",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionScheduleDelivery::test_dual_coach_reminder_stale_authority_never_calls_provider[config]",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionScheduleDelivery::test_dual_coach_reminder_provider_unknown_is_never_retried",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionScheduleDelivery::test_dual_coach_reminder_explicit_no_send_rejection_is_replaceable",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionScheduleDelivery::test_dual_coach_reminder_ambiguous_rejection_remains_unknown",
        "tests/gateway/test_telegram_physique_checkin.py::TestNutritionScheduleDelivery::test_dual_coach_reminder_expired_audited_delivery_creates_one_review",
        "tests/gateway/test_telegram_physique_checkin.py::test_coaching_stage_uses_resolved_provider_token_parameter",
        "tests/gateway/test_telegram_physique_checkin.py::TestStrictCoachingClosure::test_malformed_grounding_containers_are_canonical_with_empty_binding",
        "tests/gateway/test_telegram_physique_checkin.py::TestStrictCoachingClosure::test_revision_drift_before_stage_one_skips_grounding_and_model",
        "tests/gateway/test_telegram_physique_checkin.py::TestStrictCoachingClosure::test_revision_drift_between_stages_discards_model_output",
        "tests/gateway/test_telegram_physique_checkin.py::TestStrictCoachingClosure::test_adaptive_payload_requires_exact_proposal_revision_and_digest",
        "tests/gateway/test_telegram_physique_checkin.py::TestStrictCoachingClosure::test_daily_publication_rechecks_revision_before_edit",
        "tests/gateway/test_telegram_physique_checkin.py::TestStrictCoachingClosure::test_adaptive_publication_rechecks_revision_before_reservation",
        "tests/gateway/test_telegram_physique_checkin.py::test_dual_coach_review_recovery_is_topic_bound_and_deduplicated",
        "tests/gateway/test_telegram_physique_checkin.py::test_topic_59_dual_coach_drain_coexists_with_adaptive_operator",
        "tests/gateway/test_telegram_physique_checkin.py::test_dual_coach_review_runtime_drain_requires_topic_59_and_persists_receipt",
        "tests/gateway/test_telegram_physique_checkin.py::test_normal_adaptive_card_redacts_lifecycle_diagnostics"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0308-test_telegram_physique_checkin.py.log",
      "output_sha256": "71056e832686c15eb48a007587851d0cfe44a6280540b6f6ed17476dee66e129",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_physique_checkin.py",
      "test_file_sha256": "9cce639f96437bffb3f599dc1817bc4255cd87267e5bbecf539d2ceaa1ec2297"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0309",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_progress_edit_transient.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_progress_edit_transient.py::test_transient_errors_are_classified_as_transient[httpx.ConnectError: Connection refused]",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_transient_errors_are_classified_as_transient[telegram.error.NetworkError: httpx.ConnectError]",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_transient_errors_are_classified_as_transient[NetworkError: remote end closed connection without response]",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_transient_errors_are_classified_as_transient[httpx.ReadTimeout: read timed out]",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_transient_errors_are_classified_as_transient[ReadTimeout: timed out]",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_transient_errors_are_classified_as_transient[Server disconnected]",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_transient_errors_are_classified_as_transient[Temporarily unavailable]",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_transient_errors_are_classified_as_transient[Temporary failure in name resolution]",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_transient_errors_are_classified_as_transient[Connection error: failed to connect]",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_permanent_errors_are_not_transient[Bad Request: message to edit not found]",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_permanent_errors_are_not_transient[Bad Request: message can't be edited]",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_permanent_errors_are_not_transient[Bad Request: not enough rights to edit the message]",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_permanent_errors_are_not_transient[Bad Request: MESSAGE_ID_INVALID]",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_permanent_errors_are_not_transient[flood_control:30.0]",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_permanent_errors_are_not_transient[Forbidden: bot was blocked by the user]",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_send_result_retryable_default_is_false",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_send_result_retryable_can_be_set_true",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_send_result_retryable_false_for_permanent",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_transient_failure_keeps_can_edit_true",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_permanent_failure_sets_can_edit_false",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_multiple_transient_then_success_keeps_can_edit_true",
        "tests/gateway/test_telegram_progress_edit_transient.py::test_flood_control_sets_can_edit_false"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0309-test_telegram_progress_edit_transient.py.log",
      "output_sha256": "ce7a4fa3578cb16585ada920f58ce5116213e39f5fdadf69318eec93ce54cbd1",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_progress_edit_transient.py",
      "test_file_sha256": "b1732a19137d98b04296ff81fefbc4bf63016f88d818f5b05301f2005a9f5559"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0310",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_reactions.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_reactions.py::test_reactions_disabled_by_default",
        "tests/gateway/test_telegram_reactions.py::test_reactions_enabled_when_set_true",
        "tests/gateway/test_telegram_reactions.py::test_reactions_enabled_with_1",
        "tests/gateway/test_telegram_reactions.py::test_reactions_disabled_with_false",
        "tests/gateway/test_telegram_reactions.py::test_reactions_disabled_with_0",
        "tests/gateway/test_telegram_reactions.py::test_reactions_disabled_with_no",
        "tests/gateway/test_telegram_reactions.py::test_set_reaction_calls_bot_api",
        "tests/gateway/test_telegram_reactions.py::test_set_reaction_returns_false_without_bot",
        "tests/gateway/test_telegram_reactions.py::test_set_reaction_handles_api_error_gracefully",
        "tests/gateway/test_telegram_reactions.py::test_on_processing_start_adds_eyes_reaction",
        "tests/gateway/test_telegram_reactions.py::test_on_processing_start_skipped_when_disabled",
        "tests/gateway/test_telegram_reactions.py::test_on_processing_start_handles_missing_ids",
        "tests/gateway/test_telegram_reactions.py::test_on_processing_complete_success",
        "tests/gateway/test_telegram_reactions.py::test_on_processing_complete_failure",
        "tests/gateway/test_telegram_reactions.py::test_on_processing_complete_skipped_when_disabled",
        "tests/gateway/test_telegram_reactions.py::test_on_processing_complete_cancelled_clears_reaction",
        "tests/gateway/test_telegram_reactions.py::test_on_processing_complete_cancelled_skipped_when_disabled",
        "tests/gateway/test_telegram_reactions.py::test_clear_reactions_handles_api_error_gracefully",
        "tests/gateway/test_telegram_reactions.py::test_clear_reactions_returns_false_without_bot",
        "tests/gateway/test_telegram_reactions.py::test_config_bridges_telegram_reactions",
        "tests/gateway/test_telegram_reactions.py::test_config_reactions_env_takes_precedence"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0310-test_telegram_reactions.py.log",
      "output_sha256": "b0bc25c6e2b91ae4b87470e13db2943d5b8ae5cf07eec4cd6c3d2a16e62ff755",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_reactions.py",
      "test_file_sha256": "e9ee37c721c7801e78435989456902d1fde125e349f521deeff5ca2bff9013e4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0311",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_reply_mode.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_reply_mode.py::TestReplyToModeConfig::test_default_mode_is_first",
        "tests/gateway/test_telegram_reply_mode.py::TestReplyToModeConfig::test_off_mode",
        "tests/gateway/test_telegram_reply_mode.py::TestReplyToModeConfig::test_first_mode",
        "tests/gateway/test_telegram_reply_mode.py::TestReplyToModeConfig::test_all_mode",
        "tests/gateway/test_telegram_reply_mode.py::TestReplyToModeConfig::test_invalid_mode_stored_as_is",
        "tests/gateway/test_telegram_reply_mode.py::TestReplyToModeConfig::test_none_mode_defaults_to_first",
        "tests/gateway/test_telegram_reply_mode.py::TestReplyToModeConfig::test_empty_string_mode_defaults_to_first",
        "tests/gateway/test_telegram_reply_mode.py::TestShouldThreadReply::test_no_reply_to_returns_false",
        "tests/gateway/test_telegram_reply_mode.py::TestShouldThreadReply::test_off_mode_never_threads",
        "tests/gateway/test_telegram_reply_mode.py::TestShouldThreadReply::test_first_mode_only_first_chunk",
        "tests/gateway/test_telegram_reply_mode.py::TestShouldThreadReply::test_all_mode_all_chunks",
        "tests/gateway/test_telegram_reply_mode.py::TestShouldThreadReply::test_invalid_mode_falls_back_to_first",
        "tests/gateway/test_telegram_reply_mode.py::TestSendWithReplyToMode::test_off_mode_no_reply_threading",
        "tests/gateway/test_telegram_reply_mode.py::TestSendWithReplyToMode::test_first_mode_only_first_chunk_threads",
        "tests/gateway/test_telegram_reply_mode.py::TestSendWithReplyToMode::test_all_mode_all_chunks_thread",
        "tests/gateway/test_telegram_reply_mode.py::TestSendWithReplyToMode::test_no_reply_to_param_no_threading",
        "tests/gateway/test_telegram_reply_mode.py::TestSendWithReplyToMode::test_single_chunk_respects_mode",
        "tests/gateway/test_telegram_reply_mode.py::TestConfigSerialization::test_to_dict_includes_reply_to_mode",
        "tests/gateway/test_telegram_reply_mode.py::TestConfigSerialization::test_from_dict_loads_reply_to_mode",
        "tests/gateway/test_telegram_reply_mode.py::TestConfigSerialization::test_from_dict_defaults_to_first",
        "tests/gateway/test_telegram_reply_mode.py::TestEnvVarOverride::test_env_var_sets_off_mode",
        "tests/gateway/test_telegram_reply_mode.py::TestEnvVarOverride::test_env_var_sets_all_mode",
        "tests/gateway/test_telegram_reply_mode.py::TestEnvVarOverride::test_env_var_case_insensitive",
        "tests/gateway/test_telegram_reply_mode.py::TestEnvVarOverride::test_env_var_invalid_value_ignored",
        "tests/gateway/test_telegram_reply_mode.py::TestEnvVarOverride::test_env_var_empty_value_ignored",
        "tests/gateway/test_telegram_reply_mode.py::TestTelegramYamlConfigLoading::test_top_level_reply_to_mode_off",
        "tests/gateway/test_telegram_reply_mode.py::TestTelegramYamlConfigLoading::test_top_level_reply_to_mode_all",
        "tests/gateway/test_telegram_reply_mode.py::TestTelegramYamlConfigLoading::test_extra_reply_to_mode_off",
        "tests/gateway/test_telegram_reply_mode.py::TestTelegramYamlConfigLoading::test_env_var_takes_precedence_over_yaml",
        "tests/gateway/test_telegram_reply_mode.py::TestTelegramYamlConfigLoading::test_top_level_takes_precedence_over_extra",
        "tests/gateway/test_telegram_reply_mode.py::TestDMTopicFallbackReplyToMode::test_reply_to_id_suppressed_when_off",
        "tests/gateway/test_telegram_reply_mode.py::TestDMTopicFallbackReplyToMode::test_reply_to_id_returned_when_first",
        "tests/gateway/test_telegram_reply_mode.py::TestDMTopicFallbackReplyToMode::test_reply_to_id_returned_when_all",
        "tests/gateway/test_telegram_reply_mode.py::TestDMTopicFallbackReplyToMode::test_reply_to_id_returned_when_no_mode",
        "tests/gateway/test_telegram_reply_mode.py::TestDMTopicFallbackReplyToMode::test_explicit_reply_to_overrides_mode",
        "tests/gateway/test_telegram_reply_mode.py::TestDMTopicFallbackReplyToMode::test_thread_kwargs_suppressed_reply_anchor_when_off",
        "tests/gateway/test_telegram_reply_mode.py::TestDMTopicFallbackReplyToMode::test_thread_kwargs_returns_full_when_first",
        "tests/gateway/test_telegram_reply_mode.py::TestDMTopicFallbackReplyToMode::test_thread_kwargs_no_mode_backward_compat",
        "tests/gateway/test_telegram_reply_mode.py::TestDMTopicFallbackReplyToMode::test_send_dm_topic_off_no_quote",
        "tests/gateway/test_telegram_reply_mode.py::TestDMTopicFallbackReplyToMode::test_send_dm_topic_first_still_quotes"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0311-test_telegram_reply_mode.py.log",
      "output_sha256": "0546a74daffa35706c8f0102be49579eebc567d83477dd82bf40e1bd39f66f58",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_reply_mode.py",
      "test_file_sha256": "20f9f6fb62a1cdf9ce86eb959876246f3a7d8c5a88a9cfd20eb7da744db6d435"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0312",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_reply_quote.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_reply_quote.py::test_native_partial_quote_used_as_reply_to_text",
        "tests/gateway/test_telegram_reply_quote.py::test_full_reply_text_used_when_no_native_quote",
        "tests/gateway/test_telegram_reply_quote.py::test_caption_fallback_when_no_quote_and_no_text",
        "tests/gateway/test_telegram_reply_quote.py::test_empty_quote_text_falls_back_to_full_reply"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0312-test_telegram_reply_quote.py.log",
      "output_sha256": "9198b1d55355fea1e38b72816b8dba719b812263e12fb1e5c8d84ca06b464742",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_reply_quote.py",
      "test_file_sha256": "a60a608303d0813dafb0d2f50af430c3cf3fb7b436c90d592da80475c1da4c08"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0313",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_rich_messages.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_rich_messages.py::test_rich_result_shapes_extract_message_id[raw0-123]",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_result_shapes_extract_message_id[raw1-123]",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_result_shapes_extract_message_id[raw2-123]",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_result_shapes_extract_message_id[raw3-None]",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_happy_path_sends_raw_markdown",
        "tests/gateway/test_telegram_rich_messages.py::test_details_with_math_skips_rich_send_to_avoid_tdesktop_crash",
        "tests/gateway/test_telegram_rich_messages.py::test_details_without_math_still_uses_rich_send",
        "tests/gateway/test_telegram_rich_messages.py::test_math_outside_details_still_uses_rich_send",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_messages_opt_out_uses_legacy_send_path",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_messages_opt_out_accepts_string_false",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_messages_default_is_enabled",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_messages_can_be_opted_out",
        "tests/gateway/test_telegram_rich_messages.py::test_plain_markdown_stays_on_legacy_path",
        "tests/gateway/test_telegram_rich_messages.py::test_expect_edits_metadata_keeps_preview_on_legacy_path",
        "tests/gateway/test_telegram_rich_messages.py::test_oversized_content_skips_rich_and_chunks",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_limit_is_characters_not_bytes",
        "tests/gateway/test_telegram_rich_messages.py::test_permanent_rich_error_falls_back_to_legacy[exc0]",
        "tests/gateway/test_telegram_rich_messages.py::test_permanent_rich_error_falls_back_to_legacy[exc1]",
        "tests/gateway/test_telegram_rich_messages.py::test_unknown_endpoint_error_falls_back_to_legacy",
        "tests/gateway/test_telegram_rich_messages.py::test_capability_error_latches_rich_send_off",
        "tests/gateway/test_telegram_rich_messages.py::test_real_ptb_endpoint_missing_falls_back_and_latches_off[exc0]",
        "tests/gateway/test_telegram_rich_messages.py::test_real_ptb_endpoint_missing_falls_back_and_latches_off[exc1]",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_payload_preserves_link_preview_disable",
        "tests/gateway/test_telegram_rich_messages.py::test_per_message_bad_request_does_not_latch_off",
        "tests/gateway/test_telegram_rich_messages.py::test_transient_rich_error_does_not_legacy_resend[exc0]",
        "tests/gateway/test_telegram_rich_messages.py::test_transient_rich_error_does_not_legacy_resend[exc1]",
        "tests/gateway/test_telegram_rich_messages.py::test_transient_timeout_is_not_retryable",
        "tests/gateway/test_telegram_rich_messages.py::test_routing_thread_id_maps_to_message_thread_id",
        "tests/gateway/test_telegram_rich_messages.py::test_routing_direct_messages_topic_id_drops_message_thread_id",
        "tests/gateway/test_telegram_rich_messages.py::test_reply_to_propagates_as_reply_parameters",
        "tests/gateway/test_telegram_rich_messages.py::test_notification_silent_by_default",
        "tests/gateway/test_telegram_rich_messages.py::test_notification_opt_in_drops_disable_flag",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_gate_tolerates_minimal_bot_without_raw_endpoint",
        "tests/gateway/test_telegram_rich_messages.py::test_details_with_math_skips_rich_draft_to_avoid_tdesktop_crash",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_draft_happy_path_sends_raw_markdown",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_draft_capability_failure_falls_back_and_latches_off",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_draft_transient_failure_does_not_latch_off",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_draft_oversized_uses_legacy",
        "tests/gateway/test_telegram_rich_messages.py::test_prefers_fresh_final_streaming_stays_disabled_when_rich_enabled",
        "tests/gateway/test_telegram_rich_messages.py::test_prefers_fresh_final_streaming_honors_rich_opt_out",
        "tests/gateway/test_telegram_rich_messages.py::test_streaming_overflow_limit_is_rich_cap_when_enabled",
        "tests/gateway/test_telegram_rich_messages.py::test_streaming_overflow_limit_none_when_rich_opted_out",
        "tests/gateway/test_telegram_rich_messages.py::test_streaming_overflow_limit_none_when_rich_latched_off",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_draft_opt_out_uses_legacy",
        "tests/gateway/test_telegram_rich_messages.py::test_finalize_edit_uses_rich_for_table_content",
        "tests/gateway/test_telegram_rich_messages.py::test_finalize_edit_plain_content_stays_legacy",
        "tests/gateway/test_telegram_rich_messages.py::test_finalize_edit_rich_capability_error_falls_back_to_legacy",
        "tests/gateway/test_telegram_rich_messages.py::test_finalize_edit_rich_not_modified_is_success_noop",
        "tests/gateway/test_telegram_rich_messages.py::test_non_finalize_edit_never_uses_rich",
        "tests/gateway/test_telegram_rich_messages.py::test_finalize_edit_opt_out_uses_legacy",
        "tests/gateway/test_telegram_rich_messages.py::test_finalize_edit_rich_over_markdownv2_limit_not_split",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_reply_records_and_recovers_text",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_reply_lookup_miss_leaves_text_none",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_reply_native_quote_wins_over_lookup",
        "tests/gateway/test_telegram_rich_messages.py::test_rich_reply_caption_wins_over_lookup"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0313-test_telegram_rich_messages.py.log",
      "output_sha256": "55aeaa6f2731114fe95299429f4ecc662c669bd8aef3129f31cb9ce43cf5589a",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_rich_messages.py",
      "test_file_sha256": "6d8189066659f5a49b2a94b956d7ea6aa274b5508e54532ba5bfdd7eebfe43f6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0314",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_send_draft_format.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_send_draft_format.py::test_send_draft_passes_markdownv2_parse_mode",
        "tests/gateway/test_telegram_send_draft_format.py::test_send_draft_falls_back_to_plain_text_on_markdownv2_error",
        "tests/gateway/test_telegram_send_draft_format.py::test_send_draft_non_badrequest_propagates_without_retry"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0314-test_telegram_send_draft_format.py.log",
      "output_sha256": "9f4ec54354ae23633118538f77c789374cb93a611758abf6f37962712562cff0",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_send_draft_format.py",
      "test_file_sha256": "1ea6a7da3ee262fab284ee67d979cc7b83c32325989e640d2af33810cbea9fc8"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0315",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_send_path_health.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_send_path_health.py::test_send_succeeds_when_path_healthy",
        "tests/gateway/test_telegram_send_path_health.py::test_send_short_circuits_when_path_degraded",
        "tests/gateway/test_telegram_send_path_health.py::test_reconnect_storm_sets_and_heartbeat_clears_flag"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0315-test_telegram_send_path_health.py.log",
      "output_sha256": "2e5a3b26a5e6a0e77f3fe822edbf18b787e8368cd407e908f2c86cf1b8be6dca",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_send_path_health.py",
      "test_file_sha256": "0beb03198e832e0104e5ecd19646f44ec3224c474f6da64861fc7a20b37c3bc0"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0316",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_slash_confirm.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_slash_confirm.py::TestSendSlashConfirm::test_uses_markdown_v2_and_escapes_special_chars",
        "tests/gateway/test_telegram_slash_confirm.py::TestSendSlashConfirm::test_stores_slash_confirm_state",
        "tests/gateway/test_telegram_slash_confirm.py::TestSendSlashConfirm::test_not_connected_returns_failure"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0316-test_telegram_slash_confirm.py.log",
      "output_sha256": "4420d29658c6f38dfa61bbd89b9cd6725fe3c2684b081a563dddd895b658a83d",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_slash_confirm.py",
      "test_file_sha256": "66f6492e9263471b2a930424e6ce956c68531fc01bc32010a7a03256f663d981"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0317",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_status_indicator.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_status_indicator.py::test_disabled_by_default",
        "tests/gateway/test_telegram_status_indicator.py::test_enabled_via_extra",
        "tests/gateway/test_telegram_status_indicator.py::test_disabled_is_noop",
        "tests/gateway/test_telegram_status_indicator.py::test_online_sets_default_text",
        "tests/gateway/test_telegram_status_indicator.py::test_offline_sets_default_text",
        "tests/gateway/test_telegram_status_indicator.py::test_custom_status_strings",
        "tests/gateway/test_telegram_status_indicator.py::test_text_truncated_to_120_chars",
        "tests/gateway/test_telegram_status_indicator.py::test_noop_when_bot_is_none",
        "tests/gateway/test_telegram_status_indicator.py::test_api_failure_is_swallowed"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0317-test_telegram_status_indicator.py.log",
      "output_sha256": "1241689ec9588f07d24d8453425961a17d23d6b02c96f158ffb4d8f1e9794bfd",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_status_indicator.py",
      "test_file_sha256": "259e73c2d237fc0e9756e7afcf0f01a8450c943cc9c26a0715bd95fefdf14267"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0318",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_status_update.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_status_update.py::test_first_call_sends_and_caches_message_id",
        "tests/gateway/test_telegram_status_update.py::test_second_call_edits_in_place",
        "tests/gateway/test_telegram_status_update.py::test_edit_failure_falls_back_to_fresh_send",
        "tests/gateway/test_telegram_status_update.py::test_distinct_status_keys_do_not_collide",
        "tests/gateway/test_telegram_status_update.py::test_distinct_chat_ids_do_not_collide"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0318-test_telegram_status_update.py.log",
      "output_sha256": "2b5c72295e0724aae4f9cf45edde217429db27be5463c14055cb5a530e004360",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_status_update.py",
      "test_file_sha256": "e9de210acee49522a967adf96f8d815c74622b5f3cf8e65f09946063fa2985fb"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0319",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_text_batch_perf.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_text_batch_perf.py::TestEnvFloatClamped::test_default_when_unset",
        "tests/gateway/test_telegram_text_batch_perf.py::TestEnvFloatClamped::test_parses_valid_value",
        "tests/gateway/test_telegram_text_batch_perf.py::TestEnvFloatClamped::test_falls_back_to_default_on_garbage",
        "tests/gateway/test_telegram_text_batch_perf.py::TestEnvFloatClamped::test_rejects_nan",
        "tests/gateway/test_telegram_text_batch_perf.py::TestEnvFloatClamped::test_rejects_inf",
        "tests/gateway/test_telegram_text_batch_perf.py::TestEnvFloatClamped::test_clamps_below_min",
        "tests/gateway/test_telegram_text_batch_perf.py::TestEnvFloatClamped::test_clamps_above_max",
        "tests/gateway/test_telegram_text_batch_perf.py::TestAdaptiveTextBatchTiers::test_class_constants_are_sensible",
        "tests/gateway/test_telegram_text_batch_perf.py::TestAdaptiveTextBatchTiers::test_fast_tier_uses_min_with_configured_cap",
        "tests/gateway/test_telegram_text_batch_perf.py::TestAdaptiveTextBatchTiers::test_short_tier_uses_min_with_configured_cap",
        "tests/gateway/test_telegram_text_batch_perf.py::TestAdaptiveTextBatchTiers::test_long_message_uses_full_cap",
        "tests/gateway/test_telegram_text_batch_perf.py::TestAdaptiveTextBatchTiers::test_split_threshold_takes_priority_over_fast_tier"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0319-test_telegram_text_batch_perf.py.log",
      "output_sha256": "f737b6ac2827fb9f1384b73ed45b3206138efce88da9b251ab1b8cb9da1b3627",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_text_batch_perf.py",
      "test_file_sha256": "1d8e6f6a0d6321795b7eb8a01e0960d6d3715839459ed8d3faff635f9e0cbf15"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0320",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_text_batching.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_text_batching.py::TestTextBatching::test_single_message_dispatched_after_delay",
        "tests/gateway/test_telegram_text_batching.py::TestTextBatching::test_split_messages_aggregated",
        "tests/gateway/test_telegram_text_batching.py::TestTextBatching::test_three_way_split_aggregated",
        "tests/gateway/test_telegram_text_batching.py::TestTextBatching::test_different_chats_not_merged",
        "tests/gateway/test_telegram_text_batching.py::TestTextBatching::test_batch_cleans_up_after_flush",
        "tests/gateway/test_telegram_text_batching.py::TestTextBatching::test_dm_topic_batching_recovers_thread_before_keying"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0320-test_telegram_text_batching.py.log",
      "output_sha256": "5473ca15b40ccf9f6f42124e95562007ae9b3b0c93084f1889d7cf7e729bb9d6",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_text_batching.py",
      "test_file_sha256": "4f37237345b6e4cf2db81b62c01d58867f1c0ff53f7775504d42cd04fb4567d5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0321",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_thread_fallback.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_thread_fallback.py::test_non_forum_group_reply_thread_id_does_not_fork_session_key",
        "tests/gateway/test_telegram_thread_fallback.py::test_forum_group_topic_message_preserves_thread_session_key",
        "tests/gateway/test_telegram_thread_fallback.py::test_forum_general_topic_without_message_thread_id_keeps_thread_context",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_omits_general_topic_thread_id",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_typing_preserves_general_topic_thread_id",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_typing_does_not_fall_back_to_root_for_dm_topic",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_typing_attempts_api_call_for_dm_topic_reply_fallback",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_typing_falls_back_without_thread_on_bad_request",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_retries_without_thread_on_thread_not_found",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_retries_transient_thread_not_found_before_fallback",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_private_dm_topic_uses_direct_messages_topic_id",
        "tests/gateway/test_telegram_thread_fallback.py::test_base_gateway_metadata_marks_telegram_dm_topics_as_reply_fallback",
        "tests/gateway/test_telegram_thread_fallback.py::test_base_gateway_metadata_for_resumed_telegram_dm_topic_uses_direct_topic",
        "tests/gateway/test_telegram_thread_fallback.py::test_base_gateway_replies_to_triggering_message_for_telegram_dm_topic",
        "tests/gateway/test_telegram_thread_fallback.py::test_gateway_runner_busy_ack_replies_to_triggering_message_for_telegram_dm_topic",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_uses_reply_fallback_for_hermes_dm_topics",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_uses_reply_anchor_when_direct_topic_fallback_metadata_exists",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_created_private_topic_uses_message_thread_without_anchor",
        "tests/gateway/test_telegram_thread_fallback.py::test_created_private_topic_thread_not_found_fails_without_root_fallback",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_uses_metadata_reply_fallback_for_streaming_dm_topics",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_reply_fallback_applies_to_every_chunk_for_dm_topics",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_model_picker_uses_metadata_reply_fallback_for_dm_topics",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_dm_topic_fallback_without_anchor_does_not_crash",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_dm_topic_reply_not_found_fails_closed",
        "tests/gateway/test_telegram_thread_fallback.py::test_native_media_dm_topic_reply_not_found_retry_drops_thread_id[send_image_file-send_photo-image_path-photo.png-png-data]",
        "tests/gateway/test_telegram_thread_fallback.py::test_native_media_dm_topic_reply_not_found_retry_drops_thread_id[send_document-send_document-file_path-report.txt-report-data]",
        "tests/gateway/test_telegram_thread_fallback.py::test_native_media_dm_topic_reply_not_found_retry_drops_thread_id[send_video-send_video-video_path-clip.mp4-video-data]",
        "tests/gateway/test_telegram_thread_fallback.py::test_native_media_dm_topic_reply_not_found_retry_drops_thread_id[send_voice-send_voice-audio_path-clip.ogg-ogg-data]",
        "tests/gateway/test_telegram_thread_fallback.py::test_native_media_dm_topic_reply_not_found_retry_drops_thread_id[send_voice-send_audio-audio_path-clip.mp3-mp3-data]",
        "tests/gateway/test_telegram_thread_fallback.py::test_animation_dm_topic_reply_not_found_retry_drops_thread_id",
        "tests/gateway/test_telegram_thread_fallback.py::test_media_group_dm_topic_reply_not_found_retry_drops_thread_id",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_image_url_dm_topic_reply_not_found_retry_drops_thread_id",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_image_upload_dm_topic_reply_not_found_retry_drops_thread_id",
        "tests/gateway/test_telegram_thread_fallback.py::test_slash_confirm_private_topic_callback_followup_sends_thread_and_reply",
        "tests/gateway/test_telegram_thread_fallback.py::test_slash_confirm_forum_callback_followup_keeps_existing_thread_behavior",
        "tests/gateway/test_telegram_thread_fallback.py::test_base_send_image_fallback_preserves_metadata",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_raises_on_other_bad_request",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_without_thread_id_unaffected",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_retries_network_errors_normally",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_does_not_retry_timeout",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_retries_wrapped_connect_timeout",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_marks_wrapped_connect_timeout_retryable_after_exhaustion",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_retries_pool_timeout",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_marks_pool_timeout_retryable_after_exhaustion",
        "tests/gateway/test_telegram_thread_fallback.py::test_thread_fallback_only_fires_once",
        "tests/gateway/test_telegram_thread_fallback.py::test_send_retries_retry_after_errors"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0321-test_telegram_thread_fallback.py.log",
      "output_sha256": "464d28b1349d09c4b0413f0a264acec3cdb3e7c0c7e522b17cedc287751a00e5",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_thread_fallback.py",
      "test_file_sha256": "2de2ef411c7d01dc45618c5124bcc10c1246fa28eb9e43352cced02d9e0ce2ba"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0322",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_topic_mode.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_topic_mode.py::test_root_telegram_dm_prompt_is_system_lobby_when_topic_mode_enabled",
        "tests/gateway/test_telegram_topic_mode.py::test_root_telegram_dm_new_shows_create_topic_instruction",
        "tests/gateway/test_telegram_topic_mode.py::test_telegram_topic_prompt_still_runs_agent_when_topic_mode_enabled",
        "tests/gateway/test_telegram_topic_mode.py::test_managed_topic_binding_reuses_restored_session_over_static_lane_session",
        "tests/gateway/test_telegram_topic_mode.py::test_telegram_group_prompt_is_not_topic_lobby_even_when_dm_topic_mode_enabled",
        "tests/gateway/test_telegram_topic_mode.py::test_topic_command_is_private_dm_only_and_does_not_enable_group_topic_mode",
        "tests/gateway/test_telegram_topic_mode.py::test_group_new_keeps_existing_reset_semantics_when_dm_topic_mode_enabled",
        "tests/gateway/test_telegram_topic_mode.py::test_new_inside_telegram_topic_resets_current_topic_with_parallel_tip",
        "tests/gateway/test_telegram_topic_mode.py::test_new_inside_telegram_topic_rewrites_binding_to_new_session",
        "tests/gateway/test_telegram_topic_mode.py::test_topic_binding_follows_compression_tip_on_read",
        "tests/gateway/test_telegram_topic_mode.py::test_topic_root_command_explicitly_migrates_and_enables_topic_mode",
        "tests/gateway/test_telegram_topic_mode.py::test_topic_root_command_lists_unlinked_sessions_for_restore",
        "tests/gateway/test_telegram_topic_mode.py::test_topic_root_command_handles_no_unlinked_sessions",
        "tests/gateway/test_telegram_topic_mode.py::test_topic_command_inside_bound_topic_shows_current_session",
        "tests/gateway/test_telegram_topic_mode.py::test_topic_restore_inside_topic_binds_old_session_and_returns_last_assistant_message",
        "tests/gateway/test_telegram_topic_mode.py::test_topic_restore_refuses_session_owned_by_another_telegram_user",
        "tests/gateway/test_telegram_topic_mode.py::test_topic_restore_refuses_already_linked_session",
        "tests/gateway/test_telegram_topic_mode.py::test_first_message_inside_topic_records_topic_binding",
        "tests/gateway/test_telegram_topic_mode.py::test_topic_root_command_creates_and_pins_system_topic",
        "tests/gateway/test_telegram_topic_mode.py::test_auto_generated_title_renames_bound_telegram_topic",
        "tests/gateway/test_telegram_topic_mode.py::test_auto_generated_title_does_not_rename_topic_bound_to_other_session",
        "tests/gateway/test_telegram_topic_mode.py::test_operator_declared_topic_is_not_auto_renamed",
        "tests/gateway/test_telegram_topic_mode.py::test_disable_topic_auto_rename_extra_skips_rename",
        "tests/gateway/test_telegram_topic_mode.py::test_schedule_topic_rename_respects_disable_flag",
        "tests/gateway/test_telegram_topic_mode.py::test_telegram_topic_auto_rename_disabled_string_truthy",
        "tests/gateway/test_telegram_topic_mode.py::test_general_topic_is_treated_as_root_lobby",
        "tests/gateway/test_telegram_topic_mode.py::test_lobby_reminder_is_debounced_per_chat",
        "tests/gateway/test_telegram_topic_mode.py::test_binding_survives_session_deletion_via_cascade",
        "tests/gateway/test_telegram_topic_mode.py::test_migration_rebuilds_v1_binding_table_with_cascade_fk",
        "tests/gateway/test_telegram_topic_mode.py::test_topic_help_subcommand_returns_usage",
        "tests/gateway/test_telegram_topic_mode.py::test_topic_off_disables_mode_and_clears_bindings",
        "tests/gateway/test_telegram_topic_mode.py::test_topic_off_is_idempotent_when_never_enabled",
        "tests/gateway/test_telegram_topic_mode.py::test_topic_refuses_unauthorized_user",
        "tests/gateway/test_telegram_topic_mode.py::test_recover_returns_none_for_known_topic",
        "tests/gateway/test_telegram_topic_mode.py::test_recover_preserves_unknown_thread_id_for_new_topic",
        "tests/gateway/test_telegram_topic_mode.py::test_recover_rewrites_lobby_thread_id_to_most_recent",
        "tests/gateway/test_telegram_topic_mode.py::test_recover_returns_none_when_topic_mode_disabled",
        "tests/gateway/test_telegram_topic_mode.py::test_recover_returns_none_when_no_bindings_yet",
        "tests/gateway/test_telegram_topic_mode.py::test_recover_returns_none_for_brand_new_topic",
        "tests/gateway/test_telegram_topic_mode.py::test_list_telegram_topic_bindings_for_chat",
        "tests/gateway/test_telegram_topic_mode.py::test_list_telegram_topic_bindings_for_chat_no_table",
        "tests/gateway/test_telegram_topic_mode.py::test_get_telegram_topic_binding_by_session_returns_binding",
        "tests/gateway/test_telegram_topic_mode.py::test_get_telegram_topic_binding_by_session_returns_none_for_unknown",
        "tests/gateway/test_telegram_topic_mode.py::test_session_split_restores_source_thread_id_from_binding"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0322-test_telegram_topic_mode.py.log",
      "output_sha256": "585b11054090ed2d43e40ce46af8a8af305f571cbc24e0203e06e574a80a41b2",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_topic_mode.py",
      "test_file_sha256": "7547917fffccdb04ae6bfafc331a501bd4095e39f93743049292c4ba3fafa7d3"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0323",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_voice_v0_regressions.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_voice_v0_regressions.py::test_telegram_audio_size_gate_rejects_oversized_media_before_download",
        "tests/gateway/test_telegram_voice_v0_regressions.py::test_voice_tts_is_explicit_audio_reply_opt_in"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0323-test_telegram_voice_v0_regressions.py.log",
      "output_sha256": "61eddcb57843174bb9b98b17277be9bf4611dad38ec1f50e1a09f103f97a91bf",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_voice_v0_regressions.py",
      "test_file_sha256": "927e4056a843bb90f5783d688d142da97e07d0766df8582fc42e791f25604982"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0324",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_webhook_secret.py"
      ],
      "nodeids": [
        "tests/gateway/test_telegram_webhook_secret.py::TestTelegramWebhookSecretRequired::test_webhook_branch_checks_secret",
        "tests/gateway/test_telegram_webhook_secret.py::TestTelegramWebhookSecretRequired::test_guard_raises_runtime_error",
        "tests/gateway/test_telegram_webhook_secret.py::TestTelegramWebhookSecretRequired::test_guard_message_includes_advisory_link",
        "tests/gateway/test_telegram_webhook_secret.py::TestTelegramWebhookSecretRequired::test_guard_message_explains_remediation",
        "tests/gateway/test_telegram_webhook_secret.py::TestTelegramWebhookSecretRequired::test_polling_branch_has_no_secret_guard"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0324-test_telegram_webhook_secret.py.log",
      "output_sha256": "db59c8fdf773768962b3e5b8f711692e91777dc417d9a87e8ec029115b33f7d4",
      "returncode": 0,
      "test_file": "tests/gateway/test_telegram_webhook_secret.py",
      "test_file_sha256": "7ab08665f0ff499993d26a1805e73ec871be3fad808095e37f2c975c9b5e2f56"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0325",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_text_batching.py"
      ],
      "nodeids": [
        "tests/gateway/test_text_batching.py::TestDiscordTextBatching::test_single_message_dispatched_after_delay",
        "tests/gateway/test_text_batching.py::TestDiscordTextBatching::test_split_messages_aggregated",
        "tests/gateway/test_text_batching.py::TestDiscordTextBatching::test_three_way_split_aggregated",
        "tests/gateway/test_text_batching.py::TestDiscordTextBatching::test_different_chats_not_merged",
        "tests/gateway/test_text_batching.py::TestDiscordTextBatching::test_batch_cleans_up_after_flush",
        "tests/gateway/test_text_batching.py::TestDiscordTextBatching::test_adaptive_delay_for_near_limit_chunk",
        "tests/gateway/test_text_batching.py::TestDiscordTextBatching::test_shield_protects_handle_message_from_cancel",
        "tests/gateway/test_text_batching.py::TestMatrixTextBatching::test_single_message_dispatched_after_delay",
        "tests/gateway/test_text_batching.py::TestMatrixTextBatching::test_split_messages_aggregated",
        "tests/gateway/test_text_batching.py::TestMatrixTextBatching::test_different_rooms_not_merged",
        "tests/gateway/test_text_batching.py::TestMatrixTextBatching::test_adaptive_delay_for_near_limit_chunk",
        "tests/gateway/test_text_batching.py::TestMatrixTextBatching::test_batch_cleans_up_after_flush",
        "tests/gateway/test_text_batching.py::TestWeComTextBatching::test_single_message_dispatched_after_delay",
        "tests/gateway/test_text_batching.py::TestWeComTextBatching::test_split_messages_aggregated",
        "tests/gateway/test_text_batching.py::TestWeComTextBatching::test_different_chats_not_merged",
        "tests/gateway/test_text_batching.py::TestWeComTextBatching::test_adaptive_delay_for_near_limit_chunk",
        "tests/gateway/test_text_batching.py::TestWeComTextBatching::test_batch_cleans_up_after_flush",
        "tests/gateway/test_text_batching.py::TestTelegramAdaptiveDelay::test_short_chunk_uses_normal_delay",
        "tests/gateway/test_text_batching.py::TestTelegramAdaptiveDelay::test_near_limit_chunk_uses_split_delay",
        "tests/gateway/test_text_batching.py::TestTelegramAdaptiveDelay::test_split_continuation_merged",
        "tests/gateway/test_text_batching.py::TestFeishuAdaptiveDelay::test_short_chunk_uses_normal_delay",
        "tests/gateway/test_text_batching.py::TestFeishuAdaptiveDelay::test_near_limit_chunk_uses_split_delay",
        "tests/gateway/test_text_batching.py::TestFeishuAdaptiveDelay::test_split_continuation_merged"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0325-test_text_batching.py.log",
      "output_sha256": "638b9bca42276999ada4ca45c5dbff622607edd9e813f4494146cbe6718eda0b",
      "returncode": 0,
      "test_file": "tests/gateway/test_text_batching.py",
      "test_file_sha256": "0ec963929fef80da887c7f130d8b59a4c5e766fd34c86916e48635478c50eae3"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0326",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_title_command.py"
      ],
      "nodeids": [
        "tests/gateway/test_title_command.py::TestHandleTitleCommand::test_set_title",
        "tests/gateway/test_title_command.py::TestHandleTitleCommand::test_show_title_when_set",
        "tests/gateway/test_title_command.py::TestHandleTitleCommand::test_show_title_when_not_set",
        "tests/gateway/test_title_command.py::TestHandleTitleCommand::test_title_conflict",
        "tests/gateway/test_title_command.py::TestHandleTitleCommand::test_no_session_db",
        "tests/gateway/test_title_command.py::TestHandleTitleCommand::test_title_too_long",
        "tests/gateway/test_title_command.py::TestHandleTitleCommand::test_title_control_chars_sanitized",
        "tests/gateway/test_title_command.py::TestHandleTitleCommand::test_title_only_control_chars",
        "tests/gateway/test_title_command.py::TestHandleTitleCommand::test_set_title_propagates_to_telegram_topic_rename",
        "tests/gateway/test_title_command.py::TestHandleTitleCommand::test_show_title_does_not_rename_topic",
        "tests/gateway/test_title_command.py::TestHandleTitleCommand::test_works_across_platforms",
        "tests/gateway/test_title_command.py::TestTitleInHelp::test_title_in_help_output",
        "tests/gateway/test_title_command.py::TestTitleInHelp::test_title_is_known_command",
        "tests/gateway/test_title_command.py::TestResetCommandWithTitle::test_reset_command_with_title",
        "tests/gateway/test_title_command.py::TestResetCommandWithTitle::test_reset_command_duplicate_title_surfaces_warning",
        "tests/gateway/test_title_command.py::TestNewInHelp::test_new_command_in_help_output"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0326-test_title_command.py.log",
      "output_sha256": "b763b8f50d0fe8c002d7523218c60e8bde8fc32f12cd705d47e21366e2c2ed51",
      "returncode": 0,
      "test_file": "tests/gateway/test_title_command.py",
      "test_file_sha256": "9a70b65ea286ce4af5322293f4651260c8940c6e16f4c303ef59cf4518cf627c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0327",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_tool_response_drop_recovery.py"
      ],
      "nodeids": [
        "tests/gateway/test_tool_response_drop_recovery.py::TestExtractStripRecoveryAllPlatforms::test_response_reduced_to_empty_is_recovered_and_sent[Platform.DISCORD]",
        "tests/gateway/test_tool_response_drop_recovery.py::TestExtractStripRecoveryAllPlatforms::test_response_reduced_to_empty_is_recovered_and_sent[Platform.TELEGRAM]",
        "tests/gateway/test_tool_response_drop_recovery.py::TestExtractStripRecoveryAllPlatforms::test_directives_stripped_from_fallback_text[Platform.DISCORD]",
        "tests/gateway/test_tool_response_drop_recovery.py::TestExtractStripRecoveryAllPlatforms::test_directives_stripped_from_fallback_text[Platform.TELEGRAM]",
        "tests/gateway/test_tool_response_drop_recovery.py::TestExtractStripRecoveryAllPlatforms::test_no_fallback_when_attachment_produced[Platform.DISCORD]",
        "tests/gateway/test_tool_response_drop_recovery.py::TestExtractStripRecoveryAllPlatforms::test_no_fallback_when_attachment_produced[Platform.TELEGRAM]",
        "tests/gateway/test_tool_response_drop_recovery.py::TestRecoveryDoesNotLeakMediaFragments::test_spaced_media_path_does_not_leak_fragment",
        "tests/gateway/test_tool_response_drop_recovery.py::TestUnrecoverableDropIsLoud::test_directive_only_response_logs_dropped"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0327-test_tool_response_drop_recovery.py.log",
      "output_sha256": "5195bbab9fe3b419639aa7c15e546ae75f530718687319c4e032a1365ffa6a57",
      "returncode": 0,
      "test_file": "tests/gateway/test_tool_response_drop_recovery.py",
      "test_file_sha256": "e997a869bf5f1ccfaa034f9ed1c5e5ec86b07232ddc2c7498e87b9dda01fccae"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0328",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_transcript_offset.py"
      ],
      "nodeids": [
        "tests/gateway/test_transcript_offset.py::TestTranscriptHistoryOffset::test_session_meta_causes_offset_mismatch",
        "tests/gateway/test_transcript_offset.py::TestTranscriptHistoryOffset::test_no_session_meta_same_result",
        "tests/gateway/test_transcript_offset.py::TestTranscriptHistoryOffset::test_multiple_session_meta_larger_drift",
        "tests/gateway/test_transcript_offset.py::TestTranscriptHistoryOffset::test_system_messages_also_filtered",
        "tests/gateway/test_transcript_offset.py::TestTranscriptHistoryOffset::test_else_branch_returns_empty_list",
        "tests/gateway/test_transcript_offset.py::TestTranscriptHistoryOffset::test_tool_call_messages_preserved_in_filter",
        "tests/gateway/test_transcript_offset.py::TestTranscriptHistoryOffset::test_recursive_queued_followup_keeps_outer_history_offset",
        "tests/gateway/test_transcript_offset.py::TestTranscriptHistoryOffset::test_recursive_queued_followup_preserves_smaller_existing_offset"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0328-test_transcript_offset.py.log",
      "output_sha256": "ef0382687af02d29ad015ca3d1172ffb35b51717c076fb8004bc43ea27a81466",
      "returncode": 0,
      "test_file": "tests/gateway/test_transcript_offset.py",
      "test_file_sha256": "3e21ebcf86e1de301702cb93128a5ec8331eb45bf39c31e65631ee2264b92b30"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0329",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_tts_media_routing.py"
      ],
      "nodeids": [
        "tests/gateway/test_tts_media_routing.py::test_base_adapter_routes_telegram_flac_media_tag_to_document_sender",
        "tests/gateway/test_tts_media_routing.py::test_base_adapter_routes_non_voice_telegram_ogg_media_tag_to_document_sender",
        "tests/gateway/test_tts_media_routing.py::test_base_adapter_routes_voice_tagged_telegram_ogg_media_tag_to_voice_sender",
        "tests/gateway/test_tts_media_routing.py::test_streaming_delivery_routes_telegram_flac_media_tag_to_document_sender",
        "tests/gateway/test_tts_media_routing.py::test_streaming_delivery_routes_non_voice_telegram_ogg_media_tag_to_document_sender",
        "tests/gateway/test_tts_media_routing.py::test_streaming_delivery_routes_telegram_mp3_media_tag_to_voice_sender",
        "tests/gateway/test_tts_media_routing.py::test_streaming_delivery_blocks_media_path_outside_allowed_roots"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0329-test_tts_media_routing.py.log",
      "output_sha256": "427ccdea7acc6b65329b36486918ac801bf8b85dfefa108a23d9d960eec581b7",
      "returncode": 0,
      "test_file": "tests/gateway/test_tts_media_routing.py",
      "test_file_sha256": "c5cdd5fbcd87876e2b437ae642b02a574e70956d07d9d0599566ae1b698d96fd"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0330",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_unauthorized_dm_behavior.py"
      ],
      "nodeids": [
        "tests/gateway/test_unauthorized_dm_behavior.py::test_whatsapp_lid_user_matches_phone_allowlist_via_session_mapping",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_simplex_allowlist_accepts_display_name",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_simplex_allowlist_accepts_numeric_contact_id",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_simplex_allowlist_denies_unlisted",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_star_wildcard_in_allowlist_authorizes_any_user",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_star_wildcard_works_for_any_platform",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_qq_group_allowlist_authorizes_group_chat_without_user_allowlist",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_qq_group_allowlist_does_not_authorize_other_groups",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_telegram_group_user_allowlist_authorizes_forum_sender_without_dm_allowlist",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_telegram_group_user_allowlist_rejects_other_senders",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_telegram_group_user_allowlist_wildcard_authorizes_any_sender",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_telegram_group_user_allowlist_does_not_authorize_dms",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_telegram_group_chat_allowlist_authorizes_group_chat_without_user_allowlist",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_telegram_group_chat_allowlist_authorizes_anonymous_sender",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_telegram_group_chat_allowlist_rejects_anonymous_sender_in_other_chat",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_handle_message_does_not_drop_anonymous_sender_in_allowlisted_chat",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_handle_message_drops_anonymous_sender_outside_allowlist",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_telegram_group_users_legacy_chat_ids_still_authorize",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_telegram_group_users_legacy_does_not_cross_chats",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_telegram_group_users_mixed_sender_and_legacy_chat",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_unauthorized_dm_pairs_by_default",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_unauthorized_whatsapp_dm_can_be_ignored",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_rate_limited_user_gets_no_response",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_rejection_message_records_rate_limit",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_global_ignore_suppresses_pairing_reply",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_signal_with_allowlist_ignores_unauthorized_dm",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_telegram_with_allowlist_ignores_unauthorized_dm",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_global_allowlist_ignores_unauthorized_dm",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_no_allowlist_still_pairs_by_default",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_explicit_pair_config_overrides_allowlist_default",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_allowlist_authorized_user_returns_ignore_for_unauthorized",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_get_unauthorized_dm_behavior_no_allowlist_returns_pair",
        "tests/gateway/test_unauthorized_dm_behavior.py::test_qqbot_with_allowlist_ignores_unauthorized_dm"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0330-test_unauthorized_dm_behavior.py.log",
      "output_sha256": "3d4c0a87431405a0d42d28a005574c40e91774fe013b579b9372df38d6462c38",
      "returncode": 0,
      "test_file": "tests/gateway/test_unauthorized_dm_behavior.py",
      "test_file_sha256": "07827e4d3165f5f121fae450a1307590165787f26341a89e25c7ff46bbc9a41a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0331",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_unavailable_skill_hint.py"
      ],
      "nodeids": [
        "tests/gateway/test_unavailable_skill_hint.py::test_frontmatter_slug_matched_even_when_dir_name_differs",
        "tests/gateway/test_unavailable_skill_hint.py::test_unknown_command_still_returns_none",
        "tests/gateway/test_unavailable_skill_hint.py::test_matched_but_not_disabled_returns_none",
        "tests/gateway/test_unavailable_skill_hint.py::test_slug_normalization_strips_non_alnum",
        "tests/gateway/test_unavailable_skill_hint.py::test_optional_skill_uses_frontmatter_slug"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0331-test_unavailable_skill_hint.py.log",
      "output_sha256": "93f7f2758b9247dd12fdc581defabf61b782127bae0adad763377144879237a5",
      "returncode": 0,
      "test_file": "tests/gateway/test_unavailable_skill_hint.py",
      "test_file_sha256": "bea08fba96c151f423ca012dac7cdfd099fa15ea4adc1ece4e0ee3810e9cb336"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0332",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_undo_rewind_session.py"
      ],
      "nodeids": [
        "tests/gateway/test_undo_rewind_session.py::test_rewind_default_one_turn",
        "tests/gateway/test_undo_rewind_session.py::test_rewind_n_turns",
        "tests/gateway/test_undo_rewind_session.py::test_rewind_soft_deletes_rows_for_audit",
        "tests/gateway/test_undo_rewind_session.py::test_rewind_clamps_to_oldest_turn",
        "tests/gateway/test_undo_rewind_session.py::test_rewind_empty_session_returns_none",
        "tests/gateway/test_undo_rewind_session.py::test_rewind_clamps_negative_count_to_one"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0332-test_undo_rewind_session.py.log",
      "output_sha256": "00e9155593519ea923648701c2912725fde14fc1b219126e043a6bd01d76d41c",
      "returncode": 0,
      "test_file": "tests/gateway/test_undo_rewind_session.py",
      "test_file_sha256": "99e5228152965cd0306038233243801d01574d9d52d51cf1fcdf9a2d2fa238c7"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0333",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_unknown_command.py"
      ],
      "nodeids": [
        "tests/gateway/test_unknown_command.py::test_unknown_slash_command_returns_guidance",
        "tests/gateway/test_unknown_command.py::test_unknown_slash_command_underscored_form_also_guarded",
        "tests/gateway/test_unknown_command.py::test_known_slash_command_not_flagged_as_unknown",
        "tests/gateway/test_unknown_command.py::test_underscored_alias_for_hyphenated_builtin_not_flagged",
        "tests/gateway/test_unknown_command.py::test_command_hook_can_deny_before_dispatch",
        "tests/gateway/test_unknown_command.py::test_command_hook_deny_without_message_uses_default",
        "tests/gateway/test_unknown_command.py::test_command_hook_can_mark_command_as_handled",
        "tests/gateway/test_unknown_command.py::test_command_hook_allow_decision_is_passthrough",
        "tests/gateway/test_unknown_command.py::test_command_hook_non_dict_return_values_ignored",
        "tests/gateway/test_unknown_command.py::test_command_hook_fires_for_plugin_registered_command",
        "tests/gateway/test_unknown_command.py::test_command_hook_rewrite_routes_to_plugin"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0333-test_unknown_command.py.log",
      "output_sha256": "2a26e43edef6f2ee1b43257f709e79b09cd49b185ba8318fdd4f18d4d603f3d2",
      "returncode": 0,
      "test_file": "tests/gateway/test_unknown_command.py",
      "test_file_sha256": "40cc61fc9d2bb303b4186bd29ab1eb8e73a7ca1ddeef95f3d4b1e92718e9cb5c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0334",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_update_command.py"
      ],
      "nodeids": [
        "tests/gateway/test_update_command.py::TestHandleUpdateCommand::test_managed_install_returns_package_manager_guidance",
        "tests/gateway/test_update_command.py::TestHandleUpdateCommand::test_no_git_directory",
        "tests/gateway/test_update_command.py::TestHandleUpdateCommand::test_no_hermes_binary",
        "tests/gateway/test_update_command.py::TestHandleUpdateCommand::test_fallback_to_sys_executable",
        "tests/gateway/test_update_command.py::TestHandleUpdateCommand::test_resolve_hermes_bin_prefers_which",
        "tests/gateway/test_update_command.py::TestHandleUpdateCommand::test_resolve_hermes_bin_fallback",
        "tests/gateway/test_update_command.py::TestHandleUpdateCommand::test_resolve_hermes_bin_returns_none_when_both_fail",
        "tests/gateway/test_update_command.py::TestHandleUpdateCommand::test_writes_pending_marker",
        "tests/gateway/test_update_command.py::TestHandleUpdateCommand::test_writes_pending_marker_with_thread_id",
        "tests/gateway/test_update_command.py::TestHandleUpdateCommand::test_spawns_setsid",
        "tests/gateway/test_update_command.py::TestHandleUpdateCommand::test_fallback_when_no_setsid",
        "tests/gateway/test_update_command.py::TestHandleUpdateCommand::test_popen_failure_cleans_up",
        "tests/gateway/test_update_command.py::TestHandleUpdateCommand::test_returns_user_friendly_message",
        "tests/gateway/test_update_command.py::TestUpdateCommandPlatformGate::test_blocks_programmatic_interface",
        "tests/gateway/test_update_command.py::TestUpdateCommandPlatformGate::test_blocks_api_server_platform",
        "tests/gateway/test_update_command.py::TestUpdateCommandPlatformGate::test_allows_plugin_platform_via_registry_fallback",
        "tests/gateway/test_update_command.py::TestUpdateCommandPlatformGate::test_allows_mattermost_via_registry_fallback",
        "tests/gateway/test_update_command.py::TestUpdateCommandPlatformGate::test_allows_homeassistant_via_registry_fallback",
        "tests/gateway/test_update_command.py::TestUpdateCommandPlatformGate::test_allows_builtin_platform_in_allowlist",
        "tests/gateway/test_update_command.py::TestSendUpdateNotification::test_no_pending_file_is_noop",
        "tests/gateway/test_update_command.py::TestSendUpdateNotification::test_defers_notification_while_update_still_running",
        "tests/gateway/test_update_command.py::TestSendUpdateNotification::test_recovers_from_claimed_pending_file",
        "tests/gateway/test_update_command.py::TestSendUpdateNotification::test_sends_notification_with_output",
        "tests/gateway/test_update_command.py::TestSendUpdateNotification::test_sends_notification_with_thread_metadata",
        "tests/gateway/test_update_command.py::TestSendUpdateNotification::test_strips_ansi_codes",
        "tests/gateway/test_update_command.py::TestSendUpdateNotification::test_truncates_long_output",
        "tests/gateway/test_update_command.py::TestSendUpdateNotification::test_sends_failure_message_when_update_fails",
        "tests/gateway/test_update_command.py::TestSendUpdateNotification::test_sends_generic_message_when_no_output",
        "tests/gateway/test_update_command.py::TestSendUpdateNotification::test_cleans_up_files_after_notification",
        "tests/gateway/test_update_command.py::TestSendUpdateNotification::test_cleans_up_on_error",
        "tests/gateway/test_update_command.py::TestSendUpdateNotification::test_handles_corrupt_pending_file",
        "tests/gateway/test_update_command.py::TestSendUpdateNotification::test_no_adapter_for_platform_preserves_markers",
        "tests/gateway/test_update_command.py::TestSendUpdateNotification::test_deferred_notification_delivers_after_reconnect",
        "tests/gateway/test_update_command.py::TestUpdateInHelp::test_update_in_help_output",
        "tests/gateway/test_update_command.py::TestUpdateInHelp::test_update_is_known_command"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0334-test_update_command.py.log",
      "output_sha256": "600c50613e890cbb0a61bf318a91c15118fd654e07f4797d08af313885b190d5",
      "returncode": 0,
      "test_file": "tests/gateway/test_update_command.py",
      "test_file_sha256": "c56203a832b078deba8caed58e7e1e5c61b71894a178ab7a3dd74429a5144626"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0335",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_update_streaming.py"
      ],
      "nodeids": [
        "tests/gateway/test_update_streaming.py::TestGatewayPrompt::test_writes_prompt_file_and_reads_response",
        "tests/gateway/test_update_streaming.py::TestGatewayPrompt::test_prompt_file_content",
        "tests/gateway/test_update_streaming.py::TestGatewayPrompt::test_timeout_returns_default",
        "tests/gateway/test_update_streaming.py::TestGatewayPrompt::test_empty_response_returns_default",
        "tests/gateway/test_update_streaming.py::TestRestoreStashWithInputFn::test_uses_input_fn_when_provided",
        "tests/gateway/test_update_streaming.py::TestRestoreStashWithInputFn::test_input_fn_yes_proceeds_with_restore",
        "tests/gateway/test_update_streaming.py::TestUpdateCommandGatewayFlag::test_spawns_with_gateway_flag",
        "tests/gateway/test_update_streaming.py::TestWatchUpdateProgress::test_streams_output_to_adapter",
        "tests/gateway/test_update_streaming.py::TestWatchUpdateProgress::test_detects_and_forwards_prompt",
        "tests/gateway/test_update_streaming.py::TestWatchUpdateProgress::test_prompt_forwarding_preserves_thread_metadata",
        "tests/gateway/test_update_streaming.py::TestWatchUpdateProgress::test_cleans_up_on_completion",
        "tests/gateway/test_update_streaming.py::TestWatchUpdateProgress::test_failure_exit_code",
        "tests/gateway/test_update_streaming.py::TestWatchUpdateProgress::test_falls_back_and_delivers_after_reconnect",
        "tests/gateway/test_update_streaming.py::TestWatchUpdateProgress::test_prompt_forwarded_only_once",
        "tests/gateway/test_update_streaming.py::TestWatchUpdateProgress::test_prompt_is_recovered_after_watcher_restart",
        "tests/gateway/test_update_streaming.py::TestUpdatePromptInterception::test_intercepts_response_when_prompt_pending",
        "tests/gateway/test_update_streaming.py::TestUpdatePromptInterception::test_recognized_slash_command_bypasses_pending_update_prompt",
        "tests/gateway/test_update_streaming.py::TestUpdatePromptInterception::test_unrecognized_slash_command_still_consumed_as_response",
        "tests/gateway/test_update_streaming.py::TestUpdatePromptInterception::test_normal_message_when_no_prompt_pending",
        "tests/gateway/test_update_streaming.py::TestCmdUpdateGatewayMode::test_gateway_flag_enables_gateway_prompt_for_stash",
        "tests/gateway/test_update_streaming.py::TestCmdUpdateGatewayMode::test_gateway_flag_parsed"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0335-test_update_streaming.py.log",
      "output_sha256": "eef6571d0aaac477a624b9abda336bb79654ab9bf4073a3e59f3218137985b3d",
      "returncode": 0,
      "test_file": "tests/gateway/test_update_streaming.py",
      "test_file_sha256": "0de19e550a525b33efae336e009b5e36e3e90a784a3c2848631964fa007384d0"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0336",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_usage_command.py"
      ],
      "nodeids": [
        "tests/gateway/test_usage_command.py::TestUsageCachedAgent::test_cached_agent_shows_detailed_usage",
        "tests/gateway/test_usage_command.py::TestUsageCachedAgent::test_running_agent_preferred_over_cache",
        "tests/gateway/test_usage_command.py::TestUsageCachedAgent::test_sentinel_skipped_uses_cache",
        "tests/gateway/test_usage_command.py::TestUsageCachedAgent::test_no_agent_anywhere_falls_to_history",
        "tests/gateway/test_usage_command.py::TestUsageCachedAgent::test_cache_read_write_hidden_when_zero",
        "tests/gateway/test_usage_command.py::TestUsageCachedAgent::test_cost_included_status",
        "tests/gateway/test_usage_command.py::TestUsageAccountSection::test_usage_command_includes_account_section",
        "tests/gateway/test_usage_command.py::TestUsageAccountSection::test_usage_command_uses_persisted_provider_when_agent_not_running"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0336-test_usage_command.py.log",
      "output_sha256": "5ad704571c61d7637a6a6636130cee4036243cd33d8086f7a0cac1540db52789",
      "returncode": 0,
      "test_file": "tests/gateway/test_usage_command.py",
      "test_file_sha256": "728d7bde0bc6260d4b156236e9ac2e70cab5e9a47749b84b35227b5dc1cf07a9"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0337",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_verbose_command.py"
      ],
      "nodeids": [
        "tests/gateway/test_verbose_command.py::TestVerboseCommand::test_disabled_by_default",
        "tests/gateway/test_verbose_command.py::TestVerboseCommand::test_enabled_cycles_mode",
        "tests/gateway/test_verbose_command.py::TestVerboseCommand::test_quoted_false_keeps_command_disabled",
        "tests/gateway/test_verbose_command.py::TestVerboseCommand::test_cycles_through_all_modes",
        "tests/gateway/test_verbose_command.py::TestVerboseCommand::test_defaults_to_platform_default_when_no_tool_progress_set",
        "tests/gateway/test_verbose_command.py::TestVerboseCommand::test_per_platform_isolation",
        "tests/gateway/test_verbose_command.py::TestVerboseCommand::test_no_config_file_returns_disabled",
        "tests/gateway/test_verbose_command.py::TestVerboseCommand::test_verbose_is_in_gateway_known_commands"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0337-test_verbose_command.py.log",
      "output_sha256": "c8c673ec94eb3a66b961acefec34aa969c43ffc5d10ebe03fa22d243111a7334",
      "returncode": 0,
      "test_file": "tests/gateway/test_verbose_command.py",
      "test_file_sha256": "4004d9d600f6e79a57ebcfd3ac7fb877626ffd679eec21fd10ab95000d7d758d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0338",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_verify_dualcoach_v11_candidate.py"
      ],
      "nodeids": [
        "tests/gateway/test_verify_dualcoach_v11_candidate.py::test_successor_wheel_has_only_the_ttl_and_record_delta",
        "tests/gateway/test_verify_dualcoach_v11_candidate.py::test_successor_binding_changes_only_the_hermes_wheel",
        "tests/gateway/test_verify_dualcoach_v11_candidate.py::test_release_inputs_bind_fresh_source_and_installed_golden_paths",
        "tests/gateway/test_verify_dualcoach_v11_candidate.py::test_successor_wheel_rejects_unrecorded_member_tampering"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0338-test_verify_dualcoach_v11_candidate.py.log",
      "output_sha256": "66d35d0049ae33cda412550e853ad96aa0cad70bd48a781fb09d63618756fff5",
      "returncode": 0,
      "test_file": "tests/gateway/test_verify_dualcoach_v11_candidate.py",
      "test_file_sha256": "229c643aba6586a4d934c4fb485d2fa4fa0b53e6d63d21f591c272dddf21382b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0339",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_version_command.py"
      ],
      "nodeids": [
        "tests/gateway/test_version_command.py::test_gateway_version_command_returns_release_line"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0339-test_version_command.py.log",
      "output_sha256": "a4799c20df9787c3a764309624b3b6d5b5e2ec73d0897db6239bc7850560b1f3",
      "returncode": 0,
      "test_file": "tests/gateway/test_version_command.py",
      "test_file_sha256": "bc5b9a4abbbf852326e624642f87a2014d679ba558878b242fb7cb08d064b1fa"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0340",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_video_context_note.py"
      ],
      "nodeids": [
        "tests/gateway/test_video_context_note.py::test_video_attachment_adds_path_note_without_document_wording"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0340-test_video_context_note.py.log",
      "output_sha256": "964005ac7a6994c948332ce3af662b9b44d828f810c02bd647811f675e67e2b4",
      "returncode": 0,
      "test_file": "tests/gateway/test_video_context_note.py",
      "test_file_sha256": "be45f6b9fa30ed5d15452cad982b80af1ab214fa3826bdd75cf3d06af73590e6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0341",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_vision_memory_leak.py"
      ],
      "nodeids": [
        "tests/gateway/test_vision_memory_leak.py::TestEnrichMessageWithVision::test_clean_description_passes_through",
        "tests/gateway/test_vision_memory_leak.py::TestEnrichMessageWithVision::test_memory_context_fence_stripped",
        "tests/gateway/test_vision_memory_leak.py::TestEnrichMessageWithVision::test_fenced_leak_stripped_plugin_header_preserved"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0341-test_vision_memory_leak.py.log",
      "output_sha256": "e131be3280a833521558187c812d5c362dbe0af14140ac71bc913bbdd8bb4c7a",
      "returncode": 0,
      "test_file": "tests/gateway/test_vision_memory_leak.py",
      "test_file_sha256": "4525df28eafa796c11a7ec1ab44cfe7fd9d320fc6070af71397532b61426896a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0342",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_voice_command.py"
      ],
      "nodeids": [
        "tests/gateway/test_voice_command.py::TestHandleVoiceCommand::test_voice_on",
        "tests/gateway/test_voice_command.py::TestHandleVoiceCommand::test_voice_off",
        "tests/gateway/test_voice_command.py::TestHandleVoiceCommand::test_voice_tts",
        "tests/gateway/test_voice_command.py::TestHandleVoiceCommand::test_voice_status_off",
        "tests/gateway/test_voice_command.py::TestHandleVoiceCommand::test_voice_status_on",
        "tests/gateway/test_voice_command.py::TestHandleVoiceCommand::test_toggle_off_to_on",
        "tests/gateway/test_voice_command.py::TestHandleVoiceCommand::test_toggle_on_to_off",
        "tests/gateway/test_voice_command.py::TestHandleVoiceCommand::test_persistence_saved",
        "tests/gateway/test_voice_command.py::TestHandleVoiceCommand::test_persistence_loaded",
        "tests/gateway/test_voice_command.py::TestHandleVoiceCommand::test_persistence_saved_for_off",
        "tests/gateway/test_voice_command.py::TestHandleVoiceCommand::test_sync_voice_mode_state_to_adapter_restores_off_chats",
        "tests/gateway/test_voice_command.py::TestHandleVoiceCommand::test_sync_populates_enabled_chats_from_voice_modes",
        "tests/gateway/test_voice_command.py::TestHandleVoiceCommand::test_sync_pushes_config_default_onto_adapter",
        "tests/gateway/test_voice_command.py::TestHandleVoiceCommand::test_restart_restores_voice_off_state",
        "tests/gateway/test_voice_command.py::TestHandleVoiceCommand::test_per_chat_isolation",
        "tests/gateway/test_voice_command.py::TestHandleVoiceCommand::test_platform_isolation",
        "tests/gateway/test_voice_command.py::TestAutoVoiceReply::test_voice_input_voice_only_skipped",
        "tests/gateway/test_voice_command.py::TestAutoVoiceReply::test_voice_input_all_mode_skipped",
        "tests/gateway/test_voice_command.py::TestAutoVoiceReply::test_text_input_all_mode_runner_fires",
        "tests/gateway/test_voice_command.py::TestAutoVoiceReply::test_text_input_voice_only_no_reply",
        "tests/gateway/test_voice_command.py::TestAutoVoiceReply::test_off_mode_voice",
        "tests/gateway/test_voice_command.py::TestAutoVoiceReply::test_off_mode_text",
        "tests/gateway/test_voice_command.py::TestAutoVoiceReply::test_discord_vc_voice_input_base_handles",
        "tests/gateway/test_voice_command.py::TestAutoVoiceReply::test_discord_vc_voice_only_base_handles",
        "tests/gateway/test_voice_command.py::TestAutoVoiceReply::test_error_response_skipped",
        "tests/gateway/test_voice_command.py::TestAutoVoiceReply::test_empty_response_skipped",
        "tests/gateway/test_voice_command.py::TestAutoVoiceReply::test_dedup_skips_when_agent_called_tts",
        "tests/gateway/test_voice_command.py::TestAutoVoiceReply::test_no_dedup_for_other_tools",
        "tests/gateway/test_voice_command.py::TestSendVoiceReply::test_calls_tts_and_send_voice",
        "tests/gateway/test_voice_command.py::TestSendVoiceReply::test_non_telegram_auto_voice_reply_uses_mp3",
        "tests/gateway/test_voice_command.py::TestSendVoiceReply::test_auto_voice_reply_uses_thread_metadata_helper",
        "tests/gateway/test_voice_command.py::TestSendVoiceReply::test_empty_text_after_strip_skips",
        "tests/gateway/test_voice_command.py::TestSendVoiceReply::test_tts_failure_no_crash",
        "tests/gateway/test_voice_command.py::TestSendVoiceReply::test_exception_caught",
        "tests/gateway/test_voice_command.py::TestDiscordPlayTtsSkip::test_play_tts_plays_in_vc_when_connected",
        "tests/gateway/test_voice_command.py::TestDiscordPlayTtsSkip::test_play_tts_not_skipped_when_not_in_vc",
        "tests/gateway/test_voice_command.py::TestDiscordPlayTtsSkip::test_play_tts_not_skipped_for_different_channel",
        "tests/gateway/test_voice_command.py::TestVoiceInHelp::test_voice_in_help_output",
        "tests/gateway/test_voice_command.py::TestVoiceInHelp::test_voice_is_known_command",
        "tests/gateway/test_voice_command.py::TestVoiceReceiver::test_initial_state",
        "tests/gateway/test_voice_command.py::TestVoiceReceiver::test_start_sets_running",
        "tests/gateway/test_voice_command.py::TestVoiceReceiver::test_stop_clears_state",
        "tests/gateway/test_voice_command.py::TestVoiceReceiver::test_map_ssrc",
        "tests/gateway/test_voice_command.py::TestVoiceReceiver::test_map_ssrc_overwrites",
        "tests/gateway/test_voice_command.py::TestVoiceReceiver::test_pause_resume",
        "tests/gateway/test_voice_command.py::TestVoiceReceiver::test_check_silence_empty",
        "tests/gateway/test_voice_command.py::TestVoiceReceiver::test_check_silence_returns_completed_utterance",
        "tests/gateway/test_voice_command.py::TestVoiceReceiver::test_check_silence_ignores_short_buffer",
        "tests/gateway/test_voice_command.py::TestVoiceReceiver::test_check_silence_ignores_recent_audio",
        "tests/gateway/test_voice_command.py::TestVoiceReceiver::test_check_silence_unknown_user_discarded",
        "tests/gateway/test_voice_command.py::TestVoiceReceiver::test_stale_buffer_discarded",
        "tests/gateway/test_voice_command.py::TestVoiceReceiver::test_on_packet_skips_when_not_running",
        "tests/gateway/test_voice_command.py::TestVoiceReceiver::test_on_packet_skips_when_paused",
        "tests/gateway/test_voice_command.py::TestVoiceReceiver::test_on_packet_skips_short_data",
        "tests/gateway/test_voice_command.py::TestVoiceReceiver::test_on_packet_skips_non_rtp",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_join_unsupported_platform",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_join_no_guild_id",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_join_user_not_in_vc",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_join_success",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_join_failure",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_join_exception",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_join_missing_voice_dependencies",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_leave_not_in_vc",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_leave_no_guild",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_leave_success",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_input_no_adapter",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_input_no_text_channel",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_input_creates_event_and_dispatches",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_input_reuses_bound_source_metadata",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_input_posts_transcript_in_text_channel",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_input_suppresses_duplicate_transcript",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_input_suppresses_near_duplicate_transcript",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_get_guild_id_from_guild",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_get_guild_id_from_interaction",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_get_guild_id_none",
        "tests/gateway/test_voice_command.py::TestVoiceChannelCommands::test_get_guild_id_dm",
        "tests/gateway/test_voice_command.py::TestDiscordVoiceChannelMethods::test_is_in_voice_channel_true",
        "tests/gateway/test_voice_command.py::TestDiscordVoiceChannelMethods::test_is_in_voice_channel_false_no_client",
        "tests/gateway/test_voice_command.py::TestDiscordVoiceChannelMethods::test_is_in_voice_channel_false_disconnected",
        "tests/gateway/test_voice_command.py::TestDiscordVoiceChannelMethods::test_leave_voice_channel_cleans_up",
        "tests/gateway/test_voice_command.py::TestDiscordVoiceChannelMethods::test_leave_voice_channel_no_connection",
        "tests/gateway/test_voice_command.py::TestDiscordVoiceChannelMethods::test_get_user_voice_channel_no_client",
        "tests/gateway/test_voice_command.py::TestDiscordVoiceChannelMethods::test_get_user_voice_channel_no_guild",
        "tests/gateway/test_voice_command.py::TestDiscordVoiceChannelMethods::test_get_user_voice_channel_user_not_in_vc",
        "tests/gateway/test_voice_command.py::TestDiscordVoiceChannelMethods::test_get_user_voice_channel_success",
        "tests/gateway/test_voice_command.py::TestDiscordVoiceChannelMethods::test_play_in_voice_channel_not_connected",
        "tests/gateway/test_voice_command.py::TestDiscordVoiceChannelMethods::test_is_allowed_user_empty_list",
        "tests/gateway/test_voice_command.py::TestDiscordVoiceChannelMethods::test_is_allowed_user_in_list",
        "tests/gateway/test_voice_command.py::TestDiscordVoiceChannelMethods::test_is_allowed_user_not_in_list",
        "tests/gateway/test_voice_command.py::TestDiscordVoiceChannelMethods::test_process_voice_input_success",
        "tests/gateway/test_voice_command.py::TestDiscordVoiceChannelMethods::test_process_voice_input_hallucination_filtered",
        "tests/gateway/test_voice_command.py::TestDiscordVoiceChannelMethods::test_process_voice_input_stt_failure",
        "tests/gateway/test_voice_command.py::TestDiscordVoiceChannelMethods::test_process_voice_input_exception_caught",
        "tests/gateway/test_voice_command.py::TestVoiceReceiverThreadSafety::test_check_silence_holds_lock",
        "tests/gateway/test_voice_command.py::TestVoiceReceiverThreadSafety::test_on_packet_buffer_write_holds_lock",
        "tests/gateway/test_voice_command.py::TestVoiceReceiverThreadSafety::test_concurrent_buffer_access_safe",
        "tests/gateway/test_voice_command.py::TestCallbackWiringOrder::test_callback_set_before_join",
        "tests/gateway/test_voice_command.py::TestCallbackWiringOrder::test_join_failure_clears_callback",
        "tests/gateway/test_voice_command.py::TestCallbackWiringOrder::test_join_returns_false_clears_callback",
        "tests/gateway/test_voice_command.py::TestLeaveExceptionHandling::test_leave_exception_still_cleans_state",
        "tests/gateway/test_voice_command.py::TestLeaveExceptionHandling::test_leave_clears_callback",
        "tests/gateway/test_voice_command.py::TestAutoTtsEmptyTextGuard::test_empty_after_strip_skips_tts",
        "tests/gateway/test_voice_command.py::TestAutoTtsEmptyTextGuard::test_code_block_response_skips_tts",
        "tests/gateway/test_voice_command.py::TestAutoTtsEmptyTextGuard::test_base_empty_check_in_source",
        "tests/gateway/test_voice_command.py::TestStreamTtsToSpeaker::test_none_sentinel_flushes_buffer",
        "tests/gateway/test_voice_command.py::TestStreamTtsToSpeaker::test_stop_event_aborts_early",
        "tests/gateway/test_voice_command.py::TestStreamTtsToSpeaker::test_done_event_set_on_exception",
        "tests/gateway/test_voice_command.py::TestStreamTtsToSpeaker::test_think_blocks_stripped",
        "tests/gateway/test_voice_command.py::TestStreamTtsToSpeaker::test_sentence_splitting",
        "tests/gateway/test_voice_command.py::TestStreamTtsToSpeaker::test_markdown_stripped_in_speech",
        "tests/gateway/test_voice_command.py::TestStreamTtsToSpeaker::test_duplicate_sentences_deduped",
        "tests/gateway/test_voice_command.py::TestStreamTtsToSpeaker::test_no_api_key_display_only",
        "tests/gateway/test_voice_command.py::TestStreamTtsToSpeaker::test_long_buffer_flushed_on_timeout",
        "tests/gateway/test_voice_command.py::TestStopAcquiresLock::test_stop_clears_under_lock",
        "tests/gateway/test_voice_command.py::TestStopAcquiresLock::test_stop_does_not_deadlock_with_on_packet",
        "tests/gateway/test_voice_command.py::TestPacketDebugCounterIsInstanceLevel::test_counter_is_per_instance",
        "tests/gateway/test_voice_command.py::TestPacketDebugCounterIsInstanceLevel::test_counter_initialized_in_init",
        "tests/gateway/test_voice_command.py::TestPlayInVoiceChannelUsesRunningLoop::test_source_uses_get_running_loop",
        "tests/gateway/test_voice_command.py::TestSendVoiceReplyFilename::test_filename_uses_uuid",
        "tests/gateway/test_voice_command.py::TestSendVoiceReplyFilename::test_filenames_are_unique",
        "tests/gateway/test_voice_command.py::TestVoiceTimeoutCleansRunnerState::test_adapter_has_on_voice_disconnect_attr",
        "tests/gateway/test_voice_command.py::TestVoiceTimeoutCleansRunnerState::test_timeout_calls_disconnect_callback",
        "tests/gateway/test_voice_command.py::TestVoiceTimeoutCleansRunnerState::test_runner_cleanup_method_removes_voice_mode",
        "tests/gateway/test_voice_command.py::TestVoiceTimeoutCleansRunnerState::test_timeout_without_callback_does_not_crash",
        "tests/gateway/test_voice_command.py::TestVoiceTimeoutCleansRunnerState::test_timeout_skips_disconnect_when_voice_mode_off",
        "tests/gateway/test_voice_command.py::TestVoiceTimeoutCleansRunnerState::test_timeout_still_disconnects_when_voice_mode_active",
        "tests/gateway/test_voice_command.py::TestPlaybackTimeout::test_source_has_wait_for_timeout",
        "tests/gateway/test_voice_command.py::TestPlaybackTimeout::test_playback_timeout_constant_exists",
        "tests/gateway/test_voice_command.py::TestPlaybackTimeout::test_playback_timeout_fires",
        "tests/gateway/test_voice_command.py::TestPlaybackTimeout::test_is_playing_wait_has_timeout",
        "tests/gateway/test_voice_command.py::TestSendVoiceReplyCleanup::test_cleanup_in_finally",
        "tests/gateway/test_voice_command.py::TestSendVoiceReplyCleanup::test_files_cleaned_on_send_exception",
        "tests/gateway/test_voice_command.py::TestAutoTtsTempFileCleanup::test_source_has_finally_remove",
        "tests/gateway/test_voice_command.py::TestVoiceChannelAwareness::test_returns_none_when_not_connected",
        "tests/gateway/test_voice_command.py::TestVoiceChannelAwareness::test_returns_none_when_vc_disconnected",
        "tests/gateway/test_voice_command.py::TestVoiceChannelAwareness::test_returns_info_with_members",
        "tests/gateway/test_voice_command.py::TestVoiceChannelAwareness::test_speaking_detection",
        "tests/gateway/test_voice_command.py::TestVoiceChannelAwareness::test_context_string_format",
        "tests/gateway/test_voice_command.py::TestVoiceChannelAwareness::test_context_empty_when_not_connected",
        "tests/gateway/test_voice_command.py::TestDisconnectVoiceCleanup::test_disconnect_clears_voice_state",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_known_ssrc_returns_completed",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_known_ssrc_short_buffer_ignored",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_known_ssrc_recent_audio_waits",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_unknown_ssrc_no_automap_no_completed",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_unknown_ssrc_late_speaking_event",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_automap_single_allowed_user",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_automap_multiple_allowed_users_no_map",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_automap_no_allowlist_single_member",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_automap_unallowed_user_rejected",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_automap_only_bot_in_channel",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_automap_persists_across_calls",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_stale_unknown_buffer_discarded",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_paused_receiver_ignores_packets",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_resumed_receiver_accepts_packets",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_on_packet_dave_known_user_decrypt_ok",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_on_packet_dave_unknown_ssrc_passthrough",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_on_packet_dave_unencrypted_error_passthrough",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_on_packet_dave_other_error_drops",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_on_packet_no_dave_direct_decode",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_on_packet_bot_own_ssrc_ignored",
        "tests/gateway/test_voice_command.py::TestVoiceReception::test_on_packet_multiple_ssrcs_separate_buffers",
        "tests/gateway/test_voice_command.py::TestVoiceTTSPlayback::test_play_tts_plays_in_vc",
        "tests/gateway/test_voice_command.py::TestVoiceTTSPlayback::test_play_tts_fallback_when_not_in_vc",
        "tests/gateway/test_voice_command.py::TestVoiceTTSPlayback::test_play_tts_wrong_channel_no_match",
        "tests/gateway/test_voice_command.py::TestVoiceTTSPlayback::test_voice_input_runner_skips",
        "tests/gateway/test_voice_command.py::TestVoiceTTSPlayback::test_text_input_voice_all_runner_fires",
        "tests/gateway/test_voice_command.py::TestVoiceTTSPlayback::test_text_input_voice_off_no_tts",
        "tests/gateway/test_voice_command.py::TestVoiceTTSPlayback::test_text_input_voice_only_no_tts",
        "tests/gateway/test_voice_command.py::TestVoiceTTSPlayback::test_error_response_no_tts",
        "tests/gateway/test_voice_command.py::TestVoiceTTSPlayback::test_empty_response_no_tts",
        "tests/gateway/test_voice_command.py::TestVoiceTTSPlayback::test_agent_tts_tool_dedup",
        "tests/gateway/test_voice_command.py::TestVoiceTTSPlayback::test_streaming_on_voice_input_runner_fires",
        "tests/gateway/test_voice_command.py::TestVoiceTTSPlayback::test_streaming_on_text_input_runner_fires",
        "tests/gateway/test_voice_command.py::TestVoiceTTSPlayback::test_streaming_on_voice_off_no_tts",
        "tests/gateway/test_voice_command.py::TestVoiceTTSPlayback::test_streaming_on_empty_response_no_tts",
        "tests/gateway/test_voice_command.py::TestVoiceTTSPlayback::test_streaming_on_agent_tts_dedup",
        "tests/gateway/test_voice_command.py::TestUDPKeepalive::test_keepalive_interval_is_reasonable",
        "tests/gateway/test_voice_command.py::TestUDPKeepalive::test_keepalive_sends_silence_frame",
        "tests/gateway/test_voice_command.py::TestShouldAutoTtsForChat::test_default_false_no_override_suppresses",
        "tests/gateway/test_voice_command.py::TestShouldAutoTtsForChat::test_default_true_no_override_fires",
        "tests/gateway/test_voice_command.py::TestShouldAutoTtsForChat::test_explicit_enable_overrides_false_default",
        "tests/gateway/test_voice_command.py::TestShouldAutoTtsForChat::test_explicit_disable_overrides_true_default",
        "tests/gateway/test_voice_command.py::TestShouldAutoTtsForChat::test_enabled_wins_over_disabled",
        "tests/gateway/test_voice_command.py::TestShouldAutoTtsForChat::test_per_chat_isolation"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0342-test_voice_command.py.log",
      "output_sha256": "67bc33e3a552d9249999458b39c7a24ee2c4d314d32a03f7f77e3a7943179c22",
      "returncode": 0,
      "test_file": "tests/gateway/test_voice_command.py",
      "test_file_sha256": "dd4abe100da8be8d10e2abb7d58077b39686f6895ca5965b41c8be6fe44658d2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0343",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_voice_mode_platform_isolation.py"
      ],
      "nodeids": [
        "tests/gateway/test_voice_mode_platform_isolation.py::TestVoiceKeyHelper::test_voice_key_format",
        "tests/gateway/test_voice_mode_platform_isolation.py::TestVoiceKeyHelper::test_voice_key_different_platforms_same_chat_id",
        "tests/gateway/test_voice_mode_platform_isolation.py::TestVoiceModePlatformIsolation::test_telegram_and_slack_voice_mode_independent",
        "tests/gateway/test_voice_mode_platform_isolation.py::TestLegacyKeyMigration::test_load_voice_modes_skips_legacy_keys",
        "tests/gateway/test_voice_mode_platform_isolation.py::TestLegacyKeyMigration::test_load_voice_modes_preserves_prefixed_keys",
        "tests/gateway/test_voice_mode_platform_isolation.py::TestLegacyKeyMigration::test_load_voice_modes_invalid_modes_filtered",
        "tests/gateway/test_voice_mode_platform_isolation.py::TestSyncVoiceModeStateToAdapter::test_sync_only_includes_platform_chats",
        "tests/gateway/test_voice_mode_platform_isolation.py::TestSyncVoiceModeStateToAdapter::test_sync_clears_existing_state",
        "tests/gateway/test_voice_mode_platform_isolation.py::TestSyncVoiceModeStateToAdapter::test_sync_returns_early_without_platform",
        "tests/gateway/test_voice_mode_platform_isolation.py::TestSyncVoiceModeStateToAdapter::test_sync_returns_early_without_auto_tts_disabled_chats"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0343-test_voice_mode_platform_isolation.py.log",
      "output_sha256": "8f35e445719b5e2c16f0b909a09c93de54a80dc0f1dde133971e87852d1b640d",
      "returncode": 0,
      "test_file": "tests/gateway/test_voice_mode_platform_isolation.py",
      "test_file_sha256": "4dde4e8ce3941ca17f10643c4a4c41fd9afec59691c6daf968afc204cc70ee56"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0344",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_weak_credential_guard.py"
      ],
      "nodeids": [
        "tests/gateway/test_weak_credential_guard.py::TestPlatformTokenPlaceholderGuard::test_rejects_triple_asterisk",
        "tests/gateway/test_weak_credential_guard.py::TestPlatformTokenPlaceholderGuard::test_rejects_changeme",
        "tests/gateway/test_weak_credential_guard.py::TestPlatformTokenPlaceholderGuard::test_rejects_your_api_key",
        "tests/gateway/test_weak_credential_guard.py::TestPlatformTokenPlaceholderGuard::test_rejects_placeholder",
        "tests/gateway/test_weak_credential_guard.py::TestPlatformTokenPlaceholderGuard::test_accepts_real_token",
        "tests/gateway/test_weak_credential_guard.py::TestPlatformTokenPlaceholderGuard::test_accepts_empty_token_without_error",
        "tests/gateway/test_weak_credential_guard.py::TestPlatformTokenPlaceholderGuard::test_disabled_platform_not_checked",
        "tests/gateway/test_weak_credential_guard.py::TestPlatformTokenPlaceholderGuard::test_rejects_whitespace_padded_placeholder",
        "tests/gateway/test_weak_credential_guard.py::TestAPIServerPlaceholderKeyGuard::test_refuses_wildcard_with_placeholder_key",
        "tests/gateway/test_weak_credential_guard.py::TestAPIServerPlaceholderKeyGuard::test_refuses_wildcard_with_asterisk_key",
        "tests/gateway/test_weak_credential_guard.py::TestAPIServerPlaceholderKeyGuard::test_allows_loopback_with_placeholder_key"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0344-test_weak_credential_guard.py.log",
      "output_sha256": "0d3ea77d40d00e14df1632c8c9734bcafe8ba4513d720b774d34dae83ea5fe32",
      "returncode": 0,
      "test_file": "tests/gateway/test_weak_credential_guard.py",
      "test_file_sha256": "e8cca1557cc8d2201a8524aa26307e07e8a6a346cef4cf80d3eef6f999f410b2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0345",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_webhook_adapter.py"
      ],
      "nodeids": [
        "tests/gateway/test_webhook_adapter.py::TestValidateSignature::test_validate_github_signature_valid",
        "tests/gateway/test_webhook_adapter.py::TestValidateSignature::test_validate_github_signature_invalid",
        "tests/gateway/test_webhook_adapter.py::TestValidateSignature::test_validate_gitlab_token",
        "tests/gateway/test_webhook_adapter.py::TestValidateSignature::test_validate_gitlab_token_wrong",
        "tests/gateway/test_webhook_adapter.py::TestValidateSignature::test_validate_no_signature_with_secret_rejects",
        "tests/gateway/test_webhook_adapter.py::TestValidateSignature::test_validate_no_secret_allows_all",
        "tests/gateway/test_webhook_adapter.py::TestValidateSignature::test_validate_generic_signature_valid",
        "tests/gateway/test_webhook_adapter.py::TestValidateSignature::test_validate_svix_signature_valid",
        "tests/gateway/test_webhook_adapter.py::TestValidateSignature::test_validate_svix_signature_wrong_body_rejects",
        "tests/gateway/test_webhook_adapter.py::TestValidateSignature::test_validate_svix_signature_old_timestamp_rejects",
        "tests/gateway/test_webhook_adapter.py::TestValidateSignature::test_validate_svix_signature_multiple_entries_accepts_matching_v1",
        "tests/gateway/test_webhook_adapter.py::TestValidateSignature::test_validate_svix_signature_missing_signature_rejects",
        "tests/gateway/test_webhook_adapter.py::TestValidateSignature::test_validate_svix_signature_unsupported_version_rejects",
        "tests/gateway/test_webhook_adapter.py::TestValidateSignature::test_validate_svix_signature_invalid_whsec_rejects",
        "tests/gateway/test_webhook_adapter.py::TestValidateSignature::test_validate_svix_signature_raw_secret_valid",
        "tests/gateway/test_webhook_adapter.py::TestRenderPrompt::test_render_prompt_dot_notation",
        "tests/gateway/test_webhook_adapter.py::TestRenderPrompt::test_render_prompt_missing_key_preserved",
        "tests/gateway/test_webhook_adapter.py::TestRenderPrompt::test_render_prompt_no_template_dumps_json",
        "tests/gateway/test_webhook_adapter.py::TestRenderDeliveryExtra::test_render_delivery_extra_templates",
        "tests/gateway/test_webhook_adapter.py::TestEventFilter::test_event_filter_accepts_matching",
        "tests/gateway/test_webhook_adapter.py::TestEventFilter::test_event_filter_rejects_non_matching",
        "tests/gateway/test_webhook_adapter.py::TestEventFilter::test_event_filter_empty_allows_all",
        "tests/gateway/test_webhook_adapter.py::TestEventFilter::test_event_filter_accepts_payload_type_field",
        "tests/gateway/test_webhook_adapter.py::TestHTTPHandling::test_unknown_route_returns_404",
        "tests/gateway/test_webhook_adapter.py::TestHTTPHandling::test_webhook_handler_returns_202",
        "tests/gateway/test_webhook_adapter.py::TestHTTPHandling::test_route_without_secret_rejects_unsigned_request",
        "tests/gateway/test_webhook_adapter.py::TestHTTPHandling::test_health_endpoint",
        "tests/gateway/test_webhook_adapter.py::TestHTTPHandling::test_connect_starts_server",
        "tests/gateway/test_webhook_adapter.py::TestHTTPHandling::test_disconnect_cleans_up",
        "tests/gateway/test_webhook_adapter.py::TestIdempotency::test_duplicate_delivery_id_returns_200",
        "tests/gateway/test_webhook_adapter.py::TestIdempotency::test_expired_delivery_id_allows_reprocess",
        "tests/gateway/test_webhook_adapter.py::TestIdempotency::test_svix_id_used_as_delivery_id_for_deduplication",
        "tests/gateway/test_webhook_adapter.py::TestRateLimiting::test_rate_limit_rejects_excess",
        "tests/gateway/test_webhook_adapter.py::TestRateLimiting::test_rate_limit_window_resets",
        "tests/gateway/test_webhook_adapter.py::TestRateLimiting::test_rate_limit_prunes_incrementally_from_left",
        "tests/gateway/test_webhook_adapter.py::TestRateLimiting::test_seen_delivery_ttl_is_checked_per_delivery_without_full_prune",
        "tests/gateway/test_webhook_adapter.py::TestBodySize::test_oversized_payload_rejected",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuth::test_insecure_no_auth_skips_validation",
        "tests/gateway/test_webhook_adapter.py::TestSessionIsolation::test_concurrent_webhooks_get_independent_sessions",
        "tests/gateway/test_webhook_adapter.py::TestDeliveryCleanup::test_delivery_info_survives_multiple_sends",
        "tests/gateway/test_webhook_adapter.py::TestDeliveryCleanup::test_delivery_info_pruned_via_ttl",
        "tests/gateway/test_webhook_adapter.py::TestDeliveryCleanup::test_delivery_info_prune_uses_ordered_incremental_queue",
        "tests/gateway/test_webhook_adapter.py::TestCheckRequirements::test_returns_true_when_aiohttp_available",
        "tests/gateway/test_webhook_adapter.py::TestCheckRequirements::test_returns_false_without_aiohttp",
        "tests/gateway/test_webhook_adapter.py::TestRawTemplateToken::test_raw_resolves_to_full_json_payload",
        "tests/gateway/test_webhook_adapter.py::TestRawTemplateToken::test_raw_truncated_at_4000_chars",
        "tests/gateway/test_webhook_adapter.py::TestRawTemplateToken::test_raw_mixed_with_other_variables",
        "tests/gateway/test_webhook_adapter.py::TestDeliverCrossPlatformThreadId::test_thread_id_passed_as_metadata",
        "tests/gateway/test_webhook_adapter.py::TestDeliverCrossPlatformThreadId::test_message_thread_id_passed_as_thread_id",
        "tests/gateway/test_webhook_adapter.py::TestDeliverCrossPlatformThreadId::test_no_thread_id_sends_no_metadata",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuthSafetyRail::test_connect_rejects_insecure_no_auth_on_public_bind",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuthSafetyRail::test_connect_rejects_insecure_no_auth_on_lan_ip",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuthSafetyRail::test_connect_rejects_insecure_no_auth_on_empty_host",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuthSafetyRail::test_connect_allows_insecure_no_auth_on_loopback[127.0.0.1]",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuthSafetyRail::test_connect_allows_insecure_no_auth_on_loopback[localhost]",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuthSafetyRail::test_is_loopback_host_accepts[127.0.0.1]",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuthSafetyRail::test_is_loopback_host_accepts[localhost]",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuthSafetyRail::test_is_loopback_host_accepts[Localhost]",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuthSafetyRail::test_is_loopback_host_accepts[::1]",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuthSafetyRail::test_is_loopback_host_accepts[ip6-localhost]",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuthSafetyRail::test_is_loopback_host_accepts[ip6-loopback]",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuthSafetyRail::test_is_loopback_host_rejects[0.0.0.0]",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuthSafetyRail::test_is_loopback_host_rejects[192.168.1.5]",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuthSafetyRail::test_is_loopback_host_rejects[10.0.0.1]",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuthSafetyRail::test_is_loopback_host_rejects[example.com]",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuthSafetyRail::test_is_loopback_host_rejects[]",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuthSafetyRail::test_is_loopback_host_rejects[None]",
        "tests/gateway/test_webhook_adapter.py::TestInsecureNoAuthSafetyRail::test_connect_allows_real_secret_on_public_bind"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0345-test_webhook_adapter.py.log",
      "output_sha256": "3d7844a6bbf3f13b3f80160f7646f0e6ef776b184fbacdea3bbe7d5d9547ab3d",
      "returncode": 0,
      "test_file": "tests/gateway/test_webhook_adapter.py",
      "test_file_sha256": "395cfb81eb1f121252ae39fe85d9e61b24dbcee5aa286e388138ad1ee4b6ca47"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0346",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_webhook_deliver_only.py"
      ],
      "nodeids": [
        "tests/gateway/test_webhook_deliver_only.py::TestDeliverOnlyBypassesAgent::test_post_delivers_directly_without_agent",
        "tests/gateway/test_webhook_deliver_only.py::TestDeliverOnlyBypassesAgent::test_template_rendering_works",
        "tests/gateway/test_webhook_deliver_only.py::TestDeliverOnlyBypassesAgent::test_thread_id_passed_through",
        "tests/gateway/test_webhook_deliver_only.py::TestDeliverOnlyStatusCodes::test_delivery_failure_returns_502",
        "tests/gateway/test_webhook_deliver_only.py::TestDeliverOnlyStatusCodes::test_delivery_exception_returns_502",
        "tests/gateway/test_webhook_deliver_only.py::TestDeliverOnlyStatusCodes::test_target_platform_not_connected_returns_502",
        "tests/gateway/test_webhook_deliver_only.py::TestDeliverOnlyStartupValidation::test_deliver_only_with_log_deliver_rejected",
        "tests/gateway/test_webhook_deliver_only.py::TestDeliverOnlyStartupValidation::test_deliver_only_with_missing_deliver_rejected",
        "tests/gateway/test_webhook_deliver_only.py::TestDeliverOnlyStartupValidation::test_deliver_only_with_real_target_accepted",
        "tests/gateway/test_webhook_deliver_only.py::TestDeliverOnlySecurityInvariants::test_hmac_still_enforced",
        "tests/gateway/test_webhook_deliver_only.py::TestDeliverOnlySecurityInvariants::test_idempotency_still_applies",
        "tests/gateway/test_webhook_deliver_only.py::TestDeliverOnlySecurityInvariants::test_rate_limit_still_applies",
        "tests/gateway/test_webhook_deliver_only.py::TestDirectDeliverUnit::test_dispatches_to_cross_platform_for_messaging_targets",
        "tests/gateway/test_webhook_deliver_only.py::TestDirectDeliverUnit::test_dispatches_to_github_comment"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0346-test_webhook_deliver_only.py.log",
      "output_sha256": "bb782a475b82a0a6bd0965343b959e628b0736c3181e449a79e8efba715df415",
      "returncode": 0,
      "test_file": "tests/gateway/test_webhook_deliver_only.py",
      "test_file_sha256": "44d9233240fb8039e8fcb51e6de35dd56d3fe26b229b17000a84a2cc48fad3d1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0347",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_webhook_dynamic_routes.py"
      ],
      "nodeids": [
        "tests/gateway/test_webhook_dynamic_routes.py::TestDynamicRouteLoading::test_no_dynamic_file",
        "tests/gateway/test_webhook_dynamic_routes.py::TestDynamicRouteLoading::test_loads_dynamic_routes",
        "tests/gateway/test_webhook_dynamic_routes.py::TestDynamicRouteLoading::test_static_takes_precedence",
        "tests/gateway/test_webhook_dynamic_routes.py::TestDynamicRouteLoading::test_mtime_gated",
        "tests/gateway/test_webhook_dynamic_routes.py::TestDynamicRouteLoading::test_file_removal_clears",
        "tests/gateway/test_webhook_dynamic_routes.py::TestDynamicRouteLoading::test_corrupted_file",
        "tests/gateway/test_webhook_dynamic_routes.py::TestDynamicRouteSecretValidation::test_empty_secret_rejected",
        "tests/gateway/test_webhook_dynamic_routes.py::TestDynamicRouteSecretValidation::test_missing_secret_no_global_rejected",
        "tests/gateway/test_webhook_dynamic_routes.py::TestDynamicRouteSecretValidation::test_missing_secret_inherits_global",
        "tests/gateway/test_webhook_dynamic_routes.py::TestDynamicRouteSecretValidation::test_insecure_no_auth_preserved",
        "tests/gateway/test_webhook_dynamic_routes.py::TestDynamicRouteSecretValidation::test_insecure_no_auth_rejected_on_non_loopback_bind",
        "tests/gateway/test_webhook_dynamic_routes.py::TestDynamicRouteSecretValidation::test_warning_logged_on_skip",
        "tests/gateway/test_webhook_dynamic_routes.py::TestDynamicRouteSecretValidation::test_partial_skip"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0347-test_webhook_dynamic_routes.py.log",
      "output_sha256": "f625ce1136f032cb09c8640e85731ad574bb2bf76a83d644bba8d5a36a9ff01e",
      "returncode": 0,
      "test_file": "tests/gateway/test_webhook_dynamic_routes.py",
      "test_file_sha256": "cff32559d2a927f2f6a9f9f1d0e56129580868522872c704d6f5021f31b9c688"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0348",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_webhook_integration.py"
      ],
      "nodeids": [
        "tests/gateway/test_webhook_integration.py::TestGitHubPRWebhook::test_github_pr_webhook_triggers_agent",
        "tests/gateway/test_webhook_integration.py::TestSkillsInjection::test_skills_injected_into_prompt",
        "tests/gateway/test_webhook_integration.py::TestCrossPlatformDelivery::test_cross_platform_delivery",
        "tests/gateway/test_webhook_integration.py::TestGitHubCommentDelivery::test_github_comment_delivery"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0348-test_webhook_integration.py.log",
      "output_sha256": "fb8fd0ee839071d7a3ccdb78bc60d4b9237577b73adbfd50565ec96b0f7cd150",
      "returncode": 0,
      "test_file": "tests/gateway/test_webhook_integration.py",
      "test_file_sha256": "3f7d9145bcf7602a0f14cde640b47e56123f1b1fd634a67d6700377da531efd7"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0349",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_webhook_signature_rate_limit.py"
      ],
      "nodeids": [
        "tests/gateway/test_webhook_signature_rate_limit.py::TestSignatureBeforeRateLimit::test_invalid_signature_does_not_consume_rate_limit",
        "tests/gateway/test_webhook_signature_rate_limit.py::TestSignatureBeforeRateLimit::test_valid_signature_still_rate_limited",
        "tests/gateway/test_webhook_signature_rate_limit.py::TestSignatureBeforeRateLimit::test_mixed_valid_and_invalid_signatures"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0349-test_webhook_signature_rate_limit.py.log",
      "output_sha256": "2fb62c8e0d730163ae49bbf93b1d64914178873806897a3d6d08a89d1722f062",
      "returncode": 0,
      "test_file": "tests/gateway/test_webhook_signature_rate_limit.py",
      "test_file_sha256": "d7adb5c08f8fd0f61fd06e10b8b043b949bf854c222181b4e84fdda2ab1b1a06"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0350",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_wecom.py"
      ],
      "nodeids": [
        "tests/gateway/test_wecom.py::TestWeComRequirements::test_returns_false_without_aiohttp",
        "tests/gateway/test_wecom.py::TestWeComRequirements::test_returns_false_without_httpx",
        "tests/gateway/test_wecom.py::TestWeComRequirements::test_returns_true_when_available",
        "tests/gateway/test_wecom.py::TestWeComAdapterInit::test_declares_non_editable_message_capability",
        "tests/gateway/test_wecom.py::TestWeComAdapterInit::test_reads_config_from_extra",
        "tests/gateway/test_wecom.py::TestWeComAdapterInit::test_falls_back_to_env_vars",
        "tests/gateway/test_wecom.py::TestWeComConnect::test_connect_records_missing_credentials",
        "tests/gateway/test_wecom.py::TestWeComConnect::test_connect_records_handshake_failure_details",
        "tests/gateway/test_wecom.py::TestWeComQrScan::test_qr_scan_timeout_uses_monotonic_clock",
        "tests/gateway/test_wecom.py::TestWeComReplyMode::test_send_uses_passive_reply_markdown_when_reply_context_exists",
        "tests/gateway/test_wecom.py::TestWeComReplyMode::test_send_image_file_uses_passive_reply_media_when_reply_context_exists",
        "tests/gateway/test_wecom.py::TestExtractText::test_extracts_plain_text",
        "tests/gateway/test_wecom.py::TestExtractText::test_extracts_mixed_text",
        "tests/gateway/test_wecom.py::TestExtractText::test_extracts_voice_and_quote",
        "tests/gateway/test_wecom.py::TestCallbackDispatch::test_dispatch_accepts_new_and_legacy_callback_cmds[aibot_msg_callback]",
        "tests/gateway/test_wecom.py::TestCallbackDispatch::test_dispatch_accepts_new_and_legacy_callback_cmds[aibot_callback]",
        "tests/gateway/test_wecom.py::TestPolicyHelpers::test_dm_allowlist",
        "tests/gateway/test_wecom.py::TestPolicyHelpers::test_dm_allowlist_honors_env_only_allowed_users",
        "tests/gateway/test_wecom.py::TestPolicyHelpers::test_dm_allowlist_extra_takes_precedence_over_env",
        "tests/gateway/test_wecom.py::TestPolicyHelpers::test_group_allowlist_and_per_group_sender_allowlist",
        "tests/gateway/test_wecom.py::TestMediaHelpers::test_detect_wecom_media_type",
        "tests/gateway/test_wecom.py::TestMediaHelpers::test_voice_non_amr_downgrades_to_file",
        "tests/gateway/test_wecom.py::TestMediaHelpers::test_oversized_file_is_rejected",
        "tests/gateway/test_wecom.py::TestMediaHelpers::test_decrypt_file_bytes_round_trip",
        "tests/gateway/test_wecom.py::TestMediaHelpers::test_load_outbound_media_rejects_placeholder_path",
        "tests/gateway/test_wecom.py::TestMediaUpload::test_upload_media_bytes_uses_sdk_sequence",
        "tests/gateway/test_wecom.py::TestMediaUpload::test_download_remote_bytes_rejects_large_content_length",
        "tests/gateway/test_wecom.py::TestMediaUpload::test_cache_media_decrypts_url_payload_before_writing",
        "tests/gateway/test_wecom.py::TestSend::test_send_uses_proactive_payload",
        "tests/gateway/test_wecom.py::TestSend::test_send_reports_wecom_errors",
        "tests/gateway/test_wecom.py::TestSend::test_send_image_falls_back_to_text_for_remote_url",
        "tests/gateway/test_wecom.py::TestSend::test_send_voice_sends_caption_and_downgrade_note",
        "tests/gateway/test_wecom.py::TestInboundMessages::test_on_message_builds_event",
        "tests/gateway/test_wecom.py::TestInboundMessages::test_on_message_preserves_quote_context",
        "tests/gateway/test_wecom.py::TestInboundMessages::test_on_message_respects_group_policy",
        "tests/gateway/test_wecom.py::TestWeComZombieSessionFix::test_adapter_generates_stable_device_id_per_instance",
        "tests/gateway/test_wecom.py::TestWeComZombieSessionFix::test_different_adapter_instances_get_distinct_device_ids",
        "tests/gateway/test_wecom.py::TestWeComZombieSessionFix::test_open_connection_includes_device_id_in_subscribe",
        "tests/gateway/test_wecom.py::TestWeComZombieSessionFix::test_on_message_caches_last_req_id_per_chat",
        "tests/gateway/test_wecom.py::TestWeComZombieSessionFix::test_on_message_does_not_cache_blocked_sender_req_id",
        "tests/gateway/test_wecom.py::TestWeComZombieSessionFix::test_remember_chat_req_id_is_bounded",
        "tests/gateway/test_wecom.py::TestWeComZombieSessionFix::test_remember_chat_req_id_ignores_empty_values",
        "tests/gateway/test_wecom.py::TestWeComZombieSessionFix::test_proactive_group_send_falls_back_to_cached_req_id",
        "tests/gateway/test_wecom.py::TestWeComZombieSessionFix::test_proactive_send_without_cached_req_id_uses_app_cmd_send",
        "tests/gateway/test_wecom.py::TestTextBatchFlushRace::test_superseded_task_does_not_pop_or_process_event",
        "tests/gateway/test_wecom.py::TestTextBatchFlushRace::test_active_task_processes_event_normally"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0350-test_wecom.py.log",
      "output_sha256": "d00eeb9a9208b5c806886e74d57f674d344e5208524490520d360112aa04a52f",
      "returncode": 0,
      "test_file": "tests/gateway/test_wecom.py",
      "test_file_sha256": "2e3ccc899ada56d2ce1b9898da2b4fc94b84da574027433bf730dacde55fd4f3"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0351",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_wecom_callback.py"
      ],
      "nodeids": [
        "tests/gateway/test_wecom_callback.py::TestWecomCrypto::test_roundtrip_encrypt_decrypt",
        "tests/gateway/test_wecom_callback.py::TestWecomCrypto::test_signature_mismatch_raises",
        "tests/gateway/test_wecom_callback.py::TestWecomCallbackEventConstruction::test_build_event_extracts_text_message",
        "tests/gateway/test_wecom_callback.py::TestWecomCallbackEventConstruction::test_build_event_returns_none_for_subscribe",
        "tests/gateway/test_wecom_callback.py::TestWecomCallbackRouting::test_user_app_key_scopes_across_corps",
        "tests/gateway/test_wecom_callback.py::TestWecomCallbackRouting::test_send_selects_correct_app_for_scoped_chat_id",
        "tests/gateway/test_wecom_callback.py::TestWecomCallbackRouting::test_send_falls_back_from_bare_user_id_when_unique",
        "tests/gateway/test_wecom_callback.py::TestWecomCallbackSendTokenRefresh::test_send_retries_with_fresh_token_on_errcode_40001",
        "tests/gateway/test_wecom_callback.py::TestWecomCallbackSendTokenRefresh::test_send_retries_with_fresh_token_on_errcode_42001",
        "tests/gateway/test_wecom_callback.py::TestWecomCallbackSendTokenRefresh::test_send_does_not_retry_on_non_token_errcode",
        "tests/gateway/test_wecom_callback.py::TestWecomCallbackSendTokenRefresh::test_send_fails_cleanly_when_retry_also_fails",
        "tests/gateway/test_wecom_callback.py::TestWecomCallbackPollLoop::test_poll_loop_dispatches_handle_message"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0351-test_wecom_callback.py.log",
      "output_sha256": "d421be879f47ca4f846d9391a2859009ab11698b217bf43e108ba23eff062ec4",
      "returncode": 0,
      "test_file": "tests/gateway/test_wecom_callback.py",
      "test_file_sha256": "ecc1d918d55a71fa280d8d1866281e23af3699e0d3ea68dec297c002110382ed"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0352",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_weixin.py"
      ],
      "nodeids": [
        "tests/gateway/test_weixin.py::TestWeixinFormatting::test_format_message_preserves_markdown",
        "tests/gateway/test_weixin.py::TestWeixinFormatting::test_format_message_preserves_markdown_tables",
        "tests/gateway/test_weixin.py::TestWeixinFormatting::test_format_message_preserves_fenced_code_blocks",
        "tests/gateway/test_weixin.py::TestWeixinFormatting::test_format_message_wraps_long_plain_lines_for_copying",
        "tests/gateway/test_weixin.py::TestWeixinFormatting::test_format_message_does_not_wrap_long_code_block_lines",
        "tests/gateway/test_weixin.py::TestWeixinFormatting::test_format_message_returns_empty_string_for_none",
        "tests/gateway/test_weixin.py::TestWeixinChunking::test_split_text_splits_short_chatty_replies_into_separate_bubbles",
        "tests/gateway/test_weixin.py::TestWeixinChunking::test_split_text_keeps_structured_table_block_together",
        "tests/gateway/test_weixin.py::TestWeixinChunking::test_split_text_keeps_four_line_structured_blocks_together",
        "tests/gateway/test_weixin.py::TestWeixinChunking::test_split_text_keeps_heading_with_body_together",
        "tests/gateway/test_weixin.py::TestWeixinChunking::test_split_text_keeps_short_reformatted_table_in_single_chunk",
        "tests/gateway/test_weixin.py::TestWeixinChunking::test_split_text_keeps_complete_code_block_together_when_possible",
        "tests/gateway/test_weixin.py::TestWeixinChunking::test_split_text_safely_splits_long_code_blocks",
        "tests/gateway/test_weixin.py::TestWeixinChunking::test_split_text_can_restore_legacy_multiline_splitting_via_config",
        "tests/gateway/test_weixin.py::TestWeixinConfig::test_apply_env_overrides_configures_weixin",
        "tests/gateway/test_weixin.py::TestWeixinConfig::test_get_connected_platforms_includes_weixin_with_token",
        "tests/gateway/test_weixin.py::TestWeixinConfig::test_get_connected_platforms_requires_account_id",
        "tests/gateway/test_weixin.py::TestWeixinStatePersistence::test_save_weixin_account_preserves_existing_file_on_replace_failure",
        "tests/gateway/test_weixin.py::TestWeixinStatePersistence::test_context_token_persist_preserves_existing_file_on_replace_failure",
        "tests/gateway/test_weixin.py::TestWeixinStatePersistence::test_save_sync_buf_preserves_existing_file_on_replace_failure",
        "tests/gateway/test_weixin.py::TestWeixinQrLogin::test_qr_login_timeout_uses_monotonic_clock",
        "tests/gateway/test_weixin.py::TestWeixinSendMessageIntegration::test_parse_target_ref_accepts_weixin_ids",
        "tests/gateway/test_weixin.py::TestWeixinSendMessageIntegration::test_send_to_platform_routes_weixin_media_to_native_helper",
        "tests/gateway/test_weixin.py::TestWeixinChunkDelivery::test_send_waits_between_multiple_chunks",
        "tests/gateway/test_weixin.py::TestWeixinChunkDelivery::test_send_retries_failed_chunk_before_continuing",
        "tests/gateway/test_weixin.py::TestWeixinChunkDelivery::test_repeated_rate_limits_open_circuit_for_followup_sends",
        "tests/gateway/test_weixin.py::TestWeixinChunkDelivery::test_open_rate_limit_circuit_fails_fast_without_sendmessage",
        "tests/gateway/test_weixin.py::TestWeixinChunkDelivery::test_successful_send_after_cooldown_resets_rate_limit_state",
        "tests/gateway/test_weixin.py::TestWeixinChunkDelivery::test_concurrent_rate_limited_sends_are_serialized_by_gate",
        "tests/gateway/test_weixin.py::TestWeixinOutboundMedia::test_send_image_file_accepts_keyword_image_path",
        "tests/gateway/test_weixin.py::TestWeixinOutboundMedia::test_send_document_accepts_keyword_file_path",
        "tests/gateway/test_weixin.py::TestWeixinOutboundMedia::test_send_file_uses_post_for_upload_full_url_and_hex_encoded_aes_key",
        "tests/gateway/test_weixin.py::TestWeixinRemoteMediaSafety::test_download_remote_media_blocks_unsafe_urls",
        "tests/gateway/test_weixin.py::TestWeixinMarkdownLinks::test_format_message_preserves_markdown_links",
        "tests/gateway/test_weixin.py::TestWeixinMarkdownLinks::test_format_message_preserves_links_inside_code_blocks",
        "tests/gateway/test_weixin.py::TestWeixinBlankMessagePrevention::test_split_text_returns_empty_list_for_empty_string",
        "tests/gateway/test_weixin.py::TestWeixinBlankMessagePrevention::test_split_text_returns_empty_list_for_empty_string_split_per_line",
        "tests/gateway/test_weixin.py::TestWeixinBlankMessagePrevention::test_send_empty_content_does_not_call_send_message",
        "tests/gateway/test_weixin.py::TestWeixinBlankMessagePrevention::test_send_message_rejects_empty_text",
        "tests/gateway/test_weixin.py::TestWeixinStreamingCursorSuppression::test_supports_message_editing_is_false",
        "tests/gateway/test_weixin.py::TestWeixinMediaBuilder::test_image_builder_aes_key_is_base64_of_hex",
        "tests/gateway/test_weixin.py::TestWeixinMediaBuilder::test_video_builder_includes_md5",
        "tests/gateway/test_weixin.py::TestWeixinMediaBuilder::test_voice_builder_for_audio_files_uses_file_attachment_type",
        "tests/gateway/test_weixin.py::TestWeixinMediaBuilder::test_voice_builder_for_silk_files",
        "tests/gateway/test_weixin.py::TestWeixinSendImageFileParameterName::test_send_image_file_uses_image_path_parameter",
        "tests/gateway/test_weixin.py::TestWeixinSendImageFileParameterName::test_send_image_file_works_without_optional_params",
        "tests/gateway/test_weixin.py::TestWeixinVoiceSending::test_send_voice_downgrades_to_document_attachment",
        "tests/gateway/test_weixin.py::TestWeixinVoiceSending::test_voice_builder_for_silk_files_can_be_forced_to_file_attachment",
        "tests/gateway/test_weixin.py::TestWeixinVoiceSending::test_send_file_sets_voice_metadata_for_silk_payload",
        "tests/gateway/test_weixin.py::TestIsStaleSessionRet::test_ret_minus_2_with_unknown_error_is_stale",
        "tests/gateway/test_weixin.py::TestIsStaleSessionRet::test_errcode_minus_2_with_unknown_error_is_stale",
        "tests/gateway/test_weixin.py::TestIsStaleSessionRet::test_unknown_error_case_insensitive",
        "tests/gateway/test_weixin.py::TestIsStaleSessionRet::test_ret_minus_2_with_freq_limit_is_not_stale",
        "tests/gateway/test_weixin.py::TestIsStaleSessionRet::test_ret_minus_2_with_no_errmsg_is_not_stale",
        "tests/gateway/test_weixin.py::TestIsStaleSessionRet::test_errcode_minus_14_is_not_matched_here",
        "tests/gateway/test_weixin.py::TestIsStaleSessionRet::test_success_codes_are_not_stale",
        "tests/gateway/test_weixin.py::TestWeixinContentDedup::test_duplicate_content_with_different_message_ids_is_dropped",
        "tests/gateway/test_weixin.py::TestWeixinContentDedup::test_content_dedup_not_called_for_messages_without_text",
        "tests/gateway/test_weixin.py::TestWeixinTextDebounce::test_batch_delays_default_from_config",
        "tests/gateway/test_weixin.py::TestWeixinTextDebounce::test_batch_delays_overridden_via_config_extra",
        "tests/gateway/test_weixin.py::TestWeixinTextDebounce::test_invalid_config_value_falls_back_to_default",
        "tests/gateway/test_weixin.py::TestWeixinTextDebounce::test_rapid_texts_collapse_into_single_dispatch",
        "tests/gateway/test_weixin.py::TestWeixinApiTimeout::test_api_post_does_not_pass_aiohttp_timeout_kwarg",
        "tests/gateway/test_weixin.py::TestWeixinApiTimeout::test_api_get_does_not_pass_aiohttp_timeout_kwarg",
        "tests/gateway/test_weixin.py::TestWeixinApiTimeout::test_api_post_raises_timeout_when_response_is_slow",
        "tests/gateway/test_weixin.py::TestWeixinApiTimeout::test_api_get_raises_timeout_when_response_is_slow",
        "tests/gateway/test_weixin.py::TestWeixinApiTimeout::test_api_post_raises_runtime_error_on_non_ok_status",
        "tests/gateway/test_weixin.py::TestWeixinApiTimeout::test_api_get_raises_runtime_error_on_non_ok_status",
        "tests/gateway/test_weixin.py::TestWeixinApiTimeout::test_get_updates_returns_empty_sentinel_on_timeout"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0352-test_weixin.py.log",
      "output_sha256": "c7f79a641365262159f5d46c5d28f816587f792971dbed1d281d281ae4acd4f1",
      "returncode": 0,
      "test_file": "tests/gateway/test_weixin.py",
      "test_file_sha256": "e6a6a9d3c523d11bbcf2776deab616129db0683893568805198859da3f1f5393"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0353",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_weixin_typing.py"
      ],
      "nodeids": [
        "tests/gateway/test_weixin_typing.py::TestEnsureTypingTicket::test_returns_cached_ticket_when_fresh",
        "tests/gateway/test_weixin_typing.py::TestEnsureTypingTicket::test_refreshes_when_ticket_expired",
        "tests/gateway/test_weixin_typing.py::TestEnsureTypingTicket::test_refreshes_when_no_cached_ticket",
        "tests/gateway/test_weixin_typing.py::TestEnsureTypingTicket::test_uses_stored_context_token_when_available",
        "tests/gateway/test_weixin_typing.py::TestEnsureTypingTicket::test_returns_none_when_no_session",
        "tests/gateway/test_weixin_typing.py::TestEnsureTypingTicket::test_returns_none_when_getconfig_fails",
        "tests/gateway/test_weixin_typing.py::TestEnsureTypingTicket::test_returns_none_when_getconfig_returns_empty_ticket",
        "tests/gateway/test_weixin_typing.py::TestEnsureTypingTicket::test_stop_typing_refreshes_ticket",
        "tests/gateway/test_weixin_typing.py::TestEnsureTypingTicket::test_send_typing_refreshes_ticket",
        "tests/gateway/test_weixin_typing.py::TestTypingTicketCache::test_returns_ticket_when_fresh",
        "tests/gateway/test_weixin_typing.py::TestTypingTicketCache::test_returns_none_when_expired",
        "tests/gateway/test_weixin_typing.py::TestTypingTicketCache::test_returns_none_when_missing",
        "tests/gateway/test_weixin_typing.py::TestTypingTicketCache::test_expired_entry_is_removed_from_cache"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0353-test_weixin_typing.py.log",
      "output_sha256": "2cae778e48fa4243420663e78cd316634ce97a285fdae12f894620c8f804dd78",
      "returncode": 0,
      "test_file": "tests/gateway/test_weixin_typing.py",
      "test_file_sha256": "dbe47d61abed3f4b5f2d6023340878618035301cc0ccd0e5c1f1e97feca5fb32"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0354",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_whatsapp_cloud.py"
      ],
      "nodeids": [
        "tests/gateway/test_whatsapp_cloud.py::TestSendText::test_send_builds_correct_url",
        "tests/gateway/test_whatsapp_cloud.py::TestSendText::test_send_includes_bearer_auth",
        "tests/gateway/test_whatsapp_cloud.py::TestSendText::test_send_payload_shape",
        "tests/gateway/test_whatsapp_cloud.py::TestSendText::test_send_returns_wamid",
        "tests/gateway/test_whatsapp_cloud.py::TestSendText::test_send_applies_markdown_conversion",
        "tests/gateway/test_whatsapp_cloud.py::TestSendText::test_send_reply_to_attaches_context_first_chunk_only",
        "tests/gateway/test_whatsapp_cloud.py::TestSendText::test_send_long_message_chunked",
        "tests/gateway/test_whatsapp_cloud.py::TestSendText::test_send_graph_error_returns_failure",
        "tests/gateway/test_whatsapp_cloud.py::TestSendText::test_send_empty_content_no_request",
        "tests/gateway/test_whatsapp_cloud.py::TestSendText::test_send_not_connected_returns_failure",
        "tests/gateway/test_whatsapp_cloud.py::TestSendText::test_send_network_exception_returns_failure",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookVerify::test_verify_echoes_challenge_on_match",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookVerify::test_verify_rejects_token_mismatch",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookVerify::test_verify_rejects_wrong_mode",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookVerify::test_verify_rejects_missing_challenge",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookVerify::test_verify_refuses_when_token_unconfigured",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookSignature::test_valid_signature_accepted",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookSignature::test_tampered_body_rejected",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookSignature::test_missing_signature_header_rejected",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookSignature::test_wrong_signature_format_rejected",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookSignature::test_unconfigured_app_secret_refuses_503",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookSignature::test_signature_uses_constant_time_compare",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookSignature::test_oversize_body_rejected_before_signature",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookSignature::test_unreadable_body_rejected",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookReplay::test_duplicate_wamid_not_redispatched",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookReplay::test_dedup_cache_evicts_oldest",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookReplay::test_dedup_no_wamid_lets_through",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookDispatch::test_text_message_dispatched_with_event_shape",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookDispatch::test_dispatch_filters_via_mixin_gating",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookDispatch::test_dispatch_handler_exception_does_not_crash",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookDispatch::test_dispatch_ignores_non_message_field",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookDispatch::test_dispatch_ignores_non_waba_object",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookDispatch::test_dispatch_handles_button_reply",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookDispatch::test_dispatch_propagates_reply_to",
        "tests/gateway/test_whatsapp_cloud.py::TestWebhookDispatch::test_invalid_json_after_signature_returns_400",
        "tests/gateway/test_whatsapp_cloud.py::TestHealth::test_health_reports_config_visibility",
        "tests/gateway/test_whatsapp_cloud.py::TestHealth::test_health_flags_missing_secrets",
        "tests/gateway/test_whatsapp_cloud.py::TestMixinInherited::test_format_message_converts_markdown",
        "tests/gateway/test_whatsapp_cloud.py::TestMixinInherited::test_should_process_message_dm_open",
        "tests/gateway/test_whatsapp_cloud.py::TestMixinInherited::test_should_process_message_dm_disabled",
        "tests/gateway/test_whatsapp_cloud.py::TestMixinInherited::test_broadcast_chats_filtered",
        "tests/gateway/test_whatsapp_cloud.py::TestSendImage::test_send_image_link_mode_skips_upload",
        "tests/gateway/test_whatsapp_cloud.py::TestSendImage::test_send_image_local_path_uploads_then_sends",
        "tests/gateway/test_whatsapp_cloud.py::TestSendImage::test_send_image_caption_attached",
        "tests/gateway/test_whatsapp_cloud.py::TestSendImage::test_send_image_oversize_rejected_locally",
        "tests/gateway/test_whatsapp_cloud.py::TestSendImage::test_send_image_missing_local_file_returns_failure",
        "tests/gateway/test_whatsapp_cloud.py::TestSendImage::test_send_image_upload_failure_returns_failure",
        "tests/gateway/test_whatsapp_cloud.py::TestSendVideo::test_send_video_link_mode",
        "tests/gateway/test_whatsapp_cloud.py::TestSendMethodsAcceptBaseClassKwargs::test_send_image_accepts_metadata",
        "tests/gateway/test_whatsapp_cloud.py::TestSendMethodsAcceptBaseClassKwargs::test_send_image_file_accepts_metadata",
        "tests/gateway/test_whatsapp_cloud.py::TestSendMethodsAcceptBaseClassKwargs::test_send_video_accepts_metadata",
        "tests/gateway/test_whatsapp_cloud.py::TestSendMethodsAcceptBaseClassKwargs::test_send_voice_accepts_metadata",
        "tests/gateway/test_whatsapp_cloud.py::TestSendMethodsAcceptBaseClassKwargs::test_send_document_accepts_metadata",
        "tests/gateway/test_whatsapp_cloud.py::TestSendDocument::test_send_document_filename_attached",
        "tests/gateway/test_whatsapp_cloud.py::TestSendVoice::test_send_voice_no_ffmpeg_falls_back_to_mp3",
        "tests/gateway/test_whatsapp_cloud.py::TestSendVoice::test_send_voice_ffmpeg_present_uses_opus",
        "tests/gateway/test_whatsapp_cloud.py::TestSendVoice::test_warn_once_no_ffmpeg_actually_only_warns_once",
        "tests/gateway/test_whatsapp_cloud.py::TestDownloadMedia::test_two_step_download_writes_cache_file",
        "tests/gateway/test_whatsapp_cloud.py::TestDownloadMedia::test_metadata_failure_returns_none",
        "tests/gateway/test_whatsapp_cloud.py::TestDownloadMedia::test_bytes_failure_returns_none",
        "tests/gateway/test_whatsapp_cloud.py::TestDownloadMedia::test_metadata_includes_auth_header",
        "tests/gateway/test_whatsapp_cloud.py::TestDownloadMedia::test_extension_overrides_for_real_world_mimes[audio/ogg-.ogg]",
        "tests/gateway/test_whatsapp_cloud.py::TestDownloadMedia::test_extension_overrides_for_real_world_mimes[audio/ogg; codecs=opus-.ogg]",
        "tests/gateway/test_whatsapp_cloud.py::TestDownloadMedia::test_extension_overrides_for_real_world_mimes[audio/x-opus+ogg-.ogg]",
        "tests/gateway/test_whatsapp_cloud.py::TestDownloadMedia::test_extension_overrides_for_real_world_mimes[audio/opus-.ogg]",
        "tests/gateway/test_whatsapp_cloud.py::TestDownloadMedia::test_extension_overrides_for_real_world_mimes[audio/mp4-.m4a]",
        "tests/gateway/test_whatsapp_cloud.py::TestDownloadMedia::test_extension_overrides_for_real_world_mimes[audio/x-m4a-.m4a]",
        "tests/gateway/test_whatsapp_cloud.py::TestDownloadMedia::test_extension_overrides_for_real_world_mimes[image/jpeg-.jpg]",
        "tests/gateway/test_whatsapp_cloud.py::TestInboundMediaDispatch::test_inbound_image_populates_media_urls",
        "tests/gateway/test_whatsapp_cloud.py::TestInboundMediaDispatch::test_inbound_text_document_injected_into_body",
        "tests/gateway/test_whatsapp_cloud.py::TestInboundMediaDispatch::test_inbound_image_download_failure_still_dispatches",
        "tests/gateway/test_whatsapp_cloud.py::TestGroupMessageGuard::test_group_shaped_message_dropped_with_warning",
        "tests/gateway/test_whatsapp_cloud.py::TestGroupMessageGuard::test_normal_dm_still_dispatches",
        "tests/gateway/test_whatsapp_cloud.py::TestSendClarifyButtons::test_three_choices_uses_button_mode",
        "tests/gateway/test_whatsapp_cloud.py::TestSendClarifyButtons::test_four_choices_promoted_to_list_mode",
        "tests/gateway/test_whatsapp_cloud.py::TestSendClarifyButtons::test_open_ended_falls_back_to_plain_text",
        "tests/gateway/test_whatsapp_cloud.py::TestSendClarifyButtons::test_send_failure_does_not_register_state",
        "tests/gateway/test_whatsapp_cloud.py::TestSendExecApprovalButtons::test_approval_renders_two_buttons",
        "tests/gateway/test_whatsapp_cloud.py::TestSendExecApprovalButtons::test_long_command_is_truncated",
        "tests/gateway/test_whatsapp_cloud.py::TestSendSlashConfirmButtons::test_three_buttons_with_ids",
        "tests/gateway/test_whatsapp_cloud.py::TestDispatchInteractiveReplyClarify::test_clarify_tap_resolves_and_pops_state",
        "tests/gateway/test_whatsapp_cloud.py::TestDispatchInteractiveReplyClarify::test_clarify_other_button_keeps_state_and_prompts",
        "tests/gateway/test_whatsapp_cloud.py::TestDispatchInteractiveReplyClarify::test_clarify_other_with_no_entry_falls_back",
        "tests/gateway/test_whatsapp_cloud.py::TestDispatchInteractiveReplyClarify::test_stale_clarify_tap_falls_back_to_text",
        "tests/gateway/test_whatsapp_cloud.py::TestDispatchInteractiveReplyClarify::test_clarify_resolver_no_waiter_falls_back",
        "tests/gateway/test_whatsapp_cloud.py::TestDispatchInteractiveReplyApproval::test_approve_tap_calls_resolver_and_confirms",
        "tests/gateway/test_whatsapp_cloud.py::TestDispatchInteractiveReplyApproval::test_deny_tap_passes_deny_choice",
        "tests/gateway/test_whatsapp_cloud.py::TestDispatchInteractiveReplySlashConfirm::test_once_tap_calls_resolver",
        "tests/gateway/test_whatsapp_cloud.py::TestInteractiveReplyEndToEnd::test_recognized_tap_returns_none_no_text_dispatch",
        "tests/gateway/test_whatsapp_cloud.py::TestInteractiveReplyEndToEnd::test_unrecognized_tap_falls_through_to_text",
        "tests/gateway/test_whatsapp_cloud.py::TestInboundWamidCache::test_accepted_message_populates_cache",
        "tests/gateway/test_whatsapp_cloud.py::TestInboundWamidCache::test_subsequent_messages_overwrite_cache",
        "tests/gateway/test_whatsapp_cloud.py::TestInboundWamidCache::test_filtered_message_does_not_pollute_cache",
        "tests/gateway/test_whatsapp_cloud.py::TestSendTyping::test_send_typing_posts_correct_payload",
        "tests/gateway/test_whatsapp_cloud.py::TestSendTyping::test_send_typing_uses_latest_cached_wamid",
        "tests/gateway/test_whatsapp_cloud.py::TestSendTyping::test_send_typing_no_cached_wamid_is_noop",
        "tests/gateway/test_whatsapp_cloud.py::TestSendTyping::test_send_typing_swallows_network_errors",
        "tests/gateway/test_whatsapp_cloud.py::TestSendTyping::test_send_typing_stale_message_logged_at_info",
        "tests/gateway/test_whatsapp_cloud.py::TestSendTyping::test_send_typing_no_http_client_is_noop",
        "tests/gateway/test_whatsapp_cloud.py::TestSendTyping::test_send_typing_includes_bearer_auth",
        "tests/gateway/test_whatsapp_cloud.py::TestAllowlistNormalization::test_normalize_allow_ids_strips_jid_suffix_and_punctuation",
        "tests/gateway/test_whatsapp_cloud.py::TestAllowlistNormalization::test_dm_allowlist_matches_bare_wa_id_against_jid_entry",
        "tests/gateway/test_whatsapp_cloud.py::TestAllowlistNormalization::test_cloud_env_overrides_take_precedence",
        "tests/gateway/test_whatsapp_cloud.py::TestBoundedInteractiveState::test_bounded_put_evicts_oldest",
        "tests/gateway/test_whatsapp_cloud.py::TestMediaIdValidation::test_traversal_media_id_refused"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0354-test_whatsapp_cloud.py.log",
      "output_sha256": "2090d84d3ae6f2ee8b8cf1dede4745ff566a6497557c4b5c15a44aedbcd18a09",
      "returncode": 0,
      "test_file": "tests/gateway/test_whatsapp_cloud.py",
      "test_file_sha256": "b23511689f411b24af1e209c0d52675cbb0fc5e6f068572b3013479b968da4e6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0355",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_whatsapp_connect.py"
      ],
      "nodeids": [
        "tests/gateway/test_whatsapp_connect.py::TestCloseBridgeLog::test_closes_open_handle",
        "tests/gateway/test_whatsapp_connect.py::TestCloseBridgeLog::test_noop_when_no_handle",
        "tests/gateway/test_whatsapp_connect.py::TestCloseBridgeLog::test_suppresses_close_exception",
        "tests/gateway/test_whatsapp_connect.py::TestDataInitialized::test_no_name_error_when_json_always_fails",
        "tests/gateway/test_whatsapp_connect.py::TestFileHandleClosedOnError::test_closed_when_bridge_dies_phase1",
        "tests/gateway/test_whatsapp_connect.py::TestConnectCleanup::test_releases_lock_when_npm_install_fails",
        "tests/gateway/test_whatsapp_connect.py::TestBridgeRuntimeFailure::test_send_marks_retryable_fatal_when_managed_bridge_exits",
        "tests/gateway/test_whatsapp_connect.py::TestBridgeRuntimeFailure::test_poll_messages_marks_retryable_fatal_when_managed_bridge_exits",
        "tests/gateway/test_whatsapp_connect.py::TestBridgeRuntimeFailure::test_shutdown_suppresses_fatal_on_planned_bridge_exit[0]",
        "tests/gateway/test_whatsapp_connect.py::TestBridgeRuntimeFailure::test_shutdown_suppresses_fatal_on_planned_bridge_exit[-2]",
        "tests/gateway/test_whatsapp_connect.py::TestBridgeRuntimeFailure::test_shutdown_suppresses_fatal_on_planned_bridge_exit[-15]",
        "tests/gateway/test_whatsapp_connect.py::TestBridgeRuntimeFailure::test_shutdown_still_surfaces_nonzero_crash",
        "tests/gateway/test_whatsapp_connect.py::TestBridgeRuntimeFailure::test_closed_when_http_not_ready",
        "tests/gateway/test_whatsapp_connect.py::TestBridgeRuntimeFailure::test_closed_when_bridge_dies_phase2",
        "tests/gateway/test_whatsapp_connect.py::TestBridgeRuntimeFailure::test_closed_on_unexpected_exception",
        "tests/gateway/test_whatsapp_connect.py::TestKillPortProcess::test_uses_netstat_and_taskkill_on_windows",
        "tests/gateway/test_whatsapp_connect.py::TestKillPortProcess::test_does_not_kill_wrong_port_on_windows",
        "tests/gateway/test_whatsapp_connect.py::TestKillPortProcess::test_uses_fuser_on_linux",
        "tests/gateway/test_whatsapp_connect.py::TestKillPortProcess::test_skips_fuser_kill_when_port_free",
        "tests/gateway/test_whatsapp_connect.py::TestKillPortProcess::test_suppresses_exceptions",
        "tests/gateway/test_whatsapp_connect.py::TestHttpSessionLifecycle::test_disconnect_uses_taskkill_tree_on_windows",
        "tests/gateway/test_whatsapp_connect.py::TestHttpSessionLifecycle::test_session_closed_on_disconnect",
        "tests/gateway/test_whatsapp_connect.py::TestHttpSessionLifecycle::test_session_not_closed_when_already_closed",
        "tests/gateway/test_whatsapp_connect.py::TestHttpSessionLifecycle::test_poll_task_cancelled_on_disconnect",
        "tests/gateway/test_whatsapp_connect.py::TestHttpSessionLifecycle::test_disconnect_skips_done_poll_task",
        "tests/gateway/test_whatsapp_connect.py::TestNoCredsPreflight::test_connect_returns_false_when_no_creds",
        "tests/gateway/test_whatsapp_connect.py::TestNoCredsPreflight::test_connect_proceeds_when_creds_present"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0355-test_whatsapp_connect.py.log",
      "output_sha256": "25debac8a2910ab083522fa2c8dc7fd6fec9032894aea90033898c6628642ddb",
      "returncode": 0,
      "test_file": "tests/gateway/test_whatsapp_connect.py",
      "test_file_sha256": "0a8cb725278cbd986eedcf460d08d790326515551b5424b7fb9ca1a00aa8c725"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0356",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_whatsapp_formatting.py"
      ],
      "nodeids": [
        "tests/gateway/test_whatsapp_formatting.py::TestFormatMessage::test_bold_double_asterisk",
        "tests/gateway/test_whatsapp_formatting.py::TestFormatMessage::test_bold_double_underscore",
        "tests/gateway/test_whatsapp_formatting.py::TestFormatMessage::test_strikethrough",
        "tests/gateway/test_whatsapp_formatting.py::TestFormatMessage::test_headers_converted_to_bold",
        "tests/gateway/test_whatsapp_formatting.py::TestFormatMessage::test_bold_header_does_not_double_wrap",
        "tests/gateway/test_whatsapp_formatting.py::TestFormatMessage::test_links_converted",
        "tests/gateway/test_whatsapp_formatting.py::TestFormatMessage::test_code_blocks_protected",
        "tests/gateway/test_whatsapp_formatting.py::TestFormatMessage::test_inline_code_protected",
        "tests/gateway/test_whatsapp_formatting.py::TestFormatMessage::test_empty_content",
        "tests/gateway/test_whatsapp_formatting.py::TestFormatMessage::test_plain_text_unchanged",
        "tests/gateway/test_whatsapp_formatting.py::TestFormatMessage::test_already_whatsapp_italic",
        "tests/gateway/test_whatsapp_formatting.py::TestFormatMessage::test_multiline_mixed",
        "tests/gateway/test_whatsapp_formatting.py::TestMessageLimits::test_max_message_length_is_practical",
        "tests/gateway/test_whatsapp_formatting.py::TestMessageLimits::test_chunk_limit_reserves_default_self_chat_prefix",
        "tests/gateway/test_whatsapp_formatting.py::TestMessageLimits::test_chunk_limit_does_not_reserve_prefix_in_bot_mode",
        "tests/gateway/test_whatsapp_formatting.py::TestSendChunking::test_short_message_single_send",
        "tests/gateway/test_whatsapp_formatting.py::TestSendChunking::test_long_message_chunked",
        "tests/gateway/test_whatsapp_formatting.py::TestSendChunking::test_chunks_leave_room_for_bridge_prefix",
        "tests/gateway/test_whatsapp_formatting.py::TestSendChunking::test_empty_message_no_send",
        "tests/gateway/test_whatsapp_formatting.py::TestSendChunking::test_whitespace_only_no_send",
        "tests/gateway/test_whatsapp_formatting.py::TestSendChunking::test_format_applied_before_send",
        "tests/gateway/test_whatsapp_formatting.py::TestSendChunking::test_reply_to_only_on_first_chunk",
        "tests/gateway/test_whatsapp_formatting.py::TestSendChunking::test_bridge_error_returns_failure",
        "tests/gateway/test_whatsapp_formatting.py::TestSendChunking::test_not_connected_returns_failure",
        "tests/gateway/test_whatsapp_formatting.py::TestBridgeEventMetadata::test_quoted_reply_metadata_is_preserved_in_raw_message",
        "tests/gateway/test_whatsapp_formatting.py::TestWhatsAppTier::test_whatsapp_streaming_follows_global",
        "tests/gateway/test_whatsapp_formatting.py::TestWhatsAppTier::test_whatsapp_tool_progress_is_new"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0356-test_whatsapp_formatting.py.log",
      "output_sha256": "811fb144d41aa0301cd9849324a1583a1b86385bbed072f13336c0a084a1e3b0",
      "returncode": 0,
      "test_file": "tests/gateway/test_whatsapp_formatting.py",
      "test_file_sha256": "ac096d17f6dba99164157ee653e0da60b79ab27442cceb337eae8ae8a5d914f4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0357",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_whatsapp_group_gating.py"
      ],
      "nodeids": [
        "tests/gateway/test_whatsapp_group_gating.py::test_group_messages_can_be_opened_via_config",
        "tests/gateway/test_whatsapp_group_gating.py::test_group_messages_can_require_direct_trigger_via_config",
        "tests/gateway/test_whatsapp_group_gating.py::test_regex_mention_patterns_allow_custom_wake_words",
        "tests/gateway/test_whatsapp_group_gating.py::test_invalid_regex_patterns_are_ignored",
        "tests/gateway/test_whatsapp_group_gating.py::test_config_bridges_whatsapp_group_settings",
        "tests/gateway/test_whatsapp_group_gating.py::test_free_response_chats_bypass_mention_gating",
        "tests/gateway/test_whatsapp_group_gating.py::test_free_response_chats_does_not_bypass_other_groups",
        "tests/gateway/test_whatsapp_group_gating.py::test_dm_passes_with_default_open_policy",
        "tests/gateway/test_whatsapp_group_gating.py::test_mention_stripping_removes_bot_phone_from_body",
        "tests/gateway/test_whatsapp_group_gating.py::test_mention_stripping_preserves_body_when_no_mention",
        "tests/gateway/test_whatsapp_group_gating.py::test_dm_policy_disabled_blocks_all_dms",
        "tests/gateway/test_whatsapp_group_gating.py::test_dm_policy_disabled_still_allows_groups",
        "tests/gateway/test_whatsapp_group_gating.py::test_dm_policy_allowlist_blocks_unlisted_sender",
        "tests/gateway/test_whatsapp_group_gating.py::test_dm_policy_allowlist_allows_listed_sender",
        "tests/gateway/test_whatsapp_group_gating.py::test_dm_policy_open_allows_all_dms",
        "tests/gateway/test_whatsapp_group_gating.py::test_group_policy_disabled_blocks_all_groups",
        "tests/gateway/test_whatsapp_group_gating.py::test_group_policy_disabled_still_allows_dms",
        "tests/gateway/test_whatsapp_group_gating.py::test_group_policy_allowlist_blocks_unlisted_group",
        "tests/gateway/test_whatsapp_group_gating.py::test_group_policy_allowlist_allows_listed_group",
        "tests/gateway/test_whatsapp_group_gating.py::test_group_policy_open_allows_all_groups",
        "tests/gateway/test_whatsapp_group_gating.py::test_config_bridges_whatsapp_dm_and_group_policy",
        "tests/gateway/test_whatsapp_group_gating.py::test_config_bridges_whatsapp_allow_from",
        "tests/gateway/test_whatsapp_group_gating.py::test_status_broadcast_chats_are_always_dropped",
        "tests/gateway/test_whatsapp_group_gating.py::test_broadcast_filter_runs_before_allowlist",
        "tests/gateway/test_whatsapp_group_gating.py::test_real_dm_still_processed_after_broadcast_filter",
        "tests/gateway/test_whatsapp_group_gating.py::test_is_broadcast_chat_helper_recognizes_common_jids"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0357-test_whatsapp_group_gating.py.log",
      "output_sha256": "3733c3baf1fb8f4b250f84d80e721eacce1d90be8a7e0b254c476bbac7918753",
      "returncode": 0,
      "test_file": "tests/gateway/test_whatsapp_group_gating.py",
      "test_file_sha256": "d09f5f6fcf16cdc78963e9946bf3aea1d41e016fc5d146a2530146422462bdd1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0358",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_whatsapp_reply_prefix.py"
      ],
      "nodeids": [
        "tests/gateway/test_whatsapp_reply_prefix.py::TestConfigYamlBridging::test_reply_prefix_bridged_from_yaml",
        "tests/gateway/test_whatsapp_reply_prefix.py::TestConfigYamlBridging::test_empty_reply_prefix_bridged",
        "tests/gateway/test_whatsapp_reply_prefix.py::TestConfigYamlBridging::test_no_whatsapp_section_no_extra",
        "tests/gateway/test_whatsapp_reply_prefix.py::TestConfigYamlBridging::test_whatsapp_section_without_reply_prefix",
        "tests/gateway/test_whatsapp_reply_prefix.py::TestAdapterInit::test_reply_prefix_from_extra",
        "tests/gateway/test_whatsapp_reply_prefix.py::TestAdapterInit::test_reply_prefix_default_none",
        "tests/gateway/test_whatsapp_reply_prefix.py::TestAdapterInit::test_reply_prefix_empty_string",
        "tests/gateway/test_whatsapp_reply_prefix.py::TestConfigVersionCoverage::test_default_config_version_covers_env_var_versions"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0358-test_whatsapp_reply_prefix.py.log",
      "output_sha256": "10bedfa2d528550e891431c9b54bd297188275941786239dfeeae3d79229ff6b",
      "returncode": 0,
      "test_file": "tests/gateway/test_whatsapp_reply_prefix.py",
      "test_file_sha256": "7818f1b691f0caea89ff03bf1c19986670e563ea6df2983813080daf26038829"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0359",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_whatsapp_stale_bridge.py"
      ],
      "nodeids": [
        "tests/gateway/test_whatsapp_stale_bridge.py::TestFileContentHash::test_hashes_file",
        "tests/gateway/test_whatsapp_stale_bridge.py::TestFileContentHash::test_changes_with_content",
        "tests/gateway/test_whatsapp_stale_bridge.py::TestFileContentHash::test_missing_file_returns_empty",
        "tests/gateway/test_whatsapp_stale_bridge.py::TestFileContentHash::test_matches_bridge_js_self_hash_algorithm",
        "tests/gateway/test_whatsapp_stale_bridge.py::TestStaleBridgeHandshake::test_reuses_bridge_when_hash_matches",
        "tests/gateway/test_whatsapp_stale_bridge.py::TestStaleBridgeHandshake::test_restarts_bridge_on_hash_mismatch",
        "tests/gateway/test_whatsapp_stale_bridge.py::TestStaleBridgeHandshake::test_restarts_unversioned_bridge",
        "tests/gateway/test_whatsapp_stale_bridge.py::TestDepRefreshStamp::test_skips_install_when_stamp_fresh",
        "tests/gateway/test_whatsapp_stale_bridge.py::TestDepRefreshStamp::test_reinstalls_when_package_json_changed",
        "tests/gateway/test_whatsapp_stale_bridge.py::TestDepRefreshStamp::test_installs_when_node_modules_missing",
        "tests/gateway/test_whatsapp_stale_bridge.py::TestCacheDirEnvPassthrough::test_bridge_spawn_env_has_cache_dirs"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0359-test_whatsapp_stale_bridge.py.log",
      "output_sha256": "cb033a40f376b51f86475a88d12822b4ee65c9b3a8b8a5189b09a21cd8706e3d",
      "returncode": 0,
      "test_file": "tests/gateway/test_whatsapp_stale_bridge.py",
      "test_file_sha256": "9f816dc3af4dae0cf752f36f52ae72a35e09c3cede26b7ca3bf28ece6919efd0"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0360",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_whatsapp_text_batching.py"
      ],
      "nodeids": [
        "tests/gateway/test_whatsapp_text_batching.py::test_batch_delays_default_from_config",
        "tests/gateway/test_whatsapp_text_batching.py::test_batch_delays_overridden_via_config_extra",
        "tests/gateway/test_whatsapp_text_batching.py::test_invalid_config_value_falls_back_to_default",
        "tests/gateway/test_whatsapp_text_batching.py::test_env_var_is_ignored",
        "tests/gateway/test_whatsapp_text_batching.py::test_rapid_texts_collapse_into_single_dispatch",
        "tests/gateway/test_whatsapp_text_batching.py::test_lone_message_dispatched_alone"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0360-test_whatsapp_text_batching.py.log",
      "output_sha256": "ff8d3b3aae26de30b983dbe764d7d3ad2c665a5f81ad26db6a4777f9287d5c43",
      "returncode": 0,
      "test_file": "tests/gateway/test_whatsapp_text_batching.py",
      "test_file_sha256": "d9631704540c9e695248607d2224ba24b70bc4cfba5302accbdee6a9b2c74f56"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0361",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_ws_auth_retry.py"
      ],
      "nodeids": [
        "tests/gateway/test_ws_auth_retry.py::TestMattermostWSAuthRetry::test_401_handshake_stops_reconnect",
        "tests/gateway/test_ws_auth_retry.py::TestMattermostWSAuthRetry::test_403_handshake_stops_reconnect",
        "tests/gateway/test_ws_auth_retry.py::TestMattermostWSAuthRetry::test_transient_error_retries",
        "tests/gateway/test_ws_auth_retry.py::TestMatrixSyncAuthRetry::test_unknown_token_sync_error_stops_loop",
        "tests/gateway/test_ws_auth_retry.py::TestMatrixSyncAuthRetry::test_exception_with_401_stops_loop",
        "tests/gateway/test_ws_auth_retry.py::TestMatrixSyncAuthRetry::test_transient_error_retries"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0361-test_ws_auth_retry.py.log",
      "output_sha256": "7bdd2d3aa50c1a387209d2a54d4df3b8c07a845ec1ff72d55ca8707e624996fc",
      "returncode": 0,
      "test_file": "tests/gateway/test_ws_auth_retry.py",
      "test_file_sha256": "18fc4bcde22033b2283428d888ee5c4d9c43d2dd9178a6f30a116649d60991a6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "--collect-only",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8c-0362",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_yolo_command.py"
      ],
      "nodeids": [
        "tests/gateway/test_yolo_command.py::test_yolo_command_toggles_only_current_session"
      ],
      "outcome": "collected",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0362-test_yolo_command.py.log",
      "output_sha256": "c7f505d54b074517ecc0f6f86a205205abc2214fe65f8975e75de9b09cde1790",
      "returncode": 0,
      "test_file": "tests/gateway/test_yolo_command.py",
      "test_file_sha256": "492f38b34806d59b487b4efca29709523803f362b338068138635c1051b924c5"
    }
  ],
  "interpreter": {
    "entrypoint": "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
    "resolved": "/home/cube/miniconda3/bin/python3.12",
    "sha256": "d9bc96d1ad0161db7ebdc8fdbc690530a9c29299feb2001cba6b29072e2a9051"
  },
  "isolation": {
    "collection": "one fresh subprocess per test file",
    "cwd": "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl",
    "pythonpath": "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/dualcoach/profile:/home/cube/projects/richard/.worktrees/nutricoach-v140-impl",
    "workers": 12
  },
  "nodeid_count": 7751,
  "repository": ".",
  "schema": "nutricoach-v140-task12-isolated-gateway-nodeids-v1"
}

=== broad-gateway-isolated-shards.json ===
{
  "collection_manifest": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/broad-gateway-nodeids-isolated.json",
  "collection_manifest_sha256": "4f60f84e246df73fa5659113337704746484b79a92457bd670d1dc183cda963f",
  "collection_skips": [
    "tests/gateway/test_discord_voice_mixer.py",
    "tests/gateway/test_matrix_voice.py"
  ],
  "expected_nodeid_count": 7751,
  "failures": [
    "tests/gateway/test_adaptive_nutrition.py",
    "tests/gateway/test_diagnostic_isolation.py",
    "tests/gateway/test_gateway_shutdown.py",
    "tests/gateway/test_korean_humanizer.py",
    "tests/gateway/test_planned_stop_watcher.py",
    "tests/gateway/test_runner_startup_failures.py",
    "tests/gateway/test_shutdown_memory_provider_messages.py",
    "tests/gateway/test_status.py",
    "tests/gateway/test_telegram_conflict.py",
    "tests/gateway/test_telegram_group_gating.py",
    "tests/gateway/test_wecom_callback.py"
  ],
  "files": [
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-5cd7f559e0",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_35809_auto_reset_clean_context.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "f837775a64634d308c89dc2e5cc5e2b365bbcf8e27a0218913239285c003ce52",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_35809_auto_reset_clean_context.py.log",
      "output_sha256": "5cd5265d12717754cd621e2d12792e961e4c63e7a7a2656d4537bcd2eeb45b51",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_35809_auto_reset_clean_context.py",
      "test_file_sha256": "7c2d2e9311b619dd56566621b01aa722a71b6081d14087a87f9c1be63c404198"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-d033508168",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_42039_duplicate_user_message.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "79e2cab25d8c755a15555191b76bc653ac3081e59731e8c000d51160f0834ceb",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_42039_duplicate_user_message.py.log",
      "output_sha256": "ec0be29a1fc84d2917560f326b956022681332a326b59856fecf911604f995d2",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_42039_duplicate_user_message.py",
      "test_file_sha256": "c0a1d3a5da9b2346b9c294e52893d14e69fc59a480c4e0f3120f048aee2b122a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-199e6ae023",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_7100_transient_failure_transcript.py"
      ],
      "expected_nodeid_count": 9,
      "expected_nodeids_sha256": "e9bc8310436444139408cf9f0b99eeaeab5642770f77732f1823e2fc7e3805e0",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_7100_transient_failure_transcript.py.log",
      "output_sha256": "71808535af46fe626b2fea83bedf237f0912b36bb6b3a50d553c8d93e57f99a8",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 9,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_7100_transient_failure_transcript.py",
      "test_file_sha256": "312aac63a1d00508ccc8a40cd7fa1bbdc42933ffdbdb4c611cd296c2356e62e5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-beaa76324f",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_active_session_text_merge.py"
      ],
      "expected_nodeid_count": 15,
      "expected_nodeids_sha256": "c1d7ed07172a5750d6f631c5c074c41aa374bf0fc23df04f76891fea6a84bac2",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_active_session_text_merge.py.log",
      "output_sha256": "accb25e30ebc719b818a7293939392a590b1a8f728fbf1db9265d49fb6865c93",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 15,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_active_session_text_merge.py",
      "test_file_sha256": "b80730c7ffde21ddefe20a490f981f8e4fed271c2c0a5995d1415635f7659988"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-483d5d91d4",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_adaptive_nutrition.py"
      ],
      "expected_nodeid_count": 126,
      "expected_nodeids_sha256": "091baec6591a00a71adaa1b7bb9f1720cc8b348461230a154f85a52f7d0b8c8f",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_adaptive_nutrition.py.log",
      "output_sha256": "9e10faf036425c97a0bcdfcabe6897a4962a39adec0713cd09cf4abe38bde1ee",
      "returncode": 1,
      "shard": 10,
      "status": "failed",
      "summary_count": 126,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_adaptive_nutrition.py",
      "test_file_sha256": "bf887f938dc71fc8825f31042dc8da5284c9145e17eaeab91dc4aa98e49f9373"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-25ca9b67a0",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_agent_cache.py"
      ],
      "expected_nodeid_count": 68,
      "expected_nodeids_sha256": "8f871e5d8042a781bab9d6ad6b6a8e6f87bd3cfe7180b53dac2077487d8e8f98",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_agent_cache.py.log",
      "output_sha256": "e371cb09e8864d5b9c3ed3e4a39cee062c5737d006bfcaa5c5d0fc290442da28",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 68,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_agent_cache.py",
      "test_file_sha256": "98cfb3bf3a73741df37c37775303751d51cba76407c9cfa9feb51ee0a43bf5b4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-0c204aeb50",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_allowed_channels_widening.py"
      ],
      "expected_nodeid_count": 27,
      "expected_nodeids_sha256": "031edee36b7a565df1226539975895ed336833c29ffc976a2918bc89d192a0ed",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_allowed_channels_widening.py.log",
      "output_sha256": "a661c45793281a2c69fac6d837782d2994c65f17d06e9c34c5321341ae69003f",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 27,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_allowed_channels_widening.py",
      "test_file_sha256": "d3de59f99d2273040d9e0cbdae3fcf5d36a72d10412f3a34ee03f003ffc8e4ca"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-aa7478363a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_allowlist_startup_check.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "7002c495e81b0c8643401e33b894ddf81a6276000cf6d33ca9dc9e17a73c61ac",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_allowlist_startup_check.py.log",
      "output_sha256": "2207aede3effc76057a2a3e57150b95838d002e9383df950aadd0fec45f590e8",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_allowlist_startup_check.py",
      "test_file_sha256": "d57e5c5cec52eedd64ea28fcdc6dae8f83de1d6e4b4be53548397410f4692c6b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-3630474109",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_api_server.py"
      ],
      "expected_nodeid_count": 158,
      "expected_nodeids_sha256": "3bc4926d02a4ee68502e8d3793a4e754458fd2425d73e2878e2e3592a292bde2",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_api_server.py.log",
      "output_sha256": "f21b5f89021272cff421e87b746142abc06fbe970b71748b0169ce631eb84cec",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 158,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_api_server.py",
      "test_file_sha256": "f2210685cb3cee84772ae75421d3a82b5425b2885d79b6d35f8c41722f5ac705"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-6860b226ac",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_api_server_bind_guard.py"
      ],
      "expected_nodeid_count": 17,
      "expected_nodeids_sha256": "ca4f67799a66e253d06fb4f1ca02072a06e74694e0d07dcbc029662acd217a76",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_api_server_bind_guard.py.log",
      "output_sha256": "f2f75de084c4a84838d6c56a104b2e71c727467bc5a98283a194cb268191074d",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 17,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_api_server_bind_guard.py",
      "test_file_sha256": "d15ab923592384b4b3b2090150dd72bb26ab5b0b330c5b6e409efc07890d6c12"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-54587a1624",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_api_server_jobs.py"
      ],
      "expected_nodeid_count": 40,
      "expected_nodeids_sha256": "cf365861dedd0bc6ed84814ad96e8df312895ff9fc32f03d41a912f70417f737",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_api_server_jobs.py.log",
      "output_sha256": "e55e4327e8f97406e20ef421056694d930afee899c0b961369e1df2c6b151d5e",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 40,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_api_server_jobs.py",
      "test_file_sha256": "093129531f42a03ba32dd4461ad1a9494cb544288bc716cfe2440859bf7adc86"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-cb0ecfa657",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_api_server_multimodal.py"
      ],
      "expected_nodeid_count": 23,
      "expected_nodeids_sha256": "638f73f4a2613a6b6c5f132b9ca4bf2c5e9d066d7f61065b4f6c9881dc50b64d",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_api_server_multimodal.py.log",
      "output_sha256": "8e5a804809521dda03d16fa67bd9a931ecf099b69aa12f6fc856589ffa87159a",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 23,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_api_server_multimodal.py",
      "test_file_sha256": "0ae5fb3c353b00464421bfee3a4b8b82be9140e1c92af5bdd7b6802beaa5ff20"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-714d9a88f3",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_api_server_normalize.py"
      ],
      "expected_nodeid_count": 18,
      "expected_nodeids_sha256": "3ddee931318bf9cc790d11efd9caedbaeb42d987de2d30190e494e7b25e1ab56",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_api_server_normalize.py.log",
      "output_sha256": "13044bacc6307829903f6644f6acc927db932aea5040256690ae58aee2d982ed",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 18,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_api_server_normalize.py",
      "test_file_sha256": "00017013f51c3284c650d02fd823f37e4b3ada55974de0d583c1ca386d7635c9"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-2b40511036",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_api_server_runs.py"
      ],
      "expected_nodeid_count": 22,
      "expected_nodeids_sha256": "ca4f97f1eb7867b60894b217ed61d2fe561a967fc56c9205fc20f9aeb311e153",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_api_server_runs.py.log",
      "output_sha256": "f47cbcf12971eed01a63e4449ccc9d05b4c8311ca18ed56965c16c38c138cc4c",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 22,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_api_server_runs.py",
      "test_file_sha256": "ecf90ab61c485e68c8ccd3e57731801e1dac594e2e7d77067866aeb79053942e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-763d8104fe",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_api_server_toolset.py"
      ],
      "expected_nodeid_count": 12,
      "expected_nodeids_sha256": "84254ed84b1805cf2e8aed29d4b2cf7514d60a33bb45e92d63a5f05c7cd9da7b",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_api_server_toolset.py.log",
      "output_sha256": "7d5ea6cef570886176d391b11ba225b7fa4ff850bf726879edf9a16c683d6e3d",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 12,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_api_server_toolset.py",
      "test_file_sha256": "f8283c55f988de48f4f566792e6c8a06c1cafa24394235f46b3522f81c652009"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-0a62d49e81",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_approve_deny_commands.py"
      ],
      "expected_nodeid_count": 21,
      "expected_nodeids_sha256": "2479bcb11bb7cbae3ba386720aa45a9b6f65ba72ab12fee1b1febd0d7575c714",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_approve_deny_commands.py.log",
      "output_sha256": "06ac6498ec5f3657d2bc60581fd8157e407df572349d371a51245f242da814fd",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 21,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_approve_deny_commands.py",
      "test_file_sha256": "f409fabd4056f6e8b599d7e59a7607bb80306b390efc082f7d9dcd48ffdb291c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-39e673a161",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_auth_fallback.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "f5d6fac6f9f208ba90c6dbaa8e738fb6682503ae455294e40af79ec25a05b34a",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_auth_fallback.py.log",
      "output_sha256": "6cfee6194c810d1d888f113801b7f4407dbd50164d7589796f47f1c7a716fcaf",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_auth_fallback.py",
      "test_file_sha256": "3d402ed56b2240191dfc5ba8bbd123f6aa6aaa4d7f77212e0cb5c85976085215"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-48c821174c",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_auto_continue.py"
      ],
      "expected_nodeid_count": 12,
      "expected_nodeids_sha256": "6991b8fa94e82dd7965953cb391433d17e40d07baf7ce9f2cc3f2e3640882808",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_auto_continue.py.log",
      "output_sha256": "25b344f582773f5dd4605b6b93321dba3bcb07224d56025ea8ff804cb3e7f66f",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 12,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_auto_continue.py",
      "test_file_sha256": "454468394c4f51bdc9ec120a28ae8687a1d403426ac379ff11aee63d53646d57"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-368ce9ee63",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_auto_voice_reply_format.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "fe755f8fe272fcf9e1204e762838563a0c2f3d57893012d5b544c2bb4d330c42",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_auto_voice_reply_format.py.log",
      "output_sha256": "f3d3ca3f5fee50214b720d6239f9a86346aa8478c9e3aec0083841749994b598",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_auto_voice_reply_format.py",
      "test_file_sha256": "c3f983a713e2df8a7953309b83c9e804380ca6a7d6fd34b5e5d894d779e5ba9e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-ec74ba73f0",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_background_command.py"
      ],
      "expected_nodeid_count": 22,
      "expected_nodeids_sha256": "c028edf7f1f4583e384825ff6f2a2bfc937556c243e096a349661b86fd6637da",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_background_command.py.log",
      "output_sha256": "d0a11df0e005deeb7298e2a72d75e3b3a3f8e2216a50f41653a7693434b128d8",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 22,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_background_command.py",
      "test_file_sha256": "18cc5c64256601a0186708a1c2f8be1ed3a00cd85c65aad18589c0b7315c1432"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-2ea30119ad",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_background_process_notifications.py"
      ],
      "expected_nodeid_count": 31,
      "expected_nodeids_sha256": "b6571016f0f11d18c17b4cad986815ed1d0f719f9d2346fd88ae5ebfda3ebe72",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_background_process_notifications.py.log",
      "output_sha256": "923f750f3f8179fdd14d3ae1791b1f5fcc4566b3b28ef64cc07c718578f3c175",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 31,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_background_process_notifications.py",
      "test_file_sha256": "b8b1c8bc75d855d05394a9b7a0726bfe32e1ab3a860a948d858e34526de73d6e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-94f36d254c",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_base_topic_sessions.py"
      ],
      "expected_nodeid_count": 10,
      "expected_nodeids_sha256": "1fd620629b0d19485cf6dd847a95cad977e14824d9231090227bc7614f6ecdd5",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_base_topic_sessions.py.log",
      "output_sha256": "b0312056bd52a988aea1222bdee92f5e4664454d315ddd8af10ca760c4a1126f",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 10,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_base_topic_sessions.py",
      "test_file_sha256": "5b22f5c6fada5456555a7c421ac4f0772797b17463872e35fd47569724e3fe3d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-e78cde4d3c",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_bluebubbles.py"
      ],
      "expected_nodeid_count": 56,
      "expected_nodeids_sha256": "5b0d1561a3552919a68742d63319bc53e5539f8eed65380e695692869b426465",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_bluebubbles.py.log",
      "output_sha256": "76923a420b668d4a3b7433af617de37ffd0c26d58fffc38f1b692510094de7d4",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 56,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_bluebubbles.py",
      "test_file_sha256": "590eb6586097660f6ede0466fe473f1bdaa136e37011d0b14f75b137432aaceb"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-0b4124e09d",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_bundles_command.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "cbc377bb292e414c74e2cfa9fd12041d15590ef561c84bbe67ae93f4c99a68d0",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_bundles_command.py.log",
      "output_sha256": "7abac67c3cceb2084525d7ddb489e8f7971a0c333e0a75d67d8c7219a6e9627b",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_bundles_command.py",
      "test_file_sha256": "c61d0309d92bd4c640ca2b75523d890b7afbb252e0555465deaef2b47b75c395"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-9f377cc1ad",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_busy_session_ack.py"
      ],
      "expected_nodeid_count": 18,
      "expected_nodeids_sha256": "fdff7efab4d2825dd02d100f4d1faf7d7e84b3a4e829bbb7a3bb158c09c44e74",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_busy_session_ack.py.log",
      "output_sha256": "d0fc151df3c6a4ecebd534a872d0f47bb8eb50972f8d1d284727bc0d4a2a7695",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 18,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_busy_session_ack.py",
      "test_file_sha256": "ddf2564d352ae83a70a44c8d469ef7bbb2968e3ebb9f0be28ca0aeac69093bd1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-1d36e12adc",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_busy_session_auth_bypass.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "080635590377bf019cc09721c2c7a01c9f5ad951e6a06650a3224a97fc495728",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_busy_session_auth_bypass.py.log",
      "output_sha256": "6939de554df961d0b37e2417c6287e97cc36883b27cce9626de30f96249cf60a",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_busy_session_auth_bypass.py",
      "test_file_sha256": "5bd9c2079b036ee0434bf498552c91deb3700edb5638ab7326d23b6617d1b71d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-4dcc2adce4",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_cached_agent_max_iterations.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "b6d4f6211793dc00d997e1737b416b73142b522a3785c01a1d2007a8dbe5b4ed",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_cached_agent_max_iterations.py.log",
      "output_sha256": "1efbd5fc9da76a71b0acad1451577d9edfe50962077b19e434edf3ce3a299dba",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_cached_agent_max_iterations.py",
      "test_file_sha256": "5fc1b77a8d862d34b6d043c2e199dcd810f30e39b9a70b68fcb6a918b53275e5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-2a1f5a59ee",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_cancel_background_drain.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "9a859c597759b9b5513f3b077457472fc5114c75c22622f8682dd8510dd6b292",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_cancel_background_drain.py.log",
      "output_sha256": "fbd78fec782001f93d58ec55c49ed2f14ea9bf835f6197896c81813538559ce5",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_cancel_background_drain.py",
      "test_file_sha256": "42290447d422cab0bc1bec63ca0ed50711ec3a398f747b284663d0598014f174"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-7061cac0c2",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_channel_directory.py"
      ],
      "expected_nodeid_count": 39,
      "expected_nodeids_sha256": "d03b25b48def067f76726c9add7a8917837c35613039d1bc894bb5a2c801cb2b",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_channel_directory.py.log",
      "output_sha256": "89167ec9d022cef0071e7abcf3797eeda3146d9de45b31d2cd46f3883b43cee8",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 39,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_channel_directory.py",
      "test_file_sha256": "28a76f3e8ac13d5ba10191f3b39928e81d00b3730908cc5b5a1c14eac5cace15"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-34952f37e6",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_clean_shutdown_marker.py"
      ],
      "expected_nodeid_count": 7,
      "expected_nodeids_sha256": "b24e3b2749f7de9a363e3a728e9ee22692e804f42468b43f6eb24cad8fba4863",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_clean_shutdown_marker.py.log",
      "output_sha256": "4888b3b3a1409c3808a9dbd6477abfcb18db206e39390d2b89cc9c340774102b",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 7,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_clean_shutdown_marker.py",
      "test_file_sha256": "1680c4fc00858f6f53384407c8e165eaa165f6b61fa4d39a6aafc4e25f4f484c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-9fe988710a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_command_bypass_active_session.py"
      ],
      "expected_nodeid_count": 40,
      "expected_nodeids_sha256": "5b976a502977c73d4179ecdaa578553d89fe49850d518b478334a1dd35716dba",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_command_bypass_active_session.py.log",
      "output_sha256": "287fdff55490a1fbc66f8acbf366f666c5d9ff8f193b199e65c3040355061ba8",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 40,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_command_bypass_active_session.py",
      "test_file_sha256": "7ac05452a4dbae0ccc95558a5bf0f4c4cfd9169979e9051dd820f504b3710a62"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-35a5d9bedd",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_complete_path_at_filter.py"
      ],
      "expected_nodeid_count": 15,
      "expected_nodeids_sha256": "f6f84e3afa0f1aadab5253fb1a1b154c31ee7534898a64365756d02dcda70bfb",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_complete_path_at_filter.py.log",
      "output_sha256": "8a2a1da34fd240a2e0198a96637ecd1297d0a9e5f272f0ef221977101ad3ee31",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 15,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_complete_path_at_filter.py",
      "test_file_sha256": "abd2f9a6cbddc2f697de49e481f764c071eb85f66517d3e582e95e38c54a2321"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-265143bbfa",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_compress_command.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "7eaef5ea2c6eaea34f48232001241b6b2693d45a7718d0eba6a783f3d29c9570",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_compress_command.py.log",
      "output_sha256": "8a94aba58e6f48d6025864058e2a7d97e9fa57b3c309820449146bb9e71613f8",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_compress_command.py",
      "test_file_sha256": "d1a39d8727d0ad37bf6df66152deb136168244661b3b2d69663851d5eda02f0d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-815a9ae084",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_compress_focus.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "3b2a8b503a204d515cdc7e1f47348e6c8a6a965763b31288ec596ac16a6efef8",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_compress_focus.py.log",
      "output_sha256": "12ebd56af50dd556b0d34d363cf2e41ae73267599ef4ae15344a291ecf6ee3ac",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_compress_focus.py",
      "test_file_sha256": "963ba3cf64bc7e94ef48cce612637dff4f3bb1c062f76924b362e81f38f159ca"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-e02eea62a8",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_compress_plugin_engine.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "04947375c9a42eed95dee7c7979fafa6f708242af1842a5aaa120c0e208e44d8",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_compress_plugin_engine.py.log",
      "output_sha256": "1bd231c6d3e8a4c8142e6d8cad6b6ccc148ef7ce547847779a93e547f7da1d02",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_compress_plugin_engine.py",
      "test_file_sha256": "19384fbfbd566396c32bb91a007f5ace927c74db79bc7115b380dee36dec9f8a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-b2ea854ac1",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_compression_concurrent_sessions.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "349727ff397c05e61706858b43e9c3991880086e856e5de26ccb7a6a41d09db7",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_compression_concurrent_sessions.py.log",
      "output_sha256": "9d95d9989e8dbddfff06044ca982c430e3c81c5d61a50b193d4cc3c043aca75e",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_compression_concurrent_sessions.py",
      "test_file_sha256": "438983983c5b11f2a12691e93c838d47a3c452bdb44063faeee95873dcd349c6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-dd2415d1da",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_compression_failure_session_sync.py"
      ],
      "expected_nodeid_count": 1,
      "expected_nodeids_sha256": "a1534103da2c137116055d5646fe16573f6a77fc38e9122f8ab3c415c42edb24",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_compression_failure_session_sync.py.log",
      "output_sha256": "8a5d3f8c1b452931de963c4bdff9775f7404361fdf3f79b4d740fb5a4f7e6e92",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 1,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_compression_failure_session_sync.py",
      "test_file_sha256": "db1732079526dcff2c2b4381ac0079536234883bc2ac997b0d6ddd86cabcf7ed"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-82f243cbf3",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_compression_session_id_persistence.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "c6a558bf1fbcec620ccb1f49da9e84b084f3f983acbc3e13d71965718b16f9a2",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_compression_session_id_persistence.py.log",
      "output_sha256": "7d37cc0ff7d28f9a0d0a1fccd90ebb2d0ee4b020199a00539046a6efa5a67ff9",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_compression_session_id_persistence.py",
      "test_file_sha256": "f9256494c8a3a40b72f783433a4f824955bae71757e230a3e14b41bcc74aaf07"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a166023585",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_config.py"
      ],
      "expected_nodeid_count": 67,
      "expected_nodeids_sha256": "cc4fcc0908842f0dfd8ed71e65c5183f05885a4dfce4062027b856dfe4ebeabb",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_config.py.log",
      "output_sha256": "93a293ffa3cf7584095f3e99ba5db35955b0af0e89b102efb47f381cf530c672",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 67,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_config.py",
      "test_file_sha256": "5a50df219a63b551baab9ae0fb783b9a49ab08035478beebd7ebb8242e6a9eb1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-64f41e6b84",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_config_cwd_bridge.py"
      ],
      "expected_nodeid_count": 24,
      "expected_nodeids_sha256": "dd5b24ab9a4031f61dcaeb57d6ff327c10aec46cacad94ff4aa81fd54b605f4c",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_config_cwd_bridge.py.log",
      "output_sha256": "e1d28d58122041c4c456c741b3d5d29b5e63402867a2696ca19c6f6aa75a4a7c",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 24,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_config_cwd_bridge.py",
      "test_file_sha256": "2e1edd0c63a33ce453896560aa96d74215534e9e88ad4275803faa9e51b3c49a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-5a6b4fd878",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_config_driven_access_policy.py"
      ],
      "expected_nodeid_count": 45,
      "expected_nodeids_sha256": "94059bc45832c51b7ef9e97336f8660906fcd3306357f03064f8f8def8a98a5a",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_config_driven_access_policy.py.log",
      "output_sha256": "6053d1d9a9f43b0f12c60cc6593013231abe5946877312378d15a06d35552cfb",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 45,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_config_driven_access_policy.py",
      "test_file_sha256": "af66ec807040f81c5eb0aa62c592dafce17484c025168142197b3f78732c39ed"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-c29ff9a6f6",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_config_env_bridge_authority.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "f6478a2366fc506c483ae742b928332316ced51796bde95f38a399bf8031b174",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_config_env_bridge_authority.py.log",
      "output_sha256": "d30f43b30e4ee86714579b3235615e663d885333af776d3a223739fed7b82458",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_config_env_bridge_authority.py",
      "test_file_sha256": "2a7072e61195b59e3431470be5b2441abc48886465617bf1b12ccbf3618d1102"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-d7c8eb4ae5",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_cron_fire_webhook.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "c73c55dba65928546a75d06f83ecadd6314caf22dc824ef3576fda91b1e307ea",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_cron_fire_webhook.py.log",
      "output_sha256": "695b987903ee62ee2fe14979271c0bfc4beea607f3dee15c64943b09722a81cf",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_cron_fire_webhook.py",
      "test_file_sha256": "799ce054356a77c0feda01c5cb7a23149118d1e2d5ff706072fe32e867369a07"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-29e0f400ad",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_debug_command.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "74ebc6cce4362233123f321e5e124cb3c4949726d37e2ba777302ccdfeb24be0",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_debug_command.py.log",
      "output_sha256": "f3d3ca3f5fee50214b720d6239f9a86346aa8478c9e3aec0083841749994b598",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_debug_command.py",
      "test_file_sha256": "ab3332ff8ab13d06344c891127d27bd84d4df47bc98ae367dbf60f84cb4b0628"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-6a7bfbdd21",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_delivery.py"
      ],
      "expected_nodeid_count": 23,
      "expected_nodeids_sha256": "9f29ec5bae56f6f8a7707ab0158ca586e8212731c75c8d33449e0d393c99860a",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_delivery.py.log",
      "output_sha256": "f8277ad17f8a5df588003f513c081462c3a20441d226c0005072a00410299fea",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 23,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_delivery.py",
      "test_file_sha256": "2853c9dd9281be99b15e00e704948d83486a15fe9c13049b3b82c3f386037aee"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-f35e0e2413",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_delivery_silence_filter.py"
      ],
      "expected_nodeid_count": 38,
      "expected_nodeids_sha256": "5ec55c50762b3bf6c87c85400037cf1f94c6f8ff2da8e914a7d0a83314a5be9b",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_delivery_silence_filter.py.log",
      "output_sha256": "1263ad2421244b9ef1c6f555132f9bd64a768d996a98dfbc633a1b4d348a283a",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 38,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_delivery_silence_filter.py",
      "test_file_sha256": "70000cf67287525985f611e3e9b5adb9f4abbf3ef07b4342b8f0142e7dc39d1c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-2a7680979b",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_destructive_slash_confirm.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "0b249552201808e81618a5ec4e4b57e05e7ca79d53ba1550cb41f1224330e763",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_destructive_slash_confirm.py.log",
      "output_sha256": "964a5588daf0b19cf9a8a7e8c67e3515f6e5f3245ad86bbe44ab9d755f706d83",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_destructive_slash_confirm.py",
      "test_file_sha256": "4beac1d2a4d1ffd65638ccbacf1ca8e7c3ad96412ee72bc9af95b1b4df606c4c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-fb00d7765c",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_diagnostic_isolation.py"
      ],
      "expected_nodeid_count": 63,
      "expected_nodeids_sha256": "1ee0d29dd2db3d37f448f2f19a99b115c6cd583dacba919243126839ab214d1b",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_diagnostic_isolation.py.log",
      "output_sha256": "ca6bd9626e22237b4686c26bab3c94ae6485b5ccb24af85f0c923f1a99071acf",
      "returncode": 1,
      "shard": 7,
      "status": "failed",
      "summary_count": 63,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_diagnostic_isolation.py",
      "test_file_sha256": "7366a47f054222cd076755d679439458ea4410ff940bea1cec86fb3a238f3443"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-9ff75b7fda",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_dingtalk.py"
      ],
      "expected_nodeid_count": 68,
      "expected_nodeids_sha256": "554c9292ff0e2ac7a8318395038f398974309fb79ab00457b24abcb7209719ce",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_dingtalk.py.log",
      "output_sha256": "11cea4f725e0e535098a5b38179c7181a5d899574f666616299bc4194278383f",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 68,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_dingtalk.py",
      "test_file_sha256": "cedbad44c083d451027ad8841a8d85ceb411edb7c4d5a801c79de7589b9fec66"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-cc420782a1",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_allowed_channels.py"
      ],
      "expected_nodeid_count": 15,
      "expected_nodeids_sha256": "addf68bae50883f309a01d32a4d40112aac893ff73004c6b23f30c0f3bb6b71d",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_discord_allowed_channels.py.log",
      "output_sha256": "750e8fc7f82d0362413c811a25dd8018e93a29cf821384a50d297e2ffbfb3cfa",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 15,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_allowed_channels.py",
      "test_file_sha256": "540f72ddeba38a25596d756c73cbcb8196655b50ed7fcb24349c005ea69b71d2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-f8d06d1e09",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_allowed_mentions.py"
      ],
      "expected_nodeid_count": 19,
      "expected_nodeids_sha256": "b13e5697a4ac63114e9be26213b4ad74132d54c3cfbceecb34e30bd2d6e46e95",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_discord_allowed_mentions.py.log",
      "output_sha256": "558fc69d463ccc3db39c0b59fdc43b63f769fb03855ce338fcf20fcef4a47467",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 19,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_allowed_mentions.py",
      "test_file_sha256": "4cdf786fa4608f3b87ed27367edf32eaadbbc5f84c8a10c5010a13eb4578c9f3"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-2f4c3c3aef",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_attachment_download.py"
      ],
      "expected_nodeid_count": 14,
      "expected_nodeids_sha256": "6a61b760ec682f9e702c5186bf7f034fbe0caefc22f41487e085af506ee2288e",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_discord_attachment_download.py.log",
      "output_sha256": "d98eea0b80fe24a68e611a0f7a91e5c3df2c976f197b3f8f3d60abeb9b0ad75f",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 14,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_attachment_download.py",
      "test_file_sha256": "af02ee470c6c211935d9cf34302217a56e81d0002c1f0f965215262afa7d77e4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-e555607a14",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_bot_auth_bypass.py"
      ],
      "expected_nodeid_count": 9,
      "expected_nodeids_sha256": "d765e990ae79f47891564de159b2298441340af06064d57aca0fab9d2497bef9",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_discord_bot_auth_bypass.py.log",
      "output_sha256": "c6cc6ea5b3888ad30e77e491d2f1820a4d50db13bffead8a454c9ed2e8f78f64",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 9,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_bot_auth_bypass.py",
      "test_file_sha256": "5d5d2b1dba4a3166cef6857cad0582895d596f28b4e03bdfbde80ccc74feff88"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-b85dee24cf",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_bot_filter.py"
      ],
      "expected_nodeid_count": 8,
      "expected_nodeids_sha256": "d627c17af2fb167896807b36d0c3dc03d854a00dc11f963c6cbde197f4d69e7c",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_discord_bot_filter.py.log",
      "output_sha256": "b73855785213f79cdebbb47c6fed6c928d2b187ede1a405c26fa36cf696d01af",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 8,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_bot_filter.py",
      "test_file_sha256": "842f31cff25f3b8e5f1d3b82d5c7c98c59fe241c20e8c742f65018163f4e43eb"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-7c29290e28",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_channel_controls.py"
      ],
      "expected_nodeid_count": 14,
      "expected_nodeids_sha256": "fd61dabdc8247c89f8f47fdedae848c90cd02ec0e3c8f2043ee8a9751a5bfa42",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_discord_channel_controls.py.log",
      "output_sha256": "1205e8844747026711da81e274af389817f31316a4fe482692753a993c854085",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 14,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_channel_controls.py",
      "test_file_sha256": "d842af5eb09897240f9899172824df2f0a7289e207d222acf20faf74169e48a6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-663aa69fb8",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_channel_prompts.py"
      ],
      "expected_nodeid_count": 10,
      "expected_nodeids_sha256": "ce966447dcd84a5fc459148d393b45720119f83b76a006c7267c020ed72a5de0",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_discord_channel_prompts.py.log",
      "output_sha256": "348d97353ca1abd3dad6487ab1bae79eddbd9707363700f07838a356488404b9",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 10,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_channel_prompts.py",
      "test_file_sha256": "5cf6f409a8ce1bb1ef0c7a214e768c919ef34ec0c94a43f0702284ebc7ce8577"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-405a65e6ae",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_channel_skills.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "7525cd5b8001290512014e56f23364155b55bfc4bc8cb916dda4a4b41c4b9ae7",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_discord_channel_skills.py.log",
      "output_sha256": "0b0f944787b74eb2f646db3fee5e1b26b43ab1bdfd66a7442728b825a538f187",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_channel_skills.py",
      "test_file_sha256": "9b2b8e56db206bb39be09620f6f800a5b4bd589b3c66ba56016a55e3b7345a89"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-9ee79f37f9",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_clarify_buttons.py"
      ],
      "expected_nodeid_count": 20,
      "expected_nodeids_sha256": "a1af9d6c10782c0741b6b0e5f259bce2d8f2d68ae17f3caceade42ed2ee0ad23",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_discord_clarify_buttons.py.log",
      "output_sha256": "b80330d639be0602bf81a1b4261c0b425a0b294e3c46e49b5558968543a78e66",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 20,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_clarify_buttons.py",
      "test_file_sha256": "4a5cc4b7ab1b5c2eb62ce4653622a0c649b3b924b7c5bf0a9d8498b0070f8a07"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-1aca4f5dd2",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_component_auth.py"
      ],
      "expected_nodeid_count": 28,
      "expected_nodeids_sha256": "bdbedd834974706ec6e1a7badd9f4a85702b7ec6d6594a70c132ceff697cd3f7",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_discord_component_auth.py.log",
      "output_sha256": "e68ba10db098b39cb1d2cf3d1a6fd1f31e9f8d80b51a35074f55d1040b992f95",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 28,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_component_auth.py",
      "test_file_sha256": "43d9e241b46b8c5b924191199d5f558fb001098118672188c007a7a5339f4d6b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-3e5e557280",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_connect.py"
      ],
      "expected_nodeid_count": 18,
      "expected_nodeids_sha256": "ef9c807ed12b90c11ffb97fe430caaa64b51df5204f48059ae72004a26e8ff4d",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_discord_connect.py.log",
      "output_sha256": "8b435f4df09057ce27acec63769ed63c1ce52686ab31974359b80d2d7e4245db",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 18,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_connect.py",
      "test_file_sha256": "62faace0e96ceea3348b2af5e80faa4f8c19d0c9ca82c9ad55e4e17fbcec6057"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-c38df19512",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_document_handling.py"
      ],
      "expected_nodeid_count": 20,
      "expected_nodeids_sha256": "7e969287fe2e596533ad25a8a2d76fa88c2cc94184085ecf34d07b7373087f95",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_discord_document_handling.py.log",
      "output_sha256": "a888efca582ac5c7ae08416a06cc36d61819afe99a386a745ad30c49d69e208a",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 20,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_document_handling.py",
      "test_file_sha256": "c5f4d1c3300d4b640e3fb2625c10a9a14a11dc5b336332f018bd91e1cc86c0fe"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-88f1ff3f00",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_free_response.py"
      ],
      "expected_nodeid_count": 43,
      "expected_nodeids_sha256": "4df8f286db119339bc042cd0d1aa48e2ea54cbd4dfc7145ff780eaae406ec8ca",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_discord_free_response.py.log",
      "output_sha256": "5f9a4aae120a85e153a737f4ac591d18866f6d56c4279f64a1503144cfb2542b",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 43,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_free_response.py",
      "test_file_sha256": "597350f327dd45c911222014d2359415d036a6c29ebfb46a51261a286a473489"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-9c994fcaf2",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_imports.py"
      ],
      "expected_nodeid_count": 1,
      "expected_nodeids_sha256": "0465029fcb7038f2ae1fd477e5281869b04128cabe51396641ef16b1def53559",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_discord_imports.py.log",
      "output_sha256": "d907fec0e0445cfe67a7272e864304e81194b234052d6bdfcb6ec87c0b123e62",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 1,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_imports.py",
      "test_file_sha256": "628c206f64ab8a3384785bbed161966ae516cc73255ae1b6cad0291f52d0b0eb"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-6bd979bb3e",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_lazy_install_views.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "51f7d137dc8cea29a128146a65e3519701f501573ca345ae870967ad0b729f53",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_discord_lazy_install_views.py.log",
      "output_sha256": "3c82e1d3305214e6527e81a3191d87bd710aba47bc834df9a486aeefacb40faf",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_lazy_install_views.py",
      "test_file_sha256": "c10dcbcdfef219570935d6a203204b2950efeb56415783ffe8e207d504b75fac"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-9c10512cd0",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_media_metadata.py"
      ],
      "expected_nodeid_count": 1,
      "expected_nodeids_sha256": "dfb59f4b16d3257771856ca9efa54667430fc868ca09f9b0e571ba8eb5934fcb",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_discord_media_metadata.py.log",
      "output_sha256": "016a4093788648644b08006f7d1d171ca7639313677f5aa929f004d4a3e52465",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 1,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_media_metadata.py",
      "test_file_sha256": "11550711ea07e695efc1d655edfcd5a5a07e4899adee0529f53b65f538b14cc6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-16249ba3c4",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_model_picker.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "2a86da80855386bd01cbe73bb3629eccb08df9507258eab831bd6948d7951256",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_discord_model_picker.py.log",
      "output_sha256": "648f61b28a6ca4eb85ba2122b740c102b9a1ab7253ec32bb3c23bf9e19d5ad8c",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_model_picker.py",
      "test_file_sha256": "6db9fe4887c53ff982a413dfbd20bb73188f4e30b0007deda46d336ad940042e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-b438d6a52b",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_opus.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "08c6c7ce88a4ef05be4a555d1957af8c4806b7fe70ff6c79f8153369a93eb198",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_discord_opus.py.log",
      "output_sha256": "9c714207acdb4637742c0d3473ba4d87be7b978f65d5b0063c39ad919e6fa9d7",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_opus.py",
      "test_file_sha256": "3c6ee325402146eb02bf9f0003d4e6b1dea9136264c3e056a449825cda02c914"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-865d5ef913",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_race_polish.py"
      ],
      "expected_nodeid_count": 1,
      "expected_nodeids_sha256": "2fb06c9801f5cb56d2e19587256de7e41cd721617c835355ae06a8c0709d1b84",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_discord_race_polish.py.log",
      "output_sha256": "709725ad0ebbf990649de1bb317fad0db33fb52d202b75d0125a168f431713d1",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 1,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_race_polish.py",
      "test_file_sha256": "486d986e7bd6a2f5f0fe2d68add473dcd49eb318de3df89318a527f82c0dbd6a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-c0e7c21ccb",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_reactions.py"
      ],
      "expected_nodeid_count": 7,
      "expected_nodeids_sha256": "164bd20981a1d5537421fc806caeb8457764183d337497828002f51cf2e59b1b",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_discord_reactions.py.log",
      "output_sha256": "18671fe2901da052a0234e02d371c831a75f36dcebf54028c7512d03c45926c4",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 7,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_reactions.py",
      "test_file_sha256": "d200c24e0c266da1af876db62589f61e09ab8714049ee23fa7b87d648557f6f6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-bad4a88ea0",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_reply_mode.py"
      ],
      "expected_nodeid_count": 33,
      "expected_nodeids_sha256": "6af917f480057affc21eebc9568c7a44d2765c88d662db9caf48ae17a263a726",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_discord_reply_mode.py.log",
      "output_sha256": "b4e168280933e73658cc5ccae0a34eb1d6e4d40a118051f44026639f46903d70",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 33,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_reply_mode.py",
      "test_file_sha256": "2ec8452ce516002d21bb2a89d8324497d141540c4e2368adb03a4d9936f4f152"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-8d9cb5f931",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_roles_dm_scope.py"
      ],
      "expected_nodeid_count": 12,
      "expected_nodeids_sha256": "353229720c84344fcccd941f96c4803cf1c90eb6fd9a0709d98bee3d232800ed",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_discord_roles_dm_scope.py.log",
      "output_sha256": "2d20cd9d667e24753fb843a626c438bb02e14ce054a1291944fcf0e773228ff3",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 12,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_roles_dm_scope.py",
      "test_file_sha256": "0e15dd1a1bcfaca6f2dd53971d348d6e19069c4d39a7b94bea43a5f9a232d55a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-574f504deb",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_send.py"
      ],
      "expected_nodeid_count": 18,
      "expected_nodeids_sha256": "1ecd26f314c142b34880a609ecc6d049bf72b6c1f4f049d8d4bd28ea830fffec",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_discord_send.py.log",
      "output_sha256": "cb78442d1f7c6f44cecb96e05740a23c518fd8a8572acceb2be233b9a150b987",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 18,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_send.py",
      "test_file_sha256": "b501753c275b75f6e25a395327b78c2fc4fe4793d9e5a4800898fce05e9f91a4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-339c0a9eaa",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_slash_auth.py"
      ],
      "expected_nodeid_count": 32,
      "expected_nodeids_sha256": "ee09cbd36a3e4b1802914a9d5063b2b5aebb8fa1f10cdd652bc05af391fa454d",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_discord_slash_auth.py.log",
      "output_sha256": "c188017f0f84ae50c13bfad76cd0d5a41f1aa9bc1c4eaf5361443fb5a8d105f6",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 32,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_slash_auth.py",
      "test_file_sha256": "f6ae01868639cfaf573afc1eca6b6484bc6d18cef5f34c2b0e686dc9da0b5876"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-6eec355c2d",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_slash_commands.py"
      ],
      "expected_nodeid_count": 34,
      "expected_nodeids_sha256": "82b95385c74ff65dda0b4938643cae25edccaa3c038c7957a15b05fc7c7c3cd5",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_discord_slash_commands.py.log",
      "output_sha256": "5243c1bce31bb37b705ffc640287d9de20e669941a21e2fca0ecf955d6f7e7b2",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 34,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_slash_commands.py",
      "test_file_sha256": "c58e2513eb40e71d1c29b1a0cd71208576b2cc9efcab0cb0efeee9cc5761639b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-32093af739",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_system_messages.py"
      ],
      "expected_nodeid_count": 8,
      "expected_nodeids_sha256": "f751f94ee7cd2baabc0774b9e5219924ce7ecc0d0bec25d2eb0ece702c9b3eac",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_discord_system_messages.py.log",
      "output_sha256": "3dac977b410a8f9c78c094a7d8e2d7367983a80c024a98ee9aca2b6feb0351ec",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 8,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_system_messages.py",
      "test_file_sha256": "1f7a5ad45b1d71384b491f2e295212eaf6a47125d01936d375892a3e334ce461"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-ff0598f883",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_discord_thread_persistence.py"
      ],
      "expected_nodeid_count": 8,
      "expected_nodeids_sha256": "1cf037f1332fb1f8eba2a7c77e41039bfdb404411efd5e4424a7ff9014ad48a5",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_discord_thread_persistence.py.log",
      "output_sha256": "75a05399add5a4dafe93b4e6372acf8695275ff275294a1577e55fcfc86ec21a",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 8,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_discord_thread_persistence.py",
      "test_file_sha256": "1cf1591ee4feb3e29d05c162007d480af9a67f8a48689755c985d0672b75b147"
    },
    {
      "collection_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0076-test_discord_voice_mixer.py.log",
      "expected_nodeid_count": 0,
      "expected_nodeids_sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
      "shard": 9,
      "status": "collection_skip",
      "test_file": "tests/gateway/test_discord_voice_mixer.py",
      "test_file_sha256": "e81efd7462150d2b493b99c8e8bb01e7aa2304b8c7ec6db737e0aac7c3fb4f7f"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-9671b817cd",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_display_config.py"
      ],
      "expected_nodeid_count": 40,
      "expected_nodeids_sha256": "1222de28aba0e0363cff8f20d5b1e9b26ad88e9186aa4a970aea2c5f73baaafd",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_display_config.py.log",
      "output_sha256": "287fdff55490a1fbc66f8acbf366f666c5d9ff8f193b199e65c3040355061ba8",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 40,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_display_config.py",
      "test_file_sha256": "1cafa57d8126065c8e2d81fcdf19bbea33d9c3ab82ba612649557103e575fe42"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a3cd69dc89",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_dm_topics.py"
      ],
      "expected_nodeid_count": 36,
      "expected_nodeids_sha256": "79c1346976095f8ad91c082d787a789234a8f8b8895923f84e8806488bd8f966",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_dm_topics.py.log",
      "output_sha256": "15030dff74ca693ec062f9fccec1bf74b2691101b7886f0675f12a9238f69ea2",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 36,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_dm_topics.py",
      "test_file_sha256": "a5e1c97817d44d85ac9786de2d3a15709ff1b2c843183c3e6362fb06882d9ecb"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-48293ab5e8",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_document_cache.py"
      ],
      "expected_nodeid_count": 32,
      "expected_nodeids_sha256": "3a5b0ea3058e3d45324f5212dbd9b81414ddf6564684fda1663a79e860dcca9b",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_document_cache.py.log",
      "output_sha256": "cee17ae7ec3f15e77f9016c5c06d06e7be01306659746151b826b8056f651385",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 32,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_document_cache.py",
      "test_file_sha256": "376278eb52a327042f066de50d56038cf83e019c9357beed40fe17bf086ac5f3"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-18acf72b07",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_document_context_note.py"
      ],
      "expected_nodeid_count": 8,
      "expected_nodeids_sha256": "c274ff9bb40218ac91dd263abf6426b5d4e5925526d48b7363332586fb3737f8",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_document_context_note.py.log",
      "output_sha256": "fe0bc1dbd26fba55350e40a62414d48cf9b29e10dca5dc6faca90ea283e3ddcc",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 8,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_document_context_note.py",
      "test_file_sha256": "034b04c2163cc31f0efc857311bd195edb2e5a49005b90c0b96eb98e223ff747"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-359cb80ca9",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_duplicate_reply_suppression.py"
      ],
      "expected_nodeid_count": 24,
      "expected_nodeids_sha256": "805e3d9eba17b922f070f0c93bec92652381d11a094481dd3a02db6cc2e3bf1f",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_duplicate_reply_suppression.py.log",
      "output_sha256": "ec9bc9c395754209c09abcd0ee47806137255e5c41860f336ed1f4975ec7bed4",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 24,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_duplicate_reply_suppression.py",
      "test_file_sha256": "5f97e270a5fabed54a12781f9baddda70bd1e23f14e468301af548538fcbe391"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-58babad3ce",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_email.py"
      ],
      "expected_nodeid_count": 68,
      "expected_nodeids_sha256": "ccc0c83ff9dd27f7496720a26cacb634e68dc07c10f561e290adf23ee6953057",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_email.py.log",
      "output_sha256": "4fa1fd5a76d81764ecd9f7432de09e4853efd9670b67f263126e1810f5e8ffb6",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 68,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_email.py",
      "test_file_sha256": "3370551b33d4719670b5ca149924b5358b7972d1621bcbb6f1aeffae06717653"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-f1ef6d179b",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_empty_model_recovery.py"
      ],
      "expected_nodeid_count": 9,
      "expected_nodeids_sha256": "9e3325a01df27f0edcdc11603ba1199bb0609fc303abbe0b7742b0a9e33c4461",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_empty_model_recovery.py.log",
      "output_sha256": "c1984e50a497955ad2ec6e06b4efc97843ea1db757602ce01378f51eb315e057",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 9,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_empty_model_recovery.py",
      "test_file_sha256": "b4b757919728b0d43eda0980a786f6f2557eb074b82f135ba92aa2e693ae21c1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-500338d7b2",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_ephemeral_reply.py"
      ],
      "expected_nodeid_count": 14,
      "expected_nodeids_sha256": "16489708e18d1458459751a51911c0cfa9e69222e5a7bbc2c8c41c0550da0d14",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_ephemeral_reply.py.log",
      "output_sha256": "55f29b0e6289d01e6941edc44bdd96b475f25c3a3fe0be3fa05037f0cd9f24c2",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 14,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_ephemeral_reply.py",
      "test_file_sha256": "bb5a96c6ca8e49c5210e405e5ca0a4e20bf7000e53d1fbd25fb31ab24ebc49f1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-6540589d41",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_extract_local_files.py"
      ],
      "expected_nodeid_count": 48,
      "expected_nodeids_sha256": "55645c3ac9da1cfc4d01c5e91917a11704f9c8ba1f7d7bd7b43dfa474cd12e4d",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_extract_local_files.py.log",
      "output_sha256": "3fd1ffaec2b3ecb98a122eb08c6b0f4bd8c6f2cf13f69706f68cacbc0287f1a8",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 48,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_extract_local_files.py",
      "test_file_sha256": "68b5e3d110ef340d1d94e07aec6a8c4a528b7de424131613c0e781e8cc51c42d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-3a5f1144bf",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_fallback_eviction.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "e7d6645f190829448b079aa0f333b56cd844a609e2e0f03381b6099e9f986f60",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_fallback_eviction.py.log",
      "output_sha256": "44091516c6f7d278c9900d796163d45f95d1ad1819370ffeeaf887bc704f2e38",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_fallback_eviction.py",
      "test_file_sha256": "2c424f4eb75817d93013c610f27cfec4f93b18fea52739da03dd438d70e5f41e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-f2a6c9fe24",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_fast_command.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "aa6534709da350a960965941f2e74bbd5bbc9b3d74d1af5cfa4a2d89197f1653",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_fast_command.py.log",
      "output_sha256": "8a8087ec1a9d7ac3a3e24f4d4f2cf4dc5d8454a9ee0514098651a820529b6109",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_fast_command.py",
      "test_file_sha256": "790ead6f6570d429fbfb656bd36909586f71ddd25631b00702bcd70ecd0b6b46"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-70211b064f",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_feishu.py"
      ],
      "expected_nodeid_count": 205,
      "expected_nodeids_sha256": "5bd04cdf9159c6226f8f2468737641893a2518699685a1c3058ff11b45b545d6",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_feishu.py.log",
      "output_sha256": "077f53c9a1bf2695e752404f7c4ab0a606d595e11b3067fc6656db7158f147df",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 205,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_feishu.py",
      "test_file_sha256": "a0dac12859bf565460b96c8a603e3a43752eb1bfa5b5e10b09be183c3da481ef"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a03905360a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_feishu_approval_buttons.py"
      ],
      "expected_nodeid_count": 38,
      "expected_nodeids_sha256": "8c8af2b5aeff51f664800286cb63f01f199ef34a45dacb2f30af00b242fff3ad",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_feishu_approval_buttons.py.log",
      "output_sha256": "336d86630156942b40849555599fe121b58239bc0907cd829ad76159bf046726",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 38,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_feishu_approval_buttons.py",
      "test_file_sha256": "49c978faab6b16efa9a48e2cc43bcb0374a76e18588b199264d750f6b8470ca2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-ca27419d8e",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_feishu_bot_admission.py"
      ],
      "expected_nodeid_count": 60,
      "expected_nodeids_sha256": "59956c66db91d7aa8c4dd0c9db3502ff7886dfa124687cde2376fb552caa6e37",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_feishu_bot_admission.py.log",
      "output_sha256": "aad81498412ebd1626ae7ce7117fed5fd6d35aeedddb887e8b1b7829dd3926af",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 60,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_feishu_bot_admission.py",
      "test_file_sha256": "16700c4adc69167894f272dbc10c6061fea6ee6a1f1dedd00b04405c1e15fc08"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-b1c34acabd",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_feishu_bot_auth_bypass.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "f9a4ffe225819973e91fb42caa03638a29df98f8b36f9406dc6e7c92272c2de6",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_feishu_bot_auth_bypass.py.log",
      "output_sha256": "16919bf9ce2644808bb1045d7b3b149c54655b1bf8a4c5abcc9ee9de847e0b6c",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_feishu_bot_auth_bypass.py",
      "test_file_sha256": "c537a2e17d92fe0554947c94ca5b215236ebfd18e23d3a241fe7d57614f839f7"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-24cf7a6010",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_feishu_comment.py"
      ],
      "expected_nodeid_count": 20,
      "expected_nodeids_sha256": "a6f6afc8a07341762c5defe6db7347f4ca9226eaa5bf4d7942d2b0fbc34ec63c",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_feishu_comment.py.log",
      "output_sha256": "25d5abcc974d3e81f05218e764e268bde4765ee2cc3e71481e181e53bf189e43",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 20,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_feishu_comment.py",
      "test_file_sha256": "06bbffd03bb16907472a6190337884b8ffce309f66bd1d911dbca333ae888e29"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-4e1e26ec9a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_feishu_comment_rules.py"
      ],
      "expected_nodeid_count": 30,
      "expected_nodeids_sha256": "8dc5336e53f8260177cdaf70468f07507f32c80ffe1ff9c0aa9323b84fe7d4e3",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_feishu_comment_rules.py.log",
      "output_sha256": "234ad3d43c6c675986a8705020ba6c6eaeb36938f708b63e2bba032c27038f25",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 30,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_feishu_comment_rules.py",
      "test_file_sha256": "e0f9cc84b458cada7fea1e0c5852498cea505c6a73c42c1b09a913a803ecc9ae"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-c58d52a8f6",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_feishu_meeting_invite.py"
      ],
      "expected_nodeid_count": 9,
      "expected_nodeids_sha256": "cf0809f4a9211d020b3ae3d3ab5a2b2de908e1ad16a90b40cde71d40dfd95fd2",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_feishu_meeting_invite.py.log",
      "output_sha256": "c53df372efb7516cffa1b0acb8de284c98418806b68b0d1cb75bf43b67e0fc97",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 9,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_feishu_meeting_invite.py",
      "test_file_sha256": "69fb2d9c3c4ab90dbdf3cb568f319c2d43b3cafd65b373af83a33af490cd28eb"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-2fb5525e2b",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_feishu_onboard.py"
      ],
      "expected_nodeid_count": 27,
      "expected_nodeids_sha256": "23a614bfef1dc80ef7e975d03b9bef764ecf81c87e3e875e56c0aada8f7b9e55",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_feishu_onboard.py.log",
      "output_sha256": "26818999b0f939dc380a601359c5c542b889189303d8c9c5beb6cf65714d75fd",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 27,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_feishu_onboard.py",
      "test_file_sha256": "1af1f468ed7e48175f66581921d226a6efcba7b390ddeaf5dcaafb00eff8cc3b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-06ecd3cf1b",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_fresh_reset_skill_injection.py"
      ],
      "expected_nodeid_count": 9,
      "expected_nodeids_sha256": "8cd32e029fb4bd7e54eb35733d242608b90b747d8934162c9b40f75faefeedb5",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_fresh_reset_skill_injection.py.log",
      "output_sha256": "ac8294512ff267307ebf085b2358c62527cc89ccc5feaa210f3989e49e0d220f",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 9,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_fresh_reset_skill_injection.py",
      "test_file_sha256": "ccf6e9bc7ff8dccf0a1124da0b87cc01672d0c30c52c336aecc15f143a725c82"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-0c1b047d8e",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_gateway_command_help.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "2db8ab8096eb63602bebe45eb417f91762315ebff40754b70383d60bc2697c8d",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_gateway_command_help.py.log",
      "output_sha256": "8a8087ec1a9d7ac3a3e24f4d4f2cf4dc5d8454a9ee0514098651a820529b6109",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_gateway_command_help.py",
      "test_file_sha256": "2b7bc88acba08b7171ecd81591712e080a3f17189dbd5c66847141f3c30eaa0b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-03420b8afe",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_gateway_command_line_matcher.py"
      ],
      "expected_nodeid_count": 25,
      "expected_nodeids_sha256": "03b977bde60c5ffb705ccee7ee725194d21a8259fec3fd644e5d7269eb019607",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_gateway_command_line_matcher.py.log",
      "output_sha256": "7f93f39dde9b3468a03ab5cb77583a6e65752e63482a4272dfee1a1f104fd0c2",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 25,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_gateway_command_line_matcher.py",
      "test_file_sha256": "6b4bcd5f113b52d7ad30bf88ac546f3262da555f6f7b6a9ecb507dd1d33ffa7a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-ece5702c31",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_gateway_inactivity_timeout.py"
      ],
      "expected_nodeid_count": 8,
      "expected_nodeids_sha256": "06a09bd1857d9ffbf1cab3a0d619e7a5c9ff204d05098c8d0ab9f135becf2cfb",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_gateway_inactivity_timeout.py.log",
      "output_sha256": "05af6c5a32bb9539463477f1c9d9654c570fc50d5d839b5873fa587173316017",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 8,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_gateway_inactivity_timeout.py",
      "test_file_sha256": "18bc058d6cd27242a7f3e319f35df45c537fca74fde3a844debb814e6fb9fe9a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a9158f6a3c",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_gateway_shutdown.py"
      ],
      "expected_nodeid_count": 17,
      "expected_nodeids_sha256": "93b7f155a569f1c6a18c9d38614a73b25c548ffd4c0fdf6b3f744448b6bd70eb",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_gateway_shutdown.py.log",
      "output_sha256": "936de50349ed26ea2bc7e305bd106e396e59ddab3a9b9c9e10f7aa04c5737662",
      "returncode": 1,
      "shard": 3,
      "status": "failed",
      "summary_count": 17,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_gateway_shutdown.py",
      "test_file_sha256": "687a7af7bc9cf1c74db19a3f95cbd1996fa3b92688bff3c2750bc44215f67e34"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-502f840b3e",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_gateway_silence_tokens.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "7d431ebd8940a44d65e3e1b4aa6db25b5277dafcc11ab769398d7c17b3df3d57",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_gateway_silence_tokens.py.log",
      "output_sha256": "885e69829a02be9f06c30ce41c3be4c71eb1ccf745956fb8df2470a1274c2a6f",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_gateway_silence_tokens.py",
      "test_file_sha256": "0b306c78b7294d6e738609795517ac2c3ffe86c8bda382469fd083508cb6a6a6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-41586c4011",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_goal_max_turns_config.py"
      ],
      "expected_nodeid_count": 1,
      "expected_nodeids_sha256": "a2000889defcddbd54834a34372400a7fb82c51a38d7f9a69df6d54fce90780f",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_goal_max_turns_config.py.log",
      "output_sha256": "91ac28e87543203edb8fac4612b815f59bf36ac9a72ab315b86b2e36637fba30",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 1,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_goal_max_turns_config.py",
      "test_file_sha256": "fdf1fbce1642520c562b9e96882be35d03db7e699dbba29795571dfe54136b81"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-be623c759a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_goal_status_notice.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "97f16fb2cba4b62379c348557b53434bc4d321b77f8932a1bc65be3d13e55d3d",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_goal_status_notice.py.log",
      "output_sha256": "6cfee6194c810d1d888f113801b7f4407dbd50164d7589796f47f1c7a716fcaf",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_goal_status_notice.py",
      "test_file_sha256": "fe3e9cb8bbf1921420143d9fe331bf5b8a851b316aef9593d5b77c8d2d35958b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-d9c28e8030",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_goal_verdict_send.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "2dcaaa1d700096deb51b4c12165cfb4d3d43ee4302177d920a0e4f9d784ef9b8",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_goal_verdict_send.py.log",
      "output_sha256": "0aba8185a4864a16e3ac6dc2fdea2538d0686afbf612d695f2b49bc86cf72fa2",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_goal_verdict_send.py",
      "test_file_sha256": "995db4c33d3540b39703ef124874b3c56450473576c3505aa4403e35489085d4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-6e54db048d",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_google_chat.py"
      ],
      "expected_nodeid_count": 160,
      "expected_nodeids_sha256": "8abac81e24c4507bdd1f5b438416c0253a267ddec8f52fbd7a1a5ddc0c0d8301",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_google_chat.py.log",
      "output_sha256": "4d86173d2489feb083b6d9c84014de2c425a4b7f0df76019c357aa2b792cd0d1",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 160,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_google_chat.py",
      "test_file_sha256": "be5c20aa8ae3657f35ec67ffd5fda29f7459d1c5bfb175724f7a6fca019b0447"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-37a43c587f",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_home_target_env_var.py"
      ],
      "expected_nodeid_count": 7,
      "expected_nodeids_sha256": "94a0fc7fcef9ba63bfbd54f8ec0cf67cd6cbd21adf6f30e57ffd347d5e2f690e",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_home_target_env_var.py.log",
      "output_sha256": "4755c797212fa30fb797c95c063f9bb8ec19c8f86b3a69e080e179ec7b8f620d",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 7,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_home_target_env_var.py",
      "test_file_sha256": "3dfde539e7d8412923ef09926265fec455ede6a79f93ef0cb99b7b163aabe736"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-3bf2fc6800",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_homeassistant.py"
      ],
      "expected_nodeid_count": 45,
      "expected_nodeids_sha256": "bed1b8ddc37425ada1d8548e1e3ae8d23dc98088fcdf02775a56182e63eb805c",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_homeassistant.py.log",
      "output_sha256": "d66f35eaf65edc9962310bcd6796b0c68663d457b3af3989c43665efcd12e00f",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 45,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_homeassistant.py",
      "test_file_sha256": "6b30cf359f3f065c82563fa2f9b2ed30e949d55c0af5fe2656b1b1bf4b70683b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-1393a791ba",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_hooks.py"
      ],
      "expected_nodeid_count": 21,
      "expected_nodeids_sha256": "a9dead2871004eba4d3842e478c87ccabf4352b951c79e5a11a7fc7bbc9671e8",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_hooks.py.log",
      "output_sha256": "ca4107189e93a4540eff826fa53f36e97642e7afe98dc27b4a27e4e1dfcb83d8",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 21,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_hooks.py",
      "test_file_sha256": "4550b6a3043701ac575cc1367b80f654340b4c62ebdcf9f43f309d8dbca32883"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-1de9d1fd89",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_insights_unicode_flags.py"
      ],
      "expected_nodeid_count": 12,
      "expected_nodeids_sha256": "d27bbcadd60c3ea5f75c7ead1e0b3c81b92de7e8bb059398d0becaa4b634f26f",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_insights_unicode_flags.py.log",
      "output_sha256": "6b68487be8cb7888dd484c4315bec7c57a83f116ca55d197780f04e35f0d7f77",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 12,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_insights_unicode_flags.py",
      "test_file_sha256": "6d35b503a05a5d5a6d5f2b245012da91482614e150e174e8504ccb414b7ce02a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-3220ff2539",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_internal_event_bypass_pairing.py"
      ],
      "expected_nodeid_count": 8,
      "expected_nodeids_sha256": "a18c75d30bb0677eb4af7f512da2be14af088b38d659758780393ee688df517c",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_internal_event_bypass_pairing.py.log",
      "output_sha256": "4af6a4a4507f5993ac141cd547bbcd6ad407c2ce4f750d6d6c5b1cfb3b8209ce",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 8,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_internal_event_bypass_pairing.py",
      "test_file_sha256": "db56957db6ba9cc03999bb2634599cc3150c8814b8ab24c00551f98149fe33e1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-4bdcc5ef47",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_interrupt_key_match.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "4dfb8f4d5a8f3b067289b2050d682375abfeef416405c76870791eefd74db439",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_interrupt_key_match.py.log",
      "output_sha256": "79c6fcdea4341890f7bea4d591ad8c23b64d7c1960aaba80c1d1efc3bd75002d",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_interrupt_key_match.py",
      "test_file_sha256": "2dbf9c7b56c4d0c39137bd922ffb130379bd377431eb2fbffcbeab320bb22cb8"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-1ca8f872a9",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_irc_adapter.py"
      ],
      "expected_nodeid_count": 44,
      "expected_nodeids_sha256": "a6c9a5ec93544a2c496b7af7179c895f48fcc2ad955e1602a86476416e9c5569",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_irc_adapter.py.log",
      "output_sha256": "e13eccdcceb7886a126a6c5824e143923d48ea2df1901e544c1e27fbfdd8e0b7",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 44,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_irc_adapter.py",
      "test_file_sha256": "ba575132623c186e10332449f233f0f28eef2a33ce6785ccb35ef2f3b7465992"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-e68465436d",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_kanban_notifier.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "f06eaacb94a449aa5d25489e5f498dadbe658d88eb3f35708eeae84b35aa91a6",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_kanban_notifier.py.log",
      "output_sha256": "a600ca1478c9964892196afcf4b0c79ab22aefed7615a7d2d537fd529101af47",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_kanban_notifier.py",
      "test_file_sha256": "ea78a9f1d63843771ff6989571d80d11eec5520e184f0f9b888fb6c91535e8c5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-00bcbe803f",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_kanban_notifier_watcher_dispatch_gate.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "872c7b7acbd717fcb40462c86485efd5a78644d473ac85854b39ffe9e63130c0",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_kanban_notifier_watcher_dispatch_gate.py.log",
      "output_sha256": "ba701459e2a6795d9139ba370568c64d01e017b4680e4f8a94e60b0cd7138117",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_kanban_notifier_watcher_dispatch_gate.py",
      "test_file_sha256": "10fc79b63f8e16ed20b94ac2ca83c166d707cb737657aab0c822701d0d9ffe3b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-9c54a80514",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_kanban_watchers_mixin.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "647afe7111c853d2bd90d78d00515c582ef9f27e57e45cab6126ca6d72804d8d",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_kanban_watchers_mixin.py.log",
      "output_sha256": "f3ff0520e279ec6c149e89699e3211b55be2a422d4179b812a22c9237834275e",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_kanban_watchers_mixin.py",
      "test_file_sha256": "4d780d2671b2c1bf612074bf9632ea0e3cd1219c610642a8eb986dca9c8f89e9"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-d6ec046f67",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_keep_typing_timeout.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "076a559e7437633b5efcad0045e8bc5553ad0c0a428041c663be1691739fd10c",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_keep_typing_timeout.py.log",
      "output_sha256": "4ae25f5ef96dddfc53a9fe28e002b9e29f16a06918e1d6422ce54aff10f7b78f",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_keep_typing_timeout.py",
      "test_file_sha256": "b577798913b47142efd61950c320b1529a4c88bccabefd4cdd646d8f2dc31e88"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-c25cf36b3a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_korean_humanizer.py"
      ],
      "expected_nodeid_count": 60,
      "expected_nodeids_sha256": "6a4d5ca5e0bbccaa30de3935986aa9549ecccf099a9504aea2d9cdbfd937bbdf",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_korean_humanizer.py.log",
      "output_sha256": "f8c0eaabc4ababe639d767d091884464b607f5e3239f9f8d0224a37b6ce5cf6d",
      "returncode": 1,
      "shard": 6,
      "status": "failed",
      "summary_count": 60,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_korean_humanizer.py",
      "test_file_sha256": "472e4550cb194bdb48d8c676e4daa67fb6cfd3f69fcd59c8665d3f16bb9a85a3"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-e9b6b58f93",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_line_plugin.py"
      ],
      "expected_nodeid_count": 76,
      "expected_nodeids_sha256": "71dba342e112ffe7cce7134fc646501082c9f7a999191283976e93bc9659030f",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_line_plugin.py.log",
      "output_sha256": "87e3c7c65c2a7e6d76a6bda2fbd4fccad2592aae7d5528c34151d965e61e2bdb",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 76,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_line_plugin.py",
      "test_file_sha256": "3e9fa81911ef6c5d874fd2b9eb498d0bf54094ed15c084bf3183a08de0886edf"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-dbeaa747e1",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_load_transcript_db_only.py"
      ],
      "expected_nodeid_count": 1,
      "expected_nodeids_sha256": "4c6d794530b13164e3eca6e3c0b591eb0255dc1206a50ff2e515ad6c9692256a",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_load_transcript_db_only.py.log",
      "output_sha256": "93c97c10af4fc8b54296201243c032c5e8295479ca6b4adc06019033d6f9e282",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 1,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_load_transcript_db_only.py",
      "test_file_sha256": "8ac4b2a29a5eca7d3a6d3e0dd4eb16bbec4aa025d3955e9473159a29bae03f0e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-d065f983ff",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_loop_exception_handler.py"
      ],
      "expected_nodeid_count": 14,
      "expected_nodeids_sha256": "ea272fed30cb8406af9ff07d98473be4bae34acfa80f0dff666ce1c3a59da385",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_loop_exception_handler.py.log",
      "output_sha256": "3d982959a6d0ad327e4c2ff7cfedf579823ee4d0c00b0aff1195763fb428a921",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 14,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_loop_exception_handler.py",
      "test_file_sha256": "8fbbd24e81df0fdac16405aeee006d2e3e75cdf4197db6351c39b7dc220f4c3b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a4ac835112",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_matrix.py"
      ],
      "expected_nodeid_count": 230,
      "expected_nodeids_sha256": "3e9042398e41d47fd2be15a08ea6832f50514767f4e0040547afeb76b699ab74",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_matrix.py.log",
      "output_sha256": "9401db5146cec44a8fbd9a7d3d9902b9638153ea98d9cc82936bc491ed000358",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 230,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_matrix.py",
      "test_file_sha256": "54c16ca94dc882a27247375905f9545c9d1b0971c6469250a263d3ba21447b16"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-21f2ba4c93",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_matrix_approval_reaction_fail_closed.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "043367b553eb9da3464b240b2e3a4b7ee0c4561434e71bb7ce4d83e3510550a3",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_matrix_approval_reaction_fail_closed.py.log",
      "output_sha256": "2132f781fd09c4d032290bbe2ac096ba7335a9eb5ac19ffde8bd10a3ae2045f5",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_matrix_approval_reaction_fail_closed.py",
      "test_file_sha256": "07e36146f6f0ed1d532e7a83854a2a04e2ae2559f8b3e086301dae2c745d7d87"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-892d6e3554",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_matrix_exec_approval.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "399ffb6cf99a7985efdf1a86e063a7ad603120269be31c4adb6ba962bba975f5",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_matrix_exec_approval.py.log",
      "output_sha256": "3c82e1d3305214e6527e81a3191d87bd710aba47bc834df9a486aeefacb40faf",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_matrix_exec_approval.py",
      "test_file_sha256": "20eafc693c087d22fc42832e2241f002099ef4e645146f69038d5179995e3ac8"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a58e987cce",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_matrix_mention.py"
      ],
      "expected_nodeid_count": 52,
      "expected_nodeids_sha256": "87c41a0353e98113a20ba145a63bf673f815dff88dab32bb4f18818c2683ac83",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_matrix_mention.py.log",
      "output_sha256": "cb703438126e23990a481621ee0b08fbd411ab29ab749f557ac18210425570a4",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 52,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_matrix_mention.py",
      "test_file_sha256": "5aa642ec8cbf1176d343a15bf3d148a271e3847bce46d481d6b12e67a5e91050"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-5b82d389c8",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_matrix_project_context_isolation.py"
      ],
      "expected_nodeid_count": 19,
      "expected_nodeids_sha256": "5ede93eda9a35a835939ea99441423ff85599ac684db9f0e0e7e682d8bdadcdb",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_matrix_project_context_isolation.py.log",
      "output_sha256": "c17495ce63dbff2fee04fb81d71ad682111676d49b23770c06a7301fc0071aa6",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 19,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_matrix_project_context_isolation.py",
      "test_file_sha256": "dce708a5773633ff99a2528d8d58ad8fa235d28190dbcf88a3f3bbe81af83e17"
    },
    {
      "collection_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-collection/0126-test_matrix_voice.py.log",
      "expected_nodeid_count": 0,
      "expected_nodeids_sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
      "shard": 4,
      "status": "collection_skip",
      "test_file": "tests/gateway/test_matrix_voice.py",
      "test_file_sha256": "aaa706cf60dd5bb08ded0d610755da2d0c8f50ea7d96722b21f406223103c1c1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-46bd59f12c",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_mattermost.py"
      ],
      "expected_nodeid_count": 58,
      "expected_nodeids_sha256": "b5dabb4a254d06c5ffc195e749372e78391a64b7088fe0e837586778c871a68a",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_mattermost.py.log",
      "output_sha256": "921e87d991df9dff4e3e95f68ce82eeca68978ce29535a049859caa316922b89",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 58,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_mattermost.py",
      "test_file_sha256": "c5bcfc8110822ee823b7d5c3b1896b208482763548feb88070d673293d776bf5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-b26f892517",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_max_concurrent_sessions.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "19ae2332c1165b8ccfa319b1a505c424708b525bbfefcd3955e0470bde08ef55",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_max_concurrent_sessions.py.log",
      "output_sha256": "321b93b9d4cf1f5eeba48935783821ef3b9bd037128ff9354e4c6b594b1d6c5c",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_max_concurrent_sessions.py",
      "test_file_sha256": "eab78cdf3211b8e67298a63ff0cbbd1a28e6aa28e9a9d2d93d9b57428c8dea99"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-9a25353e86",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_max_tokens_propagation.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "27ce8fec446122c59ac7ae3c0d25ad6b973b31bd98b85ee90daae9047a366c7e",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_max_tokens_propagation.py.log",
      "output_sha256": "5a4cda68fdc346425ece475f250c743c929eb242e1b32df54415325be91f9b20",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_max_tokens_propagation.py",
      "test_file_sha256": "5b3f9ce8585b5342a2b704cf0265028ba7823072c1801d60b78421a3448a738a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-bc504ae1ab",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_mcp_reload_refreshes_cached_agents.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "f365c3de35d5f39c9fd59e5fba401f2f1f9570757a2a131fc012ea3f8950f7dd",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_mcp_reload_refreshes_cached_agents.py.log",
      "output_sha256": "1e4658667ecbf004c8fd3f54b5b994224f46a13379fba9fa28bbc69c1ce121c8",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_mcp_reload_refreshes_cached_agents.py",
      "test_file_sha256": "e60c26718cbfe9a9c0a2933faba8e68a12fca971139b5b9b69d2d4272020b684"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-f5c8737ffa",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_media_download_retry.py"
      ],
      "expected_nodeid_count": 36,
      "expected_nodeids_sha256": "56b9d24ed6d2ca726cf9596c278f975f0783e3e2948fb25633fa214bae2aa0b5",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_media_download_retry.py.log",
      "output_sha256": "8dd80fe0ff0665df8500373255aa64e168b608aedd6fa492791fe7fe5c413e3a",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 36,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_media_download_retry.py",
      "test_file_sha256": "d6e738529ef5ddb65e7d3eb8f9e4855033897ea9d90a3ed3c64b77d7da5ab213"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-f1741f6609",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_media_extraction.py"
      ],
      "expected_nodeid_count": 13,
      "expected_nodeids_sha256": "0a2796e868af70d47e5686196eae05429e05491a21937f0099f41e7302e1627b",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_media_extraction.py.log",
      "output_sha256": "638bd5001be68ffa71fef634ea5df97ee42d74f4dca4675af239f62f784f17c7",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 13,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_media_extraction.py",
      "test_file_sha256": "f45019ac1a6001b132d1889cbf411eae6aca53cca588e7c4ce7df3552d4551ac"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-0c172ef7b6",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_media_metadata_contract.py"
      ],
      "expected_nodeid_count": 16,
      "expected_nodeids_sha256": "f40e1a4f505ba89508807c9627e5edd9adfa3ebda473e36cbda3b6edd28c1d2d",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_media_metadata_contract.py.log",
      "output_sha256": "73202883b9a9805dc83ede632355922257cd06a9f2c0b7674cd79b0520422630",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 16,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_media_metadata_contract.py",
      "test_file_sha256": "3075818213340192d1a41203c6b3ae694f3e5e187098708fc1d6e597a265b249"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-513310ef56",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_memory_monitor.py"
      ],
      "expected_nodeid_count": 10,
      "expected_nodeids_sha256": "1780068aec5a9ba9a0958f1d3587b66dbbd979ed3c1fb71a0b8c670a40e29f6b",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_memory_monitor.py.log",
      "output_sha256": "cf98187e4bc78f38eb798eb32c400d3c9eafa54486f8dd6748ed7a212e4f11ee",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 10,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_memory_monitor.py",
      "test_file_sha256": "8226cbe5b9fc557b5cdaffb966ab6af64c8cd4d1422e707b0a400b069b94f827"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-3ae5ea1ac2",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_message_deduplicator.py"
      ],
      "expected_nodeid_count": 8,
      "expected_nodeids_sha256": "2c516a47ad058b9209672701787e7442fc4be47e4daed63f08ece1fd3800e57c",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_message_deduplicator.py.log",
      "output_sha256": "82469cff4e1df5f2929bd2a6f5a9056a2e1a28f7c4cf9d7c208922ea0c54d799",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 8,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_message_deduplicator.py",
      "test_file_sha256": "e2e2ad51cfe5adcc709c08d9d77de2a00274a988a4feec189bd9508bde6cb49d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-1f4ef25000",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_message_timestamps.py"
      ],
      "expected_nodeid_count": 8,
      "expected_nodeids_sha256": "5fb1e207e32c7e27a1e6359ab825a6260b672ca44af450da03f8d838b50618d6",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_message_timestamps.py.log",
      "output_sha256": "739f28c65e4b6b387ab2b5188e3b06d7cf0a0f015530b6956cceb22f948fb59c",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 8,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_message_timestamps.py",
      "test_file_sha256": "6b49c9f0526ef2431da65cd8a886e622a47a77eaffc630399e9d3c12a493daec"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-1d62bd58cc",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_mirror.py"
      ],
      "expected_nodeid_count": 15,
      "expected_nodeids_sha256": "440bcdab4ebcc91f046eccf88b49c82f9e037641b2de96965d4cbc20e3312e54",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_mirror.py.log",
      "output_sha256": "8d312e7a5e1ccf59070b93c33226e6ec23de195625ca51ae35135d390eb74f30",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 15,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_mirror.py",
      "test_file_sha256": "da1966af8ebf20afce0aab880a905b6a233fa7dac0816ee147539e502330a39c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-123b4cffcd",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_model_command_custom_providers.py"
      ],
      "expected_nodeid_count": 1,
      "expected_nodeids_sha256": "424afb589b5bfb5748aca65069f49f058cd11e77f5215c1976fc27e1796781e3",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_model_command_custom_providers.py.log",
      "output_sha256": "106e2242acc92dbbe0317802bbe2046a9d0be71b46ef14dc833068c0a34e7939",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 1,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_model_command_custom_providers.py",
      "test_file_sha256": "05e557cf99191b7fc119650fef14fd58e9c6ed41192019b2463371670c10e75f"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-8856bb634a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_model_command_expensive_confirm.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "fbd977abb1f1c1cceacb8de1f387c4dcea6a677f253c1eee5cfdcfde9bacbaa4",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_model_command_expensive_confirm.py.log",
      "output_sha256": "b59be68fb6adfb7d9fc7d91fadce2bc4dfc5c56c4256d1f498efef44320e1fa0",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_model_command_expensive_confirm.py",
      "test_file_sha256": "a0bb4b38fef4230b692bacd60c16a233bfa46aefe62add0fe8d8fb0d2fea8de2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a70ca8bd06",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_model_command_flat_string_config.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "6083f5d1a4e73a0a9e1a88c66b433dfc859a70d17bf4fef13420037fee095113",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_model_command_flat_string_config.py.log",
      "output_sha256": "d6b818a379e6a77517c3301ee64d9fc0361f0d384f662b3f3a1d8bea2d848e8a",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_model_command_flat_string_config.py",
      "test_file_sha256": "ad823261e9916d026d25d58f709ac2aa9e8f46c536b93187da60b16f4b7b4e03"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-cb3a335f52",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_model_picker_persist.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "27162252ff61e07d8602e1545f343c0c36ac9cb58a4a61ec605036e0e6c43b77",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_model_picker_persist.py.log",
      "output_sha256": "56677c83c96dcc42858f25d21eaa2775f5aee4c3ac2fb052b52d5ae8c36e3c50",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_model_picker_persist.py",
      "test_file_sha256": "3cdbe961011bf10321c92c80a4eb4006d7d40031dfc9a8510f21f066e7dc9c81"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a7aabb4def",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_model_switch_persistence.py"
      ],
      "expected_nodeid_count": 9,
      "expected_nodeids_sha256": "5493a84ef978a930185a5c5800e0081d74c8452eb996b1b31111695c28c8598a",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_model_switch_persistence.py.log",
      "output_sha256": "a14914756c778ccbc89808363fcd2d5ba8027db266eee366a311024d2abd9ab4",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 9,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_model_switch_persistence.py",
      "test_file_sha256": "4305866b92987dce5bd050276eadc329a9137ed0717ff337b309fb91ee1809a2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-2159238123",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_msgraph_webhook.py"
      ],
      "expected_nodeid_count": 27,
      "expected_nodeids_sha256": "d644c474a3dcb5496390fc4840b3f67375f4c1110f9a348c2909ce9de621c40a",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_msgraph_webhook.py.log",
      "output_sha256": "0b819a05351901c7eeb6fff61d9c4db0e5d34ecaeb8406bad6c4231da37cb420",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 27,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_msgraph_webhook.py",
      "test_file_sha256": "902dbe5b36d30458ec370c3cc48d554343be5765085281cf802263b55dfdd43e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-e58863e502",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_multiplex_adapter_registry.py"
      ],
      "expected_nodeid_count": 9,
      "expected_nodeids_sha256": "5eee1a03dd3ef96baea65b7c5d0d1d0209103e0d9ecb7edb6424b4570236bf0e",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_multiplex_adapter_registry.py.log",
      "output_sha256": "a14914756c778ccbc89808363fcd2d5ba8027db266eee366a311024d2abd9ab4",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 9,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_multiplex_adapter_registry.py",
      "test_file_sha256": "8e152a907abf533fb475702ba655332d5e658afc44fc26780fc65f557d3ff050"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-4ca280dcb3",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_multiplex_credential_isolation.py"
      ],
      "expected_nodeid_count": 7,
      "expected_nodeids_sha256": "243ba267479872cc28ed38649e98f3578276458066526666fb0c2638f39aa83d",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_multiplex_credential_isolation.py.log",
      "output_sha256": "63aef428b6b6cdf5d5276d6deb64de6d8cbc4b0909961118f54dc0b91dd2df15",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 7,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_multiplex_credential_isolation.py",
      "test_file_sha256": "382969680547ae60d64e30d610ced2b47206c76b647b0c3610c981aa581d1116"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-6cb61cd30a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_multiplex_http_routing.py"
      ],
      "expected_nodeid_count": 7,
      "expected_nodeids_sha256": "ba20bbdb1bbf6de1777f264b69afb3a542eb66db69c34efd7de31cd5f12d7535",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_multiplex_http_routing.py.log",
      "output_sha256": "3bb6430ae0194f1241f42185a292676102510092091d376e1507df39d19559d5",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 7,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_multiplex_http_routing.py",
      "test_file_sha256": "601a52f2013511c94c968c6d0a75e7a7edfa01053d00f1099e8a8230af6b24d5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-f1526dd49b",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_multiplex_lifecycle.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "90ddf46c470433dbbb328bad981e9477410fe2d218fe47f06c43a0be56bed473",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_multiplex_lifecycle.py.log",
      "output_sha256": "3de0922879cc7b6509a3ad1ea40ed1f93b71bfe1a47df2a0588277d5be9a14dd",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_multiplex_lifecycle.py",
      "test_file_sha256": "7dea96b63cd800671cd263f8aef3016b211cc7d0db9212f0b89d5b330a34484c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-319ce5646c",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_multiplex_phase0.py"
      ],
      "expected_nodeid_count": 25,
      "expected_nodeids_sha256": "8d2579f96762f84d0a1606220207d653d45354b972d1bcbefcf9a35923f9ff85",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_multiplex_phase0.py.log",
      "output_sha256": "f2a8ce02b42cc30701feff1a09e68203a567b1e4f46c1861cb179bdb4da53bd1",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 25,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_multiplex_phase0.py",
      "test_file_sha256": "b5972c62ac9ea30f290573e339a05e0dc2b97504da0c0b103ad543b7bf8268c1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-7580e02a20",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_native_image_buffer_isolation.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "75f4e70012fb3290d1d8193afb4a95fa848bd12f1f99547327fb44a4c7e6a24c",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_native_image_buffer_isolation.py.log",
      "output_sha256": "c115b36d9d5e5aab28113b0fed7b050d7c81937d4704369b6afa3372628a0c3e",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_native_image_buffer_isolation.py",
      "test_file_sha256": "62f7c0c482ec1b50feaf28e966dac0b6b5b5392a59d1b280425b07f5f90f8993"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-6fb1748cae",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_notice_delivery.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "35ca62561647b602406fe40ef1fea2261b11c00004b46307f2896100598d12fc",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_notice_delivery.py.log",
      "output_sha256": "1efbd5fc9da76a71b0acad1451577d9edfe50962077b19e434edf3ce3a299dba",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_notice_delivery.py",
      "test_file_sha256": "bfd82ddc9ec1b34bdd2acbddc258821a784855718df4bada1b052e4c7b6c2155"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-c7506634e2",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_notice_rendering.py"
      ],
      "expected_nodeid_count": 9,
      "expected_nodeids_sha256": "7491af6a4217f478a2bc2323b11a251224f5bc2741c36433b6ba83322ee5a887",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_notice_rendering.py.log",
      "output_sha256": "c6cc6ea5b3888ad30e77e491d2f1820a4d50db13bffead8a454c9ed2e8f78f64",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 9,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_notice_rendering.py",
      "test_file_sha256": "3bb5fbafa8fdddfbc89010b28fb3ced35ff19c196224d7779538157528d02aef"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-517d891974",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_ntfy_plugin.py"
      ],
      "expected_nodeid_count": 82,
      "expected_nodeids_sha256": "06498963fdc27688a55c4b006b9b42d9af2db4bd55904d8e6a30c7a331511ef5",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_ntfy_plugin.py.log",
      "output_sha256": "d076e61b6e5e8a82e43fe06e96f5c5c73c4213c59ed4b273e29d7cb21d19c789",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 82,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_ntfy_plugin.py",
      "test_file_sha256": "30f92933d947da0ceb7eb028855e9f835814a1525f7d84dcb1b33b5634405a03"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-ec17738723",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutricoach_v140_disposable_e2e.py"
      ],
      "expected_nodeid_count": 1,
      "expected_nodeids_sha256": "e5cfe54fc1e6d8c11cb36b2e039b07d01590f47995ec5b3f55c1d03735f2e80d",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_nutricoach_v140_disposable_e2e.py.log",
      "output_sha256": "8ef31ee12a7a327f73001ca5a1e6ffbf66d3c9c5304b4ed0de829becc178b527",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 1,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutricoach_v140_disposable_e2e.py",
      "test_file_sha256": "ed2b96d35f26383bc4ef80ac0ca05b97808f6f112a7c97e6da19f43f88647eed"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-f94b8fe13c",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutricoach_v140_golden_path.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "dbb3a41c8d6ec16022540cbfafef897e311f3c800193e67051d198279b67fb71",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_nutricoach_v140_golden_path.py.log",
      "output_sha256": "90f4e36a2da0dde332efd603e853c36eaec2fddc011e41ada6b0ea697f2553f0",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutricoach_v140_golden_path.py",
      "test_file_sha256": "969479cdfaff8c050c7fc8db0249061b151400f67d6e64f24783541c06a45b2c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-5ecec7fea3",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutricoach_v140_golden_path_r2.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "345ecbfa426b97bb3709bb876702509d4799fda7963ecf52d3c2c706446ff487",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_nutricoach_v140_golden_path_r2.py.log",
      "output_sha256": "17ad876aef48156cae581b237161a016ce54d573a9bba8a41c20d87777980123",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutricoach_v140_golden_path_r2.py",
      "test_file_sha256": "57403a66ec76ca6770d43b76a9d98e087bb6f99b473d2dfadc096c18f79e9326"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-c7d4c3eb2f",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutricoach_v140_golden_path_r3.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "f720a8f9de878efb2338b2acbec8537515820e5a2049a598e641d5d6ba0ae97f",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_nutricoach_v140_golden_path_r3.py.log",
      "output_sha256": "273ef31fe0f379dbf4be34e035109172f296d9d250df3bdf345d8943d92bf7fa",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutricoach_v140_golden_path_r3.py",
      "test_file_sha256": "17dd6649f4aa30ed0295033d6d19ce3c773849ac9084c193edd925d508c3593f"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-13ff0e6176",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_coaching.py"
      ],
      "expected_nodeid_count": 74,
      "expected_nodeids_sha256": "3e32888ecc7259f825861c386c79cd3772353981997af70a40ffe03e267166b4",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_nutrition_coaching.py.log",
      "output_sha256": "222b0aa33f5f8dfea9fb9fd9cb58cd17a0b5127bd84ed0f556e3fcbb06bde5ec",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 74,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_coaching.py",
      "test_file_sha256": "6a9ab280bc351b2f25a30d3dcccd4fc788d1d5f4c16d52bbd075a2d4384c0033"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-6b311ca157",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_dispatcher.py"
      ],
      "expected_nodeid_count": 1,
      "expected_nodeids_sha256": "898995c19f73f7f4c35e1266baeb3ca753f23804bdaee814a4844821af1b60b4",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_nutrition_weekly_dispatcher.py.log",
      "output_sha256": "85c3e34df3337375b023792993d5880ace51098d60f8a6d4b62bb027a039340d",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 1,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_dispatcher.py",
      "test_file_sha256": "eabf7e1fa1fb83a14d84ccd3555fc51c57fa468e6d51b29c67a3f4621eec30f6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-eb07347e81",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_dispatcher_epoch2.py"
      ],
      "expected_nodeid_count": 11,
      "expected_nodeids_sha256": "4a597f05ffa9c9d6c416f125d0bc9b6e39c43bef207670a192392cd0b8597d96",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_nutrition_weekly_dispatcher_epoch2.py.log",
      "output_sha256": "7d31decb06e9ba500eca881ba49eeaf762b56821d748ae6b56083a0d8258b78a",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 11,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_dispatcher_epoch2.py",
      "test_file_sha256": "ea943f130b7c923e678eb8066ae20c01997fb124d9351d92f96be45b9b3032d8"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-daaad02069",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_dispatcher_host_matrix.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "e2321adf3ad93dba9d762460dd1b0a8da22c85e25b0a29924ab509507f5a8da0",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_nutrition_weekly_dispatcher_host_matrix.py.log",
      "output_sha256": "d6b818a379e6a77517c3301ee64d9fc0361f0d384f662b3f3a1d8bea2d848e8a",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_dispatcher_host_matrix.py",
      "test_file_sha256": "a50d4046ffe5236f750ef4237ef8068657a282dbe250c05192c876c4911c6abc"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-0c369e5386",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_dispatcher_lifecycle.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "f664208f0161b27826ed549649fe41702f62f515188821fa67d11c5ff2db33bd",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_nutrition_weekly_dispatcher_lifecycle.py.log",
      "output_sha256": "0846922d051cd7a003e1e85eace00f442006d6cbf70c1ba30a8b3acd83548f6a",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_dispatcher_lifecycle.py",
      "test_file_sha256": "3d6ee37a07af84f78e32bb4073641585b38647e98b6150e95c82e7e802b0f595"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-8d8e15487c",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_host_refactor.py"
      ],
      "expected_nodeid_count": 1,
      "expected_nodeids_sha256": "8c9c3be85334b58f9a0068de6c95e691febc9b5ff081cb22ffd38d6f45638015",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_nutrition_weekly_host_refactor.py.log",
      "output_sha256": "f69b41b567fe2583118441e8e8390afa756eecb8625fa01f5e10bcff2c1cef10",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 1,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_host_refactor.py",
      "test_file_sha256": "0164c984065527a53183f196fdeff16dda3b3ad8a7effd38d754c60e56ea9e69"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-98aa2d1044",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_operations.py"
      ],
      "expected_nodeid_count": 22,
      "expected_nodeids_sha256": "79b6da5c8a6a991a283851b3fba4eee6a823a6378eff21c564460421ddba6209",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_nutrition_weekly_operations.py.log",
      "output_sha256": "ea1b7372c26ea88990fe40308a4d9a4aa97cc8a3a1bcb50917b723912031f282",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 22,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_operations.py",
      "test_file_sha256": "134ac8a3d0326507c20c52f47d456cb1040f29f8fe2845a0867f5690355cab54"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-b3198e1296",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_operations_registry_identity_r7.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "541d626df523f04deaa605eaca4125782329413ccf4c51d4d3870c3913fc958c",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_nutrition_weekly_operations_registry_identity_r7.py.log",
      "output_sha256": "5707b7c226afa31cdf05b00ea6ace6139bf169b53d9f8ca5d16d7cc61b909f18",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_operations_registry_identity_r7.py",
      "test_file_sha256": "114f649db73940a6d153f5c3e78165cfc65672e59beb42259e6fa89f889a8162"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-93010bd736",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_operations_topic59.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "82ad468350677c2976074f91c030f2dd13e38f8d92522a86910f50a9b57de38e",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_nutrition_weekly_operations_topic59.py.log",
      "output_sha256": "7910c4bc2f96d85dac2302aa9be0ebcc503449d857d4a908140cf5d9d7e2319c",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_operations_topic59.py",
      "test_file_sha256": "3b54e2058086a5516525843e44d840dc181903814f25d5d0118c93af6759be2c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-71ba51a512",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_operations_topic59_failures.py"
      ],
      "expected_nodeid_count": 7,
      "expected_nodeids_sha256": "88bfbf95f4e94c831ff98288fff57b37e5804d5d740ae0c530731cdd8ab67093",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_nutrition_weekly_operations_topic59_failures.py.log",
      "output_sha256": "fab45554e8874500361e7be564756efb4843fb7fbb6f63f1cf21d4151a2f45ab",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 7,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_operations_topic59_failures.py",
      "test_file_sha256": "0e3570a667adcceea3099910550dce888daccc556a466b8c40c8af75a122697c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-9915fbad9c",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_operations_topic59_r2.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "b4679b4e3353863c5e0c79946071b1193aefb26eecfb377e35b1d90b5275694f",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_nutrition_weekly_operations_topic59_r2.py.log",
      "output_sha256": "6882715691d0fed69425bf6c539a6b17e3ada7d5aef454b0308d068b93029776",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_operations_topic59_r2.py",
      "test_file_sha256": "1eb4967c527c310d3a0333973cf911e48513afc06dc79793a75f2db051e7994e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-743d0e7d19",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_operations_topic59_r2_slots.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "26b41d9f33d1164eb3ccbe0ff9478bfee3ef4b0fb7ba164228a7d86cbe0dc8e7",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_nutrition_weekly_operations_topic59_r2_slots.py.log",
      "output_sha256": "8bbc4d00d6a321a31d4bf47956a4d6cc557f5dc6fab20a80411dc519ba2e1419",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_operations_topic59_r2_slots.py",
      "test_file_sha256": "1d87c3f528f2af12b143e0b31958f7d54ebc6e71113294b53dfe31c270eaec30"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-1f588e574e",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_operations_topic59_telegram.py"
      ],
      "expected_nodeid_count": 1,
      "expected_nodeids_sha256": "30e7e4d07f8dccea424701cb771f25076c8b012cf52ca0a7a354a634c89e25f4",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_nutrition_weekly_operations_topic59_telegram.py.log",
      "output_sha256": "3dd8a455f93386b2d78b9d5605f1c2f52fd55f0962f89b0bd7d602cae0ead952",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 1,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_operations_topic59_telegram.py",
      "test_file_sha256": "358d9365895c4f7caddf0104d47f734ccf78b00eab094f527574423b51f6090d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-dc207baac1",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_owner_draft.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "10ba1c4b23d554f036bb811d4c16c4548ea73239d5cd3b8c83a3f3b8ed6627fa",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_nutrition_weekly_owner_draft.py.log",
      "output_sha256": "da50af131c21308f8d4d4bff4c55e59a02ca996417a04dc20e59bf90da037674",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_owner_draft.py",
      "test_file_sha256": "db3b57ddd0e9d331bc83cecf55c438399211707ab6c0aa507e3d968c4b9d37c9"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-99ae86970e",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_owner_draft_authority.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "4508a5855f05f2b2378b0920261694bc28a77f704eaa7182f67957789131a0f9",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_nutrition_weekly_owner_draft_authority.py.log",
      "output_sha256": "9e51cb12ac1f38a206055a88854fe0a21a2e3dcfb31c8b17162effc3b0ca58dd",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_owner_draft_authority.py",
      "test_file_sha256": "4b8852b108c80157de2edb9c40d4c7ed0cbb90e264adaab21ebca8ceaa6d67a5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-3afcbc3ecf",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_owner_draft_model.py"
      ],
      "expected_nodeid_count": 10,
      "expected_nodeids_sha256": "db3af4ea0c399a3ea1b4346ab3cdeb00fb2491f19c7ad26f3f55c1e8344b0b1e",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_nutrition_weekly_owner_draft_model.py.log",
      "output_sha256": "9cd385b957fb458833b891eccb9781b2da004f7295e93cda8bb94e197ae4ad2b",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 10,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_owner_draft_model.py",
      "test_file_sha256": "d7ba31af679c38103a0a42df388f92f6ea1f670b1f2f21aa30a900a51da3635b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-b33bcbe065",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_owner_draft_r3.py"
      ],
      "expected_nodeid_count": 32,
      "expected_nodeids_sha256": "e3e1132a7c8cb6f84464c0b40e7f99467d2337821aea3d68a1c1fc2ec487a047",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_nutrition_weekly_owner_draft_r3.py.log",
      "output_sha256": "6f10e96aee9994424fd834e7cf67fdc252d5832ceb384f769c4af0a100c4305b",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 32,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_owner_draft_r3.py",
      "test_file_sha256": "a32d880763901023eec44b6f680ac18f5eab5c0895b73691f62ed300d53490c2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-b919ffb9f3",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_allocation_r10.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "c11cfd1967b833769fec80fa628eefd122a5c70beac534d274fd2eafe1759c2e",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_nutrition_weekly_reminder_allocation_r10.py.log",
      "output_sha256": "e6357a8b6be6501454e71a666283b6466fa5850ff335b7cebc722dd8bdea2dfc",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_allocation_r10.py",
      "test_file_sha256": "5f0e13ffc5970aca8a1542058bc0df6757e77e4cd2d90b2fa4de13dc9eed1ce9"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-2350133bb6",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_bootstrap_boundary_r7.py"
      ],
      "expected_nodeid_count": 8,
      "expected_nodeids_sha256": "154732181a489bd405a104ec4dc68dd1210864780b4b5ac7bc09f545f19adfdf",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_nutrition_weekly_reminder_bootstrap_boundary_r7.py.log",
      "output_sha256": "f6a56fa44b81f9027ea1094c0e45d0612acd1c57f16263c71e5d33b5496cbe15",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 8,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_bootstrap_boundary_r7.py",
      "test_file_sha256": "ceca79d563c4a33a8b67f8adcb34abd2c249dc7b1a3397b41e3e6a0181a2be64"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-fa21cec109",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_bootstrap_r6.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "69804d4bde6bdd50e378183f02c54ad0bd1f1f123ceaf4cab7babe40827e96f8",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_nutrition_weekly_reminder_bootstrap_r6.py.log",
      "output_sha256": "f3c4cdf48008c7e202b864f4f2fb73719a70152d7a94e1bef5430e7760e328db",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_bootstrap_r6.py",
      "test_file_sha256": "40a6b457d921a1be3eb9995313d777478a4807907c2f498f91f2073ed612c1c0"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-4dbbdfbb91",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_bootstrap_race_r7.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "5095cd34e2a71d4826f9ac458df70cc6c379fbe2a833eb117e74db028da9ba0d",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_nutrition_weekly_reminder_bootstrap_race_r7.py.log",
      "output_sha256": "7c3178f0eacce0030ee95f7f98a44083255d44c3206e826585cc9bcd4b8c4092",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_bootstrap_race_r7.py",
      "test_file_sha256": "99087c0db25473559bd4cb4deb9cce01fe2e46e29a9845d24407c4903a5d64d3"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-99ba03b309",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_boundaries.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "6450189fa227c9cde17c8a0d69d74692089489ac8ce3bc73292905cbd73a11e2",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_nutrition_weekly_reminder_boundaries.py.log",
      "output_sha256": "f3d3ca3f5fee50214b720d6239f9a86346aa8478c9e3aec0083841749994b598",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_boundaries.py",
      "test_file_sha256": "22bd9d494c3717526ec671006dad366a6b9923c2b74702a402f4188874791ebc"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-e10f61e2e0",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_close_r11.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "5bb32e73a7c6a3c131339d27bbe209bd34c2f1007b08f2e07efacdc3bce8e78f",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_nutrition_weekly_reminder_close_r11.py.log",
      "output_sha256": "f3cf71dccb7a621f56841c650ccf4b13e6d03fc8b67506e77bbfbce55ddae13c",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_close_r11.py",
      "test_file_sha256": "f54e2691b9c65f22414c6fe2a737dcc58b744d9a743e4d76da042e2409b31646"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-ab417af93c",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_ownership_r8.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "8bcca1b4821b58f055077e5537e781695f862b15dcca7fc2f9ec7fb02db5f682",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_nutrition_weekly_reminder_ownership_r8.py.log",
      "output_sha256": "1768ee799ffa7c0f1bd4d46d99a039697e5da08face60b9a5c17075bbaf959a4",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_ownership_r8.py",
      "test_file_sha256": "39de693edfb918e4d61ac9e49d0bd271a2936ea0f599c95bc8e111ce99e45135"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-6ad00cf42d",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_runtime.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "7cac38dddc8106cc9d8c5c90c2cea0d7493cccdee5bf91eb2e75fef3d529953a",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_nutrition_weekly_reminder_runtime.py.log",
      "output_sha256": "609c5f7496c9a43bbf924e6da6ea0a7a93582d21142b13476d8cece179f8d3d9",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_runtime.py",
      "test_file_sha256": "dbfb75fcfc0d3ee83245a72ab4c753d9f8001ed9c1d97d287f7f7a318e4e1266"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-9aa692d60f",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_threat_boundary_r8.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "5d536479a563e4bfeaa16ede5754e403dd11ad06c8b5d155db3686058af45df8",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_nutrition_weekly_reminder_threat_boundary_r8.py.log",
      "output_sha256": "131d54277424b640d4cfaffc817972121f26c82a16ce80613f47a116720cec43",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_threat_boundary_r8.py",
      "test_file_sha256": "0543552f82503cf4a5bfcebce63bebf532daf564c38d25a3a9ee9d20f8327dfa"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-6d9a047964",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py"
      ],
      "expected_nodeid_count": 40,
      "expected_nodeids_sha256": "ffc847fde106ff36316dca50ae992b546236a537106bf1a40525aa0fe1293696",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_nutrition_weekly_reminder_transfer_r9.py.log",
      "output_sha256": "eb8ec77f4cbfe6044af73209f9eda9b8a57abe579e323c676c4561c0615d30d3",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 40,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_nutrition_weekly_reminder_transfer_r9.py",
      "test_file_sha256": "6488fd5ff13c72ab8e30cf321d9de057a3c66093f68afbc999374e365c3acb5b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-b680c043ca",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_pairing.py"
      ],
      "expected_nodeid_count": 43,
      "expected_nodeids_sha256": "56e40e17d10b9d4677b429d4068cd5c7ce4d8939d89721e5aa4f64a00283af99",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_pairing.py.log",
      "output_sha256": "eb59e2775b2a7121905707f9f2674edc64ba2083da9e63d11970e1efd46cdf6b",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 43,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_pairing.py",
      "test_file_sha256": "a46bbdc08613edac8d0b727c9f59e49121d49ca99e1cebb361c6032ff9dc9139"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-63cf2d4c80",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_pending_drain_no_recursion.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "f3e228fbef00cd6e660ff317af855a10cd1b6e23bd370f4ddfa1d57490e38ed1",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_pending_drain_no_recursion.py.log",
      "output_sha256": "cd0046a03009014ab044569e7386285a7b5b3e36de1bcd065e40479812786913",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_pending_drain_no_recursion.py",
      "test_file_sha256": "717216604c42df48388044c24dd9ae2dff9352ad31c6361e8924396611f8b1c5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-af4c4d8fa6",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_pending_drain_race.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "addb55b8674ddaf9e66f75b8ed702800d064971988f97cedfd6c3cdfd1d929a8",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_pending_drain_race.py.log",
      "output_sha256": "12b244b923a290b739a003eb3101140e9d927d3db464d9bb0a855086430774c2",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_pending_drain_race.py",
      "test_file_sha256": "37e1c2e9d60ccc1988101f7e8940067ee0a961c5aa64462d111482d3045868d1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-29614ecb3e",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_pending_event_none.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "f674be76bc5739e7b89d61e17cf213baa711fc8958e1fa4cf2cc914a41554668",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_pending_event_none.py.log",
      "output_sha256": "e47c2b4a07710a12b6743639e2c35f4a5824af3a30c584242088525bc541c563",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_pending_event_none.py",
      "test_file_sha256": "f958d2c93f3f9479af33032962aca61fdb56d2f8a0169b798f71eb7499becfce"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-51fc35ac3a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_per_platform_streaming_defaults.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "6a4aa6fd6d292d85bea6c7c8af7767d8f07b92d5d2547debcb39e748adda7a3f",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_per_platform_streaming_defaults.py.log",
      "output_sha256": "20b00d9cc4a3409a3582614799f69f2a82d46a590612cb448479055fd731933d",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_per_platform_streaming_defaults.py",
      "test_file_sha256": "5f3410edd5353f3348c8a11fd8c6a1570765596964c29e516b755aeabd464a6a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-f951f184b0",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_pii_redaction.py"
      ],
      "expected_nodeid_count": 16,
      "expected_nodeids_sha256": "01a26fc1abcbe9bd7417ddf576adab1d9dd4f2fd8982ac21d49d08df93dc81ac",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_pii_redaction.py.log",
      "output_sha256": "d8801bae6559019a0a1679a355f602b67dbf530166df2374d6890fc2d1117341",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 16,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_pii_redaction.py",
      "test_file_sha256": "d5e0efa6a25ce3a09887a978bb4e8056b6bf28566bb0bd2193ae117f8154d8c1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-f227674b3b",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_planned_stop_watcher.py"
      ],
      "expected_nodeid_count": 11,
      "expected_nodeids_sha256": "415ce8bda8c99238784eff29c0d076da28a48b6851dd9bf6bc0560c401a87f8b",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_planned_stop_watcher.py.log",
      "output_sha256": "2f7d9088aa1cba0fbbd51d70af9ee2734f2b370a7d59ef4c9ffa456405789c0a",
      "returncode": 1,
      "shard": 1,
      "status": "failed",
      "summary_count": 11,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_planned_stop_watcher.py",
      "test_file_sha256": "43cd47622c1972eff9c6c5a64f0f0fa0c33466a5ed2bc833e6dde96473c7acf3"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-3dc3a4975d",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_platform_base.py"
      ],
      "expected_nodeid_count": 150,
      "expected_nodeids_sha256": "51383e83809f87c1a6d9ad3601e257a05d3f8e2ae067937823225c8d9d28ac6c",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_platform_base.py.log",
      "output_sha256": "2d66b6bff271fe75c2ed3e14f99834f37bb05bad4f4c7c74698c8123165568cc",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 150,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_platform_base.py",
      "test_file_sha256": "ea3d932c4458a13c6f50de226dbf107d7de24dec123962f0daedddcb989cde22"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-ea08e959d3",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_platform_connected_checkers.py"
      ],
      "expected_nodeid_count": 35,
      "expected_nodeids_sha256": "623c51d182500df687d84449308e52eb2ad94dcdb67a3f5f1d5642bc30b28dc3",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_platform_connected_checkers.py.log",
      "output_sha256": "6b3fb589c23dae16be0803e76fa0ffa5f07e13d2d4e837454672b88a1c2c5ce1",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 35,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_platform_connected_checkers.py",
      "test_file_sha256": "dd82f640032156116c96557a9ec4819e377212aa727bd632b3d996768e1e16c5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a8de8835b6",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_platform_http_client_limits.py"
      ],
      "expected_nodeid_count": 7,
      "expected_nodeids_sha256": "2c36a8a3ce837c0fdc5de6ef6bfa7cf3315da7afa601cfd4a42e3e0d8aee85f4",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_platform_http_client_limits.py.log",
      "output_sha256": "55493507b7aa18a8cc82091b1ff98b8c42bd6ab2fff3e518139c9c364bccb147",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 7,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_platform_http_client_limits.py",
      "test_file_sha256": "8ec789ec2af94a992f780fe05b7e4220dc3d3de6d650fce152ac294691eeaf89"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-c73faddec6",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_platform_reconnect.py"
      ],
      "expected_nodeid_count": 30,
      "expected_nodeids_sha256": "34e6285896b4a9bea74a9fb1389ffd42540acd4a5967baa8f5c49287df001423",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_platform_reconnect.py.log",
      "output_sha256": "f84fa579688caeba9677dda6e9b8e303c5aa816daf45a674fa6b7c008f38b151",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 30,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_platform_reconnect.py",
      "test_file_sha256": "1e8b1a08f11c9c4ae5803593451667a78402ad1a696be31730d09bf72c79912f"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-b177648c0b",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_platform_reconnect_fd_leak.py"
      ],
      "expected_nodeid_count": 7,
      "expected_nodeids_sha256": "c9b544549adbc7499f749f8c536a2b8d4e402b0f8c596d48968f79692476e7a1",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_platform_reconnect_fd_leak.py.log",
      "output_sha256": "6aa6bbe3c2a72553ab895d60d027b0b170747a8f0f8f472a110ae2d54698c152",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 7,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_platform_reconnect_fd_leak.py",
      "test_file_sha256": "166792b55c5cdb7716371017e0c1c4f5af434517d3ad31a24fa7ba7adad77283"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-54a264431b",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_platform_registry.py"
      ],
      "expected_nodeid_count": 50,
      "expected_nodeids_sha256": "b69666a56eb3841212c84018c9a909ea9faa45ff56c5c1a0f7c5c2c67a319291",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_platform_registry.py.log",
      "output_sha256": "b9a067c1938d3d12b991e5839562ca00d4393664e1f4d172d4167da60f375d55",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 50,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_platform_registry.py",
      "test_file_sha256": "5b8dbbf037eb23d84b0b8e0cb502bb0a6d7044c2705c07a1fd292af3fccc7272"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-d3353e1b7f",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_plugin_platform_interface.py"
      ],
      "expected_nodeid_count": 7,
      "expected_nodeids_sha256": "b6f605950966128fac771ff52dda5e986170e0f945f36b6c67e262d960477936",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_plugin_platform_interface.py.log",
      "output_sha256": "909a3cab2afb28b5a9cf6b3cd2180856cdf1dd2331f664b451596a2e5c581822",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 7,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_plugin_platform_interface.py",
      "test_file_sha256": "f7aa1bf3d42c73222f623a46f05a0e5aa692e4b24e03b8737124477fb88d78a5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-4ed286a180",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_post_delivery_callback_chaining.py"
      ],
      "expected_nodeid_count": 9,
      "expected_nodeids_sha256": "c3397f589d31f44769db49d898ee2374d2f534659c1482f29e2d2fb84a947515",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_post_delivery_callback_chaining.py.log",
      "output_sha256": "63d7a2372c998e5eece86a21ba5445a6882758fc30f56b0cfbe09136c18f82d3",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 9,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_post_delivery_callback_chaining.py",
      "test_file_sha256": "97b38529a110fba1b554807fde9c940a02a5ae3ed5aedabc7675cab2e820a1b4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-b13e8b7841",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_pre_gateway_dispatch.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "396273d040b888345cf5c398bb987d51b270b7777809426d8801dcd6b08194ee",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_pre_gateway_dispatch.py.log",
      "output_sha256": "51d71d626f7f335437c0d6a6c62303cf0d313d6287566ec770d41e78000d35f9",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_pre_gateway_dispatch.py",
      "test_file_sha256": "9182dd46053636b3c007af6918d7f06c771955c92a814342837b4a678aac6d06"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-8d7fff6508",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_proxy_mode.py"
      ],
      "expected_nodeid_count": 22,
      "expected_nodeids_sha256": "98efe1a17b696f82093c3ee459d3f268d1faaa782551c5131fb89a6f86f11a53",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_proxy_mode.py.log",
      "output_sha256": "b005eb10c68815d38a7b900bd9895b066f0dbd798dacf7724b930b5c0ec98ae6",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 22,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_proxy_mode.py",
      "test_file_sha256": "53b075378aa935c15a812ca3e868fcd12c19c0c5c0ba3bc1de9490793dba95ac"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-e21fe7c9d7",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_qqbot.py"
      ],
      "expected_nodeid_count": 161,
      "expected_nodeids_sha256": "6955a7b0fb66ef262a50094e688edf5a0ef9588458f2f4d1751cb0c41dd4bc5c",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_qqbot.py.log",
      "output_sha256": "9d4fec3b6081192432694e3f30c045852abd1098fded49df301724df37b29ad2",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 161,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_qqbot.py",
      "test_file_sha256": "5b42a5622608c0cdb2cd052b9988781fbdcb19b44cb90e99647b3c8f9d52d300"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a5e350a502",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_queue_consumption.py"
      ],
      "expected_nodeid_count": 14,
      "expected_nodeids_sha256": "c3e88d89dfdaa9b6fae0785adb6da76a4ddeddfc113780d870585eb7633e0325",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_queue_consumption.py.log",
      "output_sha256": "3d982959a6d0ad327e4c2ff7cfedf579823ee4d0c00b0aff1195763fb428a921",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 14,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_queue_consumption.py",
      "test_file_sha256": "af8d085a47b250487cff8d0ac08fc8e1bf4511c77d77c58a8603278e64bd40b9"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-3c4ebd904d",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_raft_adapter.py"
      ],
      "expected_nodeid_count": 16,
      "expected_nodeids_sha256": "05d9435f4e09ab0befb1da180538a4567bf66e756d2fd6b6fb20145ae8175983",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_raft_adapter.py.log",
      "output_sha256": "4811f0bed05602aba7652e56d062f2180493d65cc2cda79b1c33f76100cf7ea4",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 16,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_raft_adapter.py",
      "test_file_sha256": "149df959a1fe01f9f9fc2769ea402cb18b5fb3c3134118a25b8572d7add3b217"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-f5179b3d03",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_reasoning_command.py"
      ],
      "expected_nodeid_count": 18,
      "expected_nodeids_sha256": "6642601d86ffde88e3d984815456c7120842b4c5c642cfa7660bf606363edbf3",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_reasoning_command.py.log",
      "output_sha256": "f669d513628f633361643568f43f5e29fab13ba69980029a16525aab2382f074",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 18,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_reasoning_command.py",
      "test_file_sha256": "4257e11c8c14afc961b01be26964a45b8e106bdecd39e552a6e5adda7a17f8fa"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-77f89bff8b",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_relay_capability_surface.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "982c57aa4ae4e0efbf2b8dfb888c67075b19697ee2bba60155ea117b04648e26",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_relay_capability_surface.py.log",
      "output_sha256": "006ba2e6e18954ad086677bc060e3290380048985a443818578f6ef51ed1b21b",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_relay_capability_surface.py",
      "test_file_sha256": "9f7494b2bf9a73f9f4d6df445c87d303ba10bb475e19ac6a90346c0e28571fc8"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-2475c9a72c",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_reload_skills_command.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "62e6c4d150b177531f6abfd11c94d8aa36b1de8bb5b758191e4cf2925aee2fd2",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_reload_skills_command.py.log",
      "output_sha256": "8a8087ec1a9d7ac3a3e24f4d4f2cf4dc5d8454a9ee0514098651a820529b6109",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_reload_skills_command.py",
      "test_file_sha256": "5e4497d2040c59ccd0be3190f35189bfaa6497fd957018122a0dbf69a3086255"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-273ab32dc3",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_reload_skills_discord_resync.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "c850466c1e1c698169d8d4f28823e748ee15db637234ff7e1fcb85afa0cbfbe2",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_reload_skills_discord_resync.py.log",
      "output_sha256": "e819659de90e12fb3211cb456e852f09b2e31050c8dda99a8d3db5109b2ab840",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_reload_skills_discord_resync.py",
      "test_file_sha256": "8ec7194d17256be12b00e5e47f3d8e636aa15a3bed8b32e31c2b297ba8ac2731"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-3cf4f180bd",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_replay_entry_fields.py"
      ],
      "expected_nodeid_count": 16,
      "expected_nodeids_sha256": "e6f9bb15456ba7510cd1afb8756a68c2dcb40d9cb86aab722f734aa94ac2c7a8",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_replay_entry_fields.py.log",
      "output_sha256": "8cc9c938252844802551ff391aeab9c52e6c8feebac16bac984543a747360829",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 16,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_replay_entry_fields.py",
      "test_file_sha256": "3404b4b666a59574aba396fcb8e9b81aab7b5142e95cbabd99718366ae820917"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-8c66683b76",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_reply_to_injection.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "fc1b705bfc14eab4398c86efcfc884beb70242c17fca1e92fa76e00f89086ddb",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_reply_to_injection.py.log",
      "output_sha256": "e47c2b4a07710a12b6743639e2c35f4a5824af3a30c584242088525bc541c563",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_reply_to_injection.py",
      "test_file_sha256": "0372ec785196dc1afcfc4de2a751198a35917e0ee151d6786d01913edfa83678"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-deed2861c7",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_response_filters.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "c7bf38c5e983179c907dc711565658684a3f7a2212245107ec8ece92ca4922a2",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_response_filters.py.log",
      "output_sha256": "05f7f7d7e74af6e23fe4984046332ed347e22cf50f99a33856b9d2f589167249",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_response_filters.py",
      "test_file_sha256": "2c604a32af8b2a1affc76ac42e15f2cc3ba3b6677ef95da25629f02afee93aa1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-58eb2abb1d",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_restart_drain.py"
      ],
      "expected_nodeid_count": 19,
      "expected_nodeids_sha256": "1cc56d4ad8bd92e614c25865feaa7c16b6b8633c4f7cd5c495a15c32e787fea7",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_restart_drain.py.log",
      "output_sha256": "fd2892acebec8a567365d5648e74cc98d56f9b112a292d1d2517d893de31487e",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 19,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_restart_drain.py",
      "test_file_sha256": "ca79a6ad0f83c3452b01a08974d10997573d811b28a9d4f9c0eeee35fec4752b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-5b999e3ee1",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_restart_notification.py"
      ],
      "expected_nodeid_count": 27,
      "expected_nodeids_sha256": "ce9810d3abbbfaadc2c8632a18fa3813dd12d36b4778bd774bdc71d9e4f590f7",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_restart_notification.py.log",
      "output_sha256": "c6370ad78488ed883c542235459f874bc2d46c52758a46b2cd8e92d087b2a0f2",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 27,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_restart_notification.py",
      "test_file_sha256": "453f991122f1308de106621b65aef0b56312381f4abe34dc68cec527d042ee5d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-286e681ec4",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_restart_redelivery_dedup.py"
      ],
      "expected_nodeid_count": 9,
      "expected_nodeids_sha256": "d75a3d31dbb4d36eb8c0c247da6c16aec147e331c388d2d3c50ca65e03e355ec",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_restart_redelivery_dedup.py.log",
      "output_sha256": "7768f4b2ab5ca6ff4bc386dfffe2a95cb291528580afd9200747f687b7a1c0f5",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 9,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_restart_redelivery_dedup.py",
      "test_file_sha256": "142e43ee61c92fd26a86889e52d63d556a59cfd943b84c11f17f37a81f43b21f"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-0a37203b7d",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_restart_resume_pending.py"
      ],
      "expected_nodeid_count": 75,
      "expected_nodeids_sha256": "7694e055bb884bf403eb006e4f895634d41a5a46a1f6aa1819be4eb74cdafd84",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_restart_resume_pending.py.log",
      "output_sha256": "b7ab072fe509b5f5d6f43d93b2be5240c7d7cbbdbe14f12d56ff9a0130ef7f1b",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 75,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_restart_resume_pending.py",
      "test_file_sha256": "da32df25596656d7221639554ad072102d532799f6efbf3f16c1f91b7989c9ad"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-28cdb63206",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_resume_command.py"
      ],
      "expected_nodeid_count": 17,
      "expected_nodeids_sha256": "361fe83a0f56251a442c23be66d74758eee13ddab1f411362d00c7a1569d3eb4",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_resume_command.py.log",
      "output_sha256": "165202be5da1214d88b891e43a10f424ed77fb93b19eefe05d6b5e18230cb5a9",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 17,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_resume_command.py",
      "test_file_sha256": "abc6ee5dac4cf4c8140c3a2e2afb6641b7238bba58a7d44a820aa926e0f1ea93"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-3014a73a67",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_retry_replacement.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "1389c34916c6a2a2347bc50d402742c98bbdb8f92ce64015c5606c3b2a7c4c17",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_retry_replacement.py.log",
      "output_sha256": "8d0874d56aff5efde82c3c15c74030ec4fe6fa3cc7b9d57d49178bc2f48dfcee",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_retry_replacement.py",
      "test_file_sha256": "fa4a68d6436209bbf2e9e81d423e7f654a1ea89f0db9932d31775c0ccc5e1ecd"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-b1cdd29f1c",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_retry_response.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "5bb950d938b0c84b673847f5030ca0e2341b67a4637af82af7dfb7a8ef61b544",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_retry_response.py.log",
      "output_sha256": "6ae60db2592ba5cbc3b7d38bd4c72e9df3688404ab51d9d4eb9b30c39d053fdd",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_retry_response.py",
      "test_file_sha256": "e3487748929717443e12ccbdecf258293de8d1eb88e7555172b65dd2d23d58af"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-29b86f64a2",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_run_cleanup_progress.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "e3c1c24274bc444eaf14675feba2a7209fed380334b5c2c673d5b7df6d5d6f6e",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_run_cleanup_progress.py.log",
      "output_sha256": "8073ec615e62a1432f4de9111f2080707c8712dc6eb1edce5fe54c7471e35c9d",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_run_cleanup_progress.py",
      "test_file_sha256": "6ac2396b9da88c832fdcace8509b73174d866937c4ead795c0a77f722153e8b0"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-af3a3d592a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_run_progress_interrupt.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "ed902abfcd04f28f48a6c25318ab6ea356857ace14686f0cdbaa149d54b2b27a",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_run_progress_interrupt.py.log",
      "output_sha256": "24b1729532d7fbe630d6ce5009fc6b3e47e90e0ae21e8d54c16b67477e68a109",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_run_progress_interrupt.py",
      "test_file_sha256": "b54d8cee9beb8146a84462d927e4f69fddd9d9bec8cb0737135561c8e5b6a651"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-5317bba486",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_run_progress_topics.py"
      ],
      "expected_nodeid_count": 33,
      "expected_nodeids_sha256": "3b80eecb2cd90e4116b07b502983b6fd297f7d0f16809ef47a9e1fdf3449ca12",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_run_progress_topics.py.log",
      "output_sha256": "45122fa401b1fd67b3f3cd070340d32ff6efd44d58f2cb4b8a91062a8983523e",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 33,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_run_progress_topics.py",
      "test_file_sha256": "2c85f4d5a5a518c34acf7ee2ec8855fa271e919eaf92fa796aa4802fdb64e775"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-4d3199b5d0",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_run_tool_media_re.py"
      ],
      "expected_nodeid_count": 31,
      "expected_nodeids_sha256": "e95aaebf98f9fcbfb172749ee7b321e468ba669fdcff6a952ee1057bc747a14f",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_run_tool_media_re.py.log",
      "output_sha256": "f9377d7dc43fc4e77f016b5130dd14b3cc9323b966761b8dc202a32c449abe79",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 31,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_run_tool_media_re.py",
      "test_file_sha256": "929dfb1a3f8db85f3c7e9a65d79665220f44a3ad96c13221eade261d7841ed75"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-9276bad59d",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_runner_fatal_adapter.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "db1f6d7d4b12ae97725649c3c3ac4ece5c860e6f9a79e4bb31c2940f1ac2b30e",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_runner_fatal_adapter.py.log",
      "output_sha256": "3f0757e9439b62915b44675c18703deb8095dfc44e346d7a86d724b0131ff452",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_runner_fatal_adapter.py",
      "test_file_sha256": "7e3004a7030a038d0cbc9930435a5e5da18529471843b74371d542fade58adbb"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-846cc01aa8",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_runner_startup_failures.py"
      ],
      "expected_nodeid_count": 10,
      "expected_nodeids_sha256": "2b20cff73c1e465fda968a2c747d6a71e3f2c9bd534034f29204daaa01ef94e6",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_runner_startup_failures.py.log",
      "output_sha256": "c96093c32d114d5a2d09a2de219a682e07a9b98dc4ec9f49f139d2b4a3600df1",
      "returncode": 1,
      "shard": 6,
      "status": "failed",
      "summary_count": 10,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_runner_startup_failures.py",
      "test_file_sha256": "d023a27e2fa8deaa46eae8d7e576216885277ebadfc81db91cf555a183c13fd5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-b719d22f85",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_running_agent_session_toggles.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "6f531b1d7c9a7dd5d69e4e66b72101b6767cbf3596938dbdfcf373d8d18d1117",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_running_agent_session_toggles.py.log",
      "output_sha256": "f8346391dae3fd31b4f603b1e1c7640f1aac6b3570b9ed041b1cde4285cbf6a5",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_running_agent_session_toggles.py",
      "test_file_sha256": "bf6f1a11bd4a125b2806df73465a769be1332c7ecdde3e36551d61282dbf6dfb"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-660a8d94d1",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_runtime_config_env_expansion.py"
      ],
      "expected_nodeid_count": 9,
      "expected_nodeids_sha256": "c25c7e28bb6632e5a0bc83d91e7cba93a9207bbad62ceb593fad884cfc0cf40b",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_runtime_config_env_expansion.py.log",
      "output_sha256": "a14914756c778ccbc89808363fcd2d5ba8027db266eee366a311024d2abd9ab4",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 9,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_runtime_config_env_expansion.py",
      "test_file_sha256": "68e94ec4a7af38793796234e9e9a957abef68e47ce64e636f1781d7d6d0e69d7"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-97cd122123",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_runtime_env_reload_config_authority.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "1e53bf2d998d4fa2eb1d3614e14919e0d9df4218f0589f9f67ee0908badc8810",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_runtime_env_reload_config_authority.py.log",
      "output_sha256": "0df10edb694f654bf407dc9c9b111bafe54533c0e80c7af33f30ce1dc7144467",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_runtime_env_reload_config_authority.py",
      "test_file_sha256": "a6651a57fefbce3bcc65bfe7e35a7e0dbb92afc4a2a337e04211dc0b53e2a059"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-3c78578f7c",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_runtime_footer.py"
      ],
      "expected_nodeid_count": 25,
      "expected_nodeids_sha256": "2960c8f4d93cbb059cc55af6a8a4edc786bddefe7671cc78991b133293d54660",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_runtime_footer.py.log",
      "output_sha256": "7f93f39dde9b3468a03ab5cb77583a6e65752e63482a4272dfee1a1f104fd0c2",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 25,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_runtime_footer.py",
      "test_file_sha256": "b6b0aead828d1b799ddef66b71148168291c7ed206587204369a2b7e5b94a338"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-9a8daedb12",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_safe_adapter_disconnect.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "924d0ba8651abc10c286e056bd747d306e295ac2bfd993ef25a26250d6ed5c56",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_safe_adapter_disconnect.py.log",
      "output_sha256": "7abac67c3cceb2084525d7ddb489e8f7971a0c333e0a75d67d8c7219a6e9627b",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_safe_adapter_disconnect.py",
      "test_file_sha256": "cbef75f9b97a776a970c343ba7afe629f0cd7d63713a3b9df18ff5abf2981917"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a066765edc",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_send_image_file.py"
      ],
      "expected_nodeid_count": 23,
      "expected_nodeids_sha256": "6766ebea59e4df1879436442be542afa3461b19bd3282367ef1b35898e1d2239",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_send_image_file.py.log",
      "output_sha256": "5554d7f19ac4af73e1c9afb2c5ffa67feff64d7fedca46c5de2ca3953b124695",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 23,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_send_image_file.py",
      "test_file_sha256": "615d0b328b16720ab2dbed24e4abbce9d6aa7c2ab5b7f5830fc420e8a06aecf7"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-fd7385643b",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_send_multiple_images.py"
      ],
      "expected_nodeid_count": 19,
      "expected_nodeids_sha256": "42e8554d2b2707b81216a7810381940006883a0c789494893d46894e55104f6e",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_send_multiple_images.py.log",
      "output_sha256": "3dc995c54fd1b08801a859bc2ea3ce1f79fbb2e3aae1e6cc0194e59db6c77cbd",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 19,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_send_multiple_images.py",
      "test_file_sha256": "ad137df37e57accbff4f6fa307edd1dac31b1115c1724d3b73724f72106e628e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a469f52eed",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_send_retry.py"
      ],
      "expected_nodeid_count": 35,
      "expected_nodeids_sha256": "786fbc4675f13148c919efcaa86b811a59ac632e22fdc8adcdcd324b2e6da6b5",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_send_retry.py.log",
      "output_sha256": "33f36199c79fbec6f31a2b395eecbdc84598026abcaef7935af2dc86b54f3ae4",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 35,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_send_retry.py",
      "test_file_sha256": "27e6a884d9641dfb0a5117bd1b937e09d91af3d9f8c30ac79abcf5ac7835a7e2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-7ab6339f20",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_send_voice_reply_notify.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "2ca1f0461de0d2d7d2d3f8da6673878160b050984121d296d95d3f8642ad2690",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_send_voice_reply_notify.py.log",
      "output_sha256": "6882715691d0fed69425bf6c539a6b17e3ada7d5aef454b0308d068b93029776",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_send_voice_reply_notify.py",
      "test_file_sha256": "fb02dc83469e6debe3ba3611a4ba9575a12b91797e7683f1064a1736183f7b41"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-9199881c5f",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session.py"
      ],
      "expected_nodeid_count": 79,
      "expected_nodeids_sha256": "0ba7ab239db0509be579c95aeb7d46c657903abda83a9fc768d42e2ee7f917c8",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_session.py.log",
      "output_sha256": "b201351df8f229adac709c33fcf28419fee8e890491ad40f397a3a003750b68e",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 79,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_session.py",
      "test_file_sha256": "4053b3a75e2733f3174f9b24506c8ea45846250786607a7eac043f8bd1564c2c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-03f218e89c",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_api.py"
      ],
      "expected_nodeid_count": 12,
      "expected_nodeids_sha256": "dab3bd6a7ec916424ba07f169bef00a4203b539db825f7e6f2bc4d8625305935",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_session_api.py.log",
      "output_sha256": "3b0912eba317a49ea87edc4633a3758250d9dc0ac10700a192d0735c1fb8349d",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 12,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_session_api.py",
      "test_file_sha256": "bf9e49e04a287e398348e41cb97c2d52acdeda5881ab30ff3935af10cd2b7933"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-1ac9149a57",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_boundary_hooks.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "8ac567cff9002d184ecf42d7e2826eae89b51362d3b7aae8b9ef653d67305566",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_session_boundary_hooks.py.log",
      "output_sha256": "c8090674707924c7f0eebf212dea797a30f173542481f59856589ec5bf009573",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_session_boundary_hooks.py",
      "test_file_sha256": "928afab33dea3a4abe85ab45411f8a02b96890c3cce8a348c29fc245d2bb4b31"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-2b8bbd955a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_boundary_security_state.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "80e917e98da54b47f17ed10f3930750018a5812baf867c1937ad23d3a7276ec2",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_session_boundary_security_state.py.log",
      "output_sha256": "2fdd72bfa913a7c69a1c45fa3eefccc74ed782774d051dbf08294d44b2058e0f",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_session_boundary_security_state.py",
      "test_file_sha256": "4f2a1f53e334b00c3d098621fa5646a648334764115e98db55c834b0cb21ed0e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-894455950b",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_dm_thread_seeding.py"
      ],
      "expected_nodeid_count": 10,
      "expected_nodeids_sha256": "cb4ab1fb82721b5c1d0d7b049bdf2f12e382e976f1369740be2d8b0d973aa7e7",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_session_dm_thread_seeding.py.log",
      "output_sha256": "6dcbf76d398f24ff70c30180db32ed1e5cd6e588dd24a8d9e0a162fde2c20529",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 10,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_session_dm_thread_seeding.py",
      "test_file_sha256": "4ce42810d11c9750b8bd98c33a4152ab20a85ca816461e1e023a1d9719efadd2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-7bc34c24f4",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_env.py"
      ],
      "expected_nodeid_count": 14,
      "expected_nodeids_sha256": "282cab44e5db6cad6b5220cd8654d8bb8a0aeb684bced91d9bacfcb75c515059",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_session_env.py.log",
      "output_sha256": "2a378adf15a55081bd7fe0e60493c7c7d7098c7637925a052ca4da08199d28e1",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 14,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_session_env.py",
      "test_file_sha256": "1e57d9c4bf9c890f534ae802bec10d7bca4bd7754545c7f40a2af1210f4cacab"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-bc48ecd20d",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_hygiene.py"
      ],
      "expected_nodeid_count": 23,
      "expected_nodeids_sha256": "a25c10acbff3f509dc94e4e3ac7c4271295a7e362643e4dceefff45a9dce6194",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_session_hygiene.py.log",
      "output_sha256": "276106d03509bc62f944c4d7c272b2a4502fafe2bd607849cc2b01900ca6ff9b",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 23,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_session_hygiene.py",
      "test_file_sha256": "e2c0ea9b013608a60bc87763fad28b6cb3014fee4d6cdaf5e704aaca8ef0ca4f"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-1edba76007",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_info.py"
      ],
      "expected_nodeid_count": 9,
      "expected_nodeids_sha256": "51176eda89fd69153f430aea017d3c44fa619d243847001ed1bf2fa1420a8d48",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_session_info.py.log",
      "output_sha256": "6e3d86c7271bacfe08a1439cf9744278d25c66c1b1fe4491b65e77f0a13ea87f",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 9,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_session_info.py",
      "test_file_sha256": "c8e0696f1708c26faddda67c5a76146480e3b4b2fbd25616c3fa767837fe98ac"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-941a19de58",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_list_allowed_sources.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "2651ffeb57bcafa3041f3afcd63ca370a4bd8e8bada9b5f296632ed1c01f74c0",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_session_list_allowed_sources.py.log",
      "output_sha256": "44178be163015033384cffd8b0f0ec02d28cb6648af3d8dbe3121b41f45ca4aa",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_session_list_allowed_sources.py",
      "test_file_sha256": "03da0317112c9a69b60d65dd53b1abf7aba0971db2ca8f4d238050cad1715e2e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-6a3c61f58f",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_model_override_routing.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "4a0ec0fae31a2e44f8c9c6cc0027c0147f2850bf878dac889edda6ff3bfc4852",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_session_model_override_routing.py.log",
      "output_sha256": "e0813bf9920927a143504c0c18a2f58a1a52c359c7ffc0354d55c20a967bb25a",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_session_model_override_routing.py",
      "test_file_sha256": "84cfe2c84b3cf1aeee4d7b41f4713172d1c5b29cde7fa7457e490969ab4d0d98"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-c70bd77ef9",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_model_reset.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "c09379fa144f7f48955a642a57524e0449afa95332162a3725c3e9c3afd2836d",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_session_model_reset.py.log",
      "output_sha256": "0df10edb694f654bf407dc9c9b111bafe54533c0e80c7af33f30ce1dc7144467",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_session_model_reset.py",
      "test_file_sha256": "126d10294a46022530f840b8ea64bb9f5b830a925b97575e413bbce124d9b603"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-0ffd43b09d",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_override_thread_recovery.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "5485ee12c8dcd3e57c41e2311b6ac39f4e0fb90f638e8a2ec5cf7188bc86f744",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_session_override_thread_recovery.py.log",
      "output_sha256": "d23041cfe2de1c1c0d15e48de6668f78ba2054f91eeccb7b8463506371c5771b",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_session_override_thread_recovery.py",
      "test_file_sha256": "7a20d9248f2ce1ae1554c9a1ae1fa8f7538ec7903f6ef8358f970556c99cdab1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-6a1329f47f",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_race_guard.py"
      ],
      "expected_nodeid_count": 19,
      "expected_nodeids_sha256": "f15b349f7fdfba5fc5675d2fa94cfbab465b0c421a7ce2779b628171171aadca",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_session_race_guard.py.log",
      "output_sha256": "4ca2dd1ae2bd0039c7086cc740a9c640a6534be22624270a8eaeff710f3a7b89",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 19,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_session_race_guard.py",
      "test_file_sha256": "dbef94a0da96c5495881d3363f1b45fe496c6c62636eeee4ad660325e1127400"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-7549d0c8d6",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_reset_notify.py"
      ],
      "expected_nodeid_count": 16,
      "expected_nodeids_sha256": "d7442f19797a78c2bdca37cd6d333e799502e1b4d630ac6651e505e859931965",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_session_reset_notify.py.log",
      "output_sha256": "74d422abff089f247c3b6c332325df27ca6c964db6f58fb8835b8d90c6f6693f",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 16,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_session_reset_notify.py",
      "test_file_sha256": "05deca8179b6fd60113438f27fbb588ea68af7b10a458b96e5e5b66d488f0ea7"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-dec39906d3",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_split_brain_11016.py"
      ],
      "expected_nodeid_count": 13,
      "expected_nodeids_sha256": "23b3ac0a5730fb5674fe9ac2b0ab1466a35bb8bacd7b9d76d533820796ae69c4",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_session_split_brain_11016.py.log",
      "output_sha256": "1d6c35dac33fc336b71c9d90682107c342bc2c89068fb9a1c848e14cd6328087",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 13,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_session_split_brain_11016.py",
      "test_file_sha256": "50867bc785d2188de08e9c417839da8effdd75a06e5eb51fafadb2a25ca5004d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-23d40d5b4d",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_state_cleanup.py"
      ],
      "expected_nodeid_count": 12,
      "expected_nodeids_sha256": "b11e1d12d0aec23bb179f62bd7971fa6149a3bd6c85a94af83f00f04a5f793c9",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_session_state_cleanup.py.log",
      "output_sha256": "25b344f582773f5dd4605b6b93321dba3bcb07224d56025ea8ff804cb3e7f66f",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 12,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_session_state_cleanup.py",
      "test_file_sha256": "a52ee8982bac76c40da5df11d53c7bbd9eaee737bc35005c881ca6c1b4b6700e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-47e4ae2693",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_session_store_prune.py"
      ],
      "expected_nodeid_count": 18,
      "expected_nodeids_sha256": "c064ce94ebad2317dc71ac6f7d6d89cbea62117e48575d059b79098592f3acd3",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_session_store_prune.py.log",
      "output_sha256": "ae596ef7445f35e38581e7f71c2fd1b93bbc5b957e488bccc29f2c07bfeedc05",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 18,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_session_store_prune.py",
      "test_file_sha256": "2bcb191b55f22729e25575af34b393831a8e7cf76cd0cd75b38e703caadba8b5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-d0e9c758d3",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_setup_feishu.py"
      ],
      "expected_nodeid_count": 14,
      "expected_nodeids_sha256": "d49463bc14ebd426078d7ad427215c5df4583c33bd64939542cf0c74ceef254a",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_setup_feishu.py.log",
      "output_sha256": "029eb1704925b65f1fdfc5dca600ddd45949eebb6cd06736ff6cd451d7a137e4",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 14,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_setup_feishu.py",
      "test_file_sha256": "bbda5e1c8a4adea2306b59861c4c0ccccf6f9f035c6a1e60f240a549e8bc28cb"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-6c6df974ca",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_shared_group_sender_prefix.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "a9ad1866b7f2306daaac8f627f930b473df6676d4a402fde96d6fa0a8956e07e",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_shared_group_sender_prefix.py.log",
      "output_sha256": "e4083fe9e4460d574f7457091b53ead8da9062ae08a9bb4ccda3fb2e698522cc",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_shared_group_sender_prefix.py",
      "test_file_sha256": "fe7cee1a11df0882d12bcdf53e71b739cef164ca029b76169915dfa5abab9b9d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-b9d3c5a1ae",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_shutdown_cache_cleanup.py"
      ],
      "expected_nodeid_count": 8,
      "expected_nodeids_sha256": "704040ea8bb78a2fa402dc71fd7eb3fd19ec4386c308e7ac62b0f31f15ed733d",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_shutdown_cache_cleanup.py.log",
      "output_sha256": "b0c9f412b556ee3924dcacc67f74319f48783237a38bc7a66b362b483760757d",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 8,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_shutdown_cache_cleanup.py",
      "test_file_sha256": "d543ff68e887a861a776db075b2787f92429d9af0b07b9bc7088dadd2850d534"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-7cd6444bc1",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_shutdown_forensics.py"
      ],
      "expected_nodeid_count": 30,
      "expected_nodeids_sha256": "2d6c8d98d0701852cafbc615b225c9163fb4bfd36debe17d101691c79e957beb",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_shutdown_forensics.py.log",
      "output_sha256": "f37897527d120ab7d851bb49462ab94e97da0c17590b4d3f006443f0e2c578c8",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 30,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_shutdown_forensics.py",
      "test_file_sha256": "365a0146eb1d098f34ffacacce2c2f3a2b19ef814ca9a3c329025d8f039cb668"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-2198241c97",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_shutdown_memory_provider_messages.py"
      ],
      "expected_nodeid_count": 7,
      "expected_nodeids_sha256": "c8dde463b2755cd645df6cb5f0c3c038256577045530374409416d09fe355734",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_shutdown_memory_provider_messages.py.log",
      "output_sha256": "f5bcda607cda790f448c808571765c9d2808e029e645e7f218db7970992db416",
      "returncode": 1,
      "shard": 5,
      "status": "failed",
      "summary_count": 7,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_shutdown_memory_provider_messages.py",
      "test_file_sha256": "095d880fa8d35fa75ae561fb35c72de011b8881744f176a998e10b96c06293d2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-2ddce287e2",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_signal.py"
      ],
      "expected_nodeid_count": 126,
      "expected_nodeids_sha256": "9577eb0a38915b9a3d4637b2e9b4d348eca0900eef666b45144cce1482a64bfb",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_signal.py.log",
      "output_sha256": "52bf4c166e853dd9ec2f45099ccd1b5fb61b562392f5654dfc93c29ef3d5d308",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 126,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_signal.py",
      "test_file_sha256": "6acafd3bbdde8f5c0aabfb4cbfd3a89f1a4041d616e94f85b87eefbb57ef28bf"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-8f0c99453a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_signal_format.py"
      ],
      "expected_nodeid_count": 54,
      "expected_nodeids_sha256": "75e541e5acfce94f68834319661fc4befa454d49baacb8557c79f3ded60d5c6c",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_signal_format.py.log",
      "output_sha256": "709b2eab23eab5800bef0750cc82effa4a1fde7a2b460e21972ffb72a8b39f9f",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 54,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_signal_format.py",
      "test_file_sha256": "a17ffcdab8d33f1b0aab47d21fa0d3135ae78ce6ea07701a34c5fb7856e22ef8"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-0ce7ab301f",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_signal_rate_limit.py"
      ],
      "expected_nodeid_count": 18,
      "expected_nodeids_sha256": "f652ca517fba46def99578588dbde88201068a68f8624f540face02286c07ecc",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_signal_rate_limit.py.log",
      "output_sha256": "750629578324cd1a852a4ef10c37b6fefb2d779d15da0bf14eee1b49db0b8fce",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 18,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_signal_rate_limit.py",
      "test_file_sha256": "502ad352bc9699aa7996b2021684856e2d1cc4ef19a3d1edcf8b2c2a717f07a5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-2ac16eb4bc",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_simplex_plugin.py"
      ],
      "expected_nodeid_count": 30,
      "expected_nodeids_sha256": "83ee4ebe0d44ac0e748a916bbc65301139e38e4a034ea453b284b0b5a931bdb2",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_simplex_plugin.py.log",
      "output_sha256": "f8ceb4127c4a1b31c3b383b210c1178eb8e9c2917dd2ce81a1c11d263d7147fc",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 30,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_simplex_plugin.py",
      "test_file_sha256": "47a29f75ee06605b4c42a4cac3860d975aea7452bd300ecd788993b59b9e7af4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-7a52712943",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_slack.py"
      ],
      "expected_nodeid_count": 196,
      "expected_nodeids_sha256": "1434419b84d0031be34f79fc65ebcdc18a7444b40b5403163d59d096f4d40281",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_slack.py.log",
      "output_sha256": "5c706bfdef08f936337d9825342860c42fb7ef81f2de014554e5eae61b2fe755",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 196,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_slack.py",
      "test_file_sha256": "99ecef8ac12d0aa174546ddcd2b0c0f1acc64a941e6e3930ab01f88e4bbfcc3a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-90c10a267a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_slack_approval_buttons.py"
      ],
      "expected_nodeid_count": 26,
      "expected_nodeids_sha256": "411dce2b45bb98e19c8bb7e8430289df4ae895eeb6c69717f59401210312559b",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_slack_approval_buttons.py.log",
      "output_sha256": "1bfa6877de53db7510803432219f4bbda955cd4d46f10c9b867c47535604759c",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 26,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_slack_approval_buttons.py",
      "test_file_sha256": "8530ef301884d6501dc09ad2549b01ddf53425cf9c0e945ca196fe69a2e08007"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-53d17e5bda",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_slack_channel_session_scope.py"
      ],
      "expected_nodeid_count": 7,
      "expected_nodeids_sha256": "34ccba63614d60595cf18701e6af52c58fe3cf9aa800348c98e3f25a7f7a31c3",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_slack_channel_session_scope.py.log",
      "output_sha256": "eb869cd15e96c438519b7e96185f0c842c6f4b2b212aa3bcc3973ea11a620db7",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 7,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_slack_channel_session_scope.py",
      "test_file_sha256": "5e2a964060e44fb34264d7dd29215046f18e97ae8dc10ac923985745756393b6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-8b22aeb501",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_slack_channel_skills.py"
      ],
      "expected_nodeid_count": 11,
      "expected_nodeids_sha256": "60c9b44b51118ecbbe6b23ff2137a0a034214ccb3d3bd77de0f13ede0333eae9",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_slack_channel_skills.py.log",
      "output_sha256": "67ff19ffbf2c26373a4743769e539ae260fa8686e8b78683aeaa8cccc40e49f2",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 11,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_slack_channel_skills.py",
      "test_file_sha256": "18f66459da0801a9b72ef6434c0383f566f874824032767472d12ab27d40c092"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-023ef6386e",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_slack_mention.py"
      ],
      "expected_nodeid_count": 55,
      "expected_nodeids_sha256": "b4ef94dfe5c42362fc89a5e1fb0b71708b186a2070ea3d86f1df23e38408fb47",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_slack_mention.py.log",
      "output_sha256": "56b594bd9275c5923ebf56310962fb09628b11e091f35925fef30cfe583327d2",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 55,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_slack_mention.py",
      "test_file_sha256": "260ab54981379e6947ca749e803c5bbfe8c0521e6d165b003857a0a95016c73b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-472f4da0ea",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_slack_plugin_action_handlers.py"
      ],
      "expected_nodeid_count": 14,
      "expected_nodeids_sha256": "d1f6220ad004110bae86c5bcec27d1f1c61ae402a7c7a694f782961e80b486a6",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_slack_plugin_action_handlers.py.log",
      "output_sha256": "f64a9ec8fa0c1bdd92e93ac6c5c01c3c12bf21c9d0d50bff48ffc5e8202041c2",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 14,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_slack_plugin_action_handlers.py",
      "test_file_sha256": "39f40401f3ed0d35bf1a824d15d869ea1b1031c373ff1813a00c267023355845"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-87f4b08557",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_slash_access.py"
      ],
      "expected_nodeid_count": 21,
      "expected_nodeids_sha256": "d3a2f26fb3d56e1655cb00a42a0c6e36b7e7ea9ddebf7851b31bfbebf88b552c",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_slash_access.py.log",
      "output_sha256": "5c6739ef20aa32e69d09691990559c2b17e0137c39b2f8f9909290077b4f5f8b",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 21,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_slash_access.py",
      "test_file_sha256": "f8935b13a55550bad871a194c574faa0c7d2db585f5371a24f8c4a28fd02b35e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-22f1824386",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_slash_access_dispatch.py"
      ],
      "expected_nodeid_count": 18,
      "expected_nodeids_sha256": "6e5f3c22a86e23a812c30afb44356d8f177ca0a33c2eb537c86dd548aa0f5f4a",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_slash_access_dispatch.py.log",
      "output_sha256": "7dde61efcd7d3490bb6601c1a368d7d2272e1cb81c07138968eb55f08d13e694",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 18,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_slash_access_dispatch.py",
      "test_file_sha256": "adcc5a6b4fcda950def965153ee03301aa043eaa8a81310d3f8809e2a78511ba"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-675628d00f",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_sms.py"
      ],
      "expected_nodeid_count": 39,
      "expected_nodeids_sha256": "19ebdf366e10df10191d5c67fa5b0c49c5edbb4e39ffec838100934cb94ed36c",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_sms.py.log",
      "output_sha256": "e684a136c5c46e6c62dd9d664eaf0c59a7ad4c02545658c45ab1cbcde0ef2ff1",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 39,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_sms.py",
      "test_file_sha256": "b535630639e35560cce43c3f79dae58b5e43e57bece245d0766329d1d8127d00"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-c539f2aadc",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_sse_agent_cancel.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "39aed227082eadcbbb3626c6a5c9e490d3c3dcfde0f2a1123d82dd5a9d723950",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_sse_agent_cancel.py.log",
      "output_sha256": "c6d88cabd45bb56945545a34b3ad0da1cbc47318e073e6e98e913c682037a2b9",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_sse_agent_cancel.py",
      "test_file_sha256": "d92f99e4b273ba924bb00d9bf03be719c7eea16817ae8fe635b4a30e83b14979"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-25d79f9c3b",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_ssl_cert_detection.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "5e22eb433daf28914af288e72451a5bbb4ff88df303715d5044d4fec610c0a64",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_ssl_cert_detection.py.log",
      "output_sha256": "c115b36d9d5e5aab28113b0fed7b050d7c81937d4704369b6afa3372628a0c3e",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_ssl_cert_detection.py",
      "test_file_sha256": "aa8d75eaba22f4ea31d2313e2ffe2bb7f89da4d0e5d3ce11fdf648e707984066"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-242eabeae1",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_ssl_certs.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "559f3001186e104848721f6d1c9efaecf546f5c4a4dcf6845676ca382521687d",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_ssl_certs.py.log",
      "output_sha256": "e6cbc4c1da572f1c913992dec2cde873e23df72b0e423a19d110af3ee902563c",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_ssl_certs.py",
      "test_file_sha256": "1cc0b3b77926f3d70a825da315fb0ec04914082545dbbbd31472309adc4f6c5e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a91bcf24fe",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_status.py"
      ],
      "expected_nodeid_count": 59,
      "expected_nodeids_sha256": "a28b232b19e94116f37df1f1738e8099aa31a72dce1a1e0ee2d5b78981f77a08",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_status.py.log",
      "output_sha256": "b791577e3ca79ec35471a7f4c6c0680d1b601a615c91cdb5d48af957b0999bbd",
      "returncode": 1,
      "shard": 1,
      "status": "failed",
      "summary_count": 59,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_status.py",
      "test_file_sha256": "ed4f2769d8a2798d79cd7d7e50ea4699f83f93375c74c17f6d40da0b3bd52d7e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-e3db5e668f",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_status_command.py"
      ],
      "expected_nodeid_count": 17,
      "expected_nodeids_sha256": "be43a4b1bdd5cf5d9f9e517f2212fdbd231b7cde1ee7231d4238a23230535273",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_status_command.py.log",
      "output_sha256": "7c87ff231193266922c0097127c7e08f9d169966f2b14c91da04881335c7ffec",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 17,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_status_command.py",
      "test_file_sha256": "af35eeabdf547e134bbd5f3553f8e963eebb6cbb14af994ef06c14fdae67684b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-02e049c078",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_steer_command.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "491f99a7de9d7311ca029067a1e58ca4113238f9835c05c71fd0968a35727a48",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_steer_command.py.log",
      "output_sha256": "b06acb3f9b38335db0209c5a6ed8e65ca702012d5080b4bebf4eced263667382",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_steer_command.py",
      "test_file_sha256": "3ec7d39694ab8214b549e82e443abfbde30a521e8f7fb759d2e2a7351e234a4a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-7c0ada6921",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_step_callback_compat.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "7b63e1eab5d3f72773ffdb4a20d1f5c86fedfcdd269cadc6702953b3852e42c7",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_step_callback_compat.py.log",
      "output_sha256": "9088ab3778ca9f444a1802d43efefb74d45fb5756d7cd8ee4418bf76df25004e",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_step_callback_compat.py",
      "test_file_sha256": "f9dba4e27472a237dc7d48def1b6ed8851fa99dc8855297355dff29816f00041"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-d5e38d1cb2",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_sticker_cache.py"
      ],
      "expected_nodeid_count": 17,
      "expected_nodeids_sha256": "5f52d09fb20a69ba6c613500fdd4dacfe34f0028b0d1382ea2bb5544c1acecd6",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_sticker_cache.py.log",
      "output_sha256": "8bd5d922ccb5897c6f2def8cc4af1333ef4e9d545d278c2d3b2ed97cdec2a9df",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 17,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_sticker_cache.py",
      "test_file_sha256": "c4b24feb399c7c0475b434caf38e5d14a58add88b5b187d30c4f6c207f77e0a4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-aee3b40bd7",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_stop_thread_sibling.py"
      ],
      "expected_nodeid_count": 7,
      "expected_nodeids_sha256": "b65b728a433bef113c11930492f04fd796be669c1f6e70cc2c70eb53fea0b838",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_stop_thread_sibling.py.log",
      "output_sha256": "3b1c284313edd5ff13ac9245822f8e0e4750778ea8e7d8c0189bf4d979c7433a",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 7,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_stop_thread_sibling.py",
      "test_file_sha256": "ea11f0a95d131cf3b95c894b133160f45449c33ccdfefb1678cc34a791741494"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-e2bdf1e4f7",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_stream_consumer.py"
      ],
      "expected_nodeid_count": 93,
      "expected_nodeids_sha256": "966bfa443226f5385ed01d19e7b1b814e2a1ef025fa7fdf9f75c75734b780bba",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_stream_consumer.py.log",
      "output_sha256": "62777f30c6535eb7efa530e6e17d4da0a442625a36cbf9da0951fe0215b8950d",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 93,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_stream_consumer.py",
      "test_file_sha256": "6d182bbce20610b9d7f76665bf7a4de06a3ba6e5ed93a785d3851630849b2751"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-61dbc32178",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_stream_consumer_draft.py"
      ],
      "expected_nodeid_count": 18,
      "expected_nodeids_sha256": "b29bb40e8c877cc18f6d754a9514b4c1c7624205638fcaf6fcbb0d2d4a375235",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_stream_consumer_draft.py.log",
      "output_sha256": "8a11686837374de6d1b097b26d939ff46925c3f4bcb098f39e5885ca6cbc0939",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 18,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_stream_consumer_draft.py",
      "test_file_sha256": "9426fee30901b3d6f0fbe9df3c7cdaea6b89e737a79d5e0e132b90048b23f9df"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-3e3d41de6a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_stream_consumer_fresh_final.py"
      ],
      "expected_nodeid_count": 28,
      "expected_nodeids_sha256": "73051c2b2e698652760b0697470a32267c6657bc0127c2c18d524b367c0ff181",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_stream_consumer_fresh_final.py.log",
      "output_sha256": "209a0c1506071a2aa2b7dca0e4761ed2c19743aa59271fb7a386199abf9ea6fa",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 28,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_stream_consumer_fresh_final.py",
      "test_file_sha256": "dde3382631053d6bd666cd8bcc4f1c5a797cb92f6304e78fb536671337cc0051"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-f61b90cafd",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_stream_consumer_thread_routing.py"
      ],
      "expected_nodeid_count": 9,
      "expected_nodeids_sha256": "b687f4bb638dd34101293cceeaff67f4cfe47a681808138b4aa2668f6756cd8d",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_stream_consumer_thread_routing.py.log",
      "output_sha256": "9324d7f9c3371c89ada765dc1a020c1a71c806c73430afb70866285c94b13b80",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 9,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_stream_consumer_thread_routing.py",
      "test_file_sha256": "702a871fad238c69dd6e4d939f3e214999f0541a96ef51e17e36e8d4cf00e157"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a720d67063",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_stream_events.py"
      ],
      "expected_nodeid_count": 13,
      "expected_nodeids_sha256": "4a956d4627d32ba4b527b3843671050500b10e818b62f2b3719cc10746169570",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_stream_events.py.log",
      "output_sha256": "661cc27a2db83afc41ffb9cb1dfa7f808a3742eaaa8ed5e185534ce62c7aa5eb",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 13,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_stream_events.py",
      "test_file_sha256": "3ce4f13850aa242a6262a42587205f07f5de50c687136c496ef70c072ce9aff9"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-beeac12575",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_stt_config.py"
      ],
      "expected_nodeid_count": 7,
      "expected_nodeids_sha256": "bbf4c20166c31739025e1ed7d4cbdcb1132daa16284c69578828ad2277f775d2",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_stt_config.py.log",
      "output_sha256": "7073c3b9e5401c688ae183783a52f2e9ccbbabcf7106cfb838a76719d669f400",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 7,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_stt_config.py",
      "test_file_sha256": "07e1a7a0f0a13b32c43d03950b301b2ef3f6e39852b05a65d5e1535ab3fb64f0"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-fb89d3aacf",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_stuck_loop.py"
      ],
      "expected_nodeid_count": 9,
      "expected_nodeids_sha256": "2a5daf5ecd2cdb6402bd0ffb10e6e1278e5ea092e2665b6c5aead1bf2284cc8e",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_stuck_loop.py.log",
      "output_sha256": "f66936f8cda678dc78b5e05ba83a9d75d29c8a0a35c23b3e0584fef7e835eaf1",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 9,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_stuck_loop.py",
      "test_file_sha256": "412981b4e6e829705c5748caaeab251da718590d900664a095b826950b8fa201"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-345d857cda",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_subagent_protection_30170.py"
      ],
      "expected_nodeid_count": 17,
      "expected_nodeids_sha256": "d181fe9ff4125b4559e29fe43c0823ad10a7be93ff3198e33b3d7c51ee239469",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_subagent_protection_30170.py.log",
      "output_sha256": "f0c78a13935758cefbf20135044b02538d372b09384ef57fc33358b4d1c87ab1",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 17,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_subagent_protection_30170.py",
      "test_file_sha256": "07b51ea68056925d17f0a6fefa4564b480d4104b9f1b7b498e0b371672a835a8"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-e8eec4b921",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_teams.py"
      ],
      "expected_nodeid_count": 57,
      "expected_nodeids_sha256": "2ba9516131c3dc47fa88e313dcea56844fe96d409506cfd812d9ae300afaa185",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_teams.py.log",
      "output_sha256": "c0a6e5dfa05bac924a09bfb8a91e52ecff2f671c429dba6b07587c501e18b691",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 57,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_teams.py",
      "test_file_sha256": "e2f9a72112963ca0cd9e50feb27380e114c32ab548d361a569d960b0fbc3d795"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-829a6d4d3a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_teams_pipeline_runtime_wiring.py"
      ],
      "expected_nodeid_count": 7,
      "expected_nodeids_sha256": "2cc8e12a271de83a74ce3fc84ec589b0c7d0aa0c62f77f6c359f05752522934d",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_teams_pipeline_runtime_wiring.py.log",
      "output_sha256": "39fb80446871d21dffd0fb45c7ab91991bf2807f361746bf7144187719152d0a",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 7,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_teams_pipeline_runtime_wiring.py",
      "test_file_sha256": "4e3a477f609b27a20a4df31e319554fd4de40842d3a6f7a06dc897efa9538e2d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-bac866c10f",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_approval_buttons.py"
      ],
      "expected_nodeid_count": 20,
      "expected_nodeids_sha256": "3bcdd330c243395421199ccfcf8247d96b7523f6f229f9d06cf9ad7811af204b",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_telegram_approval_buttons.py.log",
      "output_sha256": "880710e2fb92201f33f3e7737bd839c46c40d1a56aba58ffd6b9777d6b31b9e3",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 20,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_approval_buttons.py",
      "test_file_sha256": "358795aaa69d9cd615bf666389bd1d40e33cd70d4341d387953c03cd1a683e8f"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-5edabef9d6",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_audio_vs_voice.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "3a7dc987ffdd9acb89c57b8c8f2024f351c6b2039d1d83f20021bb23de9e4479",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_telegram_audio_vs_voice.py.log",
      "output_sha256": "f45f868d8aa06b206a57b1222c20fe0f56111900750d0ced0adc003a189e65c2",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_audio_vs_voice.py",
      "test_file_sha256": "5d5e5751ffd8a2a81a011638f9c0deec5a8ea2a5475d7514f655eb26d702d4f1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-804d48bae6",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_callback_auth_fail_closed.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "cb9171a595deea45372ffbe89c49bef8e6e702583e6f4c27fa257b246d0bf349",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_telegram_callback_auth_fail_closed.py.log",
      "output_sha256": "255c0213c074e314654fd78a93a5b4abb214e731712c314325e759ea43909dd4",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_callback_auth_fail_closed.py",
      "test_file_sha256": "b868da94d4fb76d088e9a731529cc3f851b2c527c20a7f16eb058e098f18d019"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-91adea5afd",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_caption_merge.py"
      ],
      "expected_nodeid_count": 13,
      "expected_nodeids_sha256": "0b5d85d953a1ff1002d8e27ba3464f6ac07fdff4a0235ad64ce2c0eff3e75d11",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_telegram_caption_merge.py.log",
      "output_sha256": "253171bb3f2a4faff9fe92722ee89bcbf90acf42c963e26bb549152758c26ffb",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 13,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_caption_merge.py",
      "test_file_sha256": "4e0931f7b34806784f2f4e3f12faac5484ff5a396ccf5ccda21ce56a2e5a9576"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-47c1a47fb9",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_channel_posts.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "d3e9e9518d21276175ea63fd81320591cdcc2509e57bfef4d9133de339f8ee0b",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_telegram_channel_posts.py.log",
      "output_sha256": "0bdf34b77f79a4964ab5c71c6d8656b7bb85927860db710b57cdf8a0e042e850",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_channel_posts.py",
      "test_file_sha256": "03220b0c8199e84a03faadc4ca0865a71e6fd617b5ad0932a071a6ed99c918c6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-f6d1e1cd4b",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_clarify_buttons.py"
      ],
      "expected_nodeid_count": 12,
      "expected_nodeids_sha256": "4acec3bfcdcbcf8cf3413d62ef10c847495647c8ccdf799b812feabb8030a39e",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_telegram_clarify_buttons.py.log",
      "output_sha256": "1a16055668fd62390adc49ab6fd780dd48a77f7a42d9a56968a2f236f5a73389",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 12,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_clarify_buttons.py",
      "test_file_sha256": "3b5b9210426f42e0ae646d59cd6805652f3c3c1a741f5c312d4d2b4213ca5be6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-b8a0dd4d5a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_conflict.py"
      ],
      "expected_nodeid_count": 7,
      "expected_nodeids_sha256": "6175a45e2d00169fab0892bb9c941613a3c1b074356f65af7be0e820c4da85d9",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_telegram_conflict.py.log",
      "output_sha256": "6312d40fc52fa24dd303fe6b1629444605198d6b6f1a7ca3b93014654caaffbc",
      "returncode": 1,
      "shard": 11,
      "status": "failed",
      "summary_count": 7,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_conflict.py",
      "test_file_sha256": "3d41a2d15714e755af80c1b6236752b414d9d9838a05246b92eeef2b69c9687c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-31fc759b1d",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_customer_bootstrap_invite_ttl.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "9bfdc9832d3b854a450903f4923450a778d92ab34b54908349bcd03ec4a7aa3e",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_telegram_customer_bootstrap_invite_ttl.py.log",
      "output_sha256": "68fb1d1b825a7069f126336d006d1dd78e5e0ac952904651631cd13f7c812100",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_customer_bootstrap_invite_ttl.py",
      "test_file_sha256": "a888a9ae47676a8f01adfb9eedf8fd2209f52c3d85f55dfce35f5f93d82cc165"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a9d6e74318",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_documents.py"
      ],
      "expected_nodeid_count": 41,
      "expected_nodeids_sha256": "dccf179c9f314f5772618ca8d564b005f0201baa5c066ed3fd5399dd12222841",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_telegram_documents.py.log",
      "output_sha256": "018d8f98c136cd1ee5e953fdc56eb36a6202f43a1b86ff16cad03f7f2f080926",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 41,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_documents.py",
      "test_file_sha256": "e946681b7ccf0389f45789be9cea719ee2b55794cf75dc1636ca5cfd25ae8908"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-207acdd49b",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_format.py"
      ],
      "expected_nodeid_count": 101,
      "expected_nodeids_sha256": "450f2fa0273a2272c5b45fce82776b133a56054bd05d83f65c2132f5553d8434",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_telegram_format.py.log",
      "output_sha256": "779802f2f4222b53737e6f6ab6bedbd36e143e2aea5124fe108a8865ce8b1a16",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 101,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_format.py",
      "test_file_sha256": "90f50fdd92dbfef0344f70c617f2e1fe0571d427d343a3df039f72c4ac6864c4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-96fc322efd",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_forum_commands.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "1f5b4084a671ebf3235fae4b83d9269a8c0bfdfc0d2cd45b26895cdba742b655",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_telegram_forum_commands.py.log",
      "output_sha256": "9a4cb81656c059b52b1c267a178efddb093363a90d9f1a7b2b9e666306763811",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_forum_commands.py",
      "test_file_sha256": "bb838f5deaff0350624807db13b257d259db83389beebbc8d3d52b725b50505a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-d5841ae8c6",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_group_gating.py"
      ],
      "expected_nodeid_count": 85,
      "expected_nodeids_sha256": "a13bf66741f7122cf4b0ab7b0758586c007b787cb678fb935c83496f54b9ba40",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_telegram_group_gating.py.log",
      "output_sha256": "0579dc210ae78d86b5f7588426eb3ae6cadcef227cf89f8076ccea24db012397",
      "returncode": 1,
      "shard": 7,
      "status": "failed",
      "summary_count": 85,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_group_gating.py",
      "test_file_sha256": "9c70fef3731225e2a55bfb9456b87be215a43d1dd5f8149c4954d4c4c0e9810b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a976997032",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_max_doc_bytes.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "134ee8fc30bd4359db44b8c1580ff163e7b0f1dc51caeea94934b77137722d49",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_telegram_max_doc_bytes.py.log",
      "output_sha256": "d41f1b2f43568ae582743ad24e21d38598ab64883e1813307e27cae058c15b57",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_max_doc_bytes.py",
      "test_file_sha256": "9cfaefd22981e15bb9e03affb254f4796f4f4af14bdb8f7ed7e987a72da4edbc"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a7cda72a84",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_mention_boundaries.py"
      ],
      "expected_nodeid_count": 19,
      "expected_nodeids_sha256": "9d4b3fc991b07de90762255151739906f15d2c6c41a5cb2a18d4a0b88bd4afd0",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_telegram_mention_boundaries.py.log",
      "output_sha256": "fae0f120c0eb0586be551d5a26f426ce69d516ccf497eff8cec792f3116c3019",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 19,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_mention_boundaries.py",
      "test_file_sha256": "5251e7b7ecd7db44d58933d6344073215101f100f8207e16ab08950bb607c08c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-2a735cdbed",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_model_picker.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "9d42e72d21ab861c86dbc8a5134f93f8d4e3be8ac42aee34b26d220a83ca4cb4",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_telegram_model_picker.py.log",
      "output_sha256": "c03fe0a0403c1e45058d772d501caa7a6a753a7f1ef3014ababc87067ee64a55",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_model_picker.py",
      "test_file_sha256": "4466ced9cc882c81857fdaddad6e53a1fdca8b296f13d71aaa2c48b4402e8d5d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-b3b1e2d78e",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_network.py"
      ],
      "expected_nodeid_count": 46,
      "expected_nodeids_sha256": "2d95b52deae79d5d4d17a53b624f750573f9cf1389b3b046eadd8b3eaa18c09b",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_telegram_network.py.log",
      "output_sha256": "126459de56bf44e34d6b9464d379a929bd888d5abe56a36e6e479d97bb80d9f4",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 46,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_network.py",
      "test_file_sha256": "91a3dd9e1a9ecf840119d5213ba90749e6651175449c7ab8a6e1ed821445d6a4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-9d3b670233",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_network_reconnect.py"
      ],
      "expected_nodeid_count": 15,
      "expected_nodeids_sha256": "3c14a85ea9507c72ba908c18ac42cf0b05ee406505282bcda64028967425b969",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_telegram_network_reconnect.py.log",
      "output_sha256": "16a5108f56b1eda073e0ff5901165f163a12038a8bb33ae42e05fd58ef89131b",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 15,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_network_reconnect.py",
      "test_file_sha256": "62ed4f9ebfd41c038b483c8503acc971502bc6dcd60bf4c9e264d790a51d1055"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-3556e08381",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_noise_filter.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "72c6a1c64881f20f3a2b3777d68fb26999b1ba6f0c7e0fc3a6d38b4ba1494592",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_telegram_noise_filter.py.log",
      "output_sha256": "e47c2b4a07710a12b6743639e2c35f4a5824af3a30c584242088525bc541c563",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_noise_filter.py",
      "test_file_sha256": "19b4c87bb94e8c441c592f4bbd7329abf3a72882d34f1a6b3c3b3f4a91a611aa"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-d350957325",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_operator_notification_recovery.py"
      ],
      "expected_nodeid_count": 14,
      "expected_nodeids_sha256": "d5c066ba31b65e3812925dbae57162920757f85aa3c0d3e9d5cc05c5a551105a",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_telegram_operator_notification_recovery.py.log",
      "output_sha256": "531dc712a154e51d99bfd41617c24d35a883bae21c1ebb5cb35b1460f1f1b255",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 14,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_operator_notification_recovery.py",
      "test_file_sha256": "d68c0bccc29d86fcec0d9c48a9d1b91ddaf5f87a977771af681e2b5ed689a48e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-2654f09ae1",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_overflow_partial.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "b99e9a36a1094807156e10e41c240c310cea5dbbacdcd4b0c242c1655ca2eead",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_telegram_overflow_partial.py.log",
      "output_sha256": "87a60d5f0e877f12a64ce616288d296d98c12639c9d5ed55dc65a5ecd1c118d6",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_overflow_partial.py",
      "test_file_sha256": "9ae358654ed570403780a538dbf380e3947bb2a6fb5413520d06f6f49e2d3050"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-968982dca2",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_photo_interrupts.py"
      ],
      "expected_nodeid_count": 1,
      "expected_nodeids_sha256": "fc4fdf92a3664410401334a31dc9743fe5508eaee2080f1206db535239d3cada",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_telegram_photo_interrupts.py.log",
      "output_sha256": "41c3b06b1f0237013bf2a2d9555cfc394501d11435eed1ea4fe0a018aef42c2e",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 1,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_photo_interrupts.py",
      "test_file_sha256": "869836a33e405d5b5d111fd9a41a2099945e159ab465d9d3a3e72d4210a16f8e"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-ebadf16b42",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_physique_checkin.py"
      ],
      "expected_nodeid_count": 90,
      "expected_nodeids_sha256": "c75c512af4675ea0feb6b32a498e2b9279d6b3c65513746518cbbdb2a6042032",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_telegram_physique_checkin.py.log",
      "output_sha256": "a067eebd22b3143678e4d1e512dd8152302e56d335f194645ac4523d947cf6a5",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 90,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_physique_checkin.py",
      "test_file_sha256": "9cce639f96437bffb3f599dc1817bc4255cd87267e5bbecf539d2ceaa1ec2297"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-2eee89154a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_progress_edit_transient.py"
      ],
      "expected_nodeid_count": 22,
      "expected_nodeids_sha256": "3d8ee02e7f8bc69f746eb1790b141b151fb1d1cd94b735ced1f0cc4cf53870e4",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_telegram_progress_edit_transient.py.log",
      "output_sha256": "2a557b47d769357cf9d0d6738a8b46d8556877a31a6198701f4959182bb4ec93",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 22,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_progress_edit_transient.py",
      "test_file_sha256": "b1732a19137d98b04296ff81fefbc4bf63016f88d818f5b05301f2005a9f5559"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-225bb5b942",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_reactions.py"
      ],
      "expected_nodeid_count": 21,
      "expected_nodeids_sha256": "37dad06d81089c2a534a78d18b2b4180b8f4ffec1055f7a046857106d7e8d1d5",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_telegram_reactions.py.log",
      "output_sha256": "3a2162d2d9fe978768269bd9417dedb42db99980a582bf2f7a395f16c4f559e4",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 21,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_reactions.py",
      "test_file_sha256": "e9ee37c721c7801e78435989456902d1fde125e349f521deeff5ca2bff9013e4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-03ec1fe249",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_reply_mode.py"
      ],
      "expected_nodeid_count": 40,
      "expected_nodeids_sha256": "8f7e5399bbdc121900a0d8715d970f6b0245701a37dd22c18beb31fc1fb0f10a",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_telegram_reply_mode.py.log",
      "output_sha256": "188467207e072725eb93a9ea00a2e40ad66490e3ba5ed4089555c2bbf4692bad",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 40,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_reply_mode.py",
      "test_file_sha256": "20f9f6fb62a1cdf9ce86eb959876246f3a7d8c5a88a9cfd20eb7da744db6d435"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-cac7830d53",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_reply_quote.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "fcd1332b9945fc42024e10ae7066c5db0b64bb9962cb6d609f4eff519e2faa60",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_telegram_reply_quote.py.log",
      "output_sha256": "5c0779280f223cab31b4a7314869d2128df35c57e56fe7ef54777ad6f0d0521e",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_reply_quote.py",
      "test_file_sha256": "a60a608303d0813dafb0d2f50af430c3cf3fb7b436c90d592da80475c1da4c08"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-7d8d2cfed7",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_rich_messages.py"
      ],
      "expected_nodeid_count": 55,
      "expected_nodeids_sha256": "b10092abe3f4bdd0edcc25e343361a52c66f06e6bd6d7ba75bfec704d99b8c36",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_telegram_rich_messages.py.log",
      "output_sha256": "4fd999411e24a4a00dd7be52196c364e83c5ec21f1ed51cd2e2c4d323cf5f706",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 55,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_rich_messages.py",
      "test_file_sha256": "6d8189066659f5a49b2a94b956d7ea6aa274b5508e54532ba5bfdd7eebfe43f6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-eab361336e",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_send_draft_format.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "75eeec348925dec5c378bfa065e5427df336e5ec4b99e6bba047641d1c654c4a",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_telegram_send_draft_format.py.log",
      "output_sha256": "56677c83c96dcc42858f25d21eaa2775f5aee4c3ac2fb052b52d5ae8c36e3c50",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_send_draft_format.py",
      "test_file_sha256": "1ea6a7da3ee262fab284ee67d979cc7b83c32325989e640d2af33810cbea9fc8"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a049cabf3a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_send_path_health.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "deb6d79660a57f180a1515ee7fc512e9b0e8f7d90b4226de75783c8b9f7207b9",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_telegram_send_path_health.py.log",
      "output_sha256": "809f69ea8f13f349e0e1c661a881911f32d414e1838c2a39a54d69318e3cfdc5",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_send_path_health.py",
      "test_file_sha256": "0beb03198e832e0104e5ecd19646f44ec3224c474f6da64861fc7a20b37c3bc0"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-66e27b9cad",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_slash_confirm.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "3da6f5f479e243a6cd01a0a6d823a12df9189e58e1d75929db272fad7a24d6a0",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_telegram_slash_confirm.py.log",
      "output_sha256": "56677c83c96dcc42858f25d21eaa2775f5aee4c3ac2fb052b52d5ae8c36e3c50",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_slash_confirm.py",
      "test_file_sha256": "66f6492e9263471b2a930424e6ce956c68531fc01bc32010a7a03256f663d981"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-3236b881a3",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_status_indicator.py"
      ],
      "expected_nodeid_count": 9,
      "expected_nodeids_sha256": "c943516340c5f59ff977b6b8d01ac51b85e8accd53a7f4bf683f7400b4169638",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_telegram_status_indicator.py.log",
      "output_sha256": "049d740807699b4e290189270656a88dd063fd71c15ac1b92d8b4f3bbfa8de46",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 9,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_status_indicator.py",
      "test_file_sha256": "259e73c2d237fc0e9756e7afcf0f01a8450c943cc9c26a0715bd95fefdf14267"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-49bad413d6",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_status_update.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "0c5c03a28d2e399ee63ebbbe22c083db8278ef2beb3880ae1abf726f7d7089f6",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_telegram_status_update.py.log",
      "output_sha256": "4de1c8d217bfa757141707a3ea7b8ef4c43a5bb24de974e80b5c717b2e4e10b4",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_status_update.py",
      "test_file_sha256": "e9de210acee49522a967adf96f8d815c74622b5f3cf8e65f09946063fa2985fb"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-fd479552de",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_text_batch_perf.py"
      ],
      "expected_nodeid_count": 12,
      "expected_nodeids_sha256": "d69651e14f086f51e05aadf5958f88da820eda025bc6865f0fac3d3aaf20ace8",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_telegram_text_batch_perf.py.log",
      "output_sha256": "4fec7220c3e0c678e8314c20ccd3fdd80d2359bf71f30d39a9c1afff3197ef31",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 12,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_text_batch_perf.py",
      "test_file_sha256": "1d8e6f6a0d6321795b7eb8a01e0960d6d3715839459ed8d3faff635f9e0cbf15"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-e047c3b18d",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_text_batching.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "26985b45fab8adb19ecef1beeceb8c2732935810ea47c90641040f320536c741",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_telegram_text_batching.py.log",
      "output_sha256": "7e3ac74221d1b2f996aaaba6bd6dd00e1ec499a0feac6f1768f726a8c9247489",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_text_batching.py",
      "test_file_sha256": "4f37237345b6e4cf2db81b62c01d58867f1c0ff53f7775504d42cd04fb4567d5"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-91542813b6",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_thread_fallback.py"
      ],
      "expected_nodeid_count": 46,
      "expected_nodeids_sha256": "b3867b1d7e05e53e9b32a1af0955a7c5af2bb0ef23bc54d38c559e9f9b899330",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_telegram_thread_fallback.py.log",
      "output_sha256": "50c0dc8a9956e30c0985950c8c41601d3ce80b6dace7314e58e22d850de9213f",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 46,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_thread_fallback.py",
      "test_file_sha256": "2de2ef411c7d01dc45618c5124bcc10c1246fa28eb9e43352cced02d9e0ce2ba"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-d4f3acafe6",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_topic_mode.py"
      ],
      "expected_nodeid_count": 44,
      "expected_nodeids_sha256": "3948275622406c38d8bc50b0e665dd6b46e278e078ef764c5c7b0fa94deaa6ca",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_telegram_topic_mode.py.log",
      "output_sha256": "7f60e16f395045269926d3f97fb6f60919860708f2193d6cdae763bbb45a819e",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 44,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_topic_mode.py",
      "test_file_sha256": "7547917fffccdb04ae6bfafc331a501bd4095e39f93743049292c4ba3fafa7d3"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-530637eb82",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_voice_v0_regressions.py"
      ],
      "expected_nodeid_count": 2,
      "expected_nodeids_sha256": "6edb8036c05a53032e9f355f7e119604d897b621e5053d08b55ef0e59a4afae3",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_telegram_voice_v0_regressions.py.log",
      "output_sha256": "d9949c0a34401129242110be47e03b38d10c3d7dec93dc6d96be285b42d058b8",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 2,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_voice_v0_regressions.py",
      "test_file_sha256": "927e4056a843bb90f5783d688d142da97e07d0766df8582fc42e791f25604982"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-cec4da5f74",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_telegram_webhook_secret.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "08627d57b9623db7f4feeab1db0b48d7cb3e3c0009f1a2817519edcab204094b",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_telegram_webhook_secret.py.log",
      "output_sha256": "625cd9db075f0d063982baf4c6b8144844ffe79aa412f50047a80fc4dcddb921",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_telegram_webhook_secret.py",
      "test_file_sha256": "7ab08665f0ff499993d26a1805e73ec871be3fad808095e37f2c975c9b5e2f56"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-79c03b193b",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_text_batching.py"
      ],
      "expected_nodeid_count": 23,
      "expected_nodeids_sha256": "e61cc164ea49a83c870a5a44772fbe6ad30fea0c7144352c7a78d8a67e21e687",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_text_batching.py.log",
      "output_sha256": "5674c349c6a6ca1ec55474aef532a7aeb4efafe160a06957a0b4c8983370ebce",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 23,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_text_batching.py",
      "test_file_sha256": "0ec963929fef80da887c7f130d8b59a4c5e766fd34c86916e48635478c50eae3"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-8ece8af27b",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_title_command.py"
      ],
      "expected_nodeid_count": 16,
      "expected_nodeids_sha256": "825207c8fc3c16fa2f3a46821aeed06b9cb2faca49e759cec09978259f857fbc",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_title_command.py.log",
      "output_sha256": "2250d88178b1ca437e6bd98d91c406390ad69cd7b44f8bdfa94643094cd4c7bb",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 16,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_title_command.py",
      "test_file_sha256": "9a70b65ea286ce4af5322293f4651260c8940c6e16f4c303ef59cf4518cf627c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-256ac9eaff",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_tool_response_drop_recovery.py"
      ],
      "expected_nodeid_count": 8,
      "expected_nodeids_sha256": "1d371091796165f4d5fb77ea9a859d848327c95868e543eaac985baaa36d6611",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_tool_response_drop_recovery.py.log",
      "output_sha256": "f4cda9e14392d1b54ff71b5db7c69b85265cff308f9065e46be91a6e96c168dc",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 8,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_tool_response_drop_recovery.py",
      "test_file_sha256": "e997a869bf5f1ccfaa034f9ed1c5e5ec86b07232ddc2c7498e87b9dda01fccae"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-53c6cbafa4",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_transcript_offset.py"
      ],
      "expected_nodeid_count": 8,
      "expected_nodeids_sha256": "825ff26141349952f6dd873dba97cce7d7217530ad9192bbacdc2b41a74c98da",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_transcript_offset.py.log",
      "output_sha256": "180e14ad1f49c53e22c753c2e80dd29c093a8cb716aa95bde25a73350f954214",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 8,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_transcript_offset.py",
      "test_file_sha256": "3e21ebcf86e1de301702cb93128a5ec8331eb45bf39c31e65631ee2264b92b30"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-9185de18dd",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_tts_media_routing.py"
      ],
      "expected_nodeid_count": 7,
      "expected_nodeids_sha256": "20cdd6f028a3bfc36c304b1303a66e28558980a0e228568c3daaa403116c6df4",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_tts_media_routing.py.log",
      "output_sha256": "3d368ba43f0aad60365b9ab3dacfcdcd223774618d864a5e1377e1dd6be19bc8",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 7,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_tts_media_routing.py",
      "test_file_sha256": "c5cdd5fbcd87876e2b437ae642b02a574e70956d07d9d0599566ae1b698d96fd"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-6c1ce3a750",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_unauthorized_dm_behavior.py"
      ],
      "expected_nodeid_count": 33,
      "expected_nodeids_sha256": "93090eaa5e4be003e2703edd7e976c243a9a3705486332885b14c0155ab262df",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_unauthorized_dm_behavior.py.log",
      "output_sha256": "1c242b7cc0a6913a9574e86031ac6bac86df145b2bd0c63b3758e7038b2591fb",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 33,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_unauthorized_dm_behavior.py",
      "test_file_sha256": "07827e4d3165f5f121fae450a1307590165787f26341a89e25c7ff46bbc9a41a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a685c6a82f",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_unavailable_skill_hint.py"
      ],
      "expected_nodeid_count": 5,
      "expected_nodeids_sha256": "44f6e381171e3fc864ea86e5531d4de2a7a680196543884ef8c2424b41d8b8b7",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_unavailable_skill_hint.py.log",
      "output_sha256": "0b16045a038d5ce1c57b747261955cb9bcd10da37496542a2a29394d18426c6b",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 5,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_unavailable_skill_hint.py",
      "test_file_sha256": "bea08fba96c151f423ca012dac7cdfd099fa15ea4adc1ece4e0ee3810e9cb336"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-ca1be4ab8a",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_undo_rewind_session.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "203391a3791050e65b4bdfd41abf9035cef1a85653e766dfe035156a3b7205c7",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/07-test_undo_rewind_session.py.log",
      "output_sha256": "aa779ab29c79464be52ac99280231538603b6da668a0df6198c317b8cd352bc7",
      "returncode": 0,
      "shard": 7,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_undo_rewind_session.py",
      "test_file_sha256": "99e5228152965cd0306038233243801d01574d9d52d51cf1fcdf9a2d2fa238c7"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-ea838bc61e",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_unknown_command.py"
      ],
      "expected_nodeid_count": 11,
      "expected_nodeids_sha256": "ea829984b81b243f2ab0746bb30827b4ded1c02ed56904fb2513852457715798",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/01-test_unknown_command.py.log",
      "output_sha256": "6883e8fae84c1924e51cc7f2b151ce8b0349abf1f82b268ce34c0609541202e7",
      "returncode": 0,
      "shard": 1,
      "status": "passed",
      "summary_count": 11,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_unknown_command.py",
      "test_file_sha256": "40cc61fc9d2bb303b4186bd29ab1eb8e73a7ca1ddeef95f3d4b1e92718e9cb5c"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-3f28b8e81f",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_update_command.py"
      ],
      "expected_nodeid_count": 35,
      "expected_nodeids_sha256": "0e9b2718bfb2ac959587dd8316b8b1025debaaf3656431ad1f14bdca55c05dd0",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_update_command.py.log",
      "output_sha256": "c0264c2b54efb2e488b5e104ae9a117313270605414d32ee3b37923758827c93",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 35,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_update_command.py",
      "test_file_sha256": "c56203a832b078deba8caed58e7e1e5c61b71894a178ab7a3dd74429a5144626"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-ccc8d18d83",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_update_streaming.py"
      ],
      "expected_nodeid_count": 21,
      "expected_nodeids_sha256": "c3151ab451bab1cdfea2678b70c4873d650a6ffa7d1d39e3c6a7c18cb62de67b",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_update_streaming.py.log",
      "output_sha256": "0ac6cdafbfa9bebbeb1a3fee4381fdec99d7c8fa6f6c1f95fe3dbb87ad25f0f2",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 21,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_update_streaming.py",
      "test_file_sha256": "0de19e550a525b33efae336e009b5e36e3e90a784a3c2848631964fa007384d0"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-56260b437d",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_usage_command.py"
      ],
      "expected_nodeid_count": 8,
      "expected_nodeids_sha256": "1bea49c5ec67ad1c46cde2e31abb9fe8ec6967f4d02d45e49406fb9c1349e165",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_usage_command.py.log",
      "output_sha256": "862177e2b57958ee3c35a3c06a6b84a1f90090093eee24ddb6ceddddf560ff73",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 8,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_usage_command.py",
      "test_file_sha256": "728d7bde0bc6260d4b156236e9ac2e70cab5e9a47749b84b35227b5dc1cf07a9"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-416ccbc29c",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_verbose_command.py"
      ],
      "expected_nodeid_count": 8,
      "expected_nodeids_sha256": "11a8bdf3387fd91a36523c49e38bdcf407dd4dd10b29bcb6bcc74304b24a25a1",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_verbose_command.py.log",
      "output_sha256": "a98d35cff4c08eb028509a40624529b520ad6d1b4ea442575da8972756e22d9d",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 8,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_verbose_command.py",
      "test_file_sha256": "4004d9d600f6e79a57ebcfd3ac7fb877626ffd679eec21fd10ab95000d7d758d"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-61592b9644",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_verify_dualcoach_v11_candidate.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "097148de2f840f8777bc13a9d83b5b4b558a4a21e516775515411cc99381cbde",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_verify_dualcoach_v11_candidate.py.log",
      "output_sha256": "bc9507cf730567da3d80c9df14fc5d069992b9bda90f54ce5b21db23cc23d1b1",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_verify_dualcoach_v11_candidate.py",
      "test_file_sha256": "229c643aba6586a4d934c4fb485d2fa4fa0b53e6d63d21f591c272dddf21382b"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-e44579501c",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_version_command.py"
      ],
      "expected_nodeid_count": 1,
      "expected_nodeids_sha256": "2a7ba98fd1c9b2a8c282820e7e9ef8f151728e3960fe5f80f0138d9f44d26e8f",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_version_command.py.log",
      "output_sha256": "bc4c2ff1a05d78db864338a871f51116604f720d25667467a47cb7c30039c666",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 1,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_version_command.py",
      "test_file_sha256": "bc5b9a4abbbf852326e624642f87a2014d679ba558878b242fb7cb08d064b1fa"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-3137e6bbea",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_video_context_note.py"
      ],
      "expected_nodeid_count": 1,
      "expected_nodeids_sha256": "f9071e46e79279d41bfc9c52d5fb5788f7e8be80fcd8e8ac687fd7001cff3121",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_video_context_note.py.log",
      "output_sha256": "b336bfbb42d8a55315e2f7350d4a6528e0fd95453f81c1e21f96f9ae7c5d2932",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 1,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_video_context_note.py",
      "test_file_sha256": "be45f6b9fa30ed5d15452cad982b80af1ab214fa3826bdd75cf3d06af73590e6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-8274521d35",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_vision_memory_leak.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "0474d34ab7b03cb0d9c37df6e8120607c4c52e5a26a4f9f30043230739346758",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/10-test_vision_memory_leak.py.log",
      "output_sha256": "1efbd5fc9da76a71b0acad1451577d9edfe50962077b19e434edf3ce3a299dba",
      "returncode": 0,
      "shard": 10,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_vision_memory_leak.py",
      "test_file_sha256": "4525df28eafa796c11a7ec1ab44cfe7fd9d320fc6070af71397532b61426896a"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-a9279224fb",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_voice_command.py"
      ],
      "expected_nodeid_count": 184,
      "expected_nodeids_sha256": "97ff2354078b6c4a74f50774ba5f06883aec8cabdffe399e1b275f0d49f638c3",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_voice_command.py.log",
      "output_sha256": "6c96a735040ad72810624c96d9d6a245e434862c5295ef12f9ac27bd19c55b0c",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 184,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_voice_command.py",
      "test_file_sha256": "dd4abe100da8be8d10e2abb7d58077b39686f6895ca5965b41c8be6fe44658d2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-cc84963ac4",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_voice_mode_platform_isolation.py"
      ],
      "expected_nodeid_count": 10,
      "expected_nodeids_sha256": "d6e9b7c7e30ca1910e428f5894582bd44478ee06a551c292503f52691e47cab4",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/11-test_voice_mode_platform_isolation.py.log",
      "output_sha256": "dade178049b850f3d1ca18df363b9f851e39e6cf0e52180952cec2eb52018b3f",
      "returncode": 0,
      "shard": 11,
      "status": "passed",
      "summary_count": 10,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_voice_mode_platform_isolation.py",
      "test_file_sha256": "4dde4e8ce3941ca17f10643c4a4c41fd9afec59691c6daf968afc204cc70ee56"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-8d6ee89023",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_weak_credential_guard.py"
      ],
      "expected_nodeid_count": 11,
      "expected_nodeids_sha256": "fd09e999f2c550ac0e1adabe603d84a22bd2dc2f50b750e1a10aaf11d52973fe",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_weak_credential_guard.py.log",
      "output_sha256": "a7128bef40d54443883f409738c3057bef133d26c5095da8204501e86db85989",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 11,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_weak_credential_guard.py",
      "test_file_sha256": "e8cca1557cc8d2201a8524aa26307e07e8a6a346cef4cf80d3eef6f999f410b2"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-76b95e8fb4",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_webhook_adapter.py"
      ],
      "expected_nodeid_count": 68,
      "expected_nodeids_sha256": "792b1e960858beb5285372e228af676e006ce9a2516a40fc2f708251f3a0304e",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_webhook_adapter.py.log",
      "output_sha256": "021aa5f32f9ea9e22c92e9f836af8b7a57e275f017211ca57ffe5acf206941c4",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 68,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_webhook_adapter.py",
      "test_file_sha256": "395cfb81eb1f121252ae39fe85d9e61b24dbcee5aa286e388138ad1ee4b6ca47"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-8fcfcb078f",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_webhook_deliver_only.py"
      ],
      "expected_nodeid_count": 14,
      "expected_nodeids_sha256": "ce1372749393ee628d16c6eef7cd8fd32e5e3d23a062e0b45314f8bc030ba473",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_webhook_deliver_only.py.log",
      "output_sha256": "8ea5e94a285e2e48d561bdf002afa8bcadc3f7e01c511cab3b1387a0b88afa07",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 14,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_webhook_deliver_only.py",
      "test_file_sha256": "44d9233240fb8039e8fcb51e6de35dd56d3fe26b229b17000a84a2cc48fad3d1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-72d4e7617c",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_webhook_dynamic_routes.py"
      ],
      "expected_nodeid_count": 13,
      "expected_nodeids_sha256": "975ecc15c39ead03206032914e03232d252a02b452bdd179370eaeab67a38ee0",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_webhook_dynamic_routes.py.log",
      "output_sha256": "b94c4fc9491fb942e308345ad71f21165b85236fa60db7a0af78fa746bc64a50",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 13,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_webhook_dynamic_routes.py",
      "test_file_sha256": "cff32559d2a927f2f6a9f9f1d0e56129580868522872c704d6f5021f31b9c688"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-23f3219178",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_webhook_integration.py"
      ],
      "expected_nodeid_count": 4,
      "expected_nodeids_sha256": "3dd26fe01ea3c121851f71f8402f4b279a72f133071ff3d29497b55e0cc6123b",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_webhook_integration.py.log",
      "output_sha256": "9088ab3778ca9f444a1802d43efefb74d45fb5756d7cd8ee4418bf76df25004e",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 4,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_webhook_integration.py",
      "test_file_sha256": "3f7d9145bcf7602a0f14cde640b47e56123f1b1fd634a67d6700377da531efd7"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-d4cac065b2",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_webhook_signature_rate_limit.py"
      ],
      "expected_nodeid_count": 3,
      "expected_nodeids_sha256": "1add6fa2299683b4d869cc62a899db12567a16902a2d5f940013d0bf2f3c04d8",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_webhook_signature_rate_limit.py.log",
      "output_sha256": "fc99c56adf2cb5702a4564ceead9e104cf6db01c3cd1a15756b5c9630e644ce6",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 3,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_webhook_signature_rate_limit.py",
      "test_file_sha256": "d7adb5c08f8fd0f61fd06e10b8b043b949bf854c222181b4e84fdda2ab1b1a06"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-75dfab43d4",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_wecom.py"
      ],
      "expected_nodeid_count": 46,
      "expected_nodeids_sha256": "c977be968ca397009564db6dddc3cc7b7e4a49bb14a98db129cd6a575277c5b1",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/08-test_wecom.py.log",
      "output_sha256": "9bef1a0b03935b52eb14e3e6adb9eb1f04ac0481e54b13ee4c88d820c08b88d2",
      "returncode": 0,
      "shard": 8,
      "status": "passed",
      "summary_count": 46,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_wecom.py",
      "test_file_sha256": "2e3ccc899ada56d2ce1b9898da2b4fc94b84da574027433bf730dacde55fd4f3"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-2566c28c6f",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_wecom_callback.py"
      ],
      "expected_nodeid_count": 12,
      "expected_nodeids_sha256": "22c5ae48b0c60e067c773a7a0d0f33b7e88e62151f9f52b6b019daa15ddf70e7",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_wecom_callback.py.log",
      "output_sha256": "69c5bd7458a91b5419844aaff982ee10c6557dba22f6accbd313a9af0adbe05a",
      "returncode": 1,
      "shard": 3,
      "status": "failed",
      "summary_count": 12,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_wecom_callback.py",
      "test_file_sha256": "ecc1d918d55a71fa280d8d1866281e23af3699e0d3ea68dec297c002110382ed"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-98a9c16cc6",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_weixin.py"
      ],
      "expected_nodeid_count": 69,
      "expected_nodeids_sha256": "9612303b0b5596fecbcb7c3c45f9e8b08d9065c0698f36e5e5ef37edfce25a26",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_weixin.py.log",
      "output_sha256": "82c4840ba82ed5dd8ec7be4f0a6320ce9c0d5e1d7d367db06f6d3a236b13ed1c",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 69,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_weixin.py",
      "test_file_sha256": "e6a6a9d3c523d11bbcf2776deab616129db0683893568805198859da3f1f5393"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-41cb297d33",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_weixin_typing.py"
      ],
      "expected_nodeid_count": 13,
      "expected_nodeids_sha256": "e66e6c76052f93a0b9bcad836dea6b7538377b7b301cf4656ced5bf17c99c7a7",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_weixin_typing.py.log",
      "output_sha256": "050ade1a800c0e3aaadc25caad94ebf5e95bee4361c253aa6088398eed81ce47",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 13,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_weixin_typing.py",
      "test_file_sha256": "dbe47d61abed3f4b5f2d6023340878618035301cc0ccd0e5c1f1e97feca5fb32"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-3d83e02196",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_whatsapp_cloud.py"
      ],
      "expected_nodeid_count": 105,
      "expected_nodeids_sha256": "9f0042a2189129d26c173cc65f5444044682ec7193309c46071fd569a1ea064c",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/04-test_whatsapp_cloud.py.log",
      "output_sha256": "9154ad65b9d3fe8025f6db89d8bf2884d828d82466148ed9fb47314de960ad7f",
      "returncode": 0,
      "shard": 4,
      "status": "passed",
      "summary_count": 105,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_whatsapp_cloud.py",
      "test_file_sha256": "b23511689f411b24af1e209c0d52675cbb0fc5e6f068572b3013479b968da4e6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-0e1928926b",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_whatsapp_connect.py"
      ],
      "expected_nodeid_count": 27,
      "expected_nodeids_sha256": "435f20324c11b7c25610c28ad8fb3e7ef3d3084013058164adc688ad53ac4ca6",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/06-test_whatsapp_connect.py.log",
      "output_sha256": "4329873b97e91c0bcc3112f171d74308fedb746613664cd379d64810cb7b01db",
      "returncode": 0,
      "shard": 6,
      "status": "passed",
      "summary_count": 27,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_whatsapp_connect.py",
      "test_file_sha256": "0a8cb725278cbd986eedcf460d08d790326515551b5424b7fb9ca1a00aa8c725"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-0f5654ad69",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_whatsapp_formatting.py"
      ],
      "expected_nodeid_count": 27,
      "expected_nodeids_sha256": "3bbe35f71e8f8b39660a952093723f64d5662e942d2bd71de4a5ae8269edc9b2",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_whatsapp_formatting.py.log",
      "output_sha256": "3fd6046ff66c418e82ea242765119c130364f2a2a1e74c9773c403fde6f6a788",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 27,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_whatsapp_formatting.py",
      "test_file_sha256": "ac096d17f6dba99164157ee653e0da60b79ab27442cceb337eae8ae8a5d914f4"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-0eea96c8be",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_whatsapp_group_gating.py"
      ],
      "expected_nodeid_count": 26,
      "expected_nodeids_sha256": "65582cfb9400cac425f869b20163b2522239297cea86414c22892f5fb8dddf18",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/05-test_whatsapp_group_gating.py.log",
      "output_sha256": "c1def39ee2122a24db17fb12716f25aa765e17972e63363836ea9c6e0835c87e",
      "returncode": 0,
      "shard": 5,
      "status": "passed",
      "summary_count": 26,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_whatsapp_group_gating.py",
      "test_file_sha256": "d09f5f6fcf16cdc78963e9946bf3aea1d41e016fc5d146a2530146422462bdd1"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-f6fdd3b30d",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_whatsapp_reply_prefix.py"
      ],
      "expected_nodeid_count": 8,
      "expected_nodeids_sha256": "d5cc0f552d4e505dd1876454d1988dd05f3790fee490cfbd173294860f7fa376",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_whatsapp_reply_prefix.py.log",
      "output_sha256": "faad2a048f066402d263a731e67182173f50486382c58da46a5fbfff30212c04",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 8,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_whatsapp_reply_prefix.py",
      "test_file_sha256": "7818f1b691f0caea89ff03bf1c19986670e563ea6df2983813080daf26038829"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-6c1339e7e3",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_whatsapp_stale_bridge.py"
      ],
      "expected_nodeid_count": 11,
      "expected_nodeids_sha256": "0c5a6b87002b9ffb513c9db94cf1c64a18ceff10ee1b8c48b6900ab91b2c8d04",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/00-test_whatsapp_stale_bridge.py.log",
      "output_sha256": "218da5c570be5f94347578c711fd52473f23c995627eefba36369b0527e13434",
      "returncode": 0,
      "shard": 0,
      "status": "passed",
      "summary_count": 11,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_whatsapp_stale_bridge.py",
      "test_file_sha256": "9f816dc3af4dae0cf752f36f52ae72a35e09c3cede26b7ca3bf28ece6919efd0"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-c516bfa2a5",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_whatsapp_text_batching.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "ec0fbc81a3743257da0e41edb91af453f7b14cc0fcac370d93bde24a62abce86",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/03-test_whatsapp_text_batching.py.log",
      "output_sha256": "204ee964b0c568221de00001d49155c46708c86169d670972934021295357d8a",
      "returncode": 0,
      "shard": 3,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_whatsapp_text_batching.py",
      "test_file_sha256": "d9631704540c9e695248607d2224ba24b70bc4cfba5302accbdee6a9b2c74f56"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-2483c0ad96",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_ws_auth_retry.py"
      ],
      "expected_nodeid_count": 6,
      "expected_nodeids_sha256": "577c83e75d7e64d0297ebd3946e9cfdec8f0c4f017c985a87562eaa5b503523d",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/02-test_ws_auth_retry.py.log",
      "output_sha256": "37209a2446978ab2732009c33b8228a835778f235f6affbc475f06c100716e4d",
      "returncode": 0,
      "shard": 2,
      "status": "passed",
      "summary_count": 6,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_ws_auth_retry.py",
      "test_file_sha256": "18fc4bcde22033b2283428d888ee5c4d9c43d2dd9178a6f30a116649d60991a6"
    },
    {
      "argv": [
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
        "-m",
        "pytest",
        "-q",
        "-p",
        "no:cacheprovider",
        "--import-mode=importlib",
        "--basetemp=/tmp/nc8-b3bf837dcb",
        "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/tests/gateway/test_yolo_command.py"
      ],
      "expected_nodeid_count": 1,
      "expected_nodeids_sha256": "4e5705da0372ce03283499ce5fb28f1513547bc841f983317495ea2a29e9263b",
      "output_log": ".omo/evidence/nutricoach-v140-weekly-operations/task-12-reseal-r8/logs/gateway-file-execution/09-test_yolo_command.py.log",
      "output_sha256": "866432d567eb30f716ad0380ad29e9453b6fd80645780de4fbe94565dc3eab20",
      "returncode": 0,
      "shard": 9,
      "status": "passed",
      "summary_count": 1,
      "summary_count_matches_manifest": true,
      "test_file": "tests/gateway/test_yolo_command.py",
      "test_file_sha256": "492f38b34806d59b487b4efca29709523803f362b338068138635c1051b924c5"
    }
  ],
  "interpreter": {
    "entrypoint": "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/.venv/bin/python",
    "resolved": "/home/cube/miniconda3/bin/python3.12",
    "sha256": "d9bc96d1ad0161db7ebdc8fdbc690530a9c29299feb2001cba6b29072e2a9051"
  },
  "isolation": {
    "assignment": "sha256(test_file) modulo shards",
    "cwd": "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl",
    "execution": "one fresh subprocess per collected test file",
    "pythonpath": "/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/dualcoach/profile:/home/cube/projects/richard/.worktrees/nutricoach-v140-impl",
    "shards": 12,
    "timeout_seconds_per_file": 900,
    "uv_cache_dir": "/home/cube/.cache/uv"
  },
  "schema": "nutricoach-v140-task12-isolated-gateway-execution-v1",
  "shards": [
    {
      "expected_nodeids": 481,
      "files": 37,
      "shard": 0
    },
    {
      "expected_nodeids": 1158,
      "files": 36,
      "shard": 1
    },
    {
      "expected_nodeids": 776,
      "files": 29,
      "shard": 2
    },
    {
      "expected_nodeids": 550,
      "files": 31,
      "shard": 3
    },
    {
      "expected_nodeids": 619,
      "files": 20,
      "shard": 4
    },
    {
      "expected_nodeids": 636,
      "files": 36,
      "shard": 5
    },
    {
      "expected_nodeids": 486,
      "files": 29,
      "shard": 6
    },
    {
      "expected_nodeids": 641,
      "files": 35,
      "shard": 7
    },
    {
      "expected_nodeids": 336,
      "files": 28,
      "shard": 8
    },
    {
      "expected_nodeids": 721,
      "files": 28,
      "shard": 9
    },
    {
      "expected_nodeids": 546,
      "files": 23,
      "shard": 10
    },
    {
      "expected_nodeids": 801,
      "files": 31,
      "shard": 11
    }
  ],
  "summary_count": 7751
}
