Versión 1.1.0 — Python real del host, SDK instalado localizado por hermes_constants.__file__.
Red/Telegram/LLM reales bloqueados por audit hook. 92 pruebas originales + 23 nuevas.

test_alias_metadata_is_real_and_no_fake_label (test_command_menu.Composition.test_alias_metadata_is_real_and_no_fake_label) ... ok
test_cap_dedupe_and_fingerprint (test_command_menu.Composition.test_cap_dedupe_and_fingerprint) ... ok
test_generic_honest_order_and_keep_rest (test_command_menu.Composition.test_generic_honest_order_and_keep_rest) ... ok
test_missing_cuota_fail_closed (test_command_menu.Composition.test_missing_cuota_fail_closed) ... ok
test_real_plugin_cuota_supported (test_command_menu.Composition.test_real_plugin_cuota_supported) ... ok
test_real_quick_cuota_preserved_no_execution (test_command_menu.Composition.test_real_quick_cuota_preserved_no_execution) ... ok
test_api_failure_not_verified (test_command_menu.Runtime.test_api_failure_not_verified) ... ok
test_cleanup_restores_only_own_instance_hooks (test_command_menu.Runtime.test_cleanup_restores_only_own_instance_hooks) ... ok
test_cold_adapter_publishes_without_restart (test_command_menu.Runtime.test_cold_adapter_publishes_without_restart) ... ok
test_foreign_hook_replacement_survives_cleanup (test_command_menu.Runtime.test_foreign_hook_replacement_survives_cleanup) ... ok
test_future_native_refresh_and_lazy_formatter_keep_order (test_command_menu.Runtime.test_future_native_refresh_and_lazy_formatter_keep_order) ... ok
test_immediate_all_native_scopes_and_existing_forum (test_command_menu.Runtime.test_immediate_all_native_scopes_and_existing_forum) ... ok
test_other_adapter_profile_never_touched (test_command_menu.Runtime.test_other_adapter_profile_never_touched) ... ok
test_readback_mismatch_not_verified (test_command_menu.Runtime.test_readback_mismatch_not_verified) ... ok
test_runtime_quick_commands_authoritative_and_preserved (test_command_menu.Runtime.test_runtime_quick_commands_authoritative_and_preserved) ... ok
test_arbitrary_profile_only (test_installer.InstallerTests.test_arbitrary_profile_only) ... ok
test_arbitrary_profile_runtime_registration (test_installer.InstallerTests.test_arbitrary_profile_runtime_registration) ... ok
test_changed_own_config_rejected (test_installer.InstallerTests.test_changed_own_config_rejected) ... ok
test_changed_plugin_rejected_without_writes (test_installer.InstallerTests.test_changed_plugin_rejected_without_writes) ... ok
test_cli_dry_run_real_install_and_uninstall (test_installer.InstallerTests.test_cli_dry_run_real_install_and_uninstall) ... ok
test_install_readback_default_and_idempotency (test_installer.InstallerTests.test_install_readback_default_and_idempotency) ... ok
test_manifest_path_injection_rejected (test_installer.InstallerTests.test_manifest_path_injection_rejected) ... ok
test_missing_sdk_rejects_before_writes (test_installer.InstallerTests.test_missing_sdk_rejects_before_writes) ... ok
test_preflight_real_sdk_and_dry_run_zero_writes (test_installer.InstallerTests.test_preflight_real_sdk_and_dry_run_zero_writes) ... ok
test_refresh_exception_restores_enabled (test_installer.InstallerTests.test_refresh_exception_restores_enabled) ... ok
test_refresh_same_set_cycle_mockcontroller (test_installer.InstallerTests.test_refresh_same_set_cycle_mockcontroller) ... ok
test_reinstall_after_uninstall_keeps_backup (test_installer.InstallerTests.test_reinstall_after_uninstall_keeps_backup) ... ok
test_rollback_dry_run_no_writes (test_installer.InstallerTests.test_rollback_dry_run_no_writes) ... ok
test_rollback_restores_prior_fields_preserves_concurrent_config_and_sidecars (test_installer.InstallerTests.test_rollback_restores_prior_fields_preserves_concurrent_config_and_sidecars) ... ok
test_symlink_and_invalid_slug_rejected (test_installer.InstallerTests.test_symlink_and_invalid_slug_rejected) ... ok
test_titles_explicit_install_and_uninstall_policy_delta (test_installer.InstallerTests.test_titles_explicit_install_and_uninstall_policy_delta) ... ok
test_titles_requires_existing_approved_route (test_installer.InstallerTests.test_titles_requires_existing_approved_route) ... ok
test_unmanaged_directory_rejected (test_installer.InstallerTests.test_unmanaged_directory_rejected) ... ok
test_conflicting_owned_menu_value_refused_without_deletion (test_menu_installer.MenuInstallerTests.test_conflicting_owned_menu_value_refused_without_deletion) ... ok
test_exact_manifest_fields_and_helper_file (test_menu_installer.MenuInstallerTests.test_exact_manifest_fields_and_helper_file) ... ok
test_field_edit_during_reload_not_clobbered (test_menu_installer.MenuInstallerTests.test_field_edit_during_reload_not_clobbered) ... ok
test_file_edit_during_reload_not_deleted (test_menu_installer.MenuInstallerTests.test_file_edit_during_reload_not_deleted) ... ok
test_menu_values_idempotent (test_menu_installer.MenuInstallerTests.test_menu_values_idempotent) ... ok
test_native_persistent_fields_and_real_cuota_untouched (test_menu_installer.MenuInstallerTests.test_native_persistent_fields_and_real_cuota_untouched) ... ok
test_restore_existing_priority_order_with_concurrent_extras (test_menu_installer.MenuInstallerTests.test_restore_existing_priority_order_with_concurrent_extras) ... ok
test_rollback_preserves_concurrent_priority_and_max_commands (test_menu_installer.MenuInstallerTests.test_rollback_preserves_concurrent_priority_and_max_commands) ... ok
test_authorized_rich_row_uses_context_alias_and_respects_later_manual_name (test_picker.ContextLabels.test_authorized_rich_row_uses_context_alias_and_respects_later_manual_name) ... ok
test_all_profile_factories_capture_registration_profile (test_picker.HandlerContracts.test_all_profile_factories_capture_registration_profile) ... ok
test_context_registration_uses_real_hermes_telegram_bucket (test_picker.HandlerContracts.test_context_registration_uses_real_hermes_telegram_bucket) ... ok
test_factory_missing_integration_is_inert (test_picker.HandlerContracts.test_factory_missing_integration_is_inert) ... ok
test_factory_real_ptb_dispatch_and_no_argument_capture (test_picker.HandlerContracts.test_factory_real_ptb_dispatch_and_no_argument_capture) ... ok
test_madrid_dates_follow_dst (test_picker.HandlerContracts.test_madrid_dates_follow_dst) ... ok
test_manifest_real_parser_and_native_unload (test_picker.HandlerContracts.test_manifest_real_parser_and_native_unload) ... ok
test_numeric_and_injected_ids_are_not_resume_positions (test_picker.HandlerContracts.test_numeric_and_injected_ids_are_not_resume_positions) ... ok
test_real_plugin_loader_registers_and_unloads_in_fixture_default_home (test_picker.HandlerContracts.test_real_plugin_loader_registers_and_unloads_in_fixture_default_home) ... ok
test_register_profile_and_owner_fail_closed (test_picker.HandlerContracts.test_register_profile_and_owner_fail_closed) ... ok
test_all_empty_creates_no_menu (test_picker.PickerTests.test_all_empty_creates_no_menu) ... ok
test_backend_failure_never_invents_list_or_dispatches (test_picker.PickerTests.test_backend_failure_never_invents_list_or_dispatches) ... ok
test_busy_open_real_runner_catalog_rejects (test_picker.PickerTests.test_busy_open_real_runner_catalog_rejects) ... ok
test_callback_reenters_real_adapter_active_gate_and_real_runner_busy_policy (test_picker.PickerTests.test_callback_reenters_real_adapter_active_gate_and_real_runner_busy_policy) ... ok
test_callback_rejects_profile_or_lane_change_after_open (test_picker.PickerTests.test_callback_rejects_profile_or_lane_change_after_open) ... ok
test_canonical_origin_filters_and_exact_owner (test_picker.PickerTests.test_canonical_origin_filters_and_exact_owner) ... ok
test_compression_projection_and_core_resolution_use_live_tip (test_picker.PickerTests.test_compression_projection_and_core_resolution_use_live_tip) ... ok
test_core_resume_contract_cleans_scope_and_uses_stable_id (test_picker.PickerTests.test_core_resume_contract_cleans_scope_and_uses_stable_id) ... ok
test_doubleclick_concurrent_replay_one_handoff (test_picker.PickerTests.test_doubleclick_concurrent_replay_one_handoff) ... ok
test_empty_check_only_after_owner_canonical_acl_and_profile (test_picker.PickerTests.test_empty_check_only_after_owner_canonical_acl_and_profile) ... ok
test_empty_rows_do_not_consume_visible_slots (test_picker.PickerTests.test_empty_rows_do_not_consume_visible_slots) ... ok
test_empty_sessions_hidden_without_delete_or_archive (test_picker.PickerTests.test_empty_sessions_hidden_without_delete_or_archive) ... ok
test_expiry_and_new_menu_invalidate_old (test_picker.PickerTests.test_expiry_and_new_menu_invalidate_old) ... ok
test_five_profiles_open_and_resume_are_isolated (test_picker.PickerTests.test_five_profiles_open_and_resume_are_isolated) ... ok
test_latest_activity_not_creation_order (test_picker.PickerTests.test_latest_activity_not_creation_order) ... ok
test_list_real_types_unnamed_and_keyboard (test_picker.PickerTests.test_list_real_types_unnamed_and_keyboard) ... ok
test_media_tool_actions_compacted_rows_and_stale_counters (test_picker.PickerTests.test_media_tool_actions_compacted_rows_and_stale_counters) ... ok
test_multihop_compression_keeps_parent_media_and_empty_tip (test_picker.PickerTests.test_multihop_compression_keeps_parent_media_and_empty_tip) ... ok
test_paging_does_not_let_denied_rows_consume_visible_slots (test_picker.PickerTests.test_paging_does_not_let_denied_rows_consume_visible_slots) ... ok
test_profile_and_slash_denial_fail_closed (test_picker.PickerTests.test_profile_and_slash_denial_fail_closed) ... ok
test_real_scoped_db_property_and_state_for_five_concurrent_callbacks (test_picker.PickerTests.test_real_scoped_db_property_and_state_for_five_concurrent_callbacks) ... ok
test_revoked_authorization_or_owner_after_open (test_picker.PickerTests.test_revoked_authorization_or_owner_after_open) ... ok
test_topic_identity_survives_click (test_picker.PickerTests.test_topic_identity_survives_click) ... ok
test_unauthorized_open_never_queries_database (test_picker.PickerTests.test_unauthorized_open_never_queries_database) ... ok
test_wrong_owner_chat_thread_message_nonce_tokens_and_negatives (test_picker.PickerTests.test_wrong_owner_chat_thread_message_nonce_tokens_and_negatives) ... ok
test_changed_response_model_does_not_trigger_another_request (test_strict_auxiliary.StrictTransportTests.test_changed_response_model_does_not_trigger_another_request) ... ok
test_codex_context_window_variant_uses_host_wire_identity_only (test_strict_auxiliary.StrictTransportTests.test_codex_context_window_variant_uses_host_wire_identity_only) ... ok
test_explicit_aux_not_fallen_back_when_unavailable_and_fallback_chain_ignored (test_strict_auxiliary.StrictTransportTests.test_explicit_aux_not_fallen_back_when_unavailable_and_fallback_chain_ignored) ... ok
test_five_config_fixtures_real_resolver_sdk_and_transport (test_strict_auxiliary.StrictTransportTests.test_five_config_fixtures_real_resolver_sdk_and_transport) ... ok
test_model_or_provider_change_rejected_before_http (test_strict_auxiliary.StrictTransportTests.test_model_or_provider_change_rejected_before_http) ... ok
test_no_retry_or_other_route_on_401_429_500_or_timeout (test_strict_auxiliary.StrictTransportTests.test_no_retry_or_other_route_on_401_429_500_or_timeout) ... ok
test_paid_unapproved_disabled_and_ambiguous_routes_fail_closed (test_strict_auxiliary.StrictTransportTests.test_paid_unapproved_disabled_and_ambiguous_routes_fail_closed) ... ok
test_resolver_alias_upgrade_is_not_adopted_silently (test_strict_auxiliary.StrictTransportTests.test_resolver_alias_upgrade_is_not_adopted_silently) ... ok
test_unavailable_client_never_recovers (test_strict_auxiliary.StrictTransportTests.test_unavailable_client_never_recovers) ... ok
test_wrong_profile_or_override_or_body_rejected_without_resolution (test_strict_auxiliary.StrictTransportTests.test_wrong_profile_or_override_or_body_rejected_without_resolution) ... ok
test_actual_manifest_and_no_private_database_writes (test_titles.Integration.test_actual_manifest_and_no_private_database_writes) ... ok
test_branch_own_evidence_only_and_delegate_tool_rejected (test_titles.Integration.test_branch_own_evidence_only_and_delegate_tool_rejected) ... ok
test_compression_carries_reservations_and_cooldown (test_titles.Integration.test_compression_carries_reservations_and_cooldown) ... ok
test_compression_continuation_uses_bounded_own_resume_evidence (test_titles.Integration.test_compression_continuation_uses_bounded_own_resume_evidence) ... ok
test_compression_unnamed_resume_gets_human_title_not_summary (test_titles.Integration.test_compression_unnamed_resume_gets_human_title_not_summary) ... ok
test_derived_can_upgrade_through_public_api (test_titles.Integration.test_derived_can_upgrade_through_public_api) ... ok
test_errors_budget_persist_across_reload (test_titles.Integration.test_errors_budget_persist_across_reload) ... auto-titler LLM call failed [RuntimeError]: [REDACTED]
ok
test_five_profiles_same_id_are_isolated (test_titles.Integration.test_five_profiles_same_id_are_isolated) ... ok
test_foreign_compression_ancestor_never_reads_payloads (test_titles.Integration.test_foreign_compression_ancestor_never_reads_payloads) ... ok
test_foreign_profile_row_is_rejected_before_history_read (test_titles.Integration.test_foreign_profile_row_is_rejected_before_history_read) ... ok
test_lifecycle_duplicate_end_and_close_do_not_spend_twice (test_titles.Integration.test_lifecycle_duplicate_end_and_close_do_not_spend_twice) ... ok
test_llm_titles_evolve_only_display_after_two_checks (test_titles.Integration.test_llm_titles_evolve_only_display_after_two_checks) ... ok
test_manual_kept_and_audited_alias_invalidated_by_new_manual (test_titles.Integration.test_manual_kept_and_audited_alias_invalidated_by_new_manual) ... ok
test_missing_foreign_hidden_child_background_never_read (test_titles.Integration.test_missing_foreign_hidden_child_background_never_read) ... ok
test_native_unnamed_resume_and_empty (test_titles.Integration.test_native_unnamed_resume_and_empty) ... ok
test_per_session_and_global_hard_budget (test_titles.Integration.test_per_session_and_global_hard_budget) ... ok
test_real_compact_selector_row_preserves_provenance_and_alias (test_titles.Integration.test_real_compact_selector_row_preserves_provenance_and_alias) ... ok
test_real_pluginllm_trust_denied_before_transport (test_titles.Integration.test_real_pluginllm_trust_denied_before_transport) ... plugin_llm task routing denied: plugin 'context-session-titles' requested built-in auxiliary task 'title_generation' without plugins.entries.context-session-titles.llm.allow_task_override
ok
test_real_sessiondb_contract (test_titles.Integration.test_real_sessiondb_contract) ... ok
test_registered_callbacks_and_worker_rebind_home_from_ambient_profile (test_titles.Integration.test_registered_callbacks_and_worker_rebind_home_from_ambient_profile) ... ok
test_routes_reject_unapproved_auto_without_primary_and_missing (test_titles.Integration.test_routes_reject_unapproved_auto_without_primary_and_missing) ... ok
test_runtime_diagnostic_registered_hooks_pid_home_and_loaded_hash (test_titles.Integration.test_runtime_diagnostic_registered_hooks_pid_home_and_loaded_hash) ... ok
test_same_topic_and_transient_no_call (test_titles.Integration.test_same_topic_and_transient_no_call) ... ok
test_selector_helper_matches_runtime_and_is_read_only (test_titles.Integration.test_selector_helper_matches_runtime_and_is_read_only) ... ok
test_standard_plugin_registration_real_context (test_titles.Integration.test_standard_plugin_registration_real_context) ... ok
test_tool_and_machinery_never_in_prompt (test_titles.Integration.test_tool_and_machinery_never_in_prompt) ... ok
test_two_instances_share_persistent_inflight_cooldown (test_titles.Integration.test_two_instances_share_persistent_inflight_cooldown) ... ok
test_user_race_wins (test_titles.Integration.test_user_race_wins) ... ok
test_wrong_context_is_rejected_before_database_lookup (test_titles.Integration.test_wrong_context_is_rejected_before_database_lookup) ... ok

----------------------------------------------------------------------
Ran 115 tests in 63.393s

OK
