{"repo":"NousResearch/hermes-agent","public_id":"10022","display_label":"GitHub Copilot and gh CLI authentication handling changes","summary":"The three titles all relate to GitHub-related authentication or provider setup: using gh hosts.yml credentials as a Copilot fallback, adding native gh authentication support, and moving Copilot out of core into a labs plugin. The titles alone do not show how these changes interact or what their outcomes are.","subsystem":"agent","counts":{"members":3,"open_issues":1,"open_issues_distinct":1,"open_prs":0,"closed_issues":0,"merged_prs":1,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":144788,"merged_at":"2026-10-26T09:00:41+00:00"},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-10-26T09:00:41+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":10022,"pr_number":144788,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-26T09:00:41+00:00"},{"issue_number":10715,"pr_number":144788,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-26T09:00:41+00:00"},{"issue_number":25245,"pr_number":144788,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-26T09:00:41+00:00"},{"issue_number":25246,"pr_number":144788,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-26T09:00:41+00:00"},{"issue_number":45813,"pr_number":144788,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-26T09:00:41+00:00"},{"issue_number":46527,"pr_number":144788,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-26T09:00:41+00:00"},{"issue_number":47708,"pr_number":144788,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-26T09:00:41+00:00"},{"issue_number":51652,"pr_number":144788,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-26T09:00:41+00:00"},{"issue_number":53781,"pr_number":144788,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-26T09:00:41+00:00"},{"issue_number":59845,"pr_number":144788,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-26T09:00:41+00:00"},{"issue_number":60379,"pr_number":144788,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-26T09:00:41+00:00"},{"issue_number":63188,"pr_number":144788,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-26T09:00:41+00:00"},{"issue_number":104792,"pr_number":144788,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-26T09:00:41+00:00"},{"issue_number":119350,"pr_number":144788,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-26T09:00:41+00:00"},{"issue_number":132992,"pr_number":144788,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-26T09:00:41+00:00"},{"issue_number":138553,"pr_number":144788,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-26T09:00:41+00:00"}],"members":[{"kind":"issue","number":10022,"title":"Add native gh authentication support","url":null,"state":"open"},{"kind":"pr","number":10083,"title":"fix(copilot): fall back to gh hosts.yml credentials","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"0591b66fca66b14e7c6a7ad1b75c399b4b9a6663","number":0},{"kind":"commit","value":"346cfe972f72b6a966e84c1004cf8742554b193d","number":0},{"kind":"pr","value":"#144788","number":144788}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":144788,"title":"refactor(providers): GitHub Copilot moves out of core into the github-copilot labs plugin","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/acp_client.py","agent/agent_init.py","agent/agent_init_fallback.py","agent/agent_runtime_helpers.py","agent/auxiliary_client.py","agent/chat_completion_helpers.py","agent/chat_completion_helpers_tool_calls.py","agent/client_lifecycle.py","agent/codex_responses_adapter.py","agent/codex_runtime.py","agent/conversation_loop.py","agent/copilot_acp_client.py","agent/credential_pool.py","agent/credential_sources.py","agent/error_classifier.py","agent/message_metadata.py","agent/message_sanitization.py","agent/moa_loop.py","agent/model_metadata.py","agent/models_dev.py","agent/native_compaction.py","agent/provider_route_hooks.py","agent/reasoning_carriers.py","agent/reasoning_params.py","agent/secret_scope.py","agent/side_question_lease.py","agent/status_output.py","agent/transports/chat_completions.py","agent/transports/codex.py","agent/transports/codex_app_server.py","agent/turn_api_call.py","agent/turn_api_error.py","agent/turn_api_request.py","agent/turn_context.py","agent/turn_final_response.py","agent/turn_overflow.py","agent/turn_recovery.py","agent/turn_retry_state.py","cli-config.yaml.example","cron/scheduler_preflight.py","gateway/run_startup.py","gateway/session_cli_turn.py","gateway/slash_commands_model.py","hermes_cli/auth.py","hermes_cli/auth_commands.py","hermes_cli/auth_constants.py","hermes_cli/auth_error_copy.py","hermes_cli/auth_external_process.py","hermes_cli/auth_plugin_providers.py","hermes_cli/cli_agent_setup_mixin.py","hermes_cli/cli_init_mixin.py","hermes_cli/cli_model_switch_mixin.py","hermes_cli/cli_status_bar_mixin.py","hermes_cli/cli_stream_mixin.py","hermes_cli/cli_tui_mixin.py","hermes_cli/config.py","hermes_cli/config_defaults.py","hermes_cli/copilot_auth.py","hermes_cli/credential_lifecycle.py","hermes_cli/doctor.py","hermes_cli/doctor_config.py","hermes_cli/env_loader.py","hermes_cli/inventory.py","hermes_cli/left_core_migration.py","hermes_cli/main.py","hermes_cli/main_provider_setup.py","hermes_cli/model_cost_guard.py","hermes_cli/model_normalize.py","hermes_cli/model_setup.py","hermes_cli/model_setup_flows.py","hermes_cli/model_switch.py","hermes_cli/model_switch_providers.py","hermes_cli/models.py","hermes_cli/models_catalog_static.py","hermes_cli/models_pricing.py","hermes_cli/models_validate.py","hermes_cli/plugin_host.py","hermes_cli/plugin_host_child.py","hermes_cli/plugin_host_profiles.py","hermes_cli/plugin_validate_private_imports.py","hermes_cli/provider_catalog.py","hermes_cli/providers.py","hermes_cli/runtime_provider.py","hermes_cli/runtime_readiness.py","hermes_cli/setup_migration.py","hermes_cli/voice.py","hermes_cli/web_routers/config_env.py","hermes_cli/web_routers/oauth.py","hermes_cli/web_routers/ops.py","hermes_cli/web_server_lifecycle.py","hermes_cli/web_server_oauth.py","locales/af.yaml","locales/ar.yaml","locales/de.yaml","locales/en.yaml","locales/es.yaml","locales/fr.yaml","locales/ga.yaml","locales/hu.yaml","locales/it.yaml","locales/ja.yaml","locales/ko.yaml","locales/pt.yaml","locales/ru.yaml","locales/tr.yaml","locales/uk.yaml","locales/zh-hant.yaml","locales/zh.yaml","plugins/AGENTS.md","plugins/model-providers/copilot-acp/__init__.py","plugins/model-providers/copilot-acp/plugin.yaml","plugins/model-providers/copilot/__init__.py","plugins/model-providers/copilot/plugin.yaml","providers/README.md","providers/__init__.py","providers/base.py","run_agent.py","skills/autonomous-ai-agents/hermes-agent/references/providers-and-models.md","skills/autonomous-ai-agents/hermes-agent/references/troubleshooting.md","tests/agent/test_acp_client.py","tests/agent/test_acp_client_invariants.py","tests/agent/test_acp_openai_bridge.py","tests/agent/test_aux_alias_home_scope.py","tests/agent/test_auxiliary_client.py","tests/agent/test_auxiliary_main_first.py","tests/agent/test_auxiliary_named_custom_providers.py","tests/agent/test_codex_responses_adapter.py","tests/agent/test_codex_xai_oauth_recovery.py","tests/agent/test_copilot_acp_alias_compat.py","tests/agent/test_copilot_acp_client.py","tests/agent/test_copilot_acp_deprecation.py","tests/agent/test_copilot_initiator.py","tests/agent/test_copilot_native_vision_headers.py","tests/agent/test_credential_pool.py","tests/agent/test_endpoint_profile_seams.py","tests/agent/test_external_process_streaming.py","tests/agent/test_image_shrink_recovery.py","tests/agent/test_init_fallback_on_exhausted_pool.py","tests/agent/test_intent_ack_continuation.py","tests/agent/test_left_core_kept_notice_delivery.py","tests/agent/test_malformed_tool_args_no_fallback.py","tests/agent/test_memory_migration_notifications.py","tests/agent/test_moa_slot_request_headers.py","tests/agent/test_models_dev.py","tests/agent/test_native_compaction.py","tests/agent/test_nt_namespace_guard.py","tests/agent/test_private_credential_writers.py","tests/agent/test_profile_declared_core_sets.py","tests/agent/test_provider_client_seam.py","tests/agent/test_provider_credential_seams.py","tests/agent/test_provider_hook_policy.py","tests/agent/test_provider_refresh_hook_failures.py","tests/agent/test_provider_wire_seams.py","tests/agent/test_reasoning_carriers.py","tests/agent/test_reasoning_disable_recovery.py","tests/agent/test_reasoning_gate_claimed_hosts.py","tests/agent/test_retry_exhaustion_partial_retention.py","tests/agent/test_run_agent.py","tests/agent/test_run_agent_codex_responses.py","tests/agent/test_turn_recovery_autorecover.py","tests/agent/test_turn_retry_state.py","tests/agent/transports/test_codex_transport.py","tests/agent/transports/test_codex_transport_github_reasoning.py","tests/agent/transports/test_provider_wire_snapshot.py","tests/e2e/core/providers/test_native_acp_agent.py","tests/e2e/core/providers/test_native_acp_agent_errors.py","tests/e2e/core/providers/test_native_acp_agent_streaming.py","tests/fakes/providers/fake_acp_agent.py","tests/fixtures/provider_wire_snapshot.json","tests/gateway/test_one_turn_route_publish.py","tests/hermes_cli/test_agent_import_left_core.py","tests/hermes_cli/test_api_key_providers.py","tests/hermes_cli/test_auth_commands.py","tests/hermes_cli/test_auth_registry_home_scope.py","tests/hermes_cli/test_auth_registry_profile_rows.py","tests/hermes_cli/test_base_url_host_identity.py","tests/hermes_cli/test_config_migration_52_browser.py","tests/hermes_cli/test_copilot_auth.py","tests/hermes_cli/test_copilot_catalog_oauth_fallback.py","tests/hermes_cli/test_copilot_context.py","tests/hermes_cli/test_copilot_custom_model_ids.py","tests/hermes_cli/test_copilot_in_model_list.py","tests/hermes_cli/test_copilot_model_api_mode.py","tests/hermes_cli/test_copilot_runtime_api_mode.py","tests/hermes_cli/test_copilot_runtime_api_mode_stale.py","tests/hermes_cli/test_copilot_token_exchange.py","tests/hermes_cli/test_credential_pool_off_loop.py","tests/hermes_cli/test_external_process_auth_status.py","tests/hermes_cli/test_external_process_launch_env.py","tests/hermes_cli/test_external_process_provider_seam.py","tests/hermes_cli/test_left_core_camofox.py","tests/hermes_cli/test_left_core_migration.py","tests/hermes_cli/test_left_core_provider_rows.py","tests/hermes_cli/test_left_core_provider_runtime.py","tests/hermes_cli/test_left_core_singularity.py","tests/hermes_cli/test_mcp_catalog_env_boundary.py","tests/hermes_cli/test_model_cache_fallback_rows.py","tests/hermes_cli/test_model_setup_public.py","tests/hermes_cli/test_model_switch_copilot_api_mode.py","tests/hermes_cli/test_model_validation.py","tests/hermes_cli/test_models_relay_base_url.py","tests/hermes_cli/test_multiplex_cli_cache_scope.py","tests/hermes_cli/test_overlay_slug_resolution.py","tests/hermes_cli/test_plugin_host_mixed_profiles.py","tests/hermes_cli/test_plugin_host_profiles_launch_dir.py","tests/hermes_cli/test_plugin_host_seeded_credentials.py","tests/hermes_cli/test_plugin_provider_picker_residue.py","tests/hermes_cli/test_profile_model_id_seam.py","tests/hermes_cli/test_profile_setup_login_seams.py","tests/hermes_cli/test_provider_catalog.py","tests/hermes_cli/test_provider_catalog_hooks.py","tests/hermes_cli/test_provider_normalize_cost.py","tests/hermes_cli/test_provider_table_placement.py","tests/hermes_cli/test_runtime_api_mode_profile_default.py","tests/hermes_cli/test_runtime_provider_resolution.py","tests/hermes_cli/test_static_models_home_scope.py","tests/plugins/model_providers/test_copilot_profile.py","tests/providers/test_installed_plugin_discovery.py","tests/providers/test_missing_credentials_hints.py","tests/providers/test_profile_host_seams.py","tests/providers/test_profile_miss_ttl.py","tests/providers/test_registry_home_scope.py","tests/tools/test_delegate_external_provider.py","tests/tools/test_delegation_profile_route.py","tests/tui_gateway/test_cold_start_gil_stall.py","tools/delegate_tool_config.py","tools/environments/local_env_policy.py","tools/schema_sanitizer.py","tui_gateway/agent_factory.py","tui_gateway/methods_config.py","tui_gateway/methods_voice.py","website/docs/developer-guide/adding-providers.md","website/docs/developer-guide/context-compression-and-caching.md","website/docs/developer-guide/model-provider-plugin.md","website/docs/developer-guide/provider-runtime.md","website/docs/getting-started/quickstart.md","website/docs/integrations/providers.md","website/docs/reference/cli-commands.md","website/docs/reference/environment-variables.md","website/docs/user-guide/configuration.md","website/docs/user-guide/features/fallback-providers.md","website/docs/user-guide/features/subscription-proxy.md","website/docs/user-guide/multi-profile-gateways.md","website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/developer-guide/adding-providers.md","website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/developer-guide/model-provider-plugin.md","website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/developer-guide/provider-runtime.md","website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/getting-started/quickstart.md","website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/integrations/providers.md","website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/cli-commands.md","website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/environment-variables.md","website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/user-guide/configuration.md","website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/user-guide/features/fallback-providers.md","website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/user-guide/features/subscription-proxy.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}