{"candidate":{"full_digest":"50685ac2c063c5b18fa895cc1991e3473368d177c7309bf54af0374ea67ba1d1","manifest_path":".omo/evidence/task26/dualcoach-provider-auth-candidate-50685ac2c063c5b18fa895cc1991e3473368d177c7309bf54af0374ea67ba1d1/candidate-manifest.json","manifest_sha256":"2135189a2025abd563ff4a8adf62af13a0da912b446fb53f9218b63c07a19a81","wheel_path":".omo/evidence/task26/dualcoach-provider-auth-candidate-50685ac2c063c5b18fa895cc1991e3473368d177c7309bf54af0374ea67ba1d1/artifacts/hermes_agent-0.17.0-py3-none-any.whl","wheel_sha256":"e4bd655672edf148ee3026b44f78149402234ba5cc0be3db19b875cbd86659be"},"finding":{"code":"UNBOUND_EXECUTABLE_GATE18_TEST_INPUT","current_manifest_source_entries_sha256":"2fe2490def4623056d86b6c122561c07412478f1ea3259b96cd62372943b6cb6","current_manifest_source_entry_count":8,"current_static_source_files":["gateway/platforms/dualcoach_admin.py","gateway/platforms/dualcoach_tasks21_25_controller.py","agent/auxiliary_client.py","agent/codex_runtime.py","tests/gateway/test_dualcoach_admin_provider_auth.py","tests/gateway/test_dualcoach_tasks21_25_controller.py","tests/agent/test_auxiliary_client.py","pyproject.toml"],"executable_test":{"bytes":299356,"mode":"0664","path":"tests/gateway/test_nutrition_coaching.py","sha256":"bb33892ec026e9d5c25e1e485a93f6bf1a777f556b7df6fc20e00b54872788ab"},"sealer":{"path":".omo/senpi-task/task26/seal_dualcoach_provider_auth_candidate.py","selection_rule":"SOURCE_FILES at source offset 905; seal() expands only that tuple at offset 16455.","verification_rule":"verify() hashes only manifest source_entries at source offset 20908.","wheel_source_rule":"WHEEL_SOURCE_MEMBERS at source offset 1505 contains only four production members; it does not bind pytest source inputs."},"why_the_existing_candidate_fails":["The Gate 18 command executes tests/gateway/test_nutrition_coaching.py::test_dualcoach_golden_path.","seal() materializes manifest source_entries exclusively from the static SOURCE_FILES tuple.","SOURCE_FILES has eight entries and omits the Gate 18 test and its pytest package/startup inputs.","verify() only re-materializes manifest source_entries, so it cannot detect an omitted executable input."]},"gate":18,"minimal_correct_patch":{"changes":["Rename the existing tuple to CORE_SOURCE_FILES without changing its eight entries.","Add gate18_source_files(repository) returning tests/__init__.py, tests/conftest.py, tests/gateway/__init__.py, tests/gateway/conftest.py, and every regular tests/gateway/**/test_*.py path in lexicographic POSIX order; fail if tests/gateway/test_nutrition_coaching.py is absent.","Make seal() call source_entry() over the ordered de-duplicated union of CORE_SOURCE_FILES and gate18_source_files(repository). The existing verify() list comparison then verifies every recorded closure entry without a second verifier change.","Keep the Gate 18 runner off the mutable repository import path: execute against the newly sealed wheel in an isolated environment, or explicitly re-prove parity for every locally imported project source before accepting the result. The historical receipt's 424-member parity check is informative only and does not bind omitted pytest inputs."],"not_sufficient":"Appending only tests/gateway/test_nutrition_coaching.py leaves inherited conftest/package code and tests/gateway/conftest.py's 365-file discovery scan outside the manifest.","target":".omo/senpi-task/task26/seal_dualcoach_provider_auth_candidate.py"},"mode":"diagnosis-only","non_actions":{"gate18_reruns":0,"provider_requests":0,"reseals":0,"service_launches":0,"source_edits":0,"telegram_actions":0,"verdict_changes":0,"wheel_builds":0},"prior_gate18_verdict":{"blocker_code":"UNBOUND_EXECUTABLE_GATE18_TEST_INPUT","receipt_path":".omo/evidence/task26/task26-gate18-50685ac2c063c5b18fa895cc1991e3473368d177c7309bf54af0374ea67ba1d1-receipt.json","receipt_sha256":"8e1c6f2c56b08822e6ac3205883f90692152002bf1a86cb683a70789d8806aaa","unchanged":true,"verdict":"FAIL"},"proposed_regression":{"assertions":["Import the sealer and call its source-closure helper for the repository fixture.","Assert the closure contains tests/__init__.py, tests/conftest.py, tests/gateway/__init__.py, tests/gateway/conftest.py, and tests/gateway/test_nutrition_coaching.py.","Assert the selected gateway test paths equal sorted(repository/tests/gateway.rglob('test_*.py')) and have no duplicates.","Seal a fixture candidate and assert manifest['source_entries'] has exactly that ordered closure; this test fails against the current static SOURCE_FILES implementation."],"path":".omo/senpi-task/task26/test_seal_dualcoach_provider_auth_candidate.py","test":"test_gate18_source_closure_seals_pytest_startup_and_gateway_discovery_inputs"},"recorded_at":"2026-08-14T15:13:07.554621+00:00","required_pytest_source_closure":{"additional_startup_and_package_inputs":[{"bytes":0,"mode":"0664","path":"tests/__init__.py","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},{"bytes":35155,"mode":"0664","path":"tests/conftest.py","sha256":"3fc3fbf9991f24884711e1fb48f73e177de86f4338c0b858db17d2b24d67a3e0"},{"bytes":0,"mode":"0664","path":"tests/gateway/__init__.py","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},{"bytes":18776,"mode":"0664","path":"tests/gateway/conftest.py","sha256":"b5cabb93329caaf93196e4bd62bd728e6eb9d404c43ba59d22940261a2c3dec0"}],"already_bound_by_current_candidate":{"profile_package_tree":{"entry_count":85,"source_tree_digest":"a36207f03d7e1fbc6c249d5b0ab9d0954b71d9c2974edaf22239dee8425079da"},"pyproject_toml":true,"wheel_member_inventory":982},"execution_model":"default pytest package collection for tests/gateway/test_nutrition_coaching.py plus inherited conftest loading","gate_test_input":{"bytes":299356,"mode":"0664","path":"tests/gateway/test_nutrition_coaching.py","sha256":"bb33892ec026e9d5c25e1e485a93f6bf1a777f556b7df6fc20e00b54872788ab"},"gateway_conftest_discovery_dependency":{"conftest_path":"tests/gateway/conftest.py","entry_count":365,"glob":"tests/gateway/**/test_*.py","ordering":"lexicographic POSIX relative path","paths":["tests/gateway/platforms/test_yuanbao_recall_db_only.py","tests/gateway/relay/test_auth.py","tests/gateway/relay/test_contract_doc_conformance.py","tests/gateway/relay/test_descriptor.py","tests/gateway/relay/test_descriptor_from_entry.py","tests/gateway/relay/test_no_stub_leak.py","tests/gateway/relay/test_relay_adapter.py","tests/gateway/relay/test_relay_follow_up.py","tests/gateway/relay/test_relay_interrupt.py","tests/gateway/relay/test_relay_registration.py","tests/gateway/relay/test_relay_roundtrip.py","tests/gateway/relay/test_relay_roundtrip_telegram.py","tests/gateway/relay/test_relay_sheds_crypto.py","tests/gateway/relay/test_self_provision.py","tests/gateway/relay/test_ws_transport.py","tests/gateway/test_35809_auto_reset_clean_context.py","tests/gateway/test_42039_duplicate_user_message.py","tests/gateway/test_7100_transient_failure_transcript.py","tests/gateway/test_active_session_text_merge.py","tests/gateway/test_adaptive_nutrition.py","tests/gateway/test_agent_cache.py","tests/gateway/test_allowed_channels_widening.py","tests/gateway/test_allowlist_startup_check.py","tests/gateway/test_api_server.py","tests/gateway/test_api_server_bind_guard.py","tests/gateway/test_api_server_jobs.py","tests/gateway/test_api_server_multimodal.py","tests/gateway/test_api_server_normalize.py","tests/gateway/test_api_server_runs.py","tests/gateway/test_api_server_toolset.py","tests/gateway/test_approve_deny_commands.py","tests/gateway/test_auth_fallback.py","tests/gateway/test_auto_continue.py","tests/gateway/test_auto_voice_reply_format.py","tests/gateway/test_background_command.py","tests/gateway/test_background_process_notifications.py","tests/gateway/test_base_topic_sessions.py","tests/gateway/test_bluebubbles.py","tests/gateway/test_bundles_command.py","tests/gateway/test_busy_session_ack.py","tests/gateway/test_busy_session_auth_bypass.py","tests/gateway/test_cached_agent_max_iterations.py","tests/gateway/test_cancel_background_drain.py","tests/gateway/test_channel_directory.py","tests/gateway/test_clean_shutdown_marker.py","tests/gateway/test_command_bypass_active_session.py","tests/gateway/test_complete_path_at_filter.py","tests/gateway/test_compress_command.py","tests/gateway/test_compress_focus.py","tests/gateway/test_compress_plugin_engine.py","tests/gateway/test_compression_concurrent_sessions.py","tests/gateway/test_compression_failure_session_sync.py","tests/gateway/test_compression_session_id_persistence.py","tests/gateway/test_config.py","tests/gateway/test_config_cwd_bridge.py","tests/gateway/test_config_driven_access_policy.py","tests/gateway/test_config_env_bridge_authority.py","tests/gateway/test_cron_fire_webhook.py","tests/gateway/test_debug_command.py","tests/gateway/test_delivery.py","tests/gateway/test_delivery_silence_filter.py","tests/gateway/test_destructive_slash_confirm.py","tests/gateway/test_diagnostic_isolation.py","tests/gateway/test_dingtalk.py","tests/gateway/test_discord_allowed_channels.py","tests/gateway/test_discord_allowed_mentions.py","tests/gateway/test_discord_attachment_download.py","tests/gateway/test_discord_bot_auth_bypass.py","tests/gateway/test_discord_bot_filter.py","tests/gateway/test_discord_channel_controls.py","tests/gateway/test_discord_channel_prompts.py","tests/gateway/test_discord_channel_skills.py","tests/gateway/test_discord_clarify_buttons.py","tests/gateway/test_discord_component_auth.py","tests/gateway/test_discord_connect.py","tests/gateway/test_discord_document_handling.py","tests/gateway/test_discord_free_response.py","tests/gateway/test_discord_imports.py","tests/gateway/test_discord_lazy_install_views.py","tests/gateway/test_discord_media_metadata.py","tests/gateway/test_discord_model_picker.py","tests/gateway/test_discord_opus.py","tests/gateway/test_discord_race_polish.py","tests/gateway/test_discord_reactions.py","tests/gateway/test_discord_reply_mode.py","tests/gateway/test_discord_roles_dm_scope.py","tests/gateway/test_discord_send.py","tests/gateway/test_discord_slash_auth.py","tests/gateway/test_discord_slash_commands.py","tests/gateway/test_discord_system_messages.py","tests/gateway/test_discord_thread_persistence.py","tests/gateway/test_discord_voice_mixer.py","tests/gateway/test_display_config.py","tests/gateway/test_dm_topics.py","tests/gateway/test_document_cache.py","tests/gateway/test_document_context_note.py","tests/gateway/test_dualcoach_admin_provider_auth.py","tests/gateway/test_dualcoach_tasks21_25_controller.py","tests/gateway/test_duplicate_reply_suppression.py","tests/gateway/test_email.py","tests/gateway/test_empty_model_recovery.py","tests/gateway/test_ephemeral_reply.py","tests/gateway/test_extract_local_files.py","tests/gateway/test_fallback_eviction.py","tests/gateway/test_fast_command.py","tests/gateway/test_feishu.py","tests/gateway/test_feishu_approval_buttons.py","tests/gateway/test_feishu_bot_admission.py","tests/gateway/test_feishu_bot_auth_bypass.py","tests/gateway/test_feishu_comment.py","tests/gateway/test_feishu_comment_rules.py","tests/gateway/test_feishu_meeting_invite.py","tests/gateway/test_feishu_onboard.py","tests/gateway/test_fresh_reset_skill_injection.py","tests/gateway/test_gateway_command_help.py","tests/gateway/test_gateway_command_line_matcher.py","tests/gateway/test_gateway_inactivity_timeout.py","tests/gateway/test_gateway_shutdown.py","tests/gateway/test_gateway_silence_tokens.py","tests/gateway/test_goal_max_turns_config.py","tests/gateway/test_goal_status_notice.py","tests/gateway/test_goal_verdict_send.py","tests/gateway/test_google_chat.py","tests/gateway/test_home_target_env_var.py","tests/gateway/test_homeassistant.py","tests/gateway/test_hooks.py","tests/gateway/test_insights_unicode_flags.py","tests/gateway/test_internal_event_bypass_pairing.py","tests/gateway/test_interrupt_key_match.py","tests/gateway/test_irc_adapter.py","tests/gateway/test_kanban_notifier.py","tests/gateway/test_kanban_notifier_watcher_dispatch_gate.py","tests/gateway/test_kanban_watchers_mixin.py","tests/gateway/test_keep_typing_timeout.py","tests/gateway/test_korean_humanizer.py","tests/gateway/test_line_plugin.py","tests/gateway/test_load_transcript_db_only.py","tests/gateway/test_loop_exception_handler.py","tests/gateway/test_matrix.py","tests/gateway/test_matrix_approval_reaction_fail_closed.py","tests/gateway/test_matrix_exec_approval.py","tests/gateway/test_matrix_mention.py","tests/gateway/test_matrix_project_context_isolation.py","tests/gateway/test_matrix_voice.py","tests/gateway/test_mattermost.py","tests/gateway/test_max_concurrent_sessions.py","tests/gateway/test_max_tokens_propagation.py","tests/gateway/test_mcp_reload_refreshes_cached_agents.py","tests/gateway/test_media_download_retry.py","tests/gateway/test_media_extraction.py","tests/gateway/test_media_metadata_contract.py","tests/gateway/test_memory_monitor.py","tests/gateway/test_message_deduplicator.py","tests/gateway/test_message_timestamps.py","tests/gateway/test_mirror.py","tests/gateway/test_model_command_custom_providers.py","tests/gateway/test_model_command_expensive_confirm.py","tests/gateway/test_model_command_flat_string_config.py","tests/gateway/test_model_picker_persist.py","tests/gateway/test_model_switch_persistence.py","tests/gateway/test_msgraph_webhook.py","tests/gateway/test_multiplex_adapter_registry.py","tests/gateway/test_multiplex_credential_isolation.py","tests/gateway/test_multiplex_http_routing.py","tests/gateway/test_multiplex_lifecycle.py","tests/gateway/test_multiplex_phase0.py","tests/gateway/test_native_image_buffer_isolation.py","tests/gateway/test_notice_delivery.py","tests/gateway/test_notice_rendering.py","tests/gateway/test_ntfy_plugin.py","tests/gateway/test_nutrition_coaching.py","tests/gateway/test_nutrition_coaching_judgment.py","tests/gateway/test_nutrition_onboarding_reconciliation.py","tests/gateway/test_pairing.py","tests/gateway/test_pending_drain_no_recursion.py","tests/gateway/test_pending_drain_race.py","tests/gateway/test_pending_event_none.py","tests/gateway/test_per_platform_streaming_defaults.py","tests/gateway/test_pii_redaction.py","tests/gateway/test_planned_stop_watcher.py","tests/gateway/test_platform_base.py","tests/gateway/test_platform_connected_checkers.py","tests/gateway/test_platform_http_client_limits.py","tests/gateway/test_platform_reconnect.py","tests/gateway/test_platform_reconnect_fd_leak.py","tests/gateway/test_platform_registry.py","tests/gateway/test_plugin_platform_interface.py","tests/gateway/test_post_delivery_callback_chaining.py","tests/gateway/test_pre_gateway_dispatch.py","tests/gateway/test_proxy_mode.py","tests/gateway/test_qqbot.py","tests/gateway/test_queue_consumption.py","tests/gateway/test_raft_adapter.py","tests/gateway/test_reasoning_command.py","tests/gateway/test_relay_capability_surface.py","tests/gateway/test_reload_skills_command.py","tests/gateway/test_reload_skills_discord_resync.py","tests/gateway/test_replay_entry_fields.py","tests/gateway/test_reply_to_injection.py","tests/gateway/test_response_filters.py","tests/gateway/test_restart_drain.py","tests/gateway/test_restart_notification.py","tests/gateway/test_restart_redelivery_dedup.py","tests/gateway/test_restart_resume_pending.py","tests/gateway/test_resume_command.py","tests/gateway/test_retry_replacement.py","tests/gateway/test_retry_response.py","tests/gateway/test_run_cleanup_progress.py","tests/gateway/test_run_progress_interrupt.py","tests/gateway/test_run_progress_topics.py","tests/gateway/test_run_tool_media_re.py","tests/gateway/test_runner_fatal_adapter.py","tests/gateway/test_runner_startup_failures.py","tests/gateway/test_running_agent_session_toggles.py","tests/gateway/test_runtime_config_env_expansion.py","tests/gateway/test_runtime_env_reload_config_authority.py","tests/gateway/test_runtime_footer.py","tests/gateway/test_safe_adapter_disconnect.py","tests/gateway/test_send_image_file.py","tests/gateway/test_send_multiple_images.py","tests/gateway/test_send_retry.py","tests/gateway/test_send_voice_reply_notify.py","tests/gateway/test_session.py","tests/gateway/test_session_api.py","tests/gateway/test_session_boundary_hooks.py","tests/gateway/test_session_boundary_security_state.py","tests/gateway/test_session_dm_thread_seeding.py","tests/gateway/test_session_env.py","tests/gateway/test_session_hygiene.py","tests/gateway/test_session_info.py","tests/gateway/test_session_list_allowed_sources.py","tests/gateway/test_session_model_override_routing.py","tests/gateway/test_session_model_reset.py","tests/gateway/test_session_override_thread_recovery.py","tests/gateway/test_session_race_guard.py","tests/gateway/test_session_reset_notify.py","tests/gateway/test_session_split_brain_11016.py","tests/gateway/test_session_state_cleanup.py","tests/gateway/test_session_store_prune.py","tests/gateway/test_setup_feishu.py","tests/gateway/test_shared_group_sender_prefix.py","tests/gateway/test_shutdown_cache_cleanup.py","tests/gateway/test_shutdown_forensics.py","tests/gateway/test_shutdown_memory_provider_messages.py","tests/gateway/test_signal.py","tests/gateway/test_signal_format.py","tests/gateway/test_signal_rate_limit.py","tests/gateway/test_simplex_plugin.py","tests/gateway/test_slack.py","tests/gateway/test_slack_approval_buttons.py","tests/gateway/test_slack_channel_session_scope.py","tests/gateway/test_slack_channel_skills.py","tests/gateway/test_slack_mention.py","tests/gateway/test_slack_plugin_action_handlers.py","tests/gateway/test_slash_access.py","tests/gateway/test_slash_access_dispatch.py","tests/gateway/test_sms.py","tests/gateway/test_sse_agent_cancel.py","tests/gateway/test_ssl_cert_detection.py","tests/gateway/test_ssl_certs.py","tests/gateway/test_status.py","tests/gateway/test_status_command.py","tests/gateway/test_steer_command.py","tests/gateway/test_step_callback_compat.py","tests/gateway/test_sticker_cache.py","tests/gateway/test_stop_thread_sibling.py","tests/gateway/test_stream_consumer.py","tests/gateway/test_stream_consumer_draft.py","tests/gateway/test_stream_consumer_fresh_final.py","tests/gateway/test_stream_consumer_thread_routing.py","tests/gateway/test_stream_events.py","tests/gateway/test_stt_config.py","tests/gateway/test_stuck_loop.py","tests/gateway/test_subagent_protection_30170.py","tests/gateway/test_task7_generation_hardening.py","tests/gateway/test_teams.py","tests/gateway/test_teams_pipeline_runtime_wiring.py","tests/gateway/test_telegram_activation_notice.py","tests/gateway/test_telegram_approval_buttons.py","tests/gateway/test_telegram_audio_vs_voice.py","tests/gateway/test_telegram_callback_auth_fail_closed.py","tests/gateway/test_telegram_caption_merge.py","tests/gateway/test_telegram_channel_posts.py","tests/gateway/test_telegram_clarify_buttons.py","tests/gateway/test_telegram_conflict.py","tests/gateway/test_telegram_customer_bootstrap.py","tests/gateway/test_telegram_documents.py","tests/gateway/test_telegram_format.py","tests/gateway/test_telegram_forum_commands.py","tests/gateway/test_telegram_group_gating.py","tests/gateway/test_telegram_max_doc_bytes.py","tests/gateway/test_telegram_mention_boundaries.py","tests/gateway/test_telegram_mock_bootstrap.py","tests/gateway/test_telegram_model_picker.py","tests/gateway/test_telegram_network.py","tests/gateway/test_telegram_network_reconnect.py","tests/gateway/test_telegram_noise_filter.py","tests/gateway/test_telegram_nutrition_addresses.py","tests/gateway/test_telegram_nutrition_onboarding.py","tests/gateway/test_telegram_nutrition_onboarding_callback_observability.py","tests/gateway/test_telegram_nutrition_onboarding_copy.py","tests/gateway/test_telegram_nutrition_onboarding_direct_entry.py","tests/gateway/test_telegram_nutrition_onboarding_preview.py","tests/gateway/test_telegram_nutrition_onboarding_preview_runtime.py","tests/gateway/test_telegram_nutrition_operator_console.py","tests/gateway/test_telegram_overflow_partial.py","tests/gateway/test_telegram_photo_interrupts.py","tests/gateway/test_telegram_physique_checkin.py","tests/gateway/test_telegram_polling_receipts.py","tests/gateway/test_telegram_polling_receipts_multiprocess.py","tests/gateway/test_telegram_progress_edit_transient.py","tests/gateway/test_telegram_reactions.py","tests/gateway/test_telegram_reply_mode.py","tests/gateway/test_telegram_reply_quote.py","tests/gateway/test_telegram_rich_messages.py","tests/gateway/test_telegram_room_bootstrap_adversarial.py","tests/gateway/test_telegram_send_draft_format.py","tests/gateway/test_telegram_send_path_health.py","tests/gateway/test_telegram_slash_confirm.py","tests/gateway/test_telegram_status_indicator.py","tests/gateway/test_telegram_status_update.py","tests/gateway/test_telegram_text_batch_perf.py","tests/gateway/test_telegram_text_batching.py","tests/gateway/test_telegram_thread_fallback.py","tests/gateway/test_telegram_topic_mode.py","tests/gateway/test_telegram_voice_v0_regressions.py","tests/gateway/test_telegram_webhook_secret.py","tests/gateway/test_text_batching.py","tests/gateway/test_title_command.py","tests/gateway/test_tool_response_drop_recovery.py","tests/gateway/test_trainer_free_v1_contract.py","tests/gateway/test_transcript_offset.py","tests/gateway/test_tts_media_routing.py","tests/gateway/test_unauthorized_dm_behavior.py","tests/gateway/test_unavailable_skill_hint.py","tests/gateway/test_undo_rewind_session.py","tests/gateway/test_unknown_command.py","tests/gateway/test_update_command.py","tests/gateway/test_update_streaming.py","tests/gateway/test_usage_command.py","tests/gateway/test_verbose_command.py","tests/gateway/test_version_command.py","tests/gateway/test_video_context_note.py","tests/gateway/test_vision_memory_leak.py","tests/gateway/test_voice_command.py","tests/gateway/test_voice_mode_platform_isolation.py","tests/gateway/test_weak_credential_guard.py","tests/gateway/test_webhook_adapter.py","tests/gateway/test_webhook_deliver_only.py","tests/gateway/test_webhook_dynamic_routes.py","tests/gateway/test_webhook_integration.py","tests/gateway/test_webhook_signature_rate_limit.py","tests/gateway/test_wecom.py","tests/gateway/test_wecom_callback.py","tests/gateway/test_weixin.py","tests/gateway/test_weixin_typing.py","tests/gateway/test_whatsapp_cloud.py","tests/gateway/test_whatsapp_connect.py","tests/gateway/test_whatsapp_formatting.py","tests/gateway/test_whatsapp_group_gating.py","tests/gateway/test_whatsapp_reply_prefix.py","tests/gateway/test_whatsapp_stale_bridge.py","tests/gateway/test_whatsapp_text_batching.py","tests/gateway/test_ws_auth_retry.py","tests/gateway/test_yolo_command.py"],"paths_sha256":"1a57a7d1d9725b2cb81abdfef430ca999da7bae5e8e34cc19700b9b3d7023b5a","rule":"pytest_configure() calls _run_adapter_antipattern_scan(), which iterates _GATEWAY_DIR.rglob('test_*.py'); its fingerprint and possible collection failure depend on this complete source set."},"unified_manifest_source_rule":"ordered de-duplicated CORE_SOURCE_FILES, pytest package/startup inputs, then the lexicographically ordered gateway discovery glob","unified_source_entries_sha256":"70036a6a6b13a7f746f28b8609d2932c4603ce192f6c147380a2814f27ea8adf","unified_source_entry_count":375,"unified_source_paths":["gateway/platforms/dualcoach_admin.py","gateway/platforms/dualcoach_tasks21_25_controller.py","agent/auxiliary_client.py","agent/codex_runtime.py","tests/gateway/test_dualcoach_admin_provider_auth.py","tests/gateway/test_dualcoach_tasks21_25_controller.py","tests/agent/test_auxiliary_client.py","pyproject.toml","tests/__init__.py","tests/conftest.py","tests/gateway/__init__.py","tests/gateway/conftest.py","tests/gateway/platforms/test_yuanbao_recall_db_only.py","tests/gateway/relay/test_auth.py","tests/gateway/relay/test_contract_doc_conformance.py","tests/gateway/relay/test_descriptor.py","tests/gateway/relay/test_descriptor_from_entry.py","tests/gateway/relay/test_no_stub_leak.py","tests/gateway/relay/test_relay_adapter.py","tests/gateway/relay/test_relay_follow_up.py","tests/gateway/relay/test_relay_interrupt.py","tests/gateway/relay/test_relay_registration.py","tests/gateway/relay/test_relay_roundtrip.py","tests/gateway/relay/test_relay_roundtrip_telegram.py","tests/gateway/relay/test_relay_sheds_crypto.py","tests/gateway/relay/test_self_provision.py","tests/gateway/relay/test_ws_transport.py","tests/gateway/test_35809_auto_reset_clean_context.py","tests/gateway/test_42039_duplicate_user_message.py","tests/gateway/test_7100_transient_failure_transcript.py","tests/gateway/test_active_session_text_merge.py","tests/gateway/test_adaptive_nutrition.py","tests/gateway/test_agent_cache.py","tests/gateway/test_allowed_channels_widening.py","tests/gateway/test_allowlist_startup_check.py","tests/gateway/test_api_server.py","tests/gateway/test_api_server_bind_guard.py","tests/gateway/test_api_server_jobs.py","tests/gateway/test_api_server_multimodal.py","tests/gateway/test_api_server_normalize.py","tests/gateway/test_api_server_runs.py","tests/gateway/test_api_server_toolset.py","tests/gateway/test_approve_deny_commands.py","tests/gateway/test_auth_fallback.py","tests/gateway/test_auto_continue.py","tests/gateway/test_auto_voice_reply_format.py","tests/gateway/test_background_command.py","tests/gateway/test_background_process_notifications.py","tests/gateway/test_base_topic_sessions.py","tests/gateway/test_bluebubbles.py","tests/gateway/test_bundles_command.py","tests/gateway/test_busy_session_ack.py","tests/gateway/test_busy_session_auth_bypass.py","tests/gateway/test_cached_agent_max_iterations.py","tests/gateway/test_cancel_background_drain.py","tests/gateway/test_channel_directory.py","tests/gateway/test_clean_shutdown_marker.py","tests/gateway/test_command_bypass_active_session.py","tests/gateway/test_complete_path_at_filter.py","tests/gateway/test_compress_command.py","tests/gateway/test_compress_focus.py","tests/gateway/test_compress_plugin_engine.py","tests/gateway/test_compression_concurrent_sessions.py","tests/gateway/test_compression_failure_session_sync.py","tests/gateway/test_compression_session_id_persistence.py","tests/gateway/test_config.py","tests/gateway/test_config_cwd_bridge.py","tests/gateway/test_config_driven_access_policy.py","tests/gateway/test_config_env_bridge_authority.py","tests/gateway/test_cron_fire_webhook.py","tests/gateway/test_debug_command.py","tests/gateway/test_delivery.py","tests/gateway/test_delivery_silence_filter.py","tests/gateway/test_destructive_slash_confirm.py","tests/gateway/test_diagnostic_isolation.py","tests/gateway/test_dingtalk.py","tests/gateway/test_discord_allowed_channels.py","tests/gateway/test_discord_allowed_mentions.py","tests/gateway/test_discord_attachment_download.py","tests/gateway/test_discord_bot_auth_bypass.py","tests/gateway/test_discord_bot_filter.py","tests/gateway/test_discord_channel_controls.py","tests/gateway/test_discord_channel_prompts.py","tests/gateway/test_discord_channel_skills.py","tests/gateway/test_discord_clarify_buttons.py","tests/gateway/test_discord_component_auth.py","tests/gateway/test_discord_connect.py","tests/gateway/test_discord_document_handling.py","tests/gateway/test_discord_free_response.py","tests/gateway/test_discord_imports.py","tests/gateway/test_discord_lazy_install_views.py","tests/gateway/test_discord_media_metadata.py","tests/gateway/test_discord_model_picker.py","tests/gateway/test_discord_opus.py","tests/gateway/test_discord_race_polish.py","tests/gateway/test_discord_reactions.py","tests/gateway/test_discord_reply_mode.py","tests/gateway/test_discord_roles_dm_scope.py","tests/gateway/test_discord_send.py","tests/gateway/test_discord_slash_auth.py","tests/gateway/test_discord_slash_commands.py","tests/gateway/test_discord_system_messages.py","tests/gateway/test_discord_thread_persistence.py","tests/gateway/test_discord_voice_mixer.py","tests/gateway/test_display_config.py","tests/gateway/test_dm_topics.py","tests/gateway/test_document_cache.py","tests/gateway/test_document_context_note.py","tests/gateway/test_duplicate_reply_suppression.py","tests/gateway/test_email.py","tests/gateway/test_empty_model_recovery.py","tests/gateway/test_ephemeral_reply.py","tests/gateway/test_extract_local_files.py","tests/gateway/test_fallback_eviction.py","tests/gateway/test_fast_command.py","tests/gateway/test_feishu.py","tests/gateway/test_feishu_approval_buttons.py","tests/gateway/test_feishu_bot_admission.py","tests/gateway/test_feishu_bot_auth_bypass.py","tests/gateway/test_feishu_comment.py","tests/gateway/test_feishu_comment_rules.py","tests/gateway/test_feishu_meeting_invite.py","tests/gateway/test_feishu_onboard.py","tests/gateway/test_fresh_reset_skill_injection.py","tests/gateway/test_gateway_command_help.py","tests/gateway/test_gateway_command_line_matcher.py","tests/gateway/test_gateway_inactivity_timeout.py","tests/gateway/test_gateway_shutdown.py","tests/gateway/test_gateway_silence_tokens.py","tests/gateway/test_goal_max_turns_config.py","tests/gateway/test_goal_status_notice.py","tests/gateway/test_goal_verdict_send.py","tests/gateway/test_google_chat.py","tests/gateway/test_home_target_env_var.py","tests/gateway/test_homeassistant.py","tests/gateway/test_hooks.py","tests/gateway/test_insights_unicode_flags.py","tests/gateway/test_internal_event_bypass_pairing.py","tests/gateway/test_interrupt_key_match.py","tests/gateway/test_irc_adapter.py","tests/gateway/test_kanban_notifier.py","tests/gateway/test_kanban_notifier_watcher_dispatch_gate.py","tests/gateway/test_kanban_watchers_mixin.py","tests/gateway/test_keep_typing_timeout.py","tests/gateway/test_korean_humanizer.py","tests/gateway/test_line_plugin.py","tests/gateway/test_load_transcript_db_only.py","tests/gateway/test_loop_exception_handler.py","tests/gateway/test_matrix.py","tests/gateway/test_matrix_approval_reaction_fail_closed.py","tests/gateway/test_matrix_exec_approval.py","tests/gateway/test_matrix_mention.py","tests/gateway/test_matrix_project_context_isolation.py","tests/gateway/test_matrix_voice.py","tests/gateway/test_mattermost.py","tests/gateway/test_max_concurrent_sessions.py","tests/gateway/test_max_tokens_propagation.py","tests/gateway/test_mcp_reload_refreshes_cached_agents.py","tests/gateway/test_media_download_retry.py","tests/gateway/test_media_extraction.py","tests/gateway/test_media_metadata_contract.py","tests/gateway/test_memory_monitor.py","tests/gateway/test_message_deduplicator.py","tests/gateway/test_message_timestamps.py","tests/gateway/test_mirror.py","tests/gateway/test_model_command_custom_providers.py","tests/gateway/test_model_command_expensive_confirm.py","tests/gateway/test_model_command_flat_string_config.py","tests/gateway/test_model_picker_persist.py","tests/gateway/test_model_switch_persistence.py","tests/gateway/test_msgraph_webhook.py","tests/gateway/test_multiplex_adapter_registry.py","tests/gateway/test_multiplex_credential_isolation.py","tests/gateway/test_multiplex_http_routing.py","tests/gateway/test_multiplex_lifecycle.py","tests/gateway/test_multiplex_phase0.py","tests/gateway/test_native_image_buffer_isolation.py","tests/gateway/test_notice_delivery.py","tests/gateway/test_notice_rendering.py","tests/gateway/test_ntfy_plugin.py","tests/gateway/test_nutrition_coaching.py","tests/gateway/test_nutrition_coaching_judgment.py","tests/gateway/test_nutrition_onboarding_reconciliation.py","tests/gateway/test_pairing.py","tests/gateway/test_pending_drain_no_recursion.py","tests/gateway/test_pending_drain_race.py","tests/gateway/test_pending_event_none.py","tests/gateway/test_per_platform_streaming_defaults.py","tests/gateway/test_pii_redaction.py","tests/gateway/test_planned_stop_watcher.py","tests/gateway/test_platform_base.py","tests/gateway/test_platform_connected_checkers.py","tests/gateway/test_platform_http_client_limits.py","tests/gateway/test_platform_reconnect.py","tests/gateway/test_platform_reconnect_fd_leak.py","tests/gateway/test_platform_registry.py","tests/gateway/test_plugin_platform_interface.py","tests/gateway/test_post_delivery_callback_chaining.py","tests/gateway/test_pre_gateway_dispatch.py","tests/gateway/test_proxy_mode.py","tests/gateway/test_qqbot.py","tests/gateway/test_queue_consumption.py","tests/gateway/test_raft_adapter.py","tests/gateway/test_reasoning_command.py","tests/gateway/test_relay_capability_surface.py","tests/gateway/test_reload_skills_command.py","tests/gateway/test_reload_skills_discord_resync.py","tests/gateway/test_replay_entry_fields.py","tests/gateway/test_reply_to_injection.py","tests/gateway/test_response_filters.py","tests/gateway/test_restart_drain.py","tests/gateway/test_restart_notification.py","tests/gateway/test_restart_redelivery_dedup.py","tests/gateway/test_restart_resume_pending.py","tests/gateway/test_resume_command.py","tests/gateway/test_retry_replacement.py","tests/gateway/test_retry_response.py","tests/gateway/test_run_cleanup_progress.py","tests/gateway/test_run_progress_interrupt.py","tests/gateway/test_run_progress_topics.py","tests/gateway/test_run_tool_media_re.py","tests/gateway/test_runner_fatal_adapter.py","tests/gateway/test_runner_startup_failures.py","tests/gateway/test_running_agent_session_toggles.py","tests/gateway/test_runtime_config_env_expansion.py","tests/gateway/test_runtime_env_reload_config_authority.py","tests/gateway/test_runtime_footer.py","tests/gateway/test_safe_adapter_disconnect.py","tests/gateway/test_send_image_file.py","tests/gateway/test_send_multiple_images.py","tests/gateway/test_send_retry.py","tests/gateway/test_send_voice_reply_notify.py","tests/gateway/test_session.py","tests/gateway/test_session_api.py","tests/gateway/test_session_boundary_hooks.py","tests/gateway/test_session_boundary_security_state.py","tests/gateway/test_session_dm_thread_seeding.py","tests/gateway/test_session_env.py","tests/gateway/test_session_hygiene.py","tests/gateway/test_session_info.py","tests/gateway/test_session_list_allowed_sources.py","tests/gateway/test_session_model_override_routing.py","tests/gateway/test_session_model_reset.py","tests/gateway/test_session_override_thread_recovery.py","tests/gateway/test_session_race_guard.py","tests/gateway/test_session_reset_notify.py","tests/gateway/test_session_split_brain_11016.py","tests/gateway/test_session_state_cleanup.py","tests/gateway/test_session_store_prune.py","tests/gateway/test_setup_feishu.py","tests/gateway/test_shared_group_sender_prefix.py","tests/gateway/test_shutdown_cache_cleanup.py","tests/gateway/test_shutdown_forensics.py","tests/gateway/test_shutdown_memory_provider_messages.py","tests/gateway/test_signal.py","tests/gateway/test_signal_format.py","tests/gateway/test_signal_rate_limit.py","tests/gateway/test_simplex_plugin.py","tests/gateway/test_slack.py","tests/gateway/test_slack_approval_buttons.py","tests/gateway/test_slack_channel_session_scope.py","tests/gateway/test_slack_channel_skills.py","tests/gateway/test_slack_mention.py","tests/gateway/test_slack_plugin_action_handlers.py","tests/gateway/test_slash_access.py","tests/gateway/test_slash_access_dispatch.py","tests/gateway/test_sms.py","tests/gateway/test_sse_agent_cancel.py","tests/gateway/test_ssl_cert_detection.py","tests/gateway/test_ssl_certs.py","tests/gateway/test_status.py","tests/gateway/test_status_command.py","tests/gateway/test_steer_command.py","tests/gateway/test_step_callback_compat.py","tests/gateway/test_sticker_cache.py","tests/gateway/test_stop_thread_sibling.py","tests/gateway/test_stream_consumer.py","tests/gateway/test_stream_consumer_draft.py","tests/gateway/test_stream_consumer_fresh_final.py","tests/gateway/test_stream_consumer_thread_routing.py","tests/gateway/test_stream_events.py","tests/gateway/test_stt_config.py","tests/gateway/test_stuck_loop.py","tests/gateway/test_subagent_protection_30170.py","tests/gateway/test_task7_generation_hardening.py","tests/gateway/test_teams.py","tests/gateway/test_teams_pipeline_runtime_wiring.py","tests/gateway/test_telegram_activation_notice.py","tests/gateway/test_telegram_approval_buttons.py","tests/gateway/test_telegram_audio_vs_voice.py","tests/gateway/test_telegram_callback_auth_fail_closed.py","tests/gateway/test_telegram_caption_merge.py","tests/gateway/test_telegram_channel_posts.py","tests/gateway/test_telegram_clarify_buttons.py","tests/gateway/test_telegram_conflict.py","tests/gateway/test_telegram_customer_bootstrap.py","tests/gateway/test_telegram_documents.py","tests/gateway/test_telegram_format.py","tests/gateway/test_telegram_forum_commands.py","tests/gateway/test_telegram_group_gating.py","tests/gateway/test_telegram_max_doc_bytes.py","tests/gateway/test_telegram_mention_boundaries.py","tests/gateway/test_telegram_mock_bootstrap.py","tests/gateway/test_telegram_model_picker.py","tests/gateway/test_telegram_network.py","tests/gateway/test_telegram_network_reconnect.py","tests/gateway/test_telegram_noise_filter.py","tests/gateway/test_telegram_nutrition_addresses.py","tests/gateway/test_telegram_nutrition_onboarding.py","tests/gateway/test_telegram_nutrition_onboarding_callback_observability.py","tests/gateway/test_telegram_nutrition_onboarding_copy.py","tests/gateway/test_telegram_nutrition_onboarding_direct_entry.py","tests/gateway/test_telegram_nutrition_onboarding_preview.py","tests/gateway/test_telegram_nutrition_onboarding_preview_runtime.py","tests/gateway/test_telegram_nutrition_operator_console.py","tests/gateway/test_telegram_overflow_partial.py","tests/gateway/test_telegram_photo_interrupts.py","tests/gateway/test_telegram_physique_checkin.py","tests/gateway/test_telegram_polling_receipts.py","tests/gateway/test_telegram_polling_receipts_multiprocess.py","tests/gateway/test_telegram_progress_edit_transient.py","tests/gateway/test_telegram_reactions.py","tests/gateway/test_telegram_reply_mode.py","tests/gateway/test_telegram_reply_quote.py","tests/gateway/test_telegram_rich_messages.py","tests/gateway/test_telegram_room_bootstrap_adversarial.py","tests/gateway/test_telegram_send_draft_format.py","tests/gateway/test_telegram_send_path_health.py","tests/gateway/test_telegram_slash_confirm.py","tests/gateway/test_telegram_status_indicator.py","tests/gateway/test_telegram_status_update.py","tests/gateway/test_telegram_text_batch_perf.py","tests/gateway/test_telegram_text_batching.py","tests/gateway/test_telegram_thread_fallback.py","tests/gateway/test_telegram_topic_mode.py","tests/gateway/test_telegram_voice_v0_regressions.py","tests/gateway/test_telegram_webhook_secret.py","tests/gateway/test_text_batching.py","tests/gateway/test_title_command.py","tests/gateway/test_tool_response_drop_recovery.py","tests/gateway/test_trainer_free_v1_contract.py","tests/gateway/test_transcript_offset.py","tests/gateway/test_tts_media_routing.py","tests/gateway/test_unauthorized_dm_behavior.py","tests/gateway/test_unavailable_skill_hint.py","tests/gateway/test_undo_rewind_session.py","tests/gateway/test_unknown_command.py","tests/gateway/test_update_command.py","tests/gateway/test_update_streaming.py","tests/gateway/test_usage_command.py","tests/gateway/test_verbose_command.py","tests/gateway/test_version_command.py","tests/gateway/test_video_context_note.py","tests/gateway/test_vision_memory_leak.py","tests/gateway/test_voice_command.py","tests/gateway/test_voice_mode_platform_isolation.py","tests/gateway/test_weak_credential_guard.py","tests/gateway/test_webhook_adapter.py","tests/gateway/test_webhook_deliver_only.py","tests/gateway/test_webhook_dynamic_routes.py","tests/gateway/test_webhook_integration.py","tests/gateway/test_webhook_signature_rate_limit.py","tests/gateway/test_wecom.py","tests/gateway/test_wecom_callback.py","tests/gateway/test_weixin.py","tests/gateway/test_weixin_typing.py","tests/gateway/test_whatsapp_cloud.py","tests/gateway/test_whatsapp_connect.py","tests/gateway/test_whatsapp_formatting.py","tests/gateway/test_whatsapp_group_gating.py","tests/gateway/test_whatsapp_reply_prefix.py","tests/gateway/test_whatsapp_stale_bridge.py","tests/gateway/test_whatsapp_text_batching.py","tests/gateway/test_ws_auth_retry.py","tests/gateway/test_yolo_command.py"]},"schema":"task26-gate18-source-closure-diagnosis-v1","service_postcheck":{"active_state":"inactive","main_pid":0,"profile_process_count":0,"sub_state":"dead","unit":"hermes-gateway-dualcoachtest.service"},"status":"DIAGNOSIS_COMPLETE","task":26,"unified_reseal_inputs":{"required_post_reseal_order":["verify the new candidate against the same source-closure function and fresh inputs","run the proposed regression","run Gate 18 only after the manifest contains the complete closure and the runtime uses the sealed wheel or records complete source-to-wheel parity","issue a new Gate 18 receipt; do not alter this candidate's FAIL receipt"],"sealer_command":{"evidence_root":"/home/cube/projects/richard/traning coach/.omo/evidence","gate_receipt_requirement":"a newly produced 0600 PASS quality-gate receipt that covers the closure patch and proposed regression; the current Gate 18 FAIL receipt must not be supplied","output_parent":"/home/cube/projects/richard/traning coach/.omo/evidence/task26","profile":"/home/cube/.hermes/profiles/dualcoachtest","repository":"/home/cube/projects/richard/hermes-agent","wheel_requirement":"a newly verified immutable wheel matching the reseal source state; the historical wheel is recorded above but its prior Gate 18 receipt remains FAIL","workspace_index":"/home/cube/.hermes/profiles/.dualcoach-workspace-quarantine-v1/index/f4cd2ea29c98b7038bc9490b87ee0db2.json","workspace_receipt":"/home/cube/.hermes/profiles/.dualcoach-workspace-quarantine-v1/archives/f4cd2ea29c98b7038bc9490b87ee0db2/receipt.json"},"source_inputs":{"core_source_files":["gateway/platforms/dualcoach_admin.py","gateway/platforms/dualcoach_tasks21_25_controller.py","agent/auxiliary_client.py","agent/codex_runtime.py","tests/gateway/test_dualcoach_admin_provider_auth.py","tests/gateway/test_dualcoach_tasks21_25_controller.py","tests/agent/test_auxiliary_client.py","pyproject.toml"],"full_source_entries_sha256_at_diagnosis":"70036a6a6b13a7f746f28b8609d2932c4603ce192f6c147380a2814f27ea8adf","full_source_entry_count_at_diagnosis":375,"gateway_discovery_entry_count_at_diagnosis":365,"gateway_discovery_glob":"tests/gateway/**/test_*.py","gateway_discovery_order":"lexicographic POSIX relative path","gateway_discovery_paths_sha256_at_diagnosis":"1a57a7d1d9725b2cb81abdfef430ca999da7bae5e8e34cc19700b9b3d7023b5a","pytest_package_and_startup_files":["tests/__init__.py","tests/conftest.py","tests/gateway/__init__.py","tests/gateway/conftest.py"]}}}
